Product SiteDocumentation Site

15.4. Paketbetreuer werden

15.4.1. Lernen Pakete zu erstellen

Das Erstellen eines qualitativ hochwertigen Debian-Pakets ist nicht immer einfach, und um Paketbetreuer zu werden, muss man sowohl in der Theorie als auch in der Praxis einiges lernen. Es geht nicht nur darum, Software zu erstellen und zu installieren; vielmehr entsteht der Großteil der Komplexität aus dem Verständnis für die Probleme und Konflikte, und im Weiteren für die Wechselwirkungen mit der Unzahl der anderen verfügbaren Pakete.

15.4.1.1. Regeln

A Debian package must comply with the precise rules compiled in the Debian policy, and each package maintainer must know them. There is no requirement to know them by heart, but rather to know they exist and to refer to them whenever a choice presents a non-trivial alternative. Every Debian maintainer has made mistakes by not knowing about a rule, but this is not a huge problem as long as the error gets fixed when a user reports it as a bug report (which tends to happen fairly soon thanks to advanced users).

15.4.1.2. Verfahren

Debian is not a simple collection of individual packages. Everyone's packaging work is part of a collective project; being a Debian developer involves knowing how the Debian project operates as a whole. Every developer will, sooner or later, interact with others. The Debian Developer's Reference (in the developers-reference package) summarizes what every developer must know in order to interact as smoothly as possible with the various teams within the project, and to take the best possible advantages of the available resources. This document also enumerates a number of duties a developer is expected to fulfill.

15.4.1.3. Hilfsprogramme

Many tools help package maintainers in their work. This section describes them quickly, but does not give the full details, since they all have comprehensive documentation of their own.
15.4.1.3.1. Das Programm lintian
This tool is one of the most important: it's the Debian package checker. It is based on a large array of tests created from the Debian policy, and detects quickly and automatically many errors that can then be fixed before packages are released.
Dieses Programm ist nur ein Gehilfe und versteht manchmal etwas falsch (zum Beispiel ist lintian manchmal nicht aktuell, da sich das Debian-Regelwerk im Laufe der Zeit verändert). Es ist auch nicht vollständig flächendeckend: keine Lintian-Fehlermeldung zu erhalten, sollte nicht als Nachweis verstanden werden, dass das Paket perfekt ist; bestenfalls verhindert es die häufigsten Fehler.
15.4.1.3.2. Das Programm piuparts
Dies ist ein weiteres wichtiges Tool; es automatisiert die Installation, Aktualisierung und Deinstallation eines Pakets (in einer isolierten Umgebung) und prüft, dass keine dieser Aktivitäten zu einem Fehler führt. Es kann helfen, fehlende Abhängigkeiten aufzudecken und es ermittelt Dateien, die fälschlicher Weise nach einer Deinstallation auf dem System verblieben sind.
15.4.1.3.3. devscripts
Das Paket devscripts enthält zahlreiche Programme, die einem Debian-Entwickler bei einem weiten Spektrum seiner Arbeit helfen:
  • debuild ermöglicht es, ein Paket zu erzeugen (mit dpkg-buildpackage) und dann lintian auszuführen, um seine Übereinstimmung mit dem Debian-Regelwerk zu überprüfen.
  • debclean bereinigt ein Quellpaket, nachdem ein Binärpaket erzeugt worden ist.
  • dch ermöglicht das schnelle und einfache Editieren einer debian/changelog-Datei in einem Quellpaket.
  • uscan überprüft, ob eine neue Version eines Programms vom ursprünglichen Verfasser veröffentlicht worden ist; dies erfordert eine debian/watch-Datei mit einer Beschreibung des Ortes derartiger Veröffentlichungen.
  • debi allows installing (with dpkg -i) the Debian package that was just generated without the need to type its full name and path.
  • In ähnlicher Weise ermöglicht es debc, den Inhalt eines vor kurzem erzeugten Pakets (mit dpkg -c) abzufragen, ohne seinen vollständigen Namen und Pfad eingeben zu müssen.
  • bts überwacht das Fehlerverfolgungssystem von der Befehlszeile aus; dieses Programm erzeugt automatisch die passenden E-Mails.
  • debrelease lädt ein kürzlich erzeugtes Paket auf einen entfernten Server hoch, ohne den vollständigen Namen und Pfad der dazugehörigen .changes-Datei eingeben zu müssen.
  • debsign signiert die *.dsc- und *.changes-Dateien.
  • uupdate automatisiert die Erstellung einer überarbeiteten Paketversion, wenn eine neue Ursprungsversion veröffentlicht worden ist.
