Product SiteDocumentation Site

1.3. Het Binnen Werk van het Debian Project

Het overvloedig resultaat geproduceerd door het Debian project leiden gelijktijdig af van het werk aan de infrastructuur uitgevoerd door ervaren Debian ontwikkelaars, van individueel of collectief werkt of ontwikkelaars van Debian pakketten en van feedback van gebruikers.

1.3.1. De Debian Ontwikkelaars

Debian developers have various responsibilities, and as official project members, they have great influence on the direction the project takes. A Debian developer is generally responsible for at least one package, but according to their available time and desire, they are free to become involved in numerous teams and projects, thus acquiring more responsibilities within the project.
Het onderhoud aan pakketten is een behoorlijk gedisciplineerde bezigheid, uitgebreid gedocumenteerd of soms zelfs door strenge regels vastgelegd. Het komt erop neer dat het onderhoud moet voldoen aan al de standaarden die zijn opgesteld in het Debian Beleid (Debian Policy). Gelukkig zijn er veel gereedschappen die het werk van de onderhouders vergemakkelijken. De ontwikkelaar kan dus focussen op de specifieke eisen van het pakket en de meer complexe taken, zoals fouten (bugs) oplossen.
Het Beleid, een essentieel element van het Debian Project, bepaalt de normen die de kwaliteit van de pakketten en een perfecte interoperabiliteit van de distributie verzekeren. Dankzij dit Beleid blijft Debian consistent ondanks haar gigantische grootte. Dit Beleid is niet in steen gebeiteld maar evolueert continu dankzij voorstellen ingediend op de mailing lijst. Amendementen waarmee alle betrokken partijen akkoord gaan worden geaccepteerd en toegepast op de tekst door een kleine groep van onderhouders die geen redactionele verantwoordelijkheid dragen (zij voegen enkel de aanpassingen toe waarmee de Debian ontwikkelaars die lid zijn van bovengenoemde lijst akkoord zijn gaan). De huidige amendementsvoorstellen zijn te volgen op het fouten volg systeem:
The Policy provides considerable coverage of the technical aspects of packaging. The size of the project also raises organizational problems; these are dealt with by the Debian Constitution, which establishes a structure and means for decision making. In other words, a formal governance system.
This constitution defines a certain number of roles and positions, plus responsibilities and authorities for each. It is particularly worth noting that Debian developers always have ultimate decision making authority by a vote of general resolution, wherein a qualified majority of three quarters (75%) of votes is required for significant alterations to be made (such as those with an impact on the Foundation Documents). However, developers annually elect a “leader” to represent them in meetings, and ensure internal coordination between varying teams. This election is always a period of intense discussions. The Debian Project leader's (DPL) role is not formally defined by any document: candidates for this post usually propose their own definition of the position. In practice, the leader's roles include serving as a representative to the media, coordinating between “internal” teams, and providing overall guidance to the project, within which the developers can relate: the views of the DPL are implicitly approved by the majority of project members.
specifiek heeft de leider echter autoriteit; hun stem lost gelijke-stemmingen op, ze kunnen iedere beslissing nemen welke niet al onder de autoriteit van iemand anders vallen en kunnen delen van hun verantwoordelijkheid delegeren.
Since its inception, the project has been successively led by Ian Murdock, Bruce Perens, Ian Jackson, Wichert Akkerman, Ben Collins, Bdale Garbee, Martin Michlmayr, Branden Robinson, Anthony Towns, Sam Hocevar, Steve McIntyre, Stefano Zacchiroli, Lucas Nussbaum, Neill McGovern, Mehdi Dogguy, Chris Lamb, Sam Hartman, and Jonathan Carter.
De grondwet definieert ook een "technische commissie". de essentiële rol van deze commissie is beslissingen nemen op technisch niveau wanneer de betrokken ontwikkelaars het niet eens kunnen worden waarvoor zijn verantwoordelijk zijn. Het is belangrijk te vermelden dat zij enkel optreden nadat ze zijn gevraagd door één van de partijen in kwestie.
Tenslotte, de grondwet definieert de positie van "project secretaris" welke de leiding heeft over stemmingen in verband met de verschillende verkiezingen en algemene resoluties.
The “general resolution” (GR) procedure is fully detailed in the constitution, from the initial discussion period to the final counting of votes. The most interesting aspect of that process is that when it comes to an actual vote, developers have to rank the different ballot options between them and the winner is selected with a Condorcet method (more specifically, the Schulze method). For further details see:
Even if this constitution establishes a semblance of democracy, the daily reality is quite different: Debian naturally follows the free software rules of the do-ocracy: the one who does things gets to decide how to do them. A lot of time can be wasted debating the respective merits of various ways to approach a problem; the chosen solution will be the first one that is both functional and satisfying… which will come out of the time that a competent person put into it.
Dit is de enige manier om je strepen te verdienen: Doe iets nuttigs en toon aan dat je goed gewerkt hebt. Vele Debian “beheerders” team werken door coöptatie, verkiezen vrijwilligers die reeds effectief hebben bijgedragen en hun competentie hebben bewezen. De publieke aard van het werk van de teams maakt het mogelijk voor nieuwe bijdragers om te observeren en te beginnen met helpen zonder enige specifieke privileges. Dit is waarom Debian vaak wordt omschreven als en “meritocracy”.
Deze effectieve operationele methode garandeert de kwaliteit van de bijdragers binnen de “key” Debian teams. Deze methode is zeker niet perfect en occasioneel zijn er diegene die niet akkoord gaan met deze manier van werken. De selectie van ontwikkelaars geaccepteerd in de teams kan arbitrair of zelf oneerlijk lijken. Verder heeft niet iedereen dezelfde definitie van de te verwachten service van deze teams. Voor sommigen is het onacceptabel om acht dagen te moeten wachten voordat een nieuw Debian pakket word toegevoegd, terwijl anderen geduldig zonder probleem drie weken kunnen wachten. Als dusdanig zijn er regelmatig klachten van ontevreden mensen over de “kwaliteit van de service” van sommige teams.

