Product SiteDocumentation Site

1.3. Hur Debianprojektet fungerar internt

Debianprojektets lyckade slutresultat skapas av arbete med infrastrukturen utförd av erfarna Debianutvecklare, från individuella, det gemensamma arbetet med Debianpaket och från användaråterkoppling.

1.3.1. Debian-utvecklarna

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.
Pakethantering är en relativt disciplinerad aktivitet, väldigt dokumenterad och till och med styrd. Den måste därigenom uppfylla alla standarder etablerade genom Debianriktlinjerna. Som tur är finns det många verktyg som underlättar ansvariges arbete. Utvecklaren kan därför fokusera på det som är specifikt med sitt paket och på mer komplexa uppgifter, som att reparera fel.
Riktlinjerna, en viktig del av Debianprojektet, etablerar de normer som försäkrar distributionens paketkvalitet och interoperabilitet. Tack vare dessa riktlinjer fortsätter Debian, trots dess omfattning, att vara samstämmigt. Riktlinjerna är inte skrivna i sten utan fortsätter att utvecklas kontinuerligt tack vare förslag som skickats in via sändlistan . Tillägg som ges bifall av alla intresserade parter accepteras och tillämpas texten av en liten grupp ansvariga för underhåll som inte har någon befogenhet att editera (de inkluderar endbart ändringar som bifallits av Debian-utvecklarna som också är medlemmar i den nämnda sändlistan). Du kan läsa om aktuella ändringsförslag i felrapporteringssystemet:
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.
Ledaren har ett starkt mandat; deras röst avgör jämna röster; de kan ta vilket beslut som helst som inte redan är under någon annans ansvar och de kan delegera vidare delar av sitt ansvar.
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.
Författningen definierar också en ”teknisk kommitté”. Kommitténs essentiella roll är att bestämma om tekniska spörsmål när de involverade utvecklarna inte har kommer fram till en kompromiss. Kommittén har också en rådgörande roll till utvecklare som misslyckas med att ta ett beslut för vilka de är ansvariga. Observera att de endast blir involverade när de bjuds in av en av parterna i fråga.
Slutligen definierar författningen rollen ”projektsekreterare” som ansvarar för organisationen av röster relaterat till de olika valen och allmänna resultaten.
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.
Det enklaste sättet att få erkännande är att göra något nyttigt och visa att man har utfört arbeta. Många ”administrativa” Debian-team sköts genom samarbeten, och de föredrar volontärer som redan har bidragit effektivt och visat sin kompetens. Den naturliga öppenheten i dessa teams arbete gör det möjligt för nya volontärer att observera och börja hjälpa till utan speciella privilegium. Det är därför Debian ofta beskrivs som en ”meritokrati”.
Denna praktiska metod garanterar kvaliteten av bidragsgivare i Debians nyckelteam. Metoden är inte på något sätt perfekt och det finns det de som inte accepterar detta arbetssätt. Valet av utvecklare som accepteras i team kan verka lite godtyckligt, eller till och med orättvist. Vidare, alla har inte samma definitioner av vad som kan förväntas från dessa team. För vissa är det oacceptabelt att behöva vänta 8 dagar för att få in ett nytt Debian-paket, medan andra kan vänta tålamodigt i 3 veckor utan ett problem. Det finns därför återkommande klagomål från missnöjda om ”tjänstekvaliteten” hos vissa team.

1.3.2. Användarnas aktiva roll

Är det relevant att nämna användarna bland de som jobbar inom Debianprojektet? - svaret är ett rungande ja: de spelar en kritisk roll i projektet. De är långt ifrån ”passiva”, en del användare testar utvecklingsversioner av Debian, och skapa felrapporter för att uppmärksamma problem. Andra går längre och skickar in ideer för förbättringar genom att skriva in felrapporter med nivån ”whishlist”, eller till och med genom att skicka in ”programfixar”, det vill säga rättningar till källkoden, (se Avsnitt 1.3.2.3, ”Skicka rättningar”).

1.3.2.1. Rapportera fel

