Product SiteDocumentation Site

1.3. Vnitřní fungování projektu Debian

Bohaté konečné výsledky vyproduktované projektem Debian vycházejí současně z práce na infrastruktuře prováděné zkušenými vývojáři Debianu, z individuálních nebo kolektivních prací vývojářů na debianovských balíčcích a z reakcí uživatelů.

1.3.1. Vývojáři Debianu

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, thus acquiring more responsibilities within the project.
Package maintenance is a relatively regimented activity, very documented or even regulated. It must, in effect, comply with all the standards established by the Debian Policy. Fortunately, there are many tools that facilitate the maintainer's work. The developer can, thus, focus on the specifics of their package and on more complex tasks, such as squashing bugs.
The Policy, an essential element of the Debian Project, establishes the norms ensuring both the quality of the packages and perfect interoperability of the distribution. Thanks to this Policy, Debian remains consistent despite its gigantic size. This Policy is not fixed in stone, but continuously evolves thanks to proposals formulated on the mailing list. Amendments that are agreed upon by all interested parties are accepted and applied to the text by a small group of maintainers who have no editorial responsibility (they only include the modifications agreed upon by the Debian developers that are members of the above-mentioned list). You can read current amendment proposals on the bug tracking system:
Zásady do značné míry pokrývají technické aspekty balíčků. Velikost projektu také vyvolává organizační problémy; ty jsou řešeny Stanovami Debianu, které vytváří strukturu a prostředky pro rozhodování. Jinými slovy, formální systém řízení.
Stanovy definují určitý počet rolí a postů, plus jejich odpovědnosti a pravomoce. Zejména je třeba poznamenat, že vývojáři Debianu mají vždy konečný rozhodovací pravomoc hlasováním o obecném usnesení, kde je vyžadována kvalifikovaná většina tří čtvrtin (75%) hlasů pro učinění významných změn (např. s dopadem na dokumenty nadace). Nicméně, vývojáři každoročně volí “vedoucího”, aby je zastupoval na schůzkách, a zajistit vnitřní koordinaci mezi různými týmy. Tato volba je vždy obdobím intenzivních diskuzí. Role vedoucího není formálně definována žádným dokumentem: kandidáti na tento post obvykle navrhují vlastní definice pozice. V praxi role vedoucího zahrnuje zastupování vůči sdělovacím prostředkům, koordinaci mezi “interními” týmy a zajišťování celkového vedení projektu, na kterém se vývojáři mohou podílet: záměry DPL jsou implicitně schvalovány většinou členů projektu.
V podstatě má vedoucí opravdové pravomoce; jejich zvolení vzešla z těsných hlasování; mohou učinit jakékoli rozhodnutí, které již není pod pravomocí někoho jiného a mohou delegovat části svých povinností.
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, Mehdi Dogguy, Chris Lamb and Sam Hartman.
Stanovy rovněž definují “technickou komisi”. Hlavní úlohou této komise je rozhodovat v technických otázkách, pokud se zúčastnění vývojáři mezi sebou nedohodnou. Jinak má tato komise roli rádce pro vývojáře, kterému se nepodařilo učinit rozhodnutí, za které má odpovědnost. Je důležité poznamenat, že se zapojí pouze v případě, kdy je k tomu jednou ze zainteresovaných stran vyzvána.
A konečně stanovy definují pozici “tajemníka projektu”, který má na starosti organizaci hlasování v souvislosti s různými volbami a obecnými usneseními.
The “general resolution” 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:
I když stanovy vytváří zdání demokracie, denní realita je zcela odlišná: Debian přirozeně dodržuje pravidla svobodného softwaru do-ocracie: ten, kdo dělá věci rozhoduje, jak je dělat. Mnoho času může být vyplýtváno debatováním o jednotlivých přínosech různých cest, jak přistupovat k problému; zvolené řešení bude to první, která je obojí - funkční a uspokojující..., které vyjde z času, který do něj způsobilá osoba vložila.
To je jediný způsob, jak si vysloužit ostruhy: udělat něco užitečného a ukázat, že se pracovalo dobře. Mnoho “administrativních” týmů Debianu působí za pomocí kooptace, upřednostňující dobrovolníky, kteří již efektivně přispěli a prokázali svou schopnost. Veřejná podstata práce těchto týmů umožňuje novým přispěvatelům pozorovat a začít pomáhat bez zvláštních privilegií. Proto je Debian často popisován jako “meritokracie”.
Tato účinná operativní metoda zaručuje kvalitu přispěvatelů v “klíčových” týmech Debianu. Tato metoda není v žádném případě dokonalá a občas se vyskytnou tací, kteří nepřijmou tento způsob fungování. Výběr vývojářů přijatých do týmů se může zdát trochu svévolný, nebo dokonce nespravedlivý. Navíc, ne každý má stejnou představu o službách očekávaných od těchto týmů. Pro někoho je nepřijatelné muset čekat osm dní pro zahrnutí nového debianovského balíčku, zatímco ostatní budou trpělivě čekat tři týdny bez problémů. Jako takové, se pravidelně vyskytují stížnosti od těch nespokojených na “kvalitu služeb” některých týmů.

