Inhaltsverzeichnis

Allgemein

Wird ein Port geändert weil es eine neuere Version gibt oder andere Änderungen notwendig sind wird im Allgemeinen ein Patch erzeugt. Im Weitere wird das Vorgehen beschrieben welches man als Maintainer anwenden kann.

Sicherung des aktuellen Ports

Der aktuelle Port wie er offiziell ist muss zunächst gesichert werden. Hierzu wird er in ein temporäres Verzeichnis kopiert:

mkdir /tmp/portname
cd /usr/ports/category/portname
rsync -av * /tmp/portname/

Port ändern

Als nächstes kann der Port unter /usr/ports/category/portname geändert und entsprechend angepasst werden. Zudem ermöglicht es die Installation und Deinstallation zu testen.

distinfo erstellen

Ändern sich Dateien welche heruntergeladen werden muss distinfo neu generiert werden. Hierzu wird im Port einfach die Datei distinfo gelöscht und anschließend als root mit folgendem Befehl wieder angelegt:

# make makesum

Port testen

Der Port sollte testweise installiert und deinstalliert werden so dies möglich ist. Zusätzlich sollte er mit ports-mgmt/portlint untersucht werden.

Im Verzeichnis des Ports wird hierzu 'portlint aufgerufen:

# portlint -abc

Patch erzeugen

Ist die Arbeit beendet und alles funktioniert wie geplant muss noch der Patch erzeugt werden um ihn später zu übermitteln. Zunächst wird das Portverzeichnis von möglichem Unrat befreit. Hierzu wird als root im Portverzeichnis ein clean gemacht.

# make clean

Das work Verzeichnis sollte nun verschwunden sein (falls eines vorhanden war).

Nun wir der Patch erzeugt.

% diff -bBruN /tmp/portname /usr/ports/category/portname > patch.txt

Somit wird ein Patch namens patch.txt erzeugt der alle Änderungen im Port gegenüber der alten Version beinhaltet.

Patch submitten

Um den Patch einzusenden wird das Programm send-pr verwendent.

% send-pr -a patch.txt

Sind mehrere Patches vorhanden kann die -a patchname.txt Option mehrmals verwendet werden. Es werden dann alle Dateien an den PR angehängt.

Im sich nun öffnenden send-pr Sind schon einige Punkte vorbelegt.