1.3.2. De Actieve Rol van Gebruikers

Men kan zich afvragen of het relevant is om de gebruikers te noemen onder hen die binnen het Debian project werken, maar het antwoord is een volmondig ja: ze spelen een kritieke rol binnen het project. Verre van "passief" te zijn, gebruiken sommig gebruikers ontwikkel versies van Debian en rapporteren regelmatig bugs om problemen aan te geven. Andere gaan zelfs verder en stellen ideeën voor ter verbetering, door een bug rapport met een niveau van "wishlist" in te dienen, of door het zelf indienen van correcties aan de bron code, “patches” genoemd in (zie Paragraaf 1.3.2.3, “Inzenden van reparaties”).

1.3.2.1. Bugs rapporteren

Het belangrijkste gereedschap voor het indienen van fouten aan Debian is het Debian Fouten Volg Systeem (Debian BTS, Bug Tracking System), dat wordt gebruikt door grote delen van het project. Het publieke deel (de web interface) staat gebruikers toe om alle gerapporteerde fouten te zien, met de optie om een gesorteerde lijst van fouten te tonen volgens diverse criteria, zoals: getroffen pakket, ernst, status, adres van de melder, adres van de onderhouder die er verantwoordelijk voor is, label, enz. Het is ook mogelijk om de volledige historie van alle discussies met betrekking tot iedere fout na te slaan.
Onder de oppervlakte is de Debian BTS gebaseerd op e-mail: alle informatie die het bewaart komt van berichten gezonden door de verschillende betrokken personen. Iedere e-mail gezonden naar zal dus, worden toegewezen aan de geschiedenis van fout nummer 12345. Geautoriseerde personen kunnen een fout “sluiten” door een bericht te schrijven met de reden van de beslissen om de fout te sluiten te sturen naar (een fout wordt gesloten wanneer het aangegeven probleem is opgelost or niet langer relevant is). Een nieuwe fout wordt gerapporteerd door een email te sturen naar volgens een specifieke indeling welke het betreffende pakket identificeert. Het adres laat toe om alle “meta-informatie” gerelateerd tot een fout te bewerken.
Het Debian BTS heeft ook andere functies, zoals het gebruik van labels om fouten van een label te voorzien. Voor meer informatie zie:
Users can also use the command line to send bug reports on a Debian package with the reportbug tool. It helps making sure the bug in question hasn't already been filed, thus preventing redundancy in the system. It reminds the user of the definitions of the severity levels, for the report to be as accurate as possible (the developer can always fine-tune these parameters later, if needed). It helps writing a complete bug report, without the user needing to know the precise syntax, by writing it and allowing the user to edit it. This report will then be sent via an e-mail server (by default, a remote one run by Debian, but reportbug can also use a local server).
Dit gereedschap richt zich eerst op de ontwikkel versies, dit is waar de fouten opgelost worden. Veranderingen zijn in principe niet welkom in een stabiele versie van Debian, met zeer weinig uitzonderingen voor beveiligings- of andere belangrijke updates (als bijv. een pakket helemaal niet werkt). Een correctie van een kleine fout in een Debian pakket moet dus wachten op de volgende stabiele versie.

