[OpenBSD]

Anleitung zum Testen von OpenBSD-Ports


Inhaltsverzeichnis


Einführung

Der Portstree ist ein riesiges Stück Arbeit, das OpenBSD-Benutzern erlaubt, Programme von Dritten zu benutzen, ohne Zeit mit Patchen, Konfigurieren oder dem Installieren jedes einzelnen Teils zu verschwenden. Diese Arbeit wird von einer Gruppe Freiwilliger gemacht, die ihre Zeit opfern, um Anwendungsprogramme über die ganze Breite der OpenBSD-Plattformen zu portieren und zu testen. Viele Leute glauben, dass sie dabei nicht helfen können, weil sie nicht genug Fachwissen haben; das ist aber falsch, sie können den Programmieren durchaus helfen, schneller und besser zu arbeiten.

So wirds gemacht

Testen von Updates oder neuen Ports, die auf der ports-Mailingliste angekündigt wurden. Indem du das tust, reduzierst du die Wartezeit bei Commits und erhöhst auch die Anzahl der Ports, die committed werden (viele Ports werden mangels Tests gar nicht erst committed!).

Erste Schritte

Der Portstree wird mittels OpenBSD-current entwickelt; es gibt also keinerlei Garantie, dass neue Ports oder Updates auch in den anderen Branches normal funktionieren. Das bedeutet, dass du dein System auf dem neusten Stand halten solltest (Anweisungen dazu gibt es auf der anoncvs- sowie der »-current folgen«-Seite). Außerdem ist es empfehlenswert, sich auf den ports- und den ports-changes-Mailinglisten einzuschreiben. Auf diese Weise wirst du über neue und geänderte Ports informiert.

Testen

Es gibt zwei Typen von Einsendungen auf den Mailinglisten; neue Ports und Updates. Neue Ports werden generell als Tarball-Anhänge oder URLs gepostet. Es ist immer eine gute Idee, sie in ein Verzeichnis wie /usr/ports/mystuff/ zu entpacken und von dort zu testen. Updates sind generell eine Diff gegen den -current-Portstree, also ist es am besten, den Port nach mystuff/ zu kopieren und dann diff anzuwenden, damit es nicht zu einem kaputten Tree kommt.

Ein Schritt-für-Schritt-Erzeugen des Ports ist notwendig, um sicherzustellen, dass jedes Ziel von ports(7) auch korrekt erreicht wird:

Verbleibende pkg/-Dateien wie DESCR und MESSAGE sollten auf Grammatik und Tippfehler geprüft werden. Absätze werden mittels fmt(1) formatiert und bei etwa 70 Zeichen werden die Zeilen umgebrochen.

Kommentieren

Am Ende des Tests kommt das Allerwichtigste: Kommentare. Selbst wenn der Port wunderbar funktioniert, muss das kommentiert werden. Wenn wir zehn Kommentare von Leuten haben, die besagen, dass der Port prima auf verschiedenen Architekturen läuft, wird der Port schneller fertig. Wenn er aber nicht wie gewünscht läuft, solltest du Informationen beisteuern. Es gibt Werkzeuge, die bei diesem Problem helfen können, wie z. B. portslogger, der wie ein »intelligentes tee« funktioniert, das die Ausgaben in eine Logdatei lenkt.

Beispiel:

   # make install 2>&1 | /usr/ports/infrastructure/build/portslogger .


Das wird die Ausgabe in eine Logdatei im aktuellen Verzeichnis umleiten.

Sobald der Port einwandfrei funktioniert müssen noch andere Ports auf ihre Lauffähigkeit überprüft werden, die auf diesem Port aufbauen. Das Maketarget show-required-by wird dir dabei helfen, alle Ports zu finden, die auf diesem basieren.

Noch mehr Tests

Prüfe das Makefile des Ports auf richtige Abhängigkeiten, Tippfehler, falsche Links, unnötige oder fehlende Variablen, korrekte Lizenzen und Kategorien. Die Leute mit noch mehr Sachkenntnis können Patches untersuchen oder auch Diffs zur Korrektur von Fehlern bereitstellen, Flavors hinzufügen oder auch andere Verbesserungen vornehmen.

Diese Diffs sollten mit den Optionen -uNr --exclude=CVS hergestellt werden. cvs diff -uN kann auch genutzt werden, um Patches gegen das CVS-Repository zu machen.


OpenBSD www@openbsd.org
$OpenBSD: porttest.html,v 1.19 2008/03/09 13:37:11 tobias Exp $