Kapitel 2. Voraussetzungen

Inhaltsverzeichnis

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. Archive situation
2.8. Contribution approaches
2.9. Novice contributor and maintainer

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 Abschnitt 2.8, „Contribution approaches“).

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

Please understand Debian’s social dynamics to prepare yourself for interactions with Debian:

  • 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.
    • You should adapt yourself to change.

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.

[Anmerkung] Anmerkung

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

Please make yourself ready to read the pertinent part of the official Debian documentation together with this guide as needed to generate perfect Debian packages:

If this guide contradicts the official Debian documentation, the official Debian documentation is correct. Please file a bug report on the debmake-doc package using the reportbug command.

Here are alternative tutorial documents, which you may read along with this guide:

[Tipp] Tipp

When reading these tutorials, you should consider using the debmake command in place of the dh_make command for better template files.

Before you decide to ask your question in some public place, please do your part of the effort, i.e., read the fine documentation:

Your desired information can be found effectively by using a well-formed search string such as “keyword site:lists.debian.org” to limit the search domain of the web search engine.

Making a small test package is a good way to learn details of the packaging. Inspecting existing well maintained packages is the best way to learn how other people make packages.

If you still have questions about the packaging, you can ask them interactively:

The more experienced Debian developers will gladly help you, if you ask properly after making your required efforts.

[Achtung] Achtung

Debian development is a moving target. Some information found on the web may be outdated, incorrect, and non-applicable. Please use it carefully.

Please realize the situation of the Debian archive.

  • Debian already has packages for most kinds of programs.
  • The number of packages already in the Debian archive is several tens of times greater than that of active maintainers.
  • Unfortunately, some packages lack an appropriate level of attention by the maintainer.

Thus, contributions to packages already in the archive are far more appreciated (and more likely to receive sponsorship for uploading) by other maintainers.

[Tipp] Tipp

The wnpp-alert command from the devscripts package can check for installed packages up for adoption or orphaned.

Here is pseudo-Python code for your contribution approaches to Debian with a program:

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)

Here:

You either need to file an ITP or adopt a package to start working on it. See the “Debian Developer’s Reference”:

The novice contributor and maintainer may wonder what to learn to start your contribution to Debian. Here are my suggestions depending on your focus:

  • Packaging

    • Basics of the POSIX shell and make.
    • Some rudimentary knowledge of Perl and Python.
  • Translation

    • Basics of how the PO based translation system works.
  • Documentation

    • Basics of text markups (XML, ReST, Wiki, …).

The novice contributor and maintainer may wonder where to start your contribution to Debian. Here are my suggestions depending on your skills:

These activities should give you good exposure to the other Debian people to establish your credibility.

The novice maintainer should avoid packaging programs with the high security exposure:

  • setuid or setgid program
  • daemon program
  • program installed in the /sbin/ or /usr/sbin/ directories

When you gain more experience in packaging, you’ll be able to package such programs.



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

[5] This is not the absolute requirement. The hostile upstream may become a major resource drain for us all. The friendly upstream can be consulted to solve any problems with the program.