1.3.2.2. Vertaling en documentatie

Aanvullend willen ontelbare tevreden gebruikers van de service die Debian bied hun eigen bijdragen leveren aan het project. Omdat niet iedereen voldoende expertise heeft in het programmeren kunnen zij kiezen om te helpen met vertaling en controle van documentatie. Er zijn taal-specifieke mailing lijsten om dit werk te coördineren.

1.3.2.3. Inzenden van reparaties

De wat meer geavanceerde gebruikers zijn wellicht in staat om een programma reparatie te leveren door een patch in te zenden.
Een patch is een bestand dat aanpassingen beschrijft aan één of meer referentie bestanden. Specifiek zal het een lijst bevatten met lijnen die toegevoegd of verwijderd moeten worden aan de code en (soms) ook lijnen genomen uit het referentie bestand om aanpassingen in de context te vervangen (ze staan identificatie van de plaatsing van aanpassingen toe indien de lijn nummers zijn verandert).
Het gereedschap dat gebruikt wordt om aanpassingen in zo'n bestand uit te voeren heet simpelweg patch. Het gereedschap dat ze creëert is diff, en wordt als volgt gebruikt:
$ diff -u bestand.oud bestand.nieuw >bestand.patch
Het bestand.patch bestand bevat de instructies om de inhoud van bestand.oud te veranderen in die van bestand.nieuw. We kunnen het ook naar iemand toezenden, die het dan zelf kan gebruiken om het bestand.nieuw na te maken uit de twee andere, zoals:
$ patch -p0 bestand.oud <bestand.patch
Het bestand, bestand.oud, is nu identiek aan bestand.nieuw.
In practice, most software is currently maintained in Git repositories and contributors are thus more likely to use git to retrieve the source code and propose changes. git diff will generate a file in the same format as what diff -u would do and git apply can do the same as patch.
Hoewel de uitvoer van git diff een bestand is dat gedeeld kan worden met andere ontwikkelaars, zijn er meestal betere manieren beschikbaar om veranderingen in te dienen. Ontvangen de developers liever patches via email, dan willen zijn meestal patches gegenereerd door git format-patch zodat zij direct geïntegreerd kunnen worden in de opslagplaats met git am. Dit bewaart de commit meta-informatie en maakt het mogelijk om meerdere commits tegelijk te delen.
Deze email gebaseerde werkmethode is nogsteeds populair maar het wordt regelmatig vervangen door het gebruik van merge requests (or pull requests) wanneer de software gehost wordt door een platform zoals GitHub of GitLab en Debian gebruikt GitLab op de salsa.debian.org server. Wanneer u een account hebt aangemaakt op die systemen, forkt u de opslagplaats, daarmee een kopie van de opslagplaats in uw eigen account creëerend, waarna u de opslagplaats kunt clonen en daarin uw eigen wijzigingen kunt aanbrengen. De webinterface zal vanuit daar een suggestie doen om een merge request in te dienen, de ontwikkelaars een notificatie met de wijzigingen te sturen, wat het beoordelen en accepteren van de wijzigen met een enkele klik vergemakkelijkt.

1.3.2.4. Andere manieren om bij te dragen

