I'm very excited to introduce our keynote speaker today, and I need to be, of course, known her as president of the Mary Robinson Foundation Climate Justice. Of course, all of you know her as our president of Ireland. She served from 1990 to 1997. And of course, as UN High Commissioner for Human Rights in 1997 to 2002. She also sits on the advisory board of Stable Energy for All and is a member of the lead group of Stable Health Nutrition Movement. Between 2013 and 2016, Mrs. Rowling-Lissons served as UN Secretary-General's Special Envoy in three roles. First for the Great Lakes Region of Africa. Then on to climate change. I know she recently has a special envoy on anti-hero and climate. And this week, I'm very excited to hear that she was appointed as chair of the late Nelson Mandela's Council of Fathers, which is a truly awesome responsibility. You haven't seen her appearance on the late age of last Friday. I can say it was very meaningful and positive contribution, both to the international climate policy context and also to our international context here at home. When you face the award like that, I'm really excited. This really is a meeting, after my own heart, I'll say. I thank the four organizations that are brought together. And I'm also pleased that before coming in here, they will get some flavor of the marketplace that ideas are tied. The struggle to secure climate justice is a global struggle, from my friend Hindu's community in Chad to, I should tell you more about that, to our own communities here in Ireland, climate change is already affecting all of our lives. In a report of his visit to Ireland last month, the UN Special Operator on the Right to a Healthy Environment, David Boyd, stated that there is no doubt that climate change is violating the right to life and other human rights. He warns that in the future, these violations will expand in terms of geographic scope, severity and number of people affected, unless effective measures are implemented in the short term to reduce greenhouse gas emissions and protect natural carbon sinks. Only a global movement can mobilize the transformation needed to prevent an irreversible climate crisis. And only a climate justice transformation on the right of all people can be sustainable and protect both people and the planet. And this is why I encourage everyone in Ireland to make the issue personal to them and personal to their family to reduce their consumption to millions and recycle and become more energy efficient. If we all take it more seriously personally and in our families, we would put more pressure on government to take more action and that can happen all over the world. And again, I want to congratulate the enthusiastic people including school children that I met in the marketplace who are coming up with some really very good ideas that we hear about later. I want to talk today about realising a dust transition to a 1.5 degrees warming world, not 1.5 degrees Celsius. The Intergovernmental Panel on Climate Change, special report on global warming at 1.5 degrees Celsius, released last month, heralds the end of the fossil fuel era. We've entered a new reality. Fossil fuel companies have lost their legitimacy and social licence to operate. Just as it is expected, there is still standing a product that is known to cause harm is not socially or ethically acceptable. What is required now is a just transition to a cleaner, healthier world, one of which protects people and their rights as they embrace unprecedented levels of climate action. We need to jumpstart a collective consciousness to save ourselves and that consciousness must have justice and the protection of people and their rights at its core. Limiting global warming at 1.5 degrees Celsius would reduce the number of people exposed to climate risk and poverty by several millions by 2050. It would reduce the risk of drought, extreme precipitation and hot extremes and prepare for warming at 2 degrees Celsius. But even at 1.5 degrees, climate risks are inevitable and they disproportionately affect the poorest and most vulnerable people in all countries with at least 12 countries and small island developing states among the countries most at risk. These risks are to health, to food security, water supply, human security and economic growth and all risks increase the more the planet warms.  Due to the pace and magnitude of this delta transition it would pose risks to human rights as it is being developed if not carefully managed. For example, 1.5 degrees Celsius pathways include large-scale land use changes to grow fuel for bioenergy that could compete with food production and cause food insecurity. When we think back to the push for biofuels in the 2000s we recall how interspersed land for growing food to grow fuel resulting in food prices or utility. It increased pressures on land in all regions of the world causing local communities to fear evictions, small food producers to be priced out of land rockets and led people to protest in the streets to highlight the rising price of stable foods. Ethics and human rights can help to manage and reduce the list of climate action at the pace and scale needed to meet the 1.5 degrees Celsius goal. The IPCC special report finds that, and I quote, the design of the mitigation portfolios and policy instruments to limit warming to 1.5 degrees Celsius will largely determine the overall synergies of trade-offs between mitigation and sustainable development. I'm very happy that in my foundation we found a way to say this, it's much less technical. What it means is, in order to reduce the list posed to people and their development by climate action all kind of action has to be informed by human rights and equity. In fact, action to achieve the 1.5 degrees goal can go hand in hand and have multiple synergies with sustainable development, poverty reduction and reducing inequality. If designed with people and their rights at the very center. Zero carbon future is compatible with the zero poverty future if justice and rights inform the transition. So I'd like to discuss what this means in the context of a just transition. The concept of a just transition has its origins in the labor movement, aiming to secure the future and livelihood of the workers and their communities in the transition to a low carbon economy. It's based on social dialogue, participation and a commitment to human rights. It's an economy-wide process that produces the plans, policies and investments that lead to a future where all jobs are green and decent, greenhouse gas emissions are a net zero, poverty is eradicated and communities are thriving and resilient. It will be down to national and local governments to work with unions and the fossil fuel companies to ensure that workers in the fossil fuel industry are not forgotten in this global struggle to save our planet. The challenge we face is to design and manage the next industrial revolution. Transition to a zero carbon climate resilient future with minimal negative impacts and effects on workers and their communities. There are unfortunately too many examples of unjust transitions away from fossil fuels. We're all acutely aware, those of us who are open enough are acutely aware of the suffering brought about by the closure of coal mines in England, Wales and Scotland during the 1980s. Colonies were shut down and the miners by that one strike. The Margaret Nature government, dignified unions and workers who stood up for their rights were planned into poverty. Communities in Durham, Kent, Yorkshire, South Wales and Central Scotland, the heartlands of the industrial revolution were left to bear the brunt of a social, economic and environmental fallout from the 19 closures and the lead suffer to some extent still today. In my book, Tire Justice, Hope, Resilience and the Fight for a Sustainable Future, I tell the story of Ken Smith, a lead Zion copper miner and a union leader from Canada. His story captures the complexity of challenges and opportunities presented by a just transition. Ken realized that the mine he worked in and that his community unidon was inevitably going to close as zinc prices were collapsing on the global market. He decided to prepare for the worst and enunciated a closure agreement with both the government and the mining company to fund the development of a just plan. The transition plan was focused on providing support for workers to cushion against the redundancy, train in new skills and source new employment in the vast forest area. Ken and the union colleagues even succeeded in securing the creation of a national program to recognize and certify the skills and competences of mining workers so they could move from place to place. As a result, Ken and many of his friends and co-workers secured new jobs in the Alberta oil sands thousands of miles away from Bathurst. But they didn't manage to create new jobs but would allow them to stay at home and many members of the community didn't want to leave or indeed couldn't leave due to family commitments and ties. Marriages and families broke up as the men in the community moved away to find work and Bathurst lost his soul. For Ken aged 56 he didn't want to leave home as he says, even us old guys get homesick. Now Ken is a union leader in Fort McMurray in Alberta where he moved to this mining to find work. He realizes that the 3,500 oil sands workers will soon face the same point as his Bathurst colleagues. He knows climate change is real and that fossil fuels have a limited future. Most of the workers in Fort McMurray have moved there as a necessity as they lost their jobs in other mines and failed industries. In Ken's words and I quote they know the tide is coming in. They just want to prepare themselves to move on to a new job. He believes that preparation is a better way than persistence. Sharon Burrow, the general secretary of the International Trade Union in Federation echoes Ken's calls for preparation and partnership with his workers to shape a just transition. He knows it can work. In her native Australia the town of South Augusta faced the closure of the coal farm power station which the local economy depended. In the five years leading up to the plans closure in 2016 the workers, local businesses citizens and the human came together to forge a just transition plan. The plan was informed by research that found that a solar terminal plant was the best option for a smooth skill transfer of the coal powered plant and for a long term clean energy solution. The solar plant will create 1,800 jobs and will save 5 million tonnes of greenhouse gas emissions but it will also support the wider community to thrive and meet the benefits of a zero powering future. The need for a just transition has arisen in the last few weeks in the context of heat production here in Ireland. For decades workers in communities all around the world have earned a living and served the people of Ireland by harvesting heat to heat our homes and power our industries. However we now know that heat is the worst of fossil fuels we've earned for energy. The motives to end our heat industries are indisputable. Heat generates less energy per ton than coal and reduces higher CO2 emissions per unit. Burning it is an inefficient and primitive way to create energy. There's no economic argument from an economic heat as a fuel source or subsidizing this production although in 2016 the sector received 115 million euros in subsidies to generate beef hard electricity. However the need for an urgent end to heat extraction mustn't undermine the rights of the communities whose lives are dependent on the laws. There needs to be a long term strategy in place that ensures the rights and dignity of the people whose lives are impacted by this transition. With the right support from the government and through partnership with workers and unions for the moment has the opportunity to deliver a just transition strategy to end the use of heat for energy production by 2028 or I would say earlier. Ken and Sharon's experience has shown the importance of dialogue, partnership and planning in shaping a just transition so the imperative is to start that planning now. I'm pleased to be a long-remembered of a group of business leaders called ET. I'm not a business woman I'm a business worker Our mission is to catalyse a better way of doing business for the well-being of people and families. I co-chair ET's working group on net zero emissions that aims to reduce emissions to zero by 2050 through a just transition. That's what the companies are committed to. Business leaders that join this progressive team will commit to ensuring that their ambitions transition plans account for the positive impacts on workers and communities and work in partnership with stakeholders to ensure that the transition is both just and fair. Companies giving this leadership into Terney, Unilever, Dow, Chittany Natura and Separaton They share their progress and experiences towards clean loans of decarbonisation and just transition with their peers and are committed to sharing an annual report on the progress they're making. The first progress report was published in January this year and shows companies taking their vision steps to understand and plan for a just transition. They're doing this informed by the just transition rights of business, developed by the Just Transition Centre of the International Union Congress and the ET. As well as the International Labour Organization ILO guidelines for a just transition towards extravix environmentally sustainable economic and society for all. The progress report shows companies on a just transition pathway. They've a long way to go but they're sharing what they're learning along the way in the hope of inspiring others to follow their lead. For example, I think this one, Natura a beauty product company based in Brazil invites its workers to training sessions and meetings to discuss its next zero strategy and how it could affect the workforce and the wider community and their planning ahead. So to dial out the right to participation lies at the heart of the just transition. The worst thing a company can do is deny that change is going to happen and fail to prepare and engage workers, suppliers and the wider community for the inevitable. Co-vimers, oil, gas and heat workers all need to have an active role in deciding what they want their future to be it cannot be imposed on them. It takes time and investment to ensure the companies remain vibrant and jobs secure. Workers need support to be skilled and access to training to find new jobs or if close to a time of date to gain early access to their pensions. The right to participate and to be part of this decision making is key. The Just Transition Centre and BT business guide to a just transition identifies three key steps companies and governments need to take in addition to having clear policies and plans on both private actions and human rights. The right to present these briefly because they are all involved in shaping a just transition in the Irish and international context. The first step is to engage employers, workers and humans as well as government communities and civil society in a just transition planning dialogue. The second is to plan with all stakeholders to develop a complete time bound company and sectoral strategy for a just transition and finally all stakeholders must enact the strategy. Social protection will be critical to protect people who lose their jobs while they miss skill and find new jobs. There is a role for government to provide a social protection system but also for companies to ensure the contributions and taxes are paid in full so that the workers can pay health benefits, social welfare, pensions etc. Investment would also be needed in education and training so that the oil and gas workers of today for example can re-train and upskill as a civil engineer, an IT specialist or whatever they want to reinvent themselves and us. Change is, as you know, inevitable and planning for it is key. As Gordon Morgan agrees this is the opportunity it sees in its real and fossil fuel free future parallel efforts must ensure that the workers are supported in finding the power to their future too. As a blind star in its peep business which I believe it can do probably in Lancel in 2028, it will need to spearhead a collaborative and inclusive effort to develop new businesses to support the low-power economy and create some 400-500 jobs across the millions. Does the country convert to Spain? Spain can inspire us where the government recently announced plans to shut down most of its coal mines by the end of this year. After government and unions struck a deal that will mean 250 million euro will be invested in a just transition in mining regions over the next decade. This type of investment is critical before it is adopted a long behind approach to transition away from coal, peat, oil and gas in our region. A core principle of climate justice is the right to participate in climate decision making and that's why it's imperative to engage all stakeholders both as governments, workers, businesses citizens and unions in dialogue about what lies ahead to engage, plan and enact a just transition together with hope and opportunity. Ultimately we must recognize not just how we empower our economies and our societies but how we build fairer structures that ensure all people can be part of a transition to a fairer and safer and healthier world. We need to move rapidly to a zero-power future. We have to do that justly or unjustly. A just transition will leave no one behind not the pastoralists in the indigenous community, the miners the adjuster or the peat workers the militants of Ireland. A just transition will approve rights and empower people to play their part in achieving a zero-power world. You know, having been an attack commissioner of human rights I always fall back on human deterioration for human rights and Article 1 in the very beginning of this all human beings are born free and equal in dignity and rights. In times of great change, these rights must be protected.  The world has changed measureably in that period of time yet the principles and values that underpin the Declaration and our shared humanity remain more relevant than ever. Two of the many great women who inspired me in my life are Eleanor Roosevelt who led the process that resulted in the UN Declaration of Human Rights after World War II by Gary Mathai, the leader of the Greenbelt movement in Kenya and I would like to end with words of inspiration for each of them. Firstly, from Eleanor Roosevelt in the speech that she gave us so long in Paris in 1948 she said the future must be the broadening of human rights throughout the world. People without glist freedom will never be content until they have secured themselves. For instance, human rights are a fundamental object of law and government in a just society. By Gary Mathai picked up the same sentiment a few decades later and she said in the course of history that comes a time when humanity is calling upon to switch to a new level of consciousness to reach a higher moral ground. That time has come. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. to replace people joining the program, for instance, are there any initiatives that aren't being taken by local governments, in your region, or by NGOs that you'd like to say thank you? My question would be about this. What's mentioned at my sample video was how developing nations are often most hit by the actions of the developed world. I feel like we're seeing a troubling trend in the developed world of people fearing to take responsibility for the actions that we are doing. What are ways that we can encourage people to take the sense of responsibility for the world and how they can make it a one for everyone, and not just in the place they're from? I think it's really important about talking about the conflict that can be directly related to climate change, because I've seen that in Syria where there's ever been research about the conflict in Syria, but soon to go on drought in the Mediterranean. So how is it clear that that's the question first? I have some. The degree rising.  So we have about 80% of people who depend from the environment as a country. Any person living in the real game, in fact, of course, depends on the conflict between them, as I told you. So when we are at reuse, and we have the water pipeline where we start, when we move to a given place for us, then we move to another container environment because our ship house implies the land. For us, it's a strategy because it's a shield. So we keep the environment in balance with our life. But what is how people should come? Like farms start in this place. In our weather, the land is not that good. So how do we have to go so hard for the caters, for the people who are in 50 degrees to follow workout, follow bless, and do those people? So this can be resolved in order to serve the people who are joining the helpers, too. And how this can be resolved? It's a land who is happening there. But local land running, people will. But it's not enough. It's not enough to support. It needs an alternative livelihood. So how do they build the capacity of the young people who are around the place who also deserve life and who also deserve the infertile life to give them this alternative? You know, these people in my community, to now, to invest in this, people do not have a bad certificate. Everything everyone must have in order to say, I'm a citizen of this country, right? So they don't have, while you don't have, then you don't talk about the hospital or other things. So the base is set up in order to allow a sustainable development and keep the people from the terrorist group. We have France, but we have also EU, and now we have America, to keep the peace in the regions. But the peace in the region that they are keeping is how they can enforce the army to make the security. Disconnect the army security and development of the peoples that can be forward, hand by hand. Of course we need army to secure the region, fight the terrorist group. But we need army to keep them busy on their life by giving them the alternative work. And that they can feel the toward, because I have whatever that I have, I have to protect my land and peoples, and then it becomes much secure. So that the government still has now. So we need to keep this government. And coming to this individual in each work can help. It's much sustainable and industrialized and cultured. Individual choice, individual choice who can contribute a lot to the global choice. Countries, these are the developing countries. This is very important. The industrialized revolution created climate effort. Of course maybe it was a mistake, people didn't know that it's going to lead us to this. But now everyone know the climate is a reality. Developed countries cannot deny it. Even we have the fire here also in the island. It's now in developed countries, if they do not take the action now. So take the action for yourself that you do not know. Just to share together. Anywhere you need water to drink, you need food in your table just to share equally among the humanity. We must share the air and water with food equally. And in order to share it, we have to keep by respecting the developing people in the developing countries. I live in places like Chad and perhaps you could maybe bring that back to us here in Ireland and how we contribute to that and also address the other two questions around personal responsibility. Yeah, I think they are very important questions and really, really appropriate. I think what we need to reflect on are how does society change? Society in an environment like ours here in Ireland. And there are maybe two to three key drivers of change. What is regulation? We probably wouldn't have given up using plastic bags and throwing them away willy-nilly, but they're not a tax on plastic bags. So economic costs. There is a role for regulation around illustrating to us the costs of some of our wanton behaviour. And I think maybe just to spend a bit more time on this, how does behaviour change happen? I bet everybody in this room believes in the right thing to do and would expect that the person beside them would know that, for example, there's a wonderful exhibition piece out there calling on parents to turn off their engines when they're waiting for their children outside school. And once you see it, it's so obvious. Of course, of course I should. But it's only when practices become socially unacceptable that actually people default to the more appropriate behaviour. So we need to continually, those of us who are thinking, you know, I like to do this, but people might laugh at me or, you know, not everybody's doing it, therefore what's the point? We have to create a critical mass of behaviour in order to tip the balance. The other thing that's important about social behaviour change is that most people might walk around thinking, my values state that it is important to brand and say, silent to work, rather than take the car. However, again, everybody else is driving a car, it's raining, it's wet in Ireland, and all of you know what difference will it make. Look, if you think, actually, seven out of ten people that I come in contact with are probably thinking, I know it's the right thing to cycle, but I'm going to drive. The more those people actually change their behaviour, talk to each other, and reinforce each other's attitudes around the changes that need to happen the more it becomes actually socially unacceptable to take the easier option, which is the option that damages the environment. So what I'm saying is that we need to influence each other. So we need to talk about these issues, be champions, keep on reiterating them. Our children will come home from school telling us what the right things and the wrong things do are, pay them respect, give them time and attention and reinforce their views to the actions that we take. My colleague Dr. Lorna Gold wrote a fantastic book which I think everybody should really pay attention to because as I've just heard it is about our children's future. These issues are affecting our lives. And so the more people realise that actually it's not just about something terrible having it in a faraway country that I really have no control or influence over. It's actually my children that will suffer from potential flooding or at least insurance costs or poor air quality or higher costs of healthcare. So I think that reinforce the positive actions to our own behaviours, they're probably the best way to drive change. Yeah and Lorna's book I think is available on the market-based air for people who's interested. We can take a few more questions afterwards and we'll see them in there and we'll put them over there. So we'll take those here. Yes, thank you. For us on the bus, I mean on behalf of the Netherlands and the sea here in Dublin my question is regarding those changes that have been doing their daily lives. There's a lot of bad options for the environment eating meat, driving your car however for most people most of the bad options are usually the easier options are usually also the cheaper options. The problem with the big changes is that mostly the poorer people will be affected by the needs of the change. If we really prohibit those other things or tax them, the poorer people will be hit the hardest. Now the poorer countries are hit the hardest. So my question is how will we deal with this social inequality arising from that? Thank you. Hi there, do you agree with me that you're going to stop the auto-driving today? We had an amazing visit recently from Pope Francis and a local doctor to see. Is it possible that the diversity in the church will be re-invested locally in every parish, every school, retrofit, community buildings where it starts? And maybe with a French-based approach rather than a Irish-based can we have a green retail financial tool that we can use to have sustainable energy growing homes that will avoid having to create greenhouse gas, create jobs and can be a very viable future for just transition. Thank you. I'm interested to know about population and how we can talk about a sustainable global population that is in line with climate because I wonder in your country in chat as a result of the crisis that you're facing do family numbers increase, do they decrease? Where can we have these type of conversations about the fact that the 7 billion is on the planet and we can't all consume the same amount of resources and we need conflict. So I don't know if you have any opinion or any insight into that. Would you like to address that comment there on population and consumption? Yeah, sure. About populations, of course we say we do not have resources, but we cannot stop people from growing up, from giving births. That's for sure, right? So it's a brand of housework. So in chat of populations the line is 1,200,000 km2 like 2 times from 3 times German, so the line is really big. We have a different ecosystem we have 100% desert, we have Savannah, a tropical forest and a deep. And that means we have more population in the southern place than the north. And that's the issue of there is not enough water in the desert area, so people are moving to that place. But coming to the population, probably our job, we have more kids than those who are busy having jobs or having other issues. So that's really exactly what's happening there. You have no job. Your agriculture is not giving and then you are just there. You have no other work to do. Maybe the constellation that you have is making babies, you have to make babies. And then the normal, I don't know excuse or realities coming up is kids giving by God. You cannot stop them. That's what's happening. That takes us to analogous countries coming up in the developing culture. Most of the developing countries do not talk about you because there are other issues that we talk about. So this is become much larger discussions going to the office with rich. So you need that for your health. You need that for your future. But it's not a discussion that's happening. We have other priorities. As food, water, security. So as long as you can address food, water, security. Of course, you can have a bonus somewhere to discuss about the family planning. So this is not an actual discussion that we are having. But at least we do not have a big population growing compared to our neighbor, this Niger where they are going to have like 50% more just in 2050. And that when you think about how they are going to feed those peoples. How they are going to get them to school, to the health. So it's become a completely like the system development goal discussions. So that's why climate change. But we cannot cut only climate change without talking about the development, about security, about water, about all. So all the 15 goals of the system development need to be addressed in the same block to the developing countries. So when we address them in the same block, maybe by 2010 we can achieve some of them. I'm not confident that we are going to address them in 2010 but I'm confident if we address them all together but by making priority we need to address climate change as cross cutting issues through all our development. We cannot have the system of development if we do this cross cutting issues talking with the peoples and taking the solution from the ground, not coming with already designed mechanism but from ground. But the question is finally gender issues also because when we talk about population ground we talk about gender. So when we talk about the climate change and we have gender and then like it's a little bit separate. Let's talk about women in climate change. And like excuse me you cannot talk about women in climate change because it's interesting. Women is part of the solution human in past is part of the human system mostly impacting her kids. Where they grow up they are passing the traditional knowledge but also the education to how you can protect your water your trees. How is your relation as human being and your environment. So all cutting issues because it's become very naturally to integrate the human growing population into the climate protection or global environmental protection. Thank you. I think there are issues around the questions or working news comments there to finish this session. Sir, you know, thank you for that very very clear expression on some of the questions. I think maybe just finally on the question and you know what about the people who are unfortunately affected by vulnerability here in our society as well. I think you know Mary's intervention earlier really sets the framework the transition to a kind of just society has got to acknowledge and respond to the fact that people will have different needs in different times. In Malawi Valley for three years I see a former colleague who's a regional director for that region here. We worked on shock sensitive social protection social protection that responds to the risk of an emergency. Here in Ireland we need to look at social protection that responds to the needs of the climate just economy for society. We need to step back to take a bigger framework and not let things get in our way. Thank you.