15.4.1.3.4. debhelper und dh-make
Debhelper is a set of scripts easing the creation of policy-compliant packages; these scripts are invoked from debian/rules. Debhelper has been widely adopted within Debian, as evidenced by the fact that it is used by the majority of official Debian packages. All the commands it contains have a dh_ prefix.
The dh_make script (in the dh-make package) creates files required for generating a Debian package in a directory initially containing the sources for a piece of software. As can be guessed from the name of the program, the generated files use debhelper by default.
15.4.1.3.5. dupload und dput
Die Befehle dupload und dput ermöglichen es, ein Debian-Paket auf einen (möglicherweise entfernten) Server hochzuladen. Auf diese Weise können Entwickler ihr Paket auf dem Debian-Hauptserver (ftp-master.debian.org) veröffentlichen, so dass es in das Archiv integriert und über die Spiegelserver verteilt werden kann. Diese Befehle nehmen eine *.changes-Datei als Parameter und leiten die übrigen relevanten Dateien aus ihrem Inhalt ab.

15.4.2. Annahmeverfahren

Becoming a “Debian developer” is not a simple administrative matter. The process comprises several steps, and is as much an initiation as it is a selection process. In any case, it is formalized and well-documented, so anyone can track their progression on the website dedicated to the new member process.

15.4.2.1. Voraussetzungen

Von allen Kandidaten wird erwartet, dass sie wenigstens ausreichende Englischkenntnisse haben. Dies ist auf allen Ebenen erforderlich: natürlich für die anfängliche Kommunikation mit dem Prüfer, aber auch später, da Englisch für den Großteil der Dokumentation die bevorzugte Sprache ist; auch Paketbenutzer werden in Englisch kommunizieren, wenn sie Fehler melden, und werden Antworten in Englisch erwarten.
Die andere Voraussetzung bezieht sich auf die Motivation. Ein Debian-Entwickler zu werden, ist ein Prozess, der nur dann Sinn macht, wenn der Kandidat weiß, dass sein Interesse an Debian viele Monate lang anhalten wird. Der Aufnahmeprozess selbst kann mehrere Monate dauern, und Debian benötigt Entwickler langfristig; jedes Paket benötigt dauerhafte Betreuung und nicht nur einen anfänglichen Upload.

15.4.2.2. Registrierung

Er erste (wirkliche) Schritt besteht darin, einen Sponsor oder Befürworter zu finden; hierunter ist ein offizieller Entwickler zu verstehen, der bereit ist zu bestätigen, dass er davon überzeugt ist, dass die Aufnahme von X für Debian von Vorteil sein würde. Dies setzt normalerweise voraus, dass der Kandidat bereits innerhalb der Gemeinschaft aktiv gewesen und seine Arbeit anerkannt ist. Falls der Kandidat schüchtern ist und seine Arbeit nicht öffentlich angepriesen hat, kann er versuchen, einen Debian-Entwickler zu seiner Unterstützung zu bewegen, indem er ihm seine Arbeit privat zeigt.
At the same time, the candidate must generate a public/private RSA key pair with GnuPG, which should be signed by at least two official Debian developers. The signature authenticates the name on the key. Effectively, during a key signing party, each participant must show an official identification (usually an ID card or passport) together with their key identifiers. This step confirms the link between the human and the keys. This signature thus requires meeting in real life. If you have not yet met any Debian developers in a public free software conference, you can explicitly seek developers living nearby using the list on the following webpage as a starting point.
Nachdem die Registrierung auf nm.debian.org von einem Unterstützer bestätigt wurde, wird dem Kandidaten ein Antragsmanager zugewiesen. Dieser Antragsmanager wird fortan das Verfahren weiterverfolgen und die verschiedenen Schritte, die dieser Prozess umfasst, bestätigen.
The first verification is an identity check. If you already have a key signed by two Debian developers, this step is easy; otherwise, the application manager will try and guide you in your search for Debian developers close by to organize a meet-up and a key signing.