All deze contributie mechanismen worden efficiënter gemaakt door het gedrag van de gebruikers. Verre van een groep geïsoleerde personen zijn de gebruikers een ware gemeenschap waarin vele uitwisselingen plaatsvinden. We duiden uitdrukkelijk op de indrukwekkende activiteit op de gebruikers mail-lijst, (Hoofdstuk 7, Problemen Oplossen en Relevante Informatie Vinden gaat hier verder op in). .
Gebruikers helpen niet alleen zichzelf (en anderen) op technische problemen die rechtstreeks invloed hebben op hen, maar zij discussiëren ook over de beste manier op bij te dragen aan het Debian project en helpen het vooruit — discussies die vaak resulteren in voorstellen van verbeteringen.
Omdat Debian geen geld uitgeeft aan enige vorm van zelf-promotie en marketing campagnes, spelen zijn gebruikers een grote rol in de circulatie ervan, zijn roem verzekeren via mond op mond.
Deze methode werkt ook zeer goed, omdat Debian fans gevonden worden op alle niveaus van de vrije software gemeenschap: van installatie feestjes (workshops waar ervaren gebruikers nieuwkomers helpen met de installatie van het systeem). georganiseerd door lokaleLUGs of “Linux User Groups” (Linux Gebruikers Groepen), tot het bemannen van standen tijdens grote technologie conventies met betrekking tot Linux, enz.
Vrijwilligers maken posters, brochures, stickers en andere bruikbare promotie materialen voor het project, die ze beschikbaar maken voor iedereen, en welke Debian gratis beschikbaar maakt op de Debian website en wiki:

1.3.3. Teams, Blends, and Sub-Projects

From the start, Debian has been organized around the concept of source packages, each with its maintainer or group of maintainers. Many work teams have emerged over time, ensuring administration of the infrastructure, management of tasks not specific to any package in particular (quality assurance, Debian Policy, installer, etc.), with the latest series of teams growing up around sub-projects and blends.

1.3.3.1. Existing Debian Sub-Projects and Blends

To each their own Debian! A sub-project is a group of volunteers interested in adapting Debian to specific needs. Beyond the selection of a sub-group of programs intended for a particular domain (education, medicine, multimedia creation, etc.), sub-projects are also involved in improving existing packages, packaging missing software, adapting the installer, creating specific documentation, and more. While a "blend" might not be exactly the same, it works quite similar and also tries to provide a solution for groups of people intending to use Debian for a particular domain. One could say that "Debian Pure Blends" is the successor of sub-projects.
Here is a small selection of current released Debian Pure Blends:
  • Debian Junior, by Ben Armstrong, offering an appealing and easy to use Debian system for children;
  • Debian Edu, by Petter Reinholdtsen, focused on the creation of a specialized distribution for the academic and educational world;
  • Debian Med, door Andreas Tille, toegewijd aan het medische veld;
  • Debian Multimedia, which deals with audio and multimedia work;
  • Debian GIS, which takes care of Geographical Information Systems applications and users;
  • Debian Astro, for both professionals and hobby astronomers;
  • Debian Science, working on providing researchers and scientists a better experience using Debian;
  • Freedombox, made to develop, design and promote personal servers running free software for private, personal communications;
  • Debian Games, providing games in Debian from arcade and adventure to simulation and strategy;
  • DebiChem, gericht op Chemie, levert chemische omgevingen en programma's.
The number of projects will most likely continue to grow with time and improved perception of the advantages of Debian Pure Blends. Fully supported by the existing Debian infrastructure, they can, in effect, focus on work with real added value, without worrying about remaining synchronized with Debian, since they are developed within the project.

1.3.3.2. Administratieve Teams

