Chapter 2. Voraussetzungen

Table of Contents

2.1. Leute bei Debian
2.2. Wie Sie beitragen können
2.3. Soziale Dynamik von Debian
2.4. Technische Erinnerungen
2.5. Debian-Dokumentation
2.6. Hilfequellen
2.7. Archivsituation
2.8. Wege, beizutragen
2.9. Neue Beitragende und Betreuer

Hier sind die Voraussetzungen, die Sie verstehen müssen, um bei Debian mitzumachen.

Es nehmen verschiedene Arten von Leuten mit verschieden Rollen rund um Debian teil:

  • Originalautor: die Person, die das ursprüngliche Programm erstellte.
  • Originalbetreuer: Die Person, die derzeit das Programm betreut.
  • Betreuer: Die Person, die das Debian-Paket des Programms erstellt.
  • Sponsor: Eine Person, die den Betreuern beim Hochladen (nach Prüfen des Inhalts) des Pakets in das offizielle Debian-Paketarchiv hilft.
  • Mentor: Eine Person, die neuen Betreuern beim Paketieren usw. hilft.
  • Debian-Entwickler (DD): ein Mitglied des Debian-Projekts mit vollen Hochlade-Rechten in das offizielle Debian-Paketarchiv.
  • Debian-Betreuer (DM): Eine Person, mit begrenzten Hochladerechten in das offizielle Debian-Paketarchiv.

Bitte beachten Sie, dass Sie nicht über Nacht ein offizieller Debian-Entwickler (DD) werden können, da es mehr als technischer Fähigkeit bedarf. Seien Sie davon nicht entmutigt. Falls es für andere nützlich ist, können Sie dennoch Ihre Pakete hochladen, entweder als Betreuer durch einen Sponsor oder als ein Debian-Betreuer.

Bitte beachten Sie, dass Sie keine neuen Pakete erstellen müssen, um ein offizieller Debian-Entwickler zu werden. Auch Beiträge zu bestehenden Paketen können ein Weg sein, ein offizieller Debian-Entwickler zu werden. Es gibt viele Pakete, die auf gute Betreuer warten (siehe Section 2.8, “Wege, beizutragen”).

Bitte lesen Sie die folgenden Dokumenten, um zu verstehen, wie Sie zu Debian beitragen können:

Bitte verstehen Sie die soziale Dynamik, um sich für die Wechselwirkungen mit Debian vorzubereiten:

  • Wir sind alle Freiwillige.

    • Sie können anderen nicht vorschreiben, was getan werden soll.
    • Sie sollten motiviert sein, die Dinge selbst zu tun.
  • Freundliche Zusammenarbeit ist der Motor.

    • Ihr Beitrag sollte Andere nicht überlasten.
    • Ihr Beitrag hat nur Wert, wenn ihn andere wertschätzen.
  • Debian ist nicht Ihre Schule, bei der die Lehrer sich automatisch um Sie kümmern.

    • Sie sollten vieles selbst lernen können.
    • Aufmerksamkeit von anderen Freiwilligen ist ein rares Gut.
  • Debian verbessert sich ständig.

    • Es wird erwartet, dass Sie hochqualitative Pakete erstellen.
    • Sie sollten sich Änderungen anpassen.

Da in der restlichen Anleitung nur auf die technischen Aspekte der Paketierung fokusiert wird, wird auf folgendes zum Verständnis der sozialen Dynamik von Debian verwiesen:

Es folgen ein paar technische Erinnerungen, die anderen Betreuern bei der Arbeit an Ihrem Paket helfen und das Ergebnis von Debian insgesamt effektiv maximieren.

[Note] Note

Die Fehlersuche in Software kann mehr Zeit verbrauchen, als die eigentliche Erstellung.

Bitte lesen Sie nach Bedarf den einschlägigen Anteil der neusten Debian-Dokumentation, um perfekte Debian-Pakete zu erstellen:

All these documents are published to https://www.debian.org using the unstable suite versions of corresponding Debian packages. If you wish to have local accesses to all these documents from your base system, please consider to use techniques such as apt-pinning and chroot (Section 7.10, “chroot”).[5]

Falls dieser Leitfaden der offiziellen Debian-Dokumentation widerspricht, dann ist die offizielle Debian-Dokumentation korrekt. Bitte reichen Sie mittels des Befehls reportbug (auf englisch) einen Fehlerbericht gegen das Paket debmake-doc ein.

Hier sind alternative Anleitungen, die Sie zusammen mit diesem Leitfaden lesen können:

[Tip] Tip

Wenn Sie diese Anleitungen lesen, sollten Sie in Erwägung ziehen, den Befehl debmake an Stelle des Befehls dh_make zu verwenden.

Bevor Sie Ihre Fragen an einem öffentlichen Ort stellen, bemühen Sie sich vorher, die Antwort zu ermitteln, z.B. lesen Sie die gute Dokumentation:

Ihre gewünschten Informationen können effektiv gefunden werden, indem Sie einen wohlgeformten Suchbegriff wie das Schlüsselwort site:lists.debian.org verwenden, um den Suchbereich der Web-Suchmaschine einzuschränken.