Welcome to my talk. My name is Yuri Vasilevsky. I'm a Gen2 developer that comes sometimes to devian conferences and finds it quite interesting because I can learn tons of stuff. What I've been doing for the past couple of months was LIBUS. It's a distribution generator which saves Gen2 portage and converts it into devian. So we have nice devs which can use all the wonderful devian tools like the i-installer, bootstrap, probably devian live up to whatever we did. So before I start I really would like to send Joe with his bike tour because the last time I was in DevCon, that was actually my first time, I went like, what the hell am I doing here? I love Linux, I know how Gen2 works whatever, but it would be nice to understand how devian works and why it works that way. So we had like a couple of five-hour length talks when I was squeezing Joe's mind absolutely for all the things that happened. Why is that? And why is that? Can you do it better than that? Oh no, there is a glitch with that. So I really was able, thanks to that, to start understanding the why behind how devian works and its ideology. And as well I would like to send Daniel Brown who has helped me a lot during this dev camp with tons and tons of tiny details which why I wasn't able to get from the devian policy manual and I was doing my own. And he was, no, that's not the way devian policy ends all day. Okay, oh you should do it this way, it's much better. So thank you all guys. Well, what is it? Oh, I see. Okay, this I like by itself. If you go to the Gen2 bowel page, you will see a nice summary that will says that Gen2 is a free operating system that can whatever, whatever, whatever, that can be automatically optimized and customized for just about any application need. And it's wonderful, it's whatever, you can do anything you like for servers, devs, docs, embedded, customized application and because of that we call Gen2 a meta distribution. So let's make it happen. Because so far we have all the flexibility to do that but the tools aren't just there. We can build binary packages with Gen2 but there are no tools to maintain them. They have problems because of dependency because they use the same dependency systems as in Gen2 source packages which I will come to that a little bit later are ADI dependent but no ADI dependent for binary packages. You usually need to take care of ADI as well. So let's see the motivation for the work I have done. I love Gen2. It's really close to being ADI. The problem is it serves babies. So I need to compile lab racing. It's really hard to have two identical systems because you will shorten and tweak in a little bit different way. So it's hard to reproduce baths if a bath is there. It's hard for you to see and it takes a lot of time to maintain ADI and Gen2 system. So there is also ADI which I now know a little bit about and scroll you guys and it's also quite nice. It actually has absolutely wonderful tools to manage it but the problem is it's not source based. Then I cannot pick it as I would like to pick it and I cannot have the consistency in my system that I would like to have because there are some packages that some maintainers decide to compile with this class, with this particular option, with all settings, some other maintainers decide to want to pick. Some package with some other option, some other maintainer makes five flavors of a package so I can manually choose which one would be which. So it takes time and it is not even close to the possibilities that there are in Gen2 to customize things. So a little bit about Gen2. It's source based. What does it mean? We compile errors. Yes, we do that. We can optimize that so most people know us as crazy optimization freaks but that was actually only in the origin because Gen2 was using some patches that for GCC 2.93 that weren't upstream yet and that made Gen2 like 20% faster but by the times 2.95 was released their patches were already upstream so that was close but we still retained that fail. And there are really good things about that. We are ABI independent. What does it mean? Some package will upgrade some library. I have a nice slide about that. Oops. Yeah. We hope so. Leibar library with some name Leibar sort 3.1 then we update it. It becomes a library with some name Leibar sort 3.2. The API has retained the same. So every package that worked with Leibar version 3.1 still works with Leibar 3.2 but there is a bit problem. The library name like that disappeared. So what we do? It's easy. One common fix. We just recompile every broken package because of that. It's actually reasonably fast because on a given system you won't have all the thousands and thousands of packages that are available in Gen2, in Debian, in every distribution. You just review the one you need. So you don't have this problem of another 10 binaries depending on that sole name. So if you update Leibar to a new version you would have to review hundreds of packages in the whole Debian archive. But on your systems there are just a couple of packages that you review and that's it. It's Wi-Fi, it's Wi-Elegan. Every package uses a newer version so there's less possibility of bugs, less possibility of security errors. So it's perfect. No. Actually I have some batches reported which I need to polish a little bit and try to integrate that will inform you that this and those package broke so please recompile them. And we'll show you a point that you should type in. So in Gen2 we have the philosophy that nothing should be done automatically. It's all users control. So we do provide really nice tools to manage a system but they are more not so interesting. Yeah. So you still have issues where the APIs are not compatible? Yeah, exactly. And then the other thing is that I thought in many cases in Debian you can update the minor version number but and the lot of code can use either 3.3.1 or <IP_ADDRESS>. So that problem doesn't really happen. Yeah. In many cases you patch sole names and do stuff like that but that requires a lot of manual intervention. So it can be generated. It's part of the package name. Yeah. So the first part makes that. Then it changes to be a lot of them, a lot of nodes. It's not relevant normally too. But you don't go back and you buy a primary installation. Yeah but for some upstream that do it that way you need to have batches to be able to do that. You describe the package name in the Debian control panel. So on one upstream it's actually going to be the data package name. I mean you just expect the assembly at the end of it. And I mean being that a new package when it goes to bit bar 4. But on 2 it goes to 4. <IP_ADDRESS>.3. It's still a lot inside everything else. And that is the old manual. That only happens if the I mean if the surname is actually changed. You have to say go from 3 to 4 that's different. Yeah. But if it was <IP_ADDRESS>.3.4. In that case you have a SIN link to the and it's linked against version <IP_ADDRESS>.1.3.4. If it is linked against specific <IP_ADDRESS>.2.1.3. You know like that you still have to have a transition. Yeah. Because then the surname is actually 1.1 or whatever. Yeah I'm talking about exactly that. Yeah but there is still API dependent. API dependent. Obviously how do we manage that? We do allow for certain packages to have more than one version installed at the same time. We call it slotting. So if the maintainer sees like oh this is important for library. For example, db is one case when there are several packages, several versions installed of it or light cql. So we do slotting but libraries can be installed at the same time. Both versions, the headers are just installed in a little bit different character. So it works reasonably well. And if you have this library version down that will break API and that will break some packages, we have the policy not to stabilize it until all packages dependent on it can work with it. So we do take care of that. Also I really would think about, for me I like it but a lot we have a live package screen. There are no releases. Well there are releases but they're just for installation media. Not for the actual packages you get installed on your system. So it doesn't matter if you install the system four years ago, if you install it yesterday, if you update the system it will be exactly the same in both cases. So yeah, you don't need to have that problematic transition here, stages when you need to update at the same time a lot of packages that are independent of each other. We do it like small piece at a time which means things almost always very smooth. Yeah, we have up-to-date packages, we have a huge package database, absolutely huge and it's strong which is nice. There are tons of package addition requests to Portage 3. So yeah, okay a little bit more about GenCo. This is a strong point for me and probably for like about 99% of GenCo users. GenCo is extremely customizable. You have this central Portage 3 with all the main information for all the packages and then everything else is dynamic. We have profiles which define what the system in GenCo's terminology, essential ingredients terminology packages are on these given instance of a GenCo installation of a GenCo distribution. We do provide in profiles the falls for vehicle packages for use settings with which we will be compiling stuff. Use plugs are usual. Okay, I'll explain this on the next point. And so we can have exactly the same three. Whenever we use any architecture, whenever we use 3DSD kernel with GNU, a user line domain will never be used. GNU, user line, Linux, kernel and UCDPC, it's all managed by the profile. So you just, if you need to make a very intrusive change that will break everything, you just create a new profile like switching from GFC to UCDPC cases like that. And you set up the right thing. You build stages which I will explain a little bit later as well with that profile that you have a minimal GenCo system which you can unpack and start the installation from there. Excellent. Use plugs. There are any questions or any time feel free to drop me and ask whatever it's above. So yeah, for any comments, whatever. Many packages in GenCo provide a lot of use plugs. There are cases that it's absolutely insane. Mplayer provides like 80 use plugs or it can be built to the power of 80 possible ways. PHP provides like 100 and sums him. So it's absolutely insane. You can customize almost a package in almost any way that upstream provides. And we try to explore that flexibility that many upstream packages provide through the use slide. So for example, we have used GNOME. So you have this, if the person has a GNOME use flood set in many compilations script for the configure script, you will have some parameters like at runtime we'll change to GNOME. And we have use with that will change to with GNOME or with LEEDFOO whatever it is. So we try to export as much as of upstream interface to its build system with use plugs. There are some cases that it is not saying not possible. It will break things. So we do hard code some pages for the cases we do provide. Then we have compilier flags, eflags, or eflags, so CSS flags, which the user can say, but it's like, okay, optimization are nice to play with, but they're actually don't give too much of advantage except for cases like it's good to be able to set OAS for embedded store and actually for the most system or compile by all intermediate store with O3, which can be drawn freely with a little hack. And that hack involves emerge rules. So if there is anything that by default, gen2 does not provide you to customize the system as you would like, there are tons of emerge rules. And ebuild, which is a compilation script with a gen2 package, gen2 ebuild, whatever, are basically bash patterns with the instruction that if you would have to compile it manually, you would have to enter exactly the same instruction, just a little bit smarter, actually. But being in bash, we have an instance of bash running, which we can hook to with a bash or C5. Then we can add things like auto-patching facility, for example, after the back stage, bash will enter with the compile on the compile stage of the process of compiling package. And you can go, huh, there is a package with this main. We have these variables in ebuilds automatically set, so we can match. If there is a patch with name pn set to a file we already have with matching version, let's patch it. So there is no need to actually modify gen2's ebuilds from the ones that come from gen2 to have them changed in any way. And you can do the same thing, like for stripping a needed library, stuff like that, documentation, whatever, but there is actually a smarter way to do that, if it doesn't matter. Okay. So, and, yeah, internally, when you install something you use emerge foo that would find foo at some category in USR portage category, let's say, these are the packages. It will find an ebuild screen from here, which we can see. So this is the patch stage. I will talk about that later as well. There is some compile. So that is actually quite easy. You just image is a wrapper of the main command. You pass it some flags and install. So there are some stages. What did you need to make a wrapper? Overmade because sometimes we need the best additional parameters that are not on the old system. For example, when we are cross-compiling or some other funny stuff, like we also have a wrapper against configures, people make that kind of thing. So if portage will detect that this is not just a default situation when we type make and are done with it, it adds the right flags to make and configure streets. Okay. And this internally will call when you do emerge fooies, whoops, build with the actual foo.ebuild. And some form. And this command can be, whoops, any of setup, clean, fetch when we download the source files, digest when we generate the RCS5 songs, MD5 songs of the source port on the build, manifest the same thing on that. This is already starting the interesting part. Compile, test, pre-inst, install, post-install, you merge with the wrapper about merge. Unmerge, pre-remove, post-remove. So we can hook to any of those actions with our basher C file and do stuff in any of those actions. Or having access to the source port and to the installation image and to the system. So it's really easy to customize things. Let's see where we're going. Okay. So, basically, you can do whatever you want with it. I'm not a lifetime, almost. Yeah. Nice extras. We have automated security tracking, group size, gen to linux security advisories that are computer parsable. So when someone from a security team finds a bug in the package or find notices that someone else has found security bug in the package, he uses a group size that will say packages starting from this version are safe packages below this version or that exact versions are affected. And there is a tool to the side check that will check the list of all these security advisories against the packages that you have installed and update them automatically to save and secure versions. We have nice dependencies in each script that use and specify what they use, need, provide and be started in parallel and do other fancy stuff, which I kind of like. We have native support for cross-compilation. We can generate a ton of cross-compilers. Yeah, basically for all these architectures with all these C libraries. Some of them are quite broken, but it's okay. And some of these special targets like for AVR, chips, microcontrollers and stuff like that. And we have cell support for PlayStation as well if you have one. And everything can be built with soft or hard flow. And we have automatic support for the firmware. You just usually pass something like C-host whatever, C-target whatever, emerge full. There is already a cross-compiler for that. It will build and use that cross-compiler and set up the right option. It will merge dependent. You usually won't want to emerge that into your root, so you pass as well something like that. It will install dependencies into your system with your native provider and run dependencies to your root. So it all works quite nice. There are obviously many packages that are broken for cross-compilation, but we have these all the system in daily and terminology essential packages to work with cross-compilation. So we can actually, if we need to port something to a new architecture and there is no, there is GCC already for that. We just cross-compile a set of system packages for that architecture and then we can install it on that architecture and start from there. We have really nice configuration tools like select which can do select like OpenGL, profile, for example, file list. Right now I'm using GM2 profile, this version desktop. I would choose another profile for them, but that's actually a little mean and it's easy to do it manually, but there are some like list of like root groups. Ah, I used them. This one I still give GCC config and it's somewhat wrong. I have no idea what to do. But given history and it should have been like that, it would bring the list of all the GCC of all the tool chains you have. Let's check if we can also do work. Yeah, excellent. I have only one for target and I would have the same if I had a profile that was built on this machine. I would have also the list of all the targets I have and I would be select independently which one I would want to use so I can have as many as I want installed. I know the links will be managed for me automatically for the versions and stuff I want to use. And there are quite some more nice configuration tools like dispatch.com to actually have some computer files today. So it basically scans my ETC directory for config files. Then it checks in all the revisions of what is stored, if the change that appeared were already accepted or rejected by me during installation, if that's the case, it would stick to the option that I have chosen here to reject that setting or to accept it. So it will not ask me for each time like I have enabled X11 on my SSHD form file and each time the default is not. So it will ask me only one time, do you want this to be reverberated to null? I say no and it never asks again. And then you can merge them whatever or accept new and I usually accept new for everything because it doesn't matter. Excellent. And we have applying plain text database for the packages we have installed. So they are easily varsable. I do no binary no linking to whatever tool. It's just like let's see how GCC could be nice. I have two versions of GCC. So we have many of the actually all of the important portage settings in here. These are variables that are used during the new process like I use. It's the use flag that this package support use which are used by the MS system has. This is all I do like. I want them to be and before support whatever be sexy or these. So everybody that can support that option will review with that dependence. What else do we have? We have support for soul name checking. So in merge or the system is using a library that is being updated and the soul name will be removed. It keeps the file to library for a while until the new one is usable and then remits it. So the system will now be broken with type of a view. We have the originally built in case the new one or there is a new one. So we can know which version did we use to merge. Get nice things like the script and all that. The list of files that were installed by this package. Let's see which one is interesting. And it exports all the variables like yeah, which are provided automatically during build process for the system. So we basically can construct the build environment. And in case that variables are not enough, we have a nice dump of the environment with all the crap that were actually asset for us and all its help functions on the end like these ones. And stuff like that. So and this is I kind of like because it's easy to build tools on top of it because it's exports in a nice way. Any questions about that part? Okay, so now what do I have to do with all my labels to make it work? Let's see how Gen2 is installed. First you have to set up your build from a CD but there is an installer which is boring. I won't talk about it. First we build from a CD and then do anything manually. That's a fun part. We configure the network in case we need to get some files which I always do and I do always make it so they're faster, nicer. Set up the disk, extract the base file. I have them all just yesterday. Okay and we can install Gen2 from several stages which are kind of useful for if you want to add a new architecture but sub architecture. So to the three you usually start with the stage files that work for your architecture and it's not optimal that it would strap with your settings and your profiles from that. I will explain a little bit in here. Yeah, okay. Yeah, so we have the possibility of four types of installation. Stage one which is like it's basically a system that works on your target. That's only requirement and it has the necessary tools to build a new tool chain. So it basically starts building. I can show you what it builds. And then it would build linux headers of the things needed for genutils, gcc, jlpc. It builds base layout which is like base files for Debian and zli which is also needed for most packages. So that's the bootstrap process and that's the difference between stage one and stage two where in stage one you have already bootstrap for your system and after you have bootstrap you are not allowed to change your seafoes or obvius ripson. During the bootstrap process you are allowed to change your seafoes. Yeah and then you just have to compile your system or essential packages and do the rest of the stuff. You have the option of doing a stage three install which already has a compile of your essential packages.  Or you can do grp which is gen2 reference platform install which are basically the compile packages for most of the things that you would probably use like apps, norm, apps, songs, cron, demons, whatever. Does it say that you don't need to do palatian? Yeah but the problem with the gen2 is not really designed to manage binary parameters it is very easy to break them on update because it doesn't keep strap of ADI dependencies. So that's the problem and the format is really crap. It's basically a table of your image after the table you put a couple of zero blocks so the table will stop and after that you put another table with the metadata that is in that bar db directory and do some magic to strap that part so it's really not nice at all. And actually what you do to install it is using this environment bz. You can recreate the exact state of portage in between the install and merge stage. So you will cover the install image that is installed in the separate directory then recreate the old environment with which portage was started and then do the merge of that with the usual portage as it were compiled from source. So it's really happy. Excellent. So which one would you like to see or should I just do like this is what would happen to put strap and then go to this is already put strap system let's do max. Yeah. Stage 2? Yeah or something. So you can get to the actually what you have worked on in page 3. How much of this do you need to know by the way in order to use Gen2? You need to know how to use high speed so and you need to know that there is a Gen2.org. There is also documentation in there. So basically the handbook is very good. It does the explanation of what you are doing and why you are doing it and gives you some suggestions on what should be your default way to use your first install. Well Gen2 is known for having good documentation and good documentation writers but how much do you have to end up knowing after you? You end up knowing a lot. That's another good thing about Gen2. I first my experience I started on back in the keep talking. In my experience with Gen2 I started with Red Hub because in Mexico we love Red Hub because of Miguel de Casa but that's another story. So and it was like no I have troubles. I want to do things. I want to understand what's happening to my computer and not just like doing three clicks and praying that it would work or else there's no idea what has happened. So I tried to use Red Hub. I tried to use SUSE and I was no that's not for me. Then I found fault in low-bit 3DSD where you can customize stuff. There was good documentation as well and you can do things you know what you are doing what's happening to your system. But the problem is that 3DSD had very bad and still has support for hardware, cheap, crappy hardware, broken maybe in some cases. So I wasn't able to get some things working under it so I was like switching to 3DSD doing some stuff and switching back to Windows doing some stuff and so on. And then someone gave me the tip of gentle and it was like really wonderful because the first time I installed it I was completely lost. What should I do? There are so many configuration options that it's absolutely impossible to get it right on the first time. But then the good thing is that because you do it every so manually you know exactly what are you doing to your system. So when you see something is broken you're aha I did something related to that at that stage. You go back to the handbook which is the install manual and see aha it was related to this file so let's see what has happened. And it's really easy because of that to learn how things work in terminal. Do you know how old almost works? No, I don't want to know. So something you want to know is something you don't know? Yeah, it's more like you know about how your systems work together, not specific packages. Excellent, so this is basically a stage to install. It's quite similar to the manual installed in the appendix of Debian installation that you do as a debugstrap or cdbootstrap which generates your change route which we are doing by unpacking the stage 3.5 and then continuing most things manually. Do you guys compile for size? Oh, I'm looking. You do okay?  Debbie does it compile for size? Does it? Sometimes. Sometimes you go. You need some packages to search in the app. Debbie and we have a problem. It configures every translation. Yeah.  These are the settings I have on this laptop. I will show them to you. You have basic information but you have installed and you have your seahorse whatever flags and you have linwas which you set or do a set of local that many packages support. So for example, because actually that means for the since the configuration stage you actually don't actually do that anymore. So you select from the compilation time you select everything up so you don't not even message formats anything else. So this are the linwas it supports all I have only English one enabled but the other one don't get installed. Nor the errors all we waste time in compile time. If the build screen of upstream supports that then it's not so broken. Else we just don't install them and build them with the broken. That was that upstream version has. I'm sorry. Okay, excellent. So once you get unpacked that and unpacked which I will do in a different way you can actually change route to that. Yeah basically you have already installed the system and you do all the updates and stuff like that and you do need to configure portage which is like the important part for me where you set up a profile which is basically oops yeah which is basically a link to a profile under the portage directory and you set up main potions see flags whatever you want and local overrides that are not lower but just for some packages. That's the important thing that has to be done manually for every gen2 system unless you want the default you have to provide same default at the point of customizing that. That's where the manual work is after that you install the kernel, you install some you configure FSTAP hosts whatever, you install pronounces load, loop loader, underboot the system and you have a working gen2 system like my last pickup almost has.  Excellent. So then how do we maintain gen2? We update portage of 3. We do merge team, we fetch a new version of the portage 3. We update the system with like we could update just the files the packages of we or selected as the one we use which end up in the world file or we can do a deep update which will update all the dependencies of that packages as well. We can check if the new and if the use flags were changed or something like that and then they then defeats for ADI packages sometimes or we just leave it like that and if you find some we just review that package at that time there's a tool for that. We will merge configuration changes and repeat that and now still. If you did that every day on a little laptop like that how much of your daily usage of the system would you take? I am using unstable so packages change quite often so on average it's like up an hour a day, maybe an hour a day, not really much. If you use stable 3 it's much less than 1. So it's actually not too much but still it's not nice to do that especially in laptops when you don't have them all the time. So how do you define this? You said that gen2 has a live tree so it doesn't do releases. What's the difference between stable and unstable then? We have different projects. On every build we have to specify this variable one of those are keyboards if they have a pile of prefix then it's unstable on that architecture. If it doesn't have that prefix it's stable on that architecture. If it has a question mark before that it knows to be broken on that architecture and do not even try to do that to install it on that architecture. So that's how we do it. But you have a stable mark that's stable AMD64 and X86 so why do you run unstable if you're stable? I run unstable for the packages that there is a newer unstable version. If the most recent version is a stable one I obviously run the stable one. The idea is that you don't always have all the trees as far as I understand no trees you have packages which are you don't have always a package in unstable. But you have some package which could have something in stable and might have been unstable or things like that. It's closer to our concept of experimental. Yes something like that. So my point is that if this is so easy that I was able to write a basic program for it then why do I have to do it manually every time? Maybe I should better put some real demons that would do that for me and generate many packages like Debian packages that I could use all the tools that are on Debian to manage that. So nice. So basically what do I need to know? What is Gen2 from Leibniz perspective? It's just a set of configuration files. Which profile do you use for that system? Which C flags, use flags, linguas, whatever I use for that system and a set of packages that I would like to have on that system that should be compiled with these settings. Aside from that everything should be automated. So that's what's Gen2 for me at this stage. World file is the file of the packages that you explicitly install. There are as well packages installed that are called as dependencies but considered less important than the world file and are automatically managed and if you stop needing that dependency for some packages you can just remove it with them. So if someone wants to have fun keep and try to CD bootstrap the packages that I have built with my bootstrapper on this laptop from the HTTP server that was running on this laptop it will fail because there is a tiny bug in CD bootstrap that tries to install always important not essential packages and in my case that set is empty. So it just calls dp-i without anything else and that's an error for the package. So but you can get a working change route of Gen2 that way completely from devian packages. You could get all that just by putting one of the packages that you need to see the boot. Yeah I just heat that but there are some small things so I just decided to just leave it at this stage for now and then fix it the right way actually. So excellent at this point you ask me whatever you want we have some more questions about this and then I will see to the next part which is like the problems I need to work around and what I would appreciate some ideas. So you actually created a Gen2 CH route by packaging in a devian style the Gen2 tools and stuff like that or the other way around. Exactly, exactly. I use my script uses emerge that goes up to the install stage. In theory that part is actually not done. I bootstrap it in a slightly different way because I need to start from something. So the idea is that I will have all my tool calling ebuild the ebuild file install that would generate an image directory with what should go to the root file system and another directory with all the metadata that is in var or package dv packages that we did thing. So then I can use that information to abstract for one or from the image the data are gz from the other thing I have enough information to abstract the dependencies the package names whatever so I can create a control file rule file to make it I use the character on my root file. So you actually create only finally packages without actually having the source package. I have a source for my gz. Yes, I wanted to generate a live cd and I wanted it to run on 286 computer whatever you know above that very small memory and I just wanted it to run one program with the gem to help it generates a system like that. Yes, yes actually the smallest router booting can work in router fast it's about 600 kilobytes in size if you use cdc at buzzybox. You can for such things you would need to create the cross compiler and then you can just install base layout light which is made for embedded stuff it's on the release on buzzybox and has system 5 init system with the script or whatever and you link that against use ellipsey and emerge also cross compile with that compiler buzzybox to your root cross compile base layout light and you can make an image from that and turn away so 286 maybe someone still needs this information for kevin fun and kevin jen from excellent so what did you do at that cover oh i got jen to install so uh always nice to see some ways that another possibility is to do it first and originally trivial one because we have categories in jento we might have duplicate package names pace a pace b because we are allowed to install or to have a more than one version of the package install and the same time and we do use that we also end up with duplicate the package names so for the case b it's trivial you just happen do i pet that of course of course in order to solve the problem yeah i think you could do something and use a sowname in a way that it used in debian so we actually generate uh a package which has a different name yeah exactly the sowname yeah for the case major what i do is uh my jento package my debian package name will be package name from jento with the appended soul name unless it's the default soul name so that's kind of trivial for this i could probably do some mapping because all the cases are like reasonably trivial like there is so do and there is a vi plug in v in plug in for so do so i just remain like to win so do and stuff like that it's uh reasonably trivial yeah slot my pings that i mentioned and this is a problem with dependency as well especially in the bootstrap stage because i do not know what would be the package name of the package that i have still not made so you need to take care of dependencies actually and there is another problem because in some cases a package might work trivially with uh several slots and if i depend on just one slot then i will not be my dependency will not be as flexible as it should be so this is not a very mapping but actually i don't think it is a problem i hope it is not a problem because uh here i'm not going to reveal to a package all jento into that i'm just going to repackage the stuff that i used so uh from this point of view i already know uh for which packages i have that build and i just depend on that in if that changes during an update i would just have to rebuild that and because it's all local there are no modern links whatever i have a build system i will have a build system on my local net i will generate that and it should not be problematic to do one more update of the package so that should work as far as i understand this is the next one is a very big problem that i would have to do some really hard things i will work with that very times to have it to start with that uh unsupported architecture this is where i need help because um from you guys because in jento we have tons of architectures and we have many flavors of that architecture we can have arm l arm di soft hard floor save for mix same weed or without uc lip see or g lip see so what would you think would be a good way to map my huge set of architecture to devian architecture and how problematic is it if i just like don't use uh mix or a plus of soft and hard floor and use arm for everything that is arm and just like know that i'm using the right repository um i'd suggest doing something that we thought about the didn't and using it dependency having every package that's safe for arm soft float depend on arm that soft float something provides that uh in the core and that way you don't mix things because um i mean you basically have lip see depend lip see provide that or something and that way you don't install two lip see is they have the same name won't make it done with this i don't know i guess you'd have two lip see packages that actually have different names but that's something make it really hard for the user because they will see that information in the package manager uh well we'll see that they'll see that it depends on arm soft float or whatever and uh it's provided by something yeah um so do it like we'd provide yeah do it with provides and depends but we don't have to all have different names for a soft floor and hard floor why would why would you well yeah you do but i was i was assuming you got that anyway yeah so you just have like one package which is always the same public gen two yeah and then have it provide arm soft float or whatever are you thinking of and actually that would also that would also prevent these these devs from blowing up deviant systems yeah you were fine it's not quite related to this but i was wondering uh did you have in mind creating deviant well their packages with uh which are mixed architectures on the same system so you would do you have in mind thinking that some you would install let's say uh some binary package with soft arm enabled and some other without it but on the same system okay i plan to support whatever gen two supports and so far well how we do this we have this program with uh ind 64 and x86 so we do really buggy stop it we should not do but we haven't figured out the right way to do it just yeah so we have uh and yes yeah we have emu linux uh x86 basically which are awarded for ind 64 but they are x86 binars so this package will still be a md 64 and not x86 without name kind of what happens currently on the main list with a i i start doing this and all kind of yeah because you don't have any other means of doing it because you actually do one the 30 bit lips to be and binary system no but i was more asking about uh let's say let's say exactly the hard case with very thinking of mixing soft float and hard float binaries in on the same system because in in because in that case you wouldn't be able to do that that trick it provides well you might be able to you could have the package provide both somehow but yes yes because that's that's what you want to prevent yeah in case you have two packages which depend on the right version so yeah different package name in that case i guess you need to have a different dynamic linker for both that's often hard as well yes so yes so actually you were planning to do that uh i hope to do that and i really hope the gene to solve the problem of how to do that anytime soon but i don't think it will be anytime soon so i personally do not have a solution for that and my main goal is to like provide a weak package gene to us at peace and then we can start thinking on how to extend yeah excellent so i'm working with the disaster victims you know give away hardwares and like that the way to generate the system so that anything that would be uploaded when those first ones want anything certainly not many things probably yes it's you know it's not like gender is not some magic thing just like expose the functionality that other packages provide so as long as linux kernel provides it it will run with gentle if linux kernel provide doesn't provide it will not run with gentle unless you package the linux kernel and then it would be really nice if you provide it upstream for the linux stream so it's not like um like yeah we do everything we do everything we try to do as much as upstreams gives the possibility to do and we try to expose that possibility to the user but not a bit more than that so actually what you could have maybe optimized binaries and optimize packages for the hardware that you have so you might have some performance benefit and you could run on maybe older hardware but it's it's really depends a lot on whether upstream support yes but what i was thinking was some old versions of linux run under those you know seems to me like versions of linux that were made in the same time frame as the one is 3.1 you just took yeah you can create absolutely without any problem a profile which is based on all versions of linux kernel all the version of glpc which you will need with that old version of kernel and without this store being the rest of the gentle street so it is perfectly possible without I think there is some actually like you find the old sources because we find the mainstream packages you get the old packages you're not going to find but actually for most cases you're only yeah glpc will break some stuff if you're just very old glpc and you're you need to be able to have access to the sources of the world around that time yeah that that won't be a problem if you get some image of some distribution from that period then you would be set yeah but then you can just use that distribution but if you want to optimize it yes no for the bootstrapping phase yeah so in order you will not need you will not have problems glpc no you mean that always because newer version of kernel may not work on that hardware anymore and then newer version of glpc would not work on that hardware anymore yeah so you will have to stick with that version forever yes but in order to bootstrapping we would actually need an older ggpc of all the binary ggpc and another binary gc so yes you do the bootstrapping with old sources and stick with the old sources actually not in binary you can just cross-mobile it for i is three eight six without i'm not sure if you already know what our ggpc is still working on that there are there are things which which happened and you they kind of built up on each other and now you cannot quite go back just to get the same things currently best for it okay does the windows on this kernel support the 286 no never no only 36 i think windows 3.1 works on a 286 yeah but it goes around some so i'm just saying that there are scenarios where you can run windows 21 we'll never be able to run them yeah you might want to toss those 26 computers no no 36 computers will work because they have virtualization so yeah yeah i'm talking about 26 okay let's go back to this thing there are some packages that do some postings free of which you perfectly are aware about like probably the most common case would be like creating users and doing some 3d or stuff like that but what i was thinking would be probably the best way to do it is to build the package on top of union fs then before i merge the package into the real group from that image that where i have installed it first i start a new branch on union fs and then just check the leaves like okay pass file was modified let's see what was done there so i probably think that to be possible to over the majority of scenarios that way that would be like pass files some permissions some funny directories stuff like that and the rest would probably have to do them by manually having spritz for that kind of packages and so just copying that to the end of posting it script and stuff like that any idea is it possible to do it better without that blackmail the problem with just parsing the builds is that they might be way more specific than what will end up in devian because in devian's binary base distribution so i don't need many things so i can be more relaxed on dependencies as well as i'm making an option to install all the gen2 ish theme so for example for each package right now i'm creating two packages the real package and package dash vdb that behaves the gen2 database so if i install both of them i could from any point start using a merge on that system if i install just of the real package but contains the real program that i will not be able to use gen2 system this is one problem second problem is in gen2 builds files have inheritance and have multiple inheritance and the e-class script that they inherit change from time to time these whatever so it would be really hard in an automated way to just to just extract the right bits from that ebuild file and all the e-classes they inherit so that's why i'm not considerant to trying to extract it from the build itself what what do you think if you actually make a special package with in in the base system and which would provide actually the portage classes which you have to define so actually would be able to to use in post-hist to use actually ebuild portage that's actually trivial but i would like to do more without it so i can have a real delian system without gen2 store i can use it with embedded systems where i don't do cross compiler whatever so i would prefer to have a more flexible way than have it like a huge gen2 system with all the tools that you would need to build everything and there is if i build up it there's still the second problem of not being able to parse automatically well i don't have the knowledge to parse automatically all this multiple inheritance that can be recursive not recursive but they can be diamond shape imperidences yeah what were you like to say i don't know i was i'm just thinking about things like i'll be preloaded tracing of stuff or various fun stuff like that i don't know thing or um set that shacks type stuff but it doesn't seem to really get you over there so no it would know the idea is not going touches with the difference but to abstract semantic knowledge from the difference so if i see past file was modified i know that the user was pregnant and i know how to use that fact that changes that's what that's the idea not the music yet so no better ideas if my email is again does the gen2 have binary packages i know they do so how do they do it there uh they what i was talking about they would just extract that metadata create the environment for the bash environment and then just keep going i'll say would would be just a normal nice soul okay and that actually breaks if your e-classes has changes had changes in an incompatible way so that's what you could theoretically do that with the wm package oh what we could theoretically have the uh i'll get that part of the ecosystem in there and call it but that would still break if e-classes are broken and then i would need the complete portage tree on each system which is not fun okay if you haven't suggested my name is why was he left agent to go to okay there is another problem kernel images and models the way we do it now it's we provide sources for a huge amount of different uh kernel flavors like special meep sources whatever we provide vanilla sources suspend two sources jit sources gen2 sources which are sources with gen2 packages there were some time record sources mm sources so loft sources and then usually you would want to do a manual installation of the sources of the module configure the kernel by hand so but that's not good for a completely automated system what does it mean because each sort of flavor has different patch sets so there is also jim kernel that will generate a kernel that will boot on most system it will be a huge kernel will be applied some modules as well but it's still not nearly as slim down as they in kernel is that creates a nice meek run a test and we get the models needed to access the hard drive and then lets you have to do the rest of the magic and i personally like that way of doing things and i would like to write some automated live info my system tool that would take this gen2 sources or whatever and build one and build all that images or if it is possible but i right now i don't know how to do it i think it might be possible but i need to read some more so it would be nice for me if i could add to like see kernel like gen2 image and or gen2 compile gen2 binary whatever so i would it would have gen2 sources as a dependency and it would include that build script and do everything for me from a gen within a gen package so then i would just package a package that package as a kernel package that was wait a minute package and be done with it so i would like to get that as well and i'm not exactly aware right now what should be the way the best way for me to do it so what are you trying to achieve is to try to play from all the flavors of kernels that you have a usable devian kernel image yeah but why don't you use make a pkg uh because uh do you like why don't they use devian like yes kernel uh you know like not the big kernel if there is a tool yeah make a pkg which actually allows from any kernel source tree to create image file source kernel source file and there's file and documentation so actually have those dev packages and you're done with it okay question for you guys how friendly is this for embedded for customizations of kernel and stuff like that for the dev team which models should reveal and uh let's go right down kpkg kpkg right now mate so how friendly is this for embedded stuff how flexible it is it takes a convict it takes a dot convict file so it's not a kernel module so it's just like a jim kernel basically yeah okay so yeah i could repeat this up it's the same with jim kernel but i would like to explore like a little more uh i would like like not to have all to create manually kernel for every possible convict flavor but like to have if this is a desktop this set of options should be in there if it is so that way i would like to have packages as a gentle package so it would have like a set of use flag like with minimal flag it will be like only what you need for that architecture to look and we use it on an embedded store maybe you could use a regular kernel well maybe an image package and you could actually do something like leave it modular but create strip out of that modules so you can create a dm package for let's say each one or some different sets of which would depend on your only with on your image which has support for just the file system and disk access and the unit or unit or something like that so you actually if you want to have the minimum amount of modules you would you would have a compromise between actually just having the image with the actual support in it and having a maximum configured kernel with all the modules available right now so you actually just install supplemental dm packages when you want another module actually extending a bit your reasoning maybe what you could do is to prune the kernel tree just to build the bare basic kernel and take the modules out so they can be built as packages handled with module assistant there's no there's no way to do that automatically and to keep the updated for new kernel versions probably well that's which is not the point is that they're like they write these builds per manually what is it like i would like to avoid but for for module assistant you actually do the build on the target machine so you would actually probably you want to do something in post case or something like that so in postings you trigger the the compilation if you're okay with that by doing so you actually provide this as kind of set just the source package and module assistant you would compile it on the target when you want it so you do not need to create hundreds of thousands of packages actually i this is a good point in devian you do need to make it on the target machine because devian is huge it provides quite some kernel versions so it will take ages to build all the possible combination here i'm like almost maintaining one system i'm doing a tiny distribution a very customizer but a tiny one so i would need to buy a very few flavors so it would be nice to have it on the build server sorry yes but notice what was actually like that to like create packages for specific models and then depend on those for systems but another option would be like along with this configuration another point dot on so that would be like another possibility it's like the easy way i don't see the problem with actually using module assistant to do that what you're trying to achieve having already 3,000 kernel and compiling all the you since you're using since you're actually using a gentle system on the target then you probably might probably use thought that would have gcc installed that everything not absolutely not necessary because what i or we have engend to we have depend which are good build dependency are depend runtime dependency p-depend which are dependency of the package that need this package to be built for and we have virtual provides and this is the way how we do our conflicts but that's another topic so actually my debian packages only have run dependencies and post install dependencies they absolutely do not depend on any build stuff because they're binary already there is no need for that i at this stage and if someone has done that cd bootstrapping thing they will end up with gcc and all the build make or several flavors of out the point out the main because they are system the same as essential packages for the pro one profile that was used to create the stage file i'm repackaging what if you add something like cd band and you have something like configure time dependencies so you have the gcc and afterwards you can just trip it out i don't it's it's package but it could get there but the package doesn't support that but yeah average on this so there's uh what do they mean uh this uh depends on the packages that need to be installed on the system for this package to be built okay so that's debian built depends yeah exactly this is uh the sum of these two are uh debian depends these are packages that this package needs to run and these are like uh this is a hackish way of to work around stuff like you have one package that uses parts of itself for building so sometimes you can split it into packages where they're really one package and make the part that is needed for building the other part are depend on the second part so first the part that is needed to build the package will be installed and then the second part can be built with that okay so this is what's around sorry bread depends and depends no no no it's not well it's not for it i think it's kind of like the depth packages we have in the building so you the you need to have there are some things like that in order to mount the holes yeah there's no mapping so the package should be fully configured before this package start to well the problem is that this situation only arrives when you are dealing with source so there is no exactly the same situation for debian because it's up to you there's a similar situation in end end we need to identify the dependencies that are needed by the cross component during the build yes as a cross package yeah and actually this would not work and we do not exactly do it this way because if you do it this way you will have similar dependencies in the tool chain so there are another halves for us to build cross compilers we just do it in the right order basically hand-coded with the right use flags that um actually i can show you your interest there so you don't actually have these sort of dependencies listed anywhere on the interfaces no ah yeah i mean the chain it will take some time yeah it will be like the way it is doing it whatever and then it is just doing it in the first stage that you need to do it with the right or use flags that's probably very much so there is that problem as well and i need to analyze the possibility of including the configuration file of our packaging in a or very different not gen to each way of the packages as a package for model or something like that if i need to feel fine during dependencies since you are using some different things or do you want to stick with the dead end kind of how do you like to be as close to dead end as possible because um there are way too many things uh that or tools that are used in dead end that can be used with all dead end kind of systems that do take the foreground so the less tools i break the better for me if you have a really small set of packages where you need some kind of where pd bands or stuff like that maybe you could actually add in the control file some x xs something pd bands or something like that yes but no one will be able to parse it uh well did you ignore it sorry nobody except you use it so yeah exactly and everybody also ignored it so it's not that problematic actually yeah i'm actually really into the control files how many gentle things with that x whatever so i uh users my users i will be able to see how this package was compiled without going to work like the useful that have been used uh like the home page of the package that they still have no clue why maybe they don't have that flag and control files so they're really really yeah so i will be adding stuff some stuff like that or me to parse yes that's kind of about it there is also a possibility to restart um services automatically if i want to do it really really baby initially but then i would have uh to stop uh the installation at some point what the user for the merge config stage so i need to take into account that if i uh would prefer it like absolutely baby initially automatically or uh have completely unattended uh updates maybe a little bit me uh have you thought of contributing something to that yes yeah there are some things in the package that would be lovely they would be uh expanded and just for the beauty but reports yeah and and it has a better my packages so actually what i'm asking is uh maybe you should try to hello if you is there any use case where they've been to benefit from what you have done uh yes i have been talking to some of the guys present here in the wacky ideas so we'd make independence is a lot more flexible that i could really use there and it would provide respect it would be lovely yes like the initial dependency to do that also for example in debian it is a little bit stupid to say at last like in general we can have nested or dependency stuff like that in debian you'll need to put the crazy string with all the possible permutation and it becomes completely human and possible so it would be nice to have this kind of uh dependencies as well so there are some things that could improve debian and i hope they will at some point any questions more and thank you for being here thank you for your nutrition and i expect more now more later more whenever you can reach me thank you very much