De meeste administratieve teams zijn relatief gesloten en rekruteren enkel door coöptatie. De beste manier om lid te worden is door de huidige leden intelligent bij te staan, daarmee demonstrerend dat je hun doelen en manieren van werken begrijpt.
De ftpmasters hebben de leiding over het officiële archief van Debian pakketten. Zij beheren het programma dat pakketten ingezonden door ontwikkelaars ontvangt en slaat ze automatisch na enkele controles op, op de referentie server (ftp-master.debian.org).
Ze moeten ook de licenties van alle nieuwe pakketten controleren, om er zeker van te zijn dat Debian ze mag distribueren, voordat ze toegevoegd worden aan het corpus van bestaande pakketten. Wanneer een ontwikkelaar een pakket wenst te verwijderen, spreken ze dit team aan door het fouten-beheer systeem en het ftp.debian.org “pseudo-pakket”.
Het Debian Systeem Beheerders (DSA) team (), zoals men kan verwachten, is verantwoordelijk voor systeembeheer van de vele servers gebruikt door het project. Zij verzorgen het optimaal functioneren van alle basis diensten (DNS, web, email, shell, enz.), installatie software verijst door de Debian ontwikkelaars en nemen alle voorzorgen in verband met beveiliging.
De listamster beheert de email server die de mail lijsten beheert. Ze creëren nieuwe lijsten, behandelen bounces (meldingen van gefaalde aflevering) en beheren spam filters (ongewenste bulk email).
Each specific service has its own administration team, generally composed of volunteers who have installed it (and also frequently programmed the corresponding tools themselves). This is the case for the bug tracking system (BTS), the package tracker, salsa.debian.org (GitLab server, see sidebar GEREEDSCHAP Gitlab, Git opslagruimte hosting en veel meer), the services available on qa.debian.org, lintian.debian.org, buildd.debian.org, cdimage.debian.org, etc.

1.3.3.3. Ontwikkel Teams, Transversale teams

In tegenstelling tot administratieve teams zijn ontwikkel teams vrij open, zelfs voor bijdragers van buiten. Zelfs al voelt Debian zich niet geroepen om software te maken, heeft het project bepaalde specifieke programma's nodig om zijn doelen te bereiken. Natuurlijk ontwikkeld onder een vrije software licentie, deze gereedschappen maken gebruik van methodes uit de vrije software wereld die zich al bewezen hebben.
Debian heeft zelf weinig software ontwikkeld, maar bepaalde programmeurs hebben een hoofdrol opgenomen, en hun faam heeft zich verspreid ver voorbij het bereik van het project. Goede voorbeelden zijn dpkg, het Debian pakket beheer programma (het is, in feiten een afkorting van Debian PacKaGe en is gewoonlijk uitgesproken als "dee-package"), en apt een gereedschap om automatisch Debian pakketten te installeren samen met de afhankelijke software, en garandeert de consistentie van het systeem na een upgrade (de naam is een acroniem voor Advanced Package Tool). Hun teams zijn veel kleiner omdat er een redelijk hoge programmeer kennis nodig is om een algemeen begrip te krijgen van de werking van dit type programma's.
Het belangrijkste team is waarschijnlijk dat voor het Debian installatie programma, debian-installer, Welke een werk van monumentale proporties heeft verwezenlijkt sinds de conceptie daarvan in 2001. Ontelbare bijdragers waren nodig, omdat het moeilijk is om een enkel programma te schrijven dat Debian op een behoorlijk aantal verschillende architecturen kan installeren. Ieder heeft zijn eigen mechanisme voor opstarten en zijn eigen opstart-lader. Al dit werk is gecoördineerd op de mail lijst, onder leiding van Cyril Brulebois.
Het (zeer kleine) debian-cd programma team heeft zelfs een nog nederiger doel. Veel “kleine” bijdragers zijn verantwoordelijk voor hun architectuur, omdat de hoofd ontwikkelaar niet alle subtiele verschillen kent noch de exacte manier om het installatie programma vanaf de CD-ROM te starten.
Vele teams moeten samenwerken met anderen op het gebied van inpakken: probeert, bij voorbeeld, de kwaliteit op alle niveaus van het Debian project te verzekeren. Het mail lijst ontwikkeld Debian Beleid volgens de voorstellen vanaf iedere locatie. Het team dat de leiding heeft over iedere architectuur () compileren alle pakketten en indien nodig passen ze het aan hun specifieke architectuur aan.
Andere teams beheren de meest belangrijke pakketten om onderhoud te garanderen zonder te veel gewicht te leggen op een enkel paar schouders; dit is het geval met de C bibliotheek en , de C compiler op de mail lijst, of Xorg op (deze groep is ook bekend as de X Strike Force).