Det grundläggande verktyget för att rapportera fel i Debian är Debians felrapporteringssystem (Debian BTS, Bug Tracking System) vilket används av många delar i projektet. Den öppna delen (webbgränssnittet) låter användarna se alla felrapporter, med valet att visa en sorterad lista av fel baserat på olika kriterier så som: påverkade paket, allvarsgrad, status, rapportörens adress, ansvariges adress, taggar och så vidare. Det är också möjligt att för varje fel ta del av hela diskussionshistoriken kring den.
Under ytan är Debian BTS e-postbaserat: all information den lagrar kommer från meddelanden skickade av involverade personer. Varje e-postmeddelande skickat till kommer att läggas till historiken för fel nummer 12345. Behöriga personer kan ”stänga” ett fel genom att skriva ett meddelande som beskriver orsakerna för beslutet att stänga (ett fel är stängt när det beskrivna problemet inte längre är relevant). Ett nytt fel rapporteras genom att skicka ett meddelande till i ett specfikt format som identifierar paketet. Adressen möjliggör redigering av meta-informationen relaterad till ett fel.
Debian BTS har också andra funktionella egenskaper, som användning av taggar för ett märka felen. För mer information, se
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).
Verktyget siktar in sig på utvecklingsversioner, vilket är var felen kommer att repareras. Ändringar är med få undantag inte välkomna i en stabil version av Debian, undantagsvis säkerhetsuppdateringar eller andra viktiga uppdateringar (exempelvis om ett paket inte alls fungerar). En felrättning av ett mindre fel i ett Debianpaket måste därför vänta in nästa stabila version.

1.3.2.2. Översättning och dokumentation

Utöver det finns det flertalet nöjda användare av tjänster tillhandahållen av Debian som skulle vilja bidra med någonting tillbaka till projektet. Eftersom inte alla har tillräcklig kunskap i programmering kan de välja att hjälpa till med översättningar och granskning av dokumentation. Det finns språkspecifika e-postlistor för att koordinera detta arbete.

1.3.2.3. Skicka rättningar

Mer avancerade användare skulle kunna tillhandahålla en lösning på ett fel i ett program genom att skicka en programfix.
En programfix är en fil som beskriver ändringar för en eller flera referensfiler. Mer specifikt innehåller den rader att lägga till och ta bort ur koden, så väl (ibland) som kringliggande rader tagna från referenstexten, (de gör det möjligt att hitta var ändringarna skett om radantalet har ändrats).
Verktyget som används för att tillämpa ändringarna beskrivna i en sådan fil kallas patch. Verktyget som skapar dem kallas diff. Exempel på användning:
$ diff -u fil.gammal fil.nya >fil.patch
Filen fil.patch innehåller instruktionerna för att ändra innehållet för fil.gammal till fil.ny. Vi kan skicka den till någon som sedan kan använda den för att återskapa fil.ny från de två andra. Exempel:
$ patch -p0 fil.gammal <fil.patch
Filen fil.gammal är nu identisk med fil.ny.
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.
Även om resultatet av git diff är en fil som kan delas med andra utvecklare, finns det ofta bättre sätt att skicka in ändringar. Om utvecklaren föredrar att få rättningar via mail, föredrar de oftast rättningar skapade av git format-patch så att de utan vidare kan integrera rättningen i förådet med kommandot git am. Detta sätt bevarar metainformationen kring bidraget och möjliggör att kunna dela flera bidrag på en och samma gång.
Detta epostbaserade arbetsflöde är fortfarande populärt men tenderas att bytas ut till användandet av sammanslagningsbegäran (eller hämtningsbegäran) närhellst mjukvaran är lagrad på en plattform liknande GitHub eller GitLab — Debian använder GitLab på sin salsa.debian.org server. På dessa system, så fort du skapat ett konto, förgrenar du förådet vilket effektivt skapar en kopia av förådet på ditt konto, du kan sen klona förådet och föra in dina ändringar till det. Därifrån kommer hemsidans gränssnitt föreslå att skicka en sammanslagningsbegäran och upplysa utvecklaren om dina ändringar vilket underlättar för dem att granska och acceptera dem med ett enda klick.

1.3.2.4. Andra sätt att bidra

Alla dessa bidragsmekanismer blir effektivare genom användarens beteende. Istället för att vara en samling av isolerade personer är användarna en del i en verklig gemenskap inom vilken en stort antal utbyten uppstår inom. Vi vill speciellt uppmärksamma på aktiviteten i sändlistan för användardiskussioner, (Kapitel 7, Lösa problem och hitta relevant information tar upp detta i detalj).
Användare hjälper inte bara varandra (och andra) med tekniska problem som direkt påverkar dem, men de diskuterar också de bästa sätten att bidra till Debianprojektet och dess framtid - diskussioner som ofta slutar i förslag på förbättringar.
Eftersom Debian inte bekostar marknadsföring spelar dess användare en viktig roll i spridningen av Debian.
Denna Metod fungerar rätt så bra eftersom Debianfans kan hittas på alla nivåer inom gemenskapen för fri mjukvara: från installationsfester (arbetsträff där erfarna hjälper nytillkommna att installera systemet) organiserade av lokala LUG-ar eller ”Linux Användargrupper”, till bås på stora teknikkonferenser som har att göra med Linux, och så vidare.
Volontärer skapar affischer, broschyrer, klistermärken och annat användbart marknadsföringsmaterial för projektet, vilket de gör allmänt tillgängligt, och vilket Debian tillhandahåller fritt på sin webbplats och 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, av Andreas Tille, dedikeras till det medicinska fältet;
  • 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, som riktar sig till kemister, tillhandahåller paketlösningar och program inom kemiområdet.
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. Administrativa grupper

