5.3. Kategorisierung

5.3.1. CATEGORIES

Wenn ein Paket erzeugt wird, dann wird es unter /usr/ports/packages/All abgelegt und von einem oder mehreren Unterverzeichnissen werden auf /usr/ports/packages Links erstellt. Die Namen dieser Unterverzeichnisse werden durch die Variable CATEGORIES festgelegt. Dies geschieht, um dem Nutzer zu helfen, eine große Zahl von Paketen auf einer FTP-Webseite oder einer CD/DVD zu durchsuchen. Bitte werfen Sie einen Blick auf die Aktuelle Liste der Kategorien und suchen Sie die beste Kategorie für Ihren Port aus.

Diese Liste legt auch fest, an welcher Stelle in der Ports-Sammlung der Port eingefügt wird. Falls Sie mehrere Kategorien angeben wird angenommen, dass die Dateien des Ports im Unterverzeichnis mit dem Namen der ersten angegebenen Kategorie liegen. Schauen Sie bitte unten für weitere Informationen darüber, wie man die richtige Kategorie bestimmt.

5.3.2. Aktuelle Liste der Kategorien

Hier ist die aktuelle Liste der Kategorien. Die mit einem Asterisk (*) bezeichneten sind virtuelle Kategorien, also solche, welche über kein eigenes Unterverzeichnis in der Ports-Sammlung verfügen. Sie werden nur als Sekundärkategorien benutzt und sind nur für Suchzwecke eingerichtet worden.

Anmerkung: Für nicht-virtuelle Kategorien finden Sie eine einzeilige Beschreibung in der Variable COMMENT im Makefile des jeweiligen Unterverzeichnisses.