1.3.2. Aktivní role uživatelů

One might wonder if it is relevant to mention the users among those who work within the Debian project, but the answer is a definite yes: they play a critical role in the project. Far from being “passive”, some users run development versions of Debian and regularly file bug reports to indicate problems. Others go even further and submit ideas for improvements, by filing a bug report with a severity level of “wishlist”, or even submit corrections to the source code, called “patches” (see 1.3.2.3 – „Sending fixes“).

1.3.2.1. Reporting bugs

The fundamental tool for submitting bugs in Debian is the Debian Bug Tracking System (Debian BTS), which is used by large parts of the project. The public part (the web interface) allows users to view all bugs reported, with the option to display a sorted list of bugs selected according to various criteria, such as: affected package, severity, status, address of the reporter, address of the maintainer in charge of it, tag, etc. It is also possible to browse the complete historical listing of all discussions regarding each of the bugs.
Sledovcí systém chyb Debianu (Debian BTS) je používán velkými částmi projektu. Veřejná část (webové rozhraní) umožňuje uživatelům zobrazit všechny ohlášené chyby, s možností zobrazit seřazený seznam chyb vybraných podle různých kritérií, jako například: dotčený balíček, závažnost, stav, adresa ohlašovatele, adresa zodpovědného správce, tag, apod. Je také možné procházet celý historický výpis všech diskusí týkajících se jednotlivých chyb.
Pod povrchem je Debian BTS založen na e-mailu: všechny informace, které uchovává, pocházejí ze zpráv odeslaných různými osobami. Všechny e-maily odeslané na budou tedy přiřazeny k historii chyby číslo 12345. Oprávněné osoby mohou chybu “uzavřítٌ” napsáním zprávy popisující důvody rozhodnutí o uzavření na (chyba je uzavřena, pokud je uvedený problém vyřešen nebo již není relevantní). Nová chyba je hlášena zasláním e-mailu na podle konkrétního formátu, který identifikuje dotyčný balíček. Adresa umožňuje editaci všech “meta-informací” vztahujících se k chybě.
The Debian BTS has other functional features, as well, such as the use of tags for labeling bugs. For more information, see
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).
Tento nástroj se nejdříve zaměřuje na vývojové verze, což je místo, kde jsou chyby opraveny. V praxi nejsou chyby ve stabilní verzi Debianu vítány, s velmi málo vyjímkami pro bezpečnostní aktualizace nebo důležité aktualizace (pokud, například, balíček vůbec nefunguje). Náprava menší chyby v debianovském balíčku musí tak počkat na další stabilní verzi.

1.3.2.2. Translation and documentation

Additionally, numerous satisfied users of the service offered by Debian like to make a contribution of their own to the project. As not everyone has appropriate levels of expertise in programming, they may choose to assist with the translation and review of documentation. There are language-specific mailing lists to coordinate this work.

1.3.2.3. Sending fixes

