 Welkom op het eind van het eind van het portemansje, waar we eigenlijk het portemansje doen. Dus de agenda is om te spelen wat het portemansje is, hoe het portemansje kwam te zijn, de technische dingen die we doen en de mensen dingen, omdat we het overal overigens mogen en dan een soort kloos in de wereld en tijd voor vragen. Dus, op het eind van het eind van het eind van het portemansje de website is vermoedend om de overigensroute van de portemansje te zien, gebouwen, pakken en persoonlijke verkeer. Dus het portemansje is eigenlijk een de source, de combinatie van alle pakketjes, en in de particular portemunitie is het niet de eigenaar van alle dingen in de MK-directorie en het is ook niet intensief gevoel of er zet policies unilaterally, maar soms ja, we moeten een beetje brengen, bijvoorbeeld met de Python-stuffer, ja, dus dat is een supernice YouTube video nu en het is gewoon een opnieuw een artistrending van de portemunitie, een actieel drie. Zo, waar ik portemunitie eigenlijk ging te zijn, toen ik naar de aardkouder van portemunitie en Kiril Ponomarev, zo was of portemunitie, we, before me, remembered that it was to create packages for all the releases on the tinderbox, and I'll come to that shortly, to support and retain the package utility and its predecessor in the way system, and test all the critical changes in the more centralizing structure on the MK-directorie before they go live. So tinderbox was a package build to within PHP, and before the current package build to Pudier came around in 2011, which is written in Shell, it was run on decentralized hardware which all managed by volunteers, so basically people's home boxes or spare books at the office, and which had an interesting side effect that artist could just randomly wear out and get replaced and so the node, that build node was not available for a while, but today packages are built inside of the freebies cluster, because Pudier makes use of the multi-core nature of modern service, so you have one package built on one core, generally, so you can build 30 packages or so at once. Well, yeah, so because the post tree has been around since 1994, well, back in the day, if you want to do an repository copy, which you would want to do because we want to preserve history at all times, so you couldn't do that with CVS and you can't do that with Git either, which we use nowadays, but the idea was to, if you have a certain port, say a GC2 and you want to make a GC3 port and GC2 is still alive, so you want to preserve that branch and GC3 goes its own way, so you copy everything history of GC2 into GC3, and then they go independent, but since there was a CVS copy command, you would have to ask the repository masters to do that for you and they would fiddle inside the CVS service to mimic the copy and then they would go back to you and say, yeah, it's done and it's the first you could just natively type SVN copy and it was fine and with Git, they, yeah, because of the nature of Git, it doesn't exist, which is kind of sad, and the other thing was that sometimes the entire porstery would have to be logged, for example when Neo Freebisti release was about to be done so that you would have a consistent package state or if you would import a new version of normal KDE of XORG, so someone from Portmage would just flip some bit on the server, I think, and then nobody could CVS commit or SVN commit, en dan, well, when the update was done and people were confident that it was okay, then the tree would be unlocked again, and there were no quarterly branches, which we use currently a lot, so that was just, the porstery was just, well, yeah, the tip of CVS or what we call at nowadays or main, we had the main branch and then, you would just live from that and in 2014 we introduced quarterly branches, so the idea of those is that at the start of each quarter you make a copy of the main branch and all security and critical bug fixes go in there, including new browser versions because browsers are special and they have no backports, all the more fast based stuff goes into main, so those changes only go into the next quarterly branch, and each quarterly branch also lives for one quarter, so we're now at 2021 Q3, and in two weeks will be 2021 Q4 and Q3 will be kind of life, we use quarterly branches to build packages for everything except free BSD current, so free BSD current uses the main branch or releases use a quarterly branch by default, but in the time there were no pre-built packages except those that were shipped on the release CD, so that meant that if you'd install free BSD 4.6, and you get Knoven running and you want, you need an update for Knoven because of some security issue or a bug or whatever, you would just have to build those updates on your own machine or maybe some local centralized thing and yourself, so there was no way to type package update, which we do now, and just hope everything was fine, and there was also no license framework, which was introduced by Thomas Eftop, so the idea of that is that for each port you can specify which license or licenses is shipped under, and you can actually say I want GPL2 is fine, but GPL3 is not, I want BSD license stuff or whatever, so that was the general history for ports themselves, the existing node concept of staging, which meant that if you would build an update for the Knoven package, the base queue is just to configure and then make and make install, but that was abstracted today in just typing make install the port, but that also meant that the make install would actually fiddle with your live system, so if there was a bug in the package list or the port was broken, then your live system was also inconsistent. In 2015 is Baptiste Ouzanne, nu is het ook nog een stil portmeidje, en we kwamen met het idea of staging, which we also see a lot in the Linux world, so the idea is that the port does its make install, but it doesn't do it on a live system, but on a temporary copy of a clean live system, so you can, and the port framework can see which files are installed, and if that matches the list of files you're supposed to install, and if the file is missing or accept files, so maybe permissions are different, and you can inform that the port is developer of that, and then if everything is fine and you know what you're going to install, so you can safely install the package on your live system. There was also no uses, for example, which is a convenient method to say, this port installs a kernel module, so you say in the port make file uses is kmod, and then it automatically pulls in some boilerplate that is useful for ports that install kernel models, so for example to see if you have the source reinstalled, or that's some compiler flags, and you can also say use that for uses is gnome, and then, yeah, so I want these components of gnome installed, and I can put that in uses or like over 100, maar nu is er over 100 of different uses, which are all listed in the port as handbook, so there were also no flavors, which meant that if you build a port, you get tiny variations of the port, so if you have an office, like a labor office, and you want to print stuff, because that's what you do in an office, you can specify if you want A4 or a letter sized paper, and then you can just tell that to the ports, like I have a package of labor office, which produces A4 output, or a package that produces letter sized output, and you don't need two different ports for that, just that tiny variation, or another flavor would be like if you use Qt versus Qtk, as a graphical framework, en in the beginning ports were much more imperative to make files instead of declarative, so nowadays you do specify variables and behavioral things that you want the port to be, and you don't specify too much actual commands in the port itself, most of that code is abstracted to be in a make framework in those users or related places, which is actually not easier to read in my opinion, so we also make policies, one is, so we have a charter, which is governed by the core team, which you can read at a specified link, and port manager turned that into a set of policies, which is basically a charter with a bit fleshed out, and the policy, it's about how to build packages in the plan, and that we should document things in the ports, and for example, that the port's framework and individual ports to keep an eye on security, and legal aspects, those are there in between, but occasionally we do get a question about licenses, the last one was probably a year ago, so we look at the overall direction of the ports tree, things I mentioned on the previous few slides, and well yeah, because we all people, and people sometimes disagree, we update, try to update 15 people, and we do give this a common solution, that everyone can live with. Now one of the other task of port manager is to build packages, so those are automated for the main and the quarterly branches, as mentioned earlier, the main packages are built for the privacy current, and the quarterly are built for all releases, but you can of course just build packages from the main branch of the ports tree for your release, if you want, or the other way around, and they might also, so that happens for all tier 1 and tier 2 architectures, tier 1 typically being ARM64, AMD64, and i36, tier 2 being the smaller ARMv6, v7, v5, or something, probably, depending on availability packages should be, updates should be built multiple times a week, so if you, that also book fix and security fixes, oh, only just a few days behind, and you can just type a package update and you get the latest fixes, so, well, well actually port manager is just a lot more people than me, so we have Adam Weinberger, actually that's a lot of the human resources, kind of things, so not that there's a hiring manager, but you actually, um, dat is de video met de jonge issues, like if there are questions or people tend to disagree about something or, yeah, he most steps in, Antoine Baudin, he's responsible for building packages and maintaining configuration of the package building cluster, and he also does experimental runs, so if you want a new version of CMake, which can affect a lot of other packages, you first do a full run, but instead of releasing the packages built in that run, you just see if, well, which other packages would break or not, and if it's fine, then you can actually boost the update, so that the new CMake version goes live. As Sir Baptiste Oussani is responsible for the package too, and the framework, en is also the liaison for the core team. Brian Drori is also in force in package building, the package building too, project, and liaison for the release engineering team. Matje Anolt is involved in the framework, maintain the portals handbook, en is en liaison for cluster admin. The cluster administration team is like the system administrators. René Ladan, that's me, secretary for the port team, which means update publishing in multi reports that goes through the 3D developers, en writing an entry for the quarterly reports, which are public. Also involve it like if people introduce a new candidate as a new people introduce new candidate for a port developer, en ja, so is it missing a piece here. Another thing is committers day port developers day sometimes become inactive for various reasons. En I don't involve these script that checks if people are still active. En depending on the results taken there it's stuck. Ja, so if people become too inactive, the policy is to disable the commit privileges, which this means where there's a file which says if you can actually technically make a commit and you're just removed from the file, but it's not a ban. So you're not banned from the community or anything, but is this more like the safety measure. En I also tend to clean up a lot of ports, like expired ports or like the upcoming end of life of 3Ds to 11 then clean up en we've got kind of clean ups in ports for our work, we haven't set that down long in assay. En Steve Wills, he does all kind of miscellaneous things. En we also occasionally have trainees, which we call Dirkus and Tobias Berner is currently one of them. En wel, in support management also is a lot of alumni. You can look them up in the below link so we also interact with all the teams. That's our accounts. Accounts team is they well maintain accounts for your freebies, the address and access to various servers. And those are also the people that you, that we inform if there's a new candidate. Coming en the best in in privacy use the models more by by invitation. So if you're a volunteer and you do a lot of course work or documentation or kernel work and someone notices that, then it's difficult to see just that you get the question like do you want to be develop yourself and if you create and well for port manager. So if you're working a lot of course the existing developer sends a mail to port manager and we vote we vote on the new candidate and well usually it's fine. And then well the new candidates is welcomed as a new developer. And at which time are the first few molds or changes they get if you get must be approved by the new by the the one who volunteered to bring the new candidate in as a kind of mentor if people retire then they also inform accounts and the core team. So for cluster at the ministry engine team occasionally talk to them mostly for if you need more package builders and the release engineering team our new release comes up and you want to see if you're on the same page with the packages that go in dat a build voor dat release of that's then to be a specific commit of the port street that that bit based on stable port street is now fire of the release process of the previous diversion is well and we inform core about new committers en committers dat retire en also well the core team is a group of freebies to developers that get elected every two years have I the active freebies to developers which basically means you made a a change to one of this the source trees in the last year en en so there they have there the internal representation of the freebies project like a bit of well a bit of the internal board of directors en if freebies was a company en en above that the core team is the freebies the foundation which is technically not a part of the freebies project but they exist for the freebies projects and they typically deal with a lot of contractor property and legal entities and promote the freebies the project in on various conferences en en nou kan je het about dan het derpage de website freebiesdfoundation.org en voor de core team also communicates downwards with various teams dat dat kind of delegates such as board merger or the graphics teams or security team or the documentation engineering team ja so they kind of the central so ja en zoals ze zeiden is also me also a personal en maybe also in first in full personal stuff such as welvoting on new committees and their mentors because well mostly so even existing developer en proposed new proposed new candidate and we think other candidate is fine and we also check to see if the them the one who proposed the candidate would be the mentor but it's usually fine but we prefer to have two mentors but candidate or things like time zones or availability so well people are idle for too long kind of safe keep that commit bits which it just means that cannot technically do a make commit which is nowadays get push but now if you have time again en of interest in returning can invite a meal of port manager en we have to welcome you back en so we just send meal to the core and accounts team like that you have returned so well port manager itself also changes over time just people decide to they want to do do all the things well maybe to speerregelen friwisch die commit er over maybe a tie van friwisch die entirely or whatever en so van so we need sometimes need new people so van waste you just ask them ah and another waste with a lurker program en volunteers can sign up en en de original idea was dat you were lurker voor 2 moles en dan en je would either stay or is not here lurker anymore so we were back to regular post developer but that's currently a bit so ah ja ja we didn't need to be if you started a bit well and since post manager is people and people are not perfect vanwege is dat communication could be better en we doubled a bit with twitter en facebook but 2 years ago that's that was a lot high maintenance en we also because a lot of updates were already in the they were already announced and on the mailing list for example en ja ja was a bit design what through wat to put on the social media or what not en nee er wasnt de real benefit in our opinion en also because twitter voor examen we have the free beastie help account en we publishes kind of free beastie news en helps people en een ander idee was to split off into some new teams so that a boat at all interest people could help with that part and to en kind of get alonged like like one example package manager which is currently don't like port manager, but it could also be that a few people that are actually building packages combined with perhaps people from plus the administration or in these engine en en en dat je voor een more focused view, but other, yeah, but it's never happened en maybe there's other ways to organize en so ja, that would be it for now if there's any questions so thank you enough for your presentation en en ja, I got a bit of a blackout at one point en anyway, it got through so any questions from the audience, you can write the questions on the public chats oh, we just made an IRC too that would be nice to check if not, I think we can close here and you can stay on chat and if anyone answers and asks anything you can answer them en en oké, thank you very much en en this is it after this will come the launch break and then we'll come the next session thank you oké bye bye right, so there's a question on the chat here hoe denk je dat jonge mensen met programma beginnen te kunnen bevolven, één keer of ander en ja, de manier waar ik in was in 2000 dan was het ook als ik met porten begon te starten ja, ik was een vrije keer in mijn laptop als een dagelijks drijfer en ik heb meestal een paar porten als het was, heb je porten als een maintainer lijn en de maintainer is de eerste lijn van contact dus je had de kerteken van de porten, maar het is niet de absolute ja ook voor dat nicely je had niet de zol gulfen van de porten dus porten is een beetje je begint te schrijven een soort van receptie zoals dit port wel, het is over een calculator en het nodig het nodig van dependies en want het is mooi voor wat voor exemple in de handbook dus het is niet gewoon echt programma als schrijven een programma, maar depending hoeveel patchen de porten nodig zoals de Chromium port dat was de presentatie van het jaren dat gebruikt van langs 1000 patchen die is een soort van de acceptie daar heb je wel, je hebt gegeven source files ook zodat de porten ervaring zijn ja, dus hoe je het gevolgd ik denk dat ja, dus een manier is het gebruiken de porten en de porten of er zijn bindende package versies op een dagelijker en dan oh, het wordt gevolgd in de communiteit in het kanaal zoals de porten Freebies de porten en Freebies de orkmanes ja, het is ook een beetje een grote communiek vraag hoe je het gevolgd in Freebies de ik denk dat het is een soort van dingen dat Freebies de foundation is gevolgd ja, dus de volopkomst is dat er kunstijlijken kijken aan markers of technologie's en Java oh, dat wil niet mooi zijn schaaf, ik denk in Europe maar, anyway oh, ja, je kan je schaaf en schaaf en Freebies die ja, ik en gevolgd ja, het is eigenlijk een goede vraag met dat ik kom daarvoor ja, die met answers ik denk uit een soort intrinsische interesse oh, de mensen worden gevolgd waarom de employeren als ze aan het project werken of ja, je hebt een in de base system je hebt een mensen werken vrije drijfers net als drijfers bijvoorbeeld de company niet zet te werken oh zo, ja, de werking op het project is zo goed te weten ja, dat dat is waar wij ik ik ben eigenlijk gewoon voor mezelf eigenlijk een Freebies team meestal ik ben bijna exclusief als als huis, als een hobby nee, er is geen bijna geen professioneel nieuws voor mij of Freebies team ja, een volopkomst van is eh van Luna is eh een package build files voor dingen die je denk is missen en een helft update build files die je moet updaten eh ja dus je kunt je kunt ook proeven, existende porties natuurlijk eh of ook zo'n veel features die dat kunnen we missen of dat niet dat er niet misschien niet werken properlijk ja, sowieso in general je kunt het senden in een problemenreport in Buxilla met Bux. Freebies die dat ook en een patch ja, met wat Mark zet wat werken en verkeer de beeld verkeer Bux heel wel en ja, het is gewoon iets wat je wilt je moet eh een tool in eh er is een soort soort verpatch ik denk dat dat je wilt en dan of is het tool of een network field of iets ja, dus nou de way het zou eh maar ik denk dat het meer eind was de kernel wat je heb gezien een operatie systeem eh classes met universities ja, dat dat eh ja ja, ik ga een introductie naar de Freebies de kernel dat ik zou gebruiken als als eh of de Linux kernel of dat dus eh dus een actueel instances van dit absoluut ding dat dat je hebben gesproken voor de laatste en weken maar nou maar het is een kernel werk dat was niet precies een port werk dat is meestal van de 3-party packages nou wat heb je ding wat heb je ja, dat is van de ding voordat de video wordt getozen van de 12 nu niets ik zie goed wat bedankt je noem welkom ja dus eh eigenlijk de eerste problemenrepoort ik was voor een zo'n zo'n toei compiler ik wilde als student en al 18 jaar toen het was cool als Freebies je had dat doen en dan eh het eigenlijk maakte het in het port 3 en ja het is het is nog het is nog in want zelfs het niet het is in ages sorry dat dat is een andere way te doen ja en je kan fixen existente packages of bring in nieuwe packages ja en mm-mm-mm so we hebben vergelijkers teams ook zo zo joining them kdeo gnome maar x11 dus het is eh het is zonoon als de graphics team ik was de door de low level nee x11 en wlnd kind of things en ja de de chromium team joining those one of those teams eh is het is nog de way te kennenvolgen ja zo voor voor example eh wel ja en het is niet het is niet geleden de port het het in in wlnd channel of if you like to write a documentation of translate a documentation eh into a local language en dat dat is een other way te get involved met free wistie which is wel hoe hoe ik actie join ter de free wistie developer team zo by my first contributions where there's a eh translate a English documentation to Dutch into the Dutch language het het was een a few other people back in the day wel ja thank you all for the training en I got some lunch myself