# 11. Traditional Packaging

Der Großteil dieses Leitfadens beschäftigt sich mit verteilter Ubuntu Entwicklung (UDD), die das verteilte Versionsverwaltungssystem (DVCS) Bazaar verwendet, um Paketquellen abzurufen und Fehlerbehebungen mit Zusammenführungsvorschlägen einzureichen. Dieser Artikel diskutiert, was wir aus Mangel eines besseren Wortes traditionelle Paketierung nennen. Vor der Einführung von Bazaar für die Ubuntu Entwicklung waren das typische Methoden, um zu Ubuntu beizutragen.

In einigen Fällen wird es nötig sein, diese Hilfsmittel an Stelle von UDD zu benutzen. Daher solltest du dich vorher mit ihnen vertraut machen. Bevor du beginnst, solltest du den Artikel :doc:’Getting Set Up. <./getting-set-up>’ bereits gelesen haben.

## 11.1. Den Quelltext bekommen

Um das Quellpaket zu bekommen, kannst du folgendes benutzen:

    $ apt-get source <package_name>

Diese Methode hat allerdings einige Nachteile. Sie lädt die Version von der auf deinem System verfügbaren Quelle. Voraussichtlich läuft bei dir die letzte stabile Veröffentlichung, aber du möchtest deine Änderungen, unabhängig der Entwicklerveröffentlichung, berücksichtigt haben. Für diesen Fall bietet das “ubuntu-dev-tools” Paket ein Helferskript:

    $ pull-lp-source <package_name>

Grundsätzlich wird die letzte Entwicklerversion heruntergeladen. Du kannst ebenso eine spezifische Ubuntu Veröffentlichung wählen:

    $ pull-lp-source <package_name> trusty

to pull the source from the `trusty` release, or:

    $ pull-lp-source <package_name> 1.0-1ubuntu1

um die Version “1.0-1 ubuntu1” des Pakets herunterzuladen. Für weitere Informationen zu den Befehlen schau unter “man pull-lp-source” nach.

Nehmen wir beispielsweise an, wir hätten einen Fehlerbericht, der meldet, dass die Schreibweise von “colour” in der “xicc”-Beschreibung “color” lauten sollte.

    $ pull-lp-source xicc 0.2-3

## 11.2. Einen Debdiff erstellen

Ein “debdiff” zeigt die Unterschiede zwischen zwei Debian-Paketen. Der dafür notwendige Befehl heißt ebenfalls “debdiff”. Er ist Teil des “devscripts”-Paketes. Für alle Details schau unter “man debdiff” nach. Um zwei Quellpakete zu vergleichen, gib ihre “dsc”-Datein als Bedingungen an:

    $ debdiff <package_name>_1.0-1.dsc <package_name>_1.0-1ubuntu1.dsc

Um mit unserem Beispiel fortzufahren, lasst uns die”debian/control” bearbeiten und unseren ‘Fehler beheben’:

    $ cd xicc-0.2
    $ sed -i 's/colour/color/g' debian/control

Wir müssen uns also an die ‘Debian Maintainer Spec <https://wiki.ubuntu.com/DebianMaintainerField>’ halten und zum Ersetzen die “debian/control” verändern:

    Maintainer: Ross Burton <ross@debian.org>

mit:

    Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
    XSBC-Original-Maintainer: Ross Burton <ross@debian.org>

Du kannst dafür das “update-maintainer”-Werkzeug aus dem “ubuntu-dev-tools”-Paket benutzen.

Denk daran, deine Änderungen in “debian/changelog” mit Hilfe von “dch -i” zu dokumentieren. Dann können wir ein neues Quellpaket erstellen:

    $ debuild -S

Nun können wir unsere Änderungen mit “debdiff” untersuchen:

    $ cd ..
    $ debdiff xicc_0.2-3.dsc xicc_0.2-3ubuntu1.dsc | less

Um eine Patch-Datei zu erstellen, die du an andere verschicken, oder zur Unterstützung an einen Fehlerbericht anhängen kannst, benutze:

    $ debdiff xicc_0.2-3.dsc xicc_0.2-3ubuntu1.dsc > xicc_0.2-3ubuntu1.debdiff

## 11.3. Einen Debdiff anwenden

Um den “debdiff”-Befehl anzuwenden, stelle zuerst sicher, dass du den Quellcode der Version hast, gegen deren Fehler du die Änderung erstellt hast:

    $ pull-lp-source xicc 0.2-3

Wechsele in einer Konsole zu dem Verzeichnis, in dem die Quelldatei unkomprimiert liegt:

    $ cd xicc-0.2

Ein “debdiff” ist wie eine normale Patch-Datei. Wende sie wie gewohnt an mit:

    $ patch -p1 < ../xicc_0.2.2ubuntu1.debdiff