Die Herstellung eines kleinen Testpaketes ist eine gute Möglichkeit, Details des Paketierens zu erfahren. Bestehende, gut gewartete Debian-Pakete zu inspizieren ist der beste Weg, um zu lernen, wie andere Menschen Debian-Pakete erstellen.

Falls Sie immer noch Fragen über das Paketieren haben, können Sie die Fragen direkt stellen (auf Englisch):

Die erfahreneren Debian-Entwickler werden Ihnen gerne helfen, wenn Sie nach den erforderlichen Vorarbeiten richtig fragen.

[Caution] Caution

Die Debian-Entwicklung ist ein sich entwickelndes Projekt. Einige Informationen, die im Web gefunden werden, könnten veraltet, falsch und nicht (mehr) zutreffend sein. Bitte benutzen Sie sie sorgfältig.

Bitte begreifen Sie die Situation des Debian-Archivs.

  • Debian hat bereits Pakete für die meisten Programmarten.
  • Die Anzahl an Paketen im Debian-Archiv ist mehrere zehnmal so groß wie die Anzahl der aktiven Betreuer.
  • Bei einigen Paketen fehlt leider die entsprechende Aufmerksamkeit des Betreuers.

Daher werden Beiträge zu Paketen, die sich bereits im Archiv befinden, von anderen Betreuern weitaus mehr geschätzt (und erhalten eher Sponsoring für das Hochladen).

[Tip] Tip

Der Befehl wnpp-alert aus dem Paket devscripts kann prüfen, ob installierte Pakete zur Adoption freigegeben oder verwaist sind.

[Tip] Tip

The how-can-i-help package can show opportunities for contributing to Debian on packages installed locally.

Hier ist Pseudo-Python-Code für Ihre Wege, zu Debian mit einem Programm beizutragen:

if exist_in_debian(program):
  if is_team_maintained(program):
    join_team(program)
  if is_orphaned(program): # maintainer: Debian QA Group
    adopt_it(program)
  elif is_RFA(program): # Request for Adoption
    adopt_it(program)
  else:
    if need_help(program):
      contact_maintainer(program)
      triaging_bugs(program)
      preparing_QA_or_NMU_uploads(program)
    else:
      leave_it(program)
else: # new packages
  if not is_good_program(program):
    give_up_packaging(program)
  elif not is_distributable(program):
    give_up_packaging(program)
  else: # worth packaging
    if is_ITPed_by_others(program):
      if need_help(program):
        contact_ITPer_for_collaboration(program)
      else:
        leave_it_to_ITPer(program)
    else: # really new
      if is_applicable_team(program):
        join_team(program)
      if is_DFSG(program) and is_DFSG(dependency(program)):
        file_ITP(program, area="main") # This is Debian
      elif is_DFSG(program):
        file_ITP(program, area="contrib") # This is not Debian
      else: # non-DFSG
        file_ITP(program, area="non-free") # This is not Debian
      package_it_and_close_ITP(program)

Hier:

Sie müssen entweder einen ITP einreichen oder ein Paket adoptieren, um mit der Arbeit daran zu beginnen. Siehe die »Debian-Entwickler-Referenz«:

Die neuen Beitragenden und Betreuer könnten sich fragen, was sie lernen sollten, um zu Debian beizutragen. Hier sind meine Vorschläge, abhängig von Ihrem Schwerpunkt:

  • Paketierung

    • Grundlagen der POSIX-Shell und Make.
    • Etwas rudimentäres Wissen von Perl und Python.
  • Übersetzungen

    • Grundlagen, wie das PO-basierte Übersetzungssystem funktioniert.
  • Dokumentation

    • Grundlagen der Textauszeichnung (XML, ReST, Wiki, …).

Der neue Beitragende und Betreuer könnte sich fragen, wo er mit Beiträgen zu Debian beginnen sollte. Hier sind meine Vorschläge, abhängig von Ihren Fertigkeiten:

Diese Aktivitäten sollten Ihnen einen guten Kontakt zu den anderen Debian-Menschen verschaffen, um Ihre Glaubwürdigkeit zu begründen.

Der unerfahrene Betreuer sollte das Paketieren von Programmen mit einer hohen Sicherheitsexposition vermeiden:

  • Setuid- oder Setgid-Programme
  • Daemon-Programme
  • Programme, die in den Verzeichnissen /sbin/ oder /usr/sbin/ installiert werden

Wenn Sie mehr Erfahrung beim Paketieren gesammelt haben, werden Sie in der Lage sein, solche Programme zu paketieren.



[4] Die überwältigende Mehrheit der Debian-Betreuer verwenden git statt anderer VCS-Systeme wie hg, bzr, usw.

[5] It is unwise to run your base system under the pure unstable suite even for the development system. Normally, most package development activities use unstable chroot as in Section 7.10, “chroot”. By using virtualization, you can test demanding situation such as the full Desktop system, network daemons, and system installer in the unstable suite environment even from the base system running the stable suite.

[6] Das ist nicht die absolute Voraussetzung. Die ablehnende Einstellung der Originalautoren kann für uns alle zu einem großen Ressourcenproblem werden. Die freundlichen Originalautoren können konsultiert werden, um alle Probleme mit dem Programm zu lösen.