More advanced users might be able to provide a fix to a program sending a patch.
Patch je soubor popisující změny, které mají být provedeny na jednom nebo více odkazovaných souborech. Konkrétně, obsahuje seznam řádků k odstranění nebo přidání do kódu, stejně jako (někdy) řádky odebrané z referenčního textu, nahrazující modifikace v kontextu (umožňující identifikaci umístění změn, pokud čísla řádlů byla změněna).
Patch je soubor popisující změny, které mají být provedeny na jednom nebo více odkazovaných souborech. Konkrétně, obsahuje seznam řádků k odstranění nebo přidání do kódu, stejně jako (někdy) řádky odebrané z referenčního textu, nahrazující modifikace v kontextu (umožňující identifikaci umístění změn, pokud čísla řádlů byla změněna).
Nástroj používaný pro uplatnění modifikací předávaných v takovém souboru je jednoduše nazýván patch. nástroj, který jej vytváří se jmenuje diff a používá se takto:
$ diff -u file.old file.new >file.patch
Soubor file.patch obsahuje instrukce pro provedení obsahových změn file.old na file.new. Můžeme jej poslat někomu, kdo jej dokáže použít k vytvoření file.new z těch ostatních dvou, tímto způsobem:
$ patch -p0 file.old <file.patch
Soubor, file.old, je nyní identický s file.new.

1.3.2.4. Other ways of contributing

Všechny tyto příspěvkové mechanismy se stávají více efektivními díky chování uživatelů. Uživatelé jsou daleko tomu být skupinou izolovaných osob, jsou naopak komunitou, kde se spousta výměnných činností děje. Obzvláště sledujeme obdivuhodnou aktivitu na diskuzních emailových seznamech uživatelů, (7 – „Solving Problems and Finding Relevant Information se tomu detailněji věnuje).
Nejen, že uživatelé pomáhají sobě (i ostatním) s technickými věcmi, které se jich bezprostředně týkají, ale také diskutují o nejlepších způsobech, jak přispět k debianovskému projektu a posunout jej dál - diskutování, které často vede k návrhům na vylepšení.
Protože Debian nevydává žádné prostředky na žádnou sebepropagační kampaň, jeho uživatelé hrají podstatnou roli v jeho rozšiřování a tím upevňování jeho věhlasu prostřednictvím osobních rozhovorů apod.
This method works quite well, since Debian fans are found at all levels of the free software community: from install parties (workshops where seasoned users assist newcomers to install the system) organized by local LUGs or “Linux User Groups”, to association booths at large tech conventions dealing with Linux, etc.
Volunteers make posters, brochures, stickers, and other useful promotional materials for the project, which they make available to everyone, and which Debian provides freely on its website and on its wiki:

1.3.3. Týmy a podprojekty

Debian byl od samého počátku organizován kolem konceptu zdrojových balíčků, každý se svým správcem nebo skupinou správců. Časem se vytvořilo hodně pracovních týmů, zabezpečujících administrativu infrastruktury, řízení úkolů nepatřících k žádnému konlrétnímu balíčku (zajišťování kvality, zásady Debianu, instalace, apod.), spolu s posledními týmy, které vyrostly kolem podprojektů.

1.3.3.1. Současné podprojekty Debianu

Každému jeho vlastní Debian! Podprojekt je skupina dobrovolníků zajímajících se o přizpůsobení Debianu zvláštním požadavkům. Za výběrem podskupiny programů stojí jejich směřování k určité oblasti (vzdělávání, lékařství, multimediální tvorba, apod.), podprojekty jsou také mimo jiné zahrnuty ve zdokonalování existujících balíčků, balení chybějícího softwaru, adaptace instalátorů, tvoření zvláštní dokumentace.
Zde je malý výběr současných podprojektů:
  • Debian Jr., 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 world;
  • Debian Med, od Andrease Tilleho, věnuje se lékařství;
  • Debian Multimedia se zaobírá audiem a multimediální tvorbou;
  • Debian GIS, který se stará o aplikace Geografického informačního systému;
  • Debian Accessibility, improving Debian to match the requirements of people with disabilities;
  • Debian Science, finally, working on providing researchers and scientists a better experience using Debian.
  • DebiChem, targeted at Chemistry, provides chemical suites and programs.
The number of projects will most likely continue to grow with time and improved perception of the advantages of Debian sub-projects. 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. Administrativní týmy