Kategorie Beschreibung Anmerkung
accessibility Ports für behinderte Menschen.  
afterstep* Ports für den AfterStep Window Manager.  
arabic Arabische Sprachunterstützung.  
archivers Archivierungswerkzeuge.  
astro Ports für Astronomie.  
audio Sound-Unterstützung.  
benchmarks Benchmarking-Werkzeuge.  
biology Software für Biologie.  
cad CAD-Werkzeuge.  
chinese Chinesische Sprachunterstützung.  
comms Kommunikationsprogramme. Hauptsächlich Software für serielle Schnittstellen.
converters Zeichensatz-Konverter.  
databases Datenbanken.  
deskutils Dinge, die vor der Erfindung des Computers auf dem Schreibtisch waren.  
devel Entwicklungs-Werkzeuge. Legen Sie keine Bibliotheken hier ab, nur weil es Bibliotheken sind, es sei denn, sie gehören wirklich nirgendwo anders hin.
dns DNS-bezogene Software.  
docs* Meta-Ports für die FreeBSD-Dokumentation.  
editors allgemeine Editoren. Spezielle Editoren gehören in Ihre jeweilige Kategorie, (z.B. gehört ein mathematischer Formeleditor in math).
elisp* Emacs-lisp-Ports.  
emulators Emulatoren für andere Betriebssysteme. Terminal-Emulatoren gehören nicht hierher; X-basierende gehören zu x11 und text-basierende zu comms oder misc, abhängig von deren genauer Funktionalität.
finance Finanz-Software und ähnliches.  
french Französische Sprachunterstützung.  
ftp FTP Client- und Server-Werkzeuge. Falls Ihr Port sowohl FTP als auch HTTP unterstützt, stellen Sie ihn in ftp mit der Zweitkategorie www.
games Spiele.  
geography* geografische Software.  
german Deutsche Sprachunterstützung.  
gnome* Ports für GNOME  
gnustep* Software für GNUstep.  
graphics grafische Werkzeuge.  
hamradio* Software für Amateurfunk.  
haskell* Software für die Haskell-Programmiersprache.  
hebrew Hebräische Sprachunterstützung.  
hungarian Ungarische Sprachunterstützung.  
ipv6* IPv6-bezogene Software.  
irc Internet Relay Chat (IRC)-Werkzeuge.  
japanese Japanische Sprachunterstützung.  
java Software für die Java™-Programmiersprache. Die java-Kategorie sollte nicht die Einzige für einen Port sein mit Ausnahme der direkt nur mit der Programmiersprache zusammenhängenden Applikationen. Porter sollten java nicht als Hauptkategorie eines Ports wählen.
kde* Ports für das K Desktop Environment (KDE)-Projekt.  
kld* Kernelmodule.  
korean Koreanische Sprachunterstützung.  
lang Programmiersprachen.  
linux* Linux-Applikationen und -Werkzeuge.  
lisp* Software für die Lisp-Programmiersprache.  
mail Mail-Software.  
math Numerische Berechnungen und andere mathematische Werkzeuge.  
mbone* MBone-Applikationen.  
misc Verschiedene Werkzeuge. Hauptsächlich Werkzeuge, die nicht anderswo hingehören. Versuchen Sie, falls irgend möglich, eine bessere Kategorie für Ihren Port zu finden als misc, weil Ports hier leicht untergehen.
multimedia Multimedia-Software.  
net Verschiedene Netzwerk-Software.  
net-im Instant Messaging-Software.  
net-mgmt Netzwerk-Management-Software.  
net-p2p Peer to peer-Netzwerkprogramme.  
news USENET News-Software.  
palm Software für Palm™.  
parallel* Applikationen für paralleles Rechnen.  
pear* Ports für das Pear PHP-Framework.  
perl5* Ports, welche Perl Version 5 benötigen.  
plan9* Verschiedene Programme von Plan9.  
polish Polnische Sprachunterstützung.  
ports-mgmt Hilfsprogramme für das Installieren und Entwickeln von FreeBSD Ports und Paketen.  
portuguese Portugiesische Sprachunterstützung.  
print Drucker-Software. Desktop Veröffentlichungs-Werkzeuge (DTP, Betrachter etc.) gehören auch hierher.
python* Software für Python.  
ruby* Software für Ruby.  
rubygems* Ports für RubyGems-Pakete.  
russian Russische Sprachunterstützung.  
scheme* Software für die Scheme-Programmiersprache.  
science Wissenschaftliche Programme, die in keine andere Kategorie passen wie z.B. astro, biology und math.  
security Security-Werkzeuge.  
shells Shells.  
spanish* Spanische Sprachunterstützung.  
sysutils System-Werkzeuge.  
tcl* Ports, welche Tcl benötigen.  
textproc Textverarbeitungsprogramme. Dies beinhaltet nicht DTP-Werkzeuge, diese gehören in print.
tk* Ports, welche Tk benötigen.  
ukrainian Ukrainische Sprachunterstützung.  
vietnamese Vietnamesische Sprachunterstützung.  
windowmaker* Ports für den WindowMaker Window-Manager.  
www Software für das World Wide Web (WWW). HTML-Werkzeuge gehören auch hierher.
x11 X-Window-System und dergleichen. Diese Kategorie ist nur für Software, welche direkt X unterstützt. Fügen Sie keine normalen X-Applikationen hinzu. Die meisten davon gehören in eine andere x11-*-Kategorie (siehe unten). Falls Ihr Port eine X-Applikation ist, dann definieren Sie bitte USE_XLIB (impliziert durch USE_IMAKE) und fügen ihn der entsprechenden Kategorie hinzu.
x11-clocks X11-Uhren.  
x11-drivers X11-Treiber.  
x11-fm X11-Dateimanager.  
x11-fonts X11-Schriftarten und Werkzeuge.  
x11-servers X11-Server.  
x11-themes X11-Themes.  
x11-toolkits X11-Toolkits.  
x11-wm X11-Window-Manager.  
xfce* Ports in Zusammenhang mit Xfce.  
zope* Zope-Unterstützung.  

5.3.3. Wählen der richtigen Kategorie

Da viele der Kategorien sich überlappen, müssen Sie oft festlegen, welches die primäre Kategorie Ihres Ports ist. Hierzu gibt es einige Regeln, welche diese Auswahl bestimmen. Hier ist die Liste der Regeln mit abnehmender Wichtigkeit:

Falls Sie sich über die Kategorie im Unklaren sind, hinterlassen Sie bitte einen Kommentar in Ihrem per send-pr(1) eingereichten Bericht, damit wir diese Frage vor dem Import diskutieren können. Falls Sie ein Committer sind, schicken Sie bitte eine Nachricht an FreeBSD ports, damit die Frage im Vorhinein erörtert werden kann. Neue Ports werden zu häufig falsch kategorisiert und werden sofort wieder verschoben. Das bläht das Master Source Repository unnötig auf.

5.3.4. Eine neue Kategorie vorschlagen

Da die Ports-Sammlung über viele Jahre gewachsen ist, wurden viele neue Kategorien hinzugefügt. Neue Kategorien können virtuell (ohne eigenes Unterverzeichnis in der Ports-Sammlung) oder physisch sein. Der nachfolgende Text führt einige Punkte auf, welche bei der Neueinführung einer physischen Kategorie beachtet werden müssen, damit Sie dies bei einem eventuellen Vorschlag Ihrerseits berücksichtigen können.