De flesta administrativa grupper är ganska slutna och rekryterar genom samarbeten. Det bästa sättet att bli en del av en grupp är att på ett smart sätt hjälpa och stödja de aktuella medlemmarna, och på så sätt visa att du förstår deras mål och arbetssätt.
FTP-ansvariga har hand om de officiella arkiven för Debian-paket. De underhåller programmet som tar emot paket insända av utvecklare, och lagrar dem automatiskt, efter en del kontroller, på referensservern(ftp-master.debian.org).
För att försäkra sig om att Debian kan distribuera paket, verifiera de licenserna för alla nya paket, innan de inkluderas i andra paket. När en utvecklare önskar att ta bort ett paket, adresserar de denna grupp genom felrapporteringssystemet och pseudo-paketet ftp.debian.org.
Debian-systemadministratörs-gruppen (DSA) är, som man kan anta, ansvarig för systemadministration på de många servrar som används av projektet. De garanterar att alla grundläggande tjänster fungerar optimalt (DNS, webb, e-post, skal med mera), installerar program begärda av Debian-utvecklare och sköter säkerhetsförebyggande arbete.
Listmasters har hand om e-postservern som hanterar e-postlistorna. De skapar nya listor, hanterar studsar (aviseringar om leveransproblem), och hanterar spam-filter (oönskade massutskick).
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 VERKTYG GitLab, tillhandahållande av Git föråd och mycket mer), the services available on qa.debian.org, lintian.debian.org, buildd.debian.org, cdimage.debian.org, etc.

1.3.3.3. Utvecklargrupper, överlappande grupper

Olikt de administrativa grupperna är utvecklingsgrupperna generellt ganska öppna, även för bidrag utifrån. Även om Debians syfte är att skapa program behöver projektet ändå en del specifika sådana för att nå sina mål. Verktygen, självklart fri programvara, använder beprövade metoder i fri programvaru-världen.
Debian har utvecklat några få egna programvaror, men vissa program har fått en ledande roll, och deras namn har spritt sig långt utanför projektet. Bra exempel är dpkg, Debians-pakethanteringssystem (det är faktiskt en förkortning av Debian PacKaGe, och uttalas som ”dee-package”), och apt, ett verktyg för att automatiskt installera Debianpaket med beroenden, och som försäkrar sig om systemets samstämmighet efter en uppgradering (namnet är en akronym för Advance Package Tool). Deras team är dock mycket mindre eftersom det krävs en ganska hög färdighet i programmering för att förstå hur dessa programtyper fungerar.
Det viktigaste teamet är kanske det för installationsprogramet för Debian, debian-installer och som har uppnått enormt mycket sedan det startades 2001. Det har krävt många medarbetare eftersom det är svårt att skriva en enskillt program kapabelt att installera Debian på ett dussin olika arkitekturer. Varje arkitektur har sina mekanismer för uppstart och deras egena Uppstartsladdare. All detta arbete koordineras på sändlistan för under ledning av Cyril Brulebois.
Det lilla teamet debian-cd har ett ännu blygsammare mål. Många små ”medarbetare” är ansvariga för deras arkitektur, eftersom huvudutvecklaren inte kan känna till alla variationer, eller det exakta sättet att starta installationen från CD-ROM-skivan.
Många team måste samarbeta med andra när det gäller paketering: försöker till exempel att garantera kvaliteten på alla nivåer i Debian-projektet. Sändlistan utvecklar efter förslag Debians riktlinjer. Teamen som har ansvar för arkiteturerna () sätter samman alla paket och anpassar dem, om så behövs, utefter deras speciella arkitektur.
Andra team hanterar det viktigaste paketen för att försäkra sig om underhåll utan att lägga för stor vikt på en enstaka person; detta gäller C-biblioteket och , och C-kompilatorn på sändlistan eller Xorg på (denna grupp är också känd som X Strike Force).