Většina administrativních týmů je relativně uzavřená a nabírá nové členy interním zvolením. Nejlepším způsobem jak se stát jejich součástí je intelegentně asistovat současným členům a dávat najevo, že rozumíte jejich cílům a metodám práce.
Ftpmasteři mají na starosti oficiální archív debianovských balíčků. Obhospodařují program, který se přejímá balíčky poslané vývojáři a automaticky je po následné kontrole ukládá na referenční server (ftp-master.debian.org).
Musí také ověřovat licence všech nových balíčků, za účelem ujištění se, je může Debian rozšiřovat, před jejich zahrnutím do tělesa ostatních, už existujících balíčků. Pokud si vývojář přeje balíček vyjmout, oslovuje tento tým skrze systém sledování chyb a ftp.debian.org “pseudo-package”.
Tým Debian System Administrators (DSA) (), jak už název napovídá, je zodpovědný za systémovou administraci řádky servrů používaných projektem. Zabezpečují optimální funkčnost všech základních služeb (DNS, Web, e-mail, shell, apod.), instalačního softwaru požadovaného vývojáři Debianu a provádějí veškerá preventivní bezpečnostní opatření.
Listmasteři obhospodařují emailový server který řídí seznamy pošty. Vytvářejí nové seznamy, zpracovávají odskoky (zprávy o selhání doručení) a udržují spamové filtry (nevyžádané hromadné emaily).
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 of the bug tracking system (BTS), the package tracker, salsa.debian.org (GitLab server, see sidebar TOOL GitLab, Git repository hosting and much more), the services available on qa.debian.org, lintian.debian.org, buildd.debian.org, cdimage.debian.org, etc.

1.3.3.3. Vývojové týmy, Týmy napříč

Na rozdíl od administrativních týmů, vývojové týmy jsou spíše doširoka otevřené, i k spolupracovníkům zvenčí. I když posláním Debianu není vytvářet software, projekt potřebuje určité programy k dosažení svých cílů. Je samozřejmostí, že nástroje vyvinuté pod licencí svobodného softwaru využívají metod ověřených jinde ve světě svobodného softwaru.
Debian vyvinul málo softwaru ve vlastní režii, ale některé programy se staly hvězdami a jejich věhlas se rozšířil za hranice projektu. Dobrými přiklady jsou dpkg, program Debianu pro řízení balíčků (což je vlastně zkratka sousloví Debian PacKaGe a obvykle se vyslovuje “di:pekidž”) a apt, nástroj pro automatickou instalaci jakéhokoliv debianovského balíčku a jejo závislostí, zaručující stálost systému po upgradu (jeho jméno je vytvořeno z počátečních písmen slov Advanced Package Tool). Jejich týmy jsou nicméně mnohem menší, protože je zapotřebí spíše programátorského umu k získání všeobecného porozumění operací takového typu programů.
Nejdůležitějším týmem je asi ten pro instalační program Debianu, debian-installer, který zabezpečuje práci na důležitých součástech od svého počátku, roku 2001. Bylo zapotřebí bezpočet spolupracovnílů, protože je velmi náročné napsat jeden program, který je schopný nainstalovat Debian na různé architektury. Každá má svůj vlastní mechanismus bootování a svůj vlastní bootloader. Všechny tyto práce jsou koordinovány na poštovním seznamu , pod taktovkou Cyrila Bruleboise.
Velmi malý programátorský tým pro debian-cd má neméně skromný úkol. Velké množství spolupracovníků je zodpovědných za svoji architekturu, protože hlavní vývojář nemůže znát drobné nuance ani znát přesný způsob spuštění instalátoru z CD-ROM.
Mnoho týmů spolu musí splupracovat na aktivitě balíčkování: se kupříkladu pokouší zajistit kvalitu projektu Debian na všech úrovních. Seznam rozvíjí Zásady Debianu podle návrhů ze všech míst. Týmy, které mají na starosti některou z architektur () sestavují všechny balíčky, adoptují je tak na své jednotlivé architektury, pokud je třeba.
Další týmy řídí nejdůležitější balíčky za účelem zajištění údržby aniž by naložili příliš velký náklad pouze na jedna ramena; toto je příklad knihovny jazyka C a , kompilátoru C na seznamu nebo Xorg na (tato skupina je také známá jako X Strike Force).