Unsere bestehende Maxime ist die Vermeidung der Neuanlage von physischen Kategorien, solange nicht eine große Zahl von Ports zugeordnet werden können oder falls ihr nicht Ports zugehören würden, welche eine logisch abgegrenzte Gruppe von limitiertem öffentlichem Interesse zugehören würden (zum Beispiel neue Sprachkategorien) oder vorzugsweise beides.

Die Erklärung dafür ist, dass eine Neuanlage einer physischen Kategorie einen erheblichen Arbeitsaufwand sowohl für die Committer als auch diejenigen Nutzer bedeutet, welche die Änderungen der Ports-Sammlung nachvollziehen. Zusätzlich verursachen Vorschläge für neue Kategorien oftmals Kontroversen (natürlich deswegen, weil es keinen klaren Konsens darüber gibt, welche Kategorie als ``zu groß'' betrachtet werden muss noch ob sich bestimmte Kategorien zur einfachen Suche eignen (und wie viele Kategorien überhaupt ideal wären) und so weiter).

Hier ist das Prozedere:

  1. Schlagen Sie die neue Kategorie auf FreeBSD ports vor. Sie sollten eine detaillierte Begründung für die neue Kategorie beifügen einschließlich einer Erklärung, warum Sie meinen, die existierenden Kategorien seien nicht ausreichend. Zeigen Sie außerdem eine Liste der zu verschiebenden Ports (falls neue Ports in GNATS auf ihren commit warten, die in diese Kategorie passen würden. Listen Sie diese bitte auch mit auf). Sind Sie der Maintainer oder Einreicher dieser Ports, erwähnen Sie es bitte. Es verleiht Ihrem Vorschlag mehr Gewicht.

  2. Nehmen Sie an der Diskussion teil.

  3. Falls es Unterstützung für Ihren Vorschlag geben sollte, reichen Sie bitte einen PR ein, welcher die Begründung und die Liste der betroffenen Ports enthält, die verschoben werden müssen. Idealerweise sollte der PR Patches für Folgendes enthalten:

    • Makefiles für die neuen Ports nach dem Repocopy

    • Makefile für die neue Kategorie

    • Makefile für die alten Kategorien der betroffenen Ports

    • Makefiles für Ports, welche von den alten Ports abhängen

    • Für zusätzliches Ansehen sorgen Sie, wenn Sie die anderen Dateien, die geändert werden müssen, beifügen wie in der Direktive des Committer's Guide beschrieben.

  4. Da es die Ports-Infrastruktur beeinflusst und nicht nur die Durchführung von Repocopies und möglicherweise sogar Regressionstests auf dem Build Cluster durchgeführt werden müssen, sollte der PR dem Ports Management Team Ports Management Team zugeordnet werden.

  5. Sobald der PR bestätigt wurde muss ein Committer den Rest der Prozedur durchführen, welche im Committers Guide beschrieben ist.

Das Vorschlagen einer neuen virtuellen Kategorie ist ähnlich, aber wesentlich weniger aufwendig, weil keine Ports verschoben werden müssen. In diesem Falle müssen nur die Patches an den PR beigefügt werden, welche die neue Kategorie zur Variable CATEGORIES der betroffenen Ports hinzufügen.

5.3.5. Vorschlagen einer Neuorganisation aller Kategorien

Von Zeit zu Zeit schlägt jemand eine komplette Neuorganisation aller Ports, entweder mit einer zweistufigen Struktur oder irgendeiner Art von Schlüsselwörtern, vor. Bis heute wurde keiner dieser Vorschläge umgesetzt, weil sie zwar einfach zu machen sind, aber der Aufwand zur Umsetzung und Reorganisation der kompletten Ports-Sammlung schlichtweg mörderisch wäre. Bitte lesen Sie die Geschichte dieser Vorschläge in den Archiven der Mailinglisten nach, bevor Sie diese Ideen nochmals unterbreiten. Zudem sollten Sie gewappnet sein, dass man Sie auffordert, einen arbeitsfähigen Prototyp vorzulegen.


Fragen zum FreeBSD Ports-System richten Sie bitte an <ports@FreeBSD.org>, Fragen zu diesem Dokument hingegen an <de-bsd-translators@de.FreeBSD.org>.