 Welcome to the first talk today, is building your own distribution up front on top of Canaima's seat with Luis Alejandro Martín. Canaima developer. Well, hi all. Although this presentation is in Spanish if you want to make some questions in English or in the channel you can do it and I'll answer them in the end in English. Basically, we had a problem at the beginning of the distribution with respect to the generation of our installable images. Although there were tools that allowed us to do that in a successful way it wasn't very difficult because that procedure was distributed under our precepts of socialization of knowledge and appropriation of knowledge. So, basically we started using Live Helper at that time, today called LiveBuild and after we were able to generate our first images with the tool we decided to simplify the process for the people who are starting to make derivative distributions. In Venezuela there is a particular case and it is that Canaima is used in the National Public Administration and there are realities in each of the institutions and these realities are different. That is, an institution can need a certain group of software and another institution can need another different group. So, one of the ways to facilitate this work is to make personalized images and well, we decided to create Canaima Semilla so that that process would be easier for the people. If the time reaches us, today we are going to talk about what a flavor is why it is useful to make a flavor or we call it flavor or flavor which is the same as a derivative distribution. Some examples of flavors, what is the structure of a flavor, what packages or where do I get the packages that go inside that flavor. We are going to do a brief review about Canaima Desarrollador which is another tool that we made to facilitate packaging but well, that is already part of another talk. Then, how does that flavor be distributed, how can we offer it to the public and finally, we will describe what the tool itself is, which is Canaima Semilla. Okay, what is a flavor? Or derivative distribution, derivative distribution, as you want to call it. It is a distribution that is made from another flavor, another distribution that allows us to make that derivation. As we know, Debian is a universal operating system and it can be perfectly distributed based on Debian as Ubuntu, Canaima. Well, share a number pre-established from packages or packages or software with all its derivative distributions, which is what is called the base, the base of the operating system and it usually identifies philosophically with its father distribution. That is, it goes in the same direction, it promotes the distribution of free knowledge, that kind of thing. We cannot do something with a father distribution that goes in a different direction. Well, regarding Canaima, they have made a lot of flavors depending on the needs from Canaima Semilla. We have there general flavors, specific flavors for institutions such as CNTI and CanTV in Venezuela. Canaima Colibri, which is for low resources environments, that is, low resources computers. Canaima Forense, which is for forensic expertise. Canaima Comunal is a specific flavor for a type of organization in Venezuela that is called the Comunal Council, Canaima Universitario for students and so on. Why do we want to make a flavor? Why not use the father distribution once? As I told you, there are a number of things that it is possible that the father distribution does not do as we wish and it is good. But, for example, by making a derivative distribution, we can have greater control over what happens at a certain time in the life cycle of the distribution. If we don't want to do, for example, releases every two years, if we don't want to do it every year or every six months, as Ubuntu and Canaima also do, in summary, we can have greater control. About what happens. We can make some improvements and introduce some changes that due to certain maintainers, they have an X-position with respect to something, we can do it in our distribution. And, of course, all this is accompanied by the position of free knowledge and sharing knowledge. We must, as much as possible, make those improvements or those changes that we are doing to better contribute to the global community, to the father distribution. We can specialize the sector of people or users that is led by that. For example, we can make a flavor for the people who are graphic designers and with a set of tools or software, forward, that are led by that sector and, for example, those people would not need to install that software that they usually use. And as graphic designers, there are many areas in which we can make a personalized image towards that set of users. And, well, I already said this, but we can have greater control over time, the cadence, with which we make the updates or, yes, we make new versions of our flavor. Okay. We are going to put an example of a flavor that is the popular canaima, which, as its name says, is the common use, it is the most popular in Venezuela. Well, educational canaima, also for the number of laptops in which it is installed, but usually this is the flavor that people download from the page. The popular canaima is very stable, it uses the Jinnom writer and it has a series of specialized programs that we have incorporated. For example, we have the KunaWaro browser and the Wacharo mail client, which are not just forks, but also remasterings of Ice Whistle and Ice Love. And KunaWaro and Wacharo are two national Aves of Venezuela. We have changed the Ranking Group manager by Burk, which is a little more visual. And to talk about numbers, we have that flavor, it has 1,213 packages of Debian, those that come in the ISO, and 263 that are from Canaima, so that we can see a little the relationship of the software. Well, it is good that we know this kind of thing before making the flavor, because it will determine the final product, or what we are going to do, to make an idea of what we want, what sector of people we want to focus on that flavor, and so we will be able to write more or less what things you want, what things you don't want, what kind of software you want, what packages you want and what you don't want. Well, here we have a graphic diagram of how Canaima Popular is made. It is a good exercise to make this type of diagram before making the flavor, because it gives us an idea of what things there are inside the flavor and how we can organize it. Look, green squares are the packages of Canaima, and red squares are the packages of Debian, intact, that is, we do not make any modification. There are certain organizational blocks, for example, we have the multimedia part, the web part, the visual part. In Canaima we have a chat that is always in the desk where people can ask for help, people are always there connected. It is a free note chat, the ophthalmatic part, and what is down here is the system base. What is up here is the desk. That part down there is the one that shares all the flavors of Canaima, and it is, let's say, our minimum base. It is, more or less, the same Debian base, more packages that identify a distribution, which are LSB base and base files, and Canaima keys, which are the repository keys. With that, we make our base. And, well, what we put on top of that depends on who develops the flavor and how he wants to structure it. Question? Can you go back to the previous transparency? For example, base files and LSB base, if you change them, maybe there are packages that depend on the information of these files, for example, the compiler. According to what information is there, it is compiled in one way or another. You have found many packages within all the distribution that needs to be changed because of these changes, and the other thing was that the simple scan... Excuse me? The simple scan a little higher than the scan? Simple, simple, simple. What was it? Good. LSB base and base files provide the names of the distribution. If you make the LSB release command, they will have the name of the distribution, but it should be enough the branded, so to speak, so that it takes the value that we put on it. If it is squeezy, if it is Roraima, which is the name of our code, it takes that word and uses it later. If we have to change the behavior of some of the tools that we use, but normally, if you want to compile something for Roraima, for example, which is based on squeezy, you simply compile it for squeezy and it works for Roraima. For example, there are other tools that do not matter to you the fact that you say Roraima instead of squeezy or canaima instead of Deven. Simply, that value is taken and put where it should be. An example of that is Python APT. Python APT has the bindings from APT to Python and we have to place it in any way we have to do it. We have to place our repositories in Python APT and it is one of the packages that we have shared with Debian but we have patches of difference. It is a normal procedure in the derived distributions. And simple scan is a scanner, like Xsane, but a little bit more. In fact, we have to use Ubuntu, I think. After we have this mental diagram and perhaps written about where we get, sorry, what software we are going to put in, now how do I get them? Well, many of these packages are available in Debian and unless we need specialized software that is developed locally or is in another distribution, we will probably find them in Debian. But in case it is not in Debian, we will have to package them and upload them to a public repository. It may be in Debian, but if we do not want to wait for the mentoring process or sponsoring, we can upload them in one place at a time. We have to keep in mind that the final objective is always that they are in Debian, because the less the difference is there. Okay. You have packages that have been adapted for Canaima. You also have a repository, I suppose, for those packages. How much space do you need to have that or do you do it separately? And how much space do you use in total to store all the projects? Okay, well, let's say that the description of the platform is a little out of the question, but I'm going to say it short. Well, we have a repository, of course, in a platform that occupies in total the Canaima repository only the Canaima packages, not more Debian packages. About five gigabytes. That volume, depending on the distribution, depends on the differences between Debian and the distribution. We have five gigabytes because we do a rebranding of LibreOffice, which occupies a lot of space. And we do a rebranding of IceWizel and IceDrop, which also occupies a lot of space. What you need to do can be little space with only what you need to modify. Now, we have a local Debian mirror, also for the I386 and I64 which are 160 gigabytes. I don't remember very well, but with 200 gigabytes you can have, let's say, locally what you need to make the distribution derived. Considerable. For the scale. Good. Answer all your questions. Good. Where do we get the packages? Do we get them in Debian or locally? If we need to make meta packages, which are another type of packages, to organize a little thematically, as we saw in the diagram, we can also do it. Good. Quickly. I'm not going to explain it here, but it's a reference for you to look for it on the Internet. There's a lot of documentation. It's a package assistant. It's quite... I mean, the reason for this is the same as the one from Canaima Semilla. It's because the people who are just starting may find the package process a little difficult. And it's quite intuitive. Basically, if... I mean, with very little effort, you can package a software. But, well, that's part of another very long talk. This is the documentation. Of course, this is in Canaima. At the end of the presentation, I'm going to tell you how to install this software in Debian or in any other distribution. Well, when we have our packages ready, located, we're going to get these from Debian, we're going to get these from Ubuntu, we're going to package these. We're going to use the architecture of I386 and also the M64. I've compiled my packages for both architectures. So, we must upload them to a public repository. In Canaima, we have several services that are there. The address is a little long, but, well, it's a public repository where anyone can upload packages on an experimental branch. The developers upload tests and stable development. But, there, their packages can be made public. They should only be subscribed to the list of developers. In the end, I'm going to write it, I'm going to write it, I'm going to write it, and that's the request of their lives. Well, it's advisable that they try installing those packages to see if there's any error, a dependency error, if there's any package missing. You say that anyone can upload, do you audit the code or do you trust the one who is subscribed to the list? If a small review is done, but taking into account that the experimental branch is not going to any official taste, only reviews are made that there's no malicious code, things that are not due. But, as that is not going to be available in official things, it's fine. One of the projects that are being handled now is the confirmation of a QA team for all of these analysis. At the end, in the email address that Luis will give you, developers can participate even in the confirmation of that QA team if they wish. Well, after you have these packages, you can try installing them in the father distribution in which you are passing, probably good. If everything goes well, you can ask your friends to help you try the packages with the same characteristics that all of them. And the more people who install them, the better they will cover your back. Well, now finally, how do we do the ISO? How do we do the image? Canaima Semilla is, as I said at the beginning, an image construction assistant. It was based on LiveBuild. There is the LiveBuild maintainer, Daniel Baumann. It allows you to make official flavors, as official, I mean, as it is published, the way the flavor is made, that is, the recipe or what we call the profile, and we publish it in a place where everyone can see it. So people can know that with that profile the flavor was made. That's why we call it official. It's easy to configure, it's easy to use. And maybe there are mistakes at the beginning. Not always, the first time it goes well, because we always have a post-install that breaks something or some dependency that is not there. That kind of thing usually happens the first time, and maybe even the second time. If we are also careful, if we are also careful, maybe the first time it goes well. Okay. The way to distribute the flavor is through an image made, which is what you usually download. Also, if you don't want to make an image made, you can do other things. For example, through Tuxel, they also make flavors. Or through a recipe, for example, I have to install this, this and this and this. But what we are saying here is that the best thing is to do it through an image made, which is downloadable from some page or somewhere. Well, let's go to the important part. How much time do I have left? How much is enough? 15, 10. Okay. Okay. These are some of the most important places in Canaima-Semilla. These are the profiles, which is where the recipe of each flavor is saved. Let's see how it is configured. Semillero, which is where the isos are saved, once they are ready. Some configuration variables and scripts, these last two are not usually played, but if you ever want to know where the scripts are, or the variables, there they are. And modify some behavior of Canaima-Semilla. Well, if you open the profile folder for the first time, you will find those five folders that are, let's say, the official profiles of the Canaima flavors that are built with Canaima-Semilla. There is an example profile that you can easily copy and paste to change the name of the folder and that will be the name of the flavor. That is, to make Canaima popular, we have the popular folder. To make Canaima institutional, we have the institutional folder. Inside it is the recipe of each flavor. The example doesn't work, obviously. If they try to build the profile of the example, they will make a mistake because it is just an example. Well, there can be as many flavors as folders that are there, that is, in the flavors. And well, let's move on. Well, this is, let's say, the most important part. It is the recipe of the flavor. Inside each folder there is a file called flavor.conf. There, you say, who are you? That is, the variable published by, you say, I am, I am not saying I am. Put your name there or the group of people who are making that flavor. What is the distribution of Debian in which they are based? In this case, it is Quicy. What application are you generating? Or yes, what application are you generating that flavor? The Debian mirror that you are going to use, there you can put a local mirror or you can put any mirror that you want. If you are going to put a local mirror, you should use the name file 2. bar-bar- user-share, I don't know, user-bar-lib-x. Okay. What are the components of the mirror that are going to be available for the construction of that ISO? If you want to leave the main alone or everything complete, as you want. Package flavor is one of the most important variables and specifies which packages are going to go inside that ISO separated by space. That is, you there are going to put the office that you want to put or if you have some meta packages that group things you can put the meta packages. What you want to put there and package flavor ISO pull is let's say the list of packages that are going to be available in the internal repository of the image. All images have an internal that should be used to install to perform their process. If you want to add something else because you have a installer or want to do something with those packages later, you can do it and there they are going to be available inside the image. That is to say, what you put there is not going to be installed inside the image. Okay. In the part of the repositories appears only one. There is no problem when it is used more than one. For example, if you would like to put the multimedia repository that does not have the section Contrib, for example, from multimedia, how do you do that part? Let's go there. I forgot to tell you that this this part, this mirror that is here is the mirror of the father distribution. That is, if you use Debian as a father distribution there should be the mirror of Debian. There is another part and we are going to see where extra repositories are put. Okay. There inside the profile they can also personalize the banner that the installer has. Debian. This should be an image in PNG of 800% of 75 pixels and it can be the reason that you want. They can also specify the background image of the six linux which is the menu that is presented to them in what you put in the CD and start. And it should I did not put it there but that should be 800x600 or 640x480 and PNG too. Okay. Here are four files of which are necessary are necessary two are mandatory it can be any name binary any name chrute and there inside those files go to the extra repositories of the way you put it in the source.list That is here below we add apart of repository of our father distribution in flavor.conf here we add the repository of us of Canaima and the repository of security the key gpg of each of those repositories can be optional it is not mandatory well and as I said are additional repositories to the main if you want packages of Ubuntu packages of another distribution can put all of that there and will be available for the construction of the flavor there is a folder called inclusions ISO inside of each profile and there you can put all the files you want to include inside the ISO that is if you have a manual or images videos things that want to add in let's say the root of the image you can put there and that will be copied inside the image and finally there are two files that allow to configure a little more the installer gtk the new installer is a let's say a gtk recipe to color the devian if you want green blue as you want and the preset preserves some configurations I do not ask them all if you want to facilitate a little the life here install the flavor can say do not show this but put by default this and this has a quite particular notation which is Depconf a notation Depconf well with respect to the seed as I told you every time you build an ISO floor the architecture that they are building ok and finally I think we finish at the beginning that is the command that builds the ISO finally there you specify what medium they want to do because besides ISO can do image usb or hybrid images that work in both to burn a CD or DVD and record in a USB disk the architecture that are building and the flavor finally put the name just the flavor that you are going to build and read the configuration that you specified and based on that build the ISO as I told you is a tool that is based on LiveBuild so in the end what it does is translate what you wrote the profile to the configuration options of LiveBuild tips finally use a local mirror because the download of all the dependencies can take a long time and verify that your disk the disk where they are building made that is the disk where the folder user has more or less four times the space of all the packages of flavor ok yes I have a question look how it does to manage the users there is a user by default or the language of the keyboard or all this type of configurations ok is when the installer is configured and it is configured all the system later and then a second question was tell us a little infrastructure what tools you use to manage the repositories or maybe to compile the software if you use the same infrastructure that they use or if it is different ok if you want let me finish I need a little and I'll answer you ok once I have installed Canaima seed I'm going to tell you how there is a lot of documentation they have a manual the help there is a manual html that is installed in Canaima is installed in applications programming Canaima seed if they do it in Debian it is also installed in that that route the canaima wiki and that is my blog there is also documentation and that is all regarding your question I forgot you asked me about the users of what else infrastructure ok look I already remember Canaima seed let's say it sacrifices a little the ability to configure LifeBuild for ease that is LifeBuild has a lot of options with which you can play but maybe someone who is starting it is a little difficult then we configure some things by defect for example the user is the name of the flavor that is if you if you are making popular your user canaima popular it comes by defect but then you can change it in the installation if you introduce the good installer regarding other things the locals comes in this version canaima seed comes by defect in Spanish Spanish Venezuelan but very soon we are going to get a new version that allows you to say I want such a language however you can in the good installer when you select the languages that you want there you can change it once installed but for example when you get up Live if it comes in Spanish regarding infrastructure compilation you asked me the repositories well in our servers we handle the repositories with ReprePRO we have several scripts that automate that in our platform regarding compilation currently we do it manually each maintainer in package and upload but we are right now implementing a build bot that assists us in that task that is simply brings the Git repository that is almost a requirement to develop canaima using Git to maintain the packages brings the configuration there and compiles and puts it in the repository I don't know if I missed something there could you tell a little about the publication of a new version stable let's say with what period they do you mentioned a little that they took packages both from Debian and Ubuntu I don't know a little bit about that process well we in the possible try to have a period a six-month development cycle that is that every six months should come out a new stable version maybe sometimes we take a month or two more months maybe but in the possible it is a six-month period we have three periods two periods and a state a development period a test period and a stable state we start that is we are synchronized with the stable version of Debian that is our older version occurs every time a stable version of Debian for example the 1.0 was in Edge the 2.0 was in Lenny there were updates between each the 3.0 is in Squeezy and the 4.0 will be in Squeezy between each the older version we make updates depending on the moment sometimes we consider that it is a more significant version and we say well this version will be 3.1 this version will be 3.01 depending on the changes as between each stable version of Debian there are more or less two years we usually make updates or four versions of updates between those two years every six months in what the stable distribution of Debian is frozen is that we start developing for the next version and between each version we incorporate updates of our software we incorporate many well many not a considerable amount of Backports for example the versions of Kunawari Watchers are based in Backport versions of Ice Whistle and IceDub LibreOffice was also supported and many others that I don't remember that is more or less our development cycle I had a question about the educational Canaima I know that the Canaimitas that are distributed to students but how it is handled if they have services for schools or everything that students do through the network how they handle it in each of the educational centers and the national network of Canaimitas I imagine that can you explain how this part works ok look as there are many Canaimitas we support in ok five minutes we support in one of the largest telecommunications in Venezuela which is Can Teve ah yes it is the biggest Can Teve is in charge of distribution because it has offices all over the country with respect to how they are organized in the regions let's say there are several nodes several cores in each school where there is a certain Canaimitas and for each number I think they are for each classroom of 30 something like that there is a let's say a kit which is made up by a router the teacher's computer and all of them are connected through iCalc iCalc no italc italc is what it is called and through there the teacher can monitor and perform the transmission of the class also in each region there is another institution which is the Fundabit the Fundabit are the ones who do the support that are in charge of the support for each group of computer if there is a damaged computer that breaks a key or there is some fault the person the representative of the child can go to Fundabit and perform the exchange of damaged pieces or so if you want also it is important that there is for example the factory where I work which is a cell phone we are now promoting projects to form the workers so that these workers go to the communities and they update the Kanemita software since there are 1.7 million teams in the street there is no possible centralized structure that can support that and the idea is that the communities the parents the representatives the family are the ones who are in charge of doing that and that is why we are just one last thing and very important how many people with the work team project and the annual budget that they follow? Ok well it is a fairly heterogeneous community that is we have people who we work for a public institution that we receive a salary but most people that let's say that scheme it is a participative collaborative and it took me a while but a little bit participative collaborative and voluntary we have paid in the main institution about 10 or 15 to see 12 people who work in Kanemita but we do some community events that we call Kayapas it is a native word for collaborative work and in fact we feel like at home because it is equal to a short and day trip and well there we have collected 400 people in the fourth Kayapa and about 400 people of which about 50 will be developers and the other public that get close events budget annual look I could tell you a sum specific let's say total of the money that they invest in but I can tell you that the project as such that is in charge of paying developers to maintain the platform they have about 10,000 bolivars 10,000 bolivars that are between 4 how much is that? 250 2,500 dollars 2,000 more or less yes no, I think we are getting the wrong account but well they are 10,000 bolivars ok well if you have any questions you can get close to me at any time and I will answer you