15.4.2.3. Die Prinzipien akzeptieren

These administrative formalities are followed by philosophical considerations. The point is to make sure that the candidate understands and accepts the social contract and the principles behind Free Software. Joining Debian is only possible if one shares the values that unite the current developers, as expressed in the founding texts (and summarized in Kapitel 1, Das Debian-Projekt).
In addition, each candidate wishing to join the Debian ranks is expected to know the workings of the project, and how to interact appropriately to solve the problems they will doubtless encounter as time passes. All of this information is generally documented in manuals targeting the new maintainers, and in the Debian developer's reference. An attentive reading of this document should be enough to answer the examiner's questions. If the answers are not satisfactory, the candidate will be informed. They will then have to read (again) the relevant documentation before trying again. In the cases where the existing documentation does not contain the appropriate answer for the question, the candidate can usually reach an answer with some practical experience within Debian, or potentially by discussing with other Debian developers. This mechanism ensures that candidates get involved somewhat in Debian before becoming a full part of it. It is a deliberate policy, by which candidates who eventually join the project are integrated as another piece of an infinitely extensible jigsaw puzzle.
This step is usually known as the Philosophy & Procedures (P&P for short) in the lingo of the developers involved in the new member process.

15.4.2.4. Fähigkeiten überprüfen

Jeder Antrag, ein offizieller Debian-Entwickler zu werden, muss begründet werden. Um Projektmitglied zu werden, muss man zeigen, dass dieser Status gerechtfertigt ist, und dass er dem Kandidaten seine Unterstützung für Debian erleichtert. Die häufigste Begründung besteht darin, dass der Status als Debian-Entwickler die Betreuung eines Debian-Pakets erleichtert, aber dies ist nicht die einzige. Einige Entwickler treten dem Projekt bei, um zur Übertragung auf eine bestimmte Architektur beizutragen, andere möchten die Dokumentation verbessern und so weiter.
Dieser Schritt bietet dem Kandidaten die Möglichkeit zu erklären, was er innerhalb des Debian-Projekts zu tun beabsichtigt, und zu zeigen, was er zu diesem Zweck bereits getan hat. Debian ist ein pragmatisches Projekt, und es genügt nicht, etwas zu sagen, falls die Taten den Aussagen nicht entsprechen. Wenn die beabsichtigte Rolle innerhalb des Projekts sich auf die Paketbetreuung bezieht, wird im allgemeinen die erste Version des angehenden Pakets von einem Sponsor aus den Reihen der bereits registrierten Debian-Entwickler technisch überprüft und auf die Debian-Server hochgeladen.
Schließlich überprüft der Prüfer die technischen (Paketerstellungs-)Fähigkeiten des Kandidaten mit einem ausführlichen Fragebogen. Falsche Antworten sind nicht erlaubt, aber die Beantwortungszeit ist nicht begrenzt. Die gesamte Dokumentation darf benutzt werden, und mehrere Versuche sind möglich, falls die ersten Antworten nicht befriedigend sind. Dieser Schritt beabsichtigt nicht zu diskriminieren, sondern wenigstens ein Mindestmaß an Wissen, über das alle neuen Mitwirkenden verfügen, sicherzustellen.
This step is known as the Tasks & Skills step (T&S for short) in the examiners' jargon.

15.4.2.5. Endgültige Bestätigung

Im allerletzten Schritt wird der gesamte Prozess durch einen DAM (Debian Account Manager) begutachtet. Der DAM wird alle vom Prüfer über den Kandidaten zusammengetragenen Informationen nachprüfen und dann entscheiden, ob ein Konto auf den Debian-Servern eingerichtet wird oder nicht. Falls zusätzliche Informationen benötigt werden, kann die Kontoerstellung verzögert werden. Ablehnungen sind recht selten, falls der Prüfer gute Arbeit bei der Verfolgung des Vorgangs geleistet hat, aber sie kommen manchmal vor. Sie sind niemals endgültig, und der Kandidat kann es später noch einmal versuchen.
The DAM's decision is authoritative and (almost) without appeal, which explains why the people in that seat have often been criticized in the past.