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.

KategorieBeschreibungAnmerkung
accessibilityPorts für behinderte Menschen. 
afterstep*Ports für den AfterStep Window Manager. 
arabicArabische Sprachunterstützung. 
archiversArchivierungswerkzeuge. 
astroPorts für Astronomie. 
audioSound-Unterstützung. 
benchmarksBenchmarking-Werkzeuge. 
biologySoftware für Biologie. 
cadCAD-Werkzeuge. 
chineseChinesische Sprachunterstützung. 
commsKommunikationsprogramme.Hauptsächlich Software für serielle Schnittstellen.
convertersZeichensatz-Konverter. 
databasesDatenbanken. 
deskutilsDinge, die vor der Erfindung des Computers auf dem Schreibtisch waren. 
develEntwicklungs-Werkzeuge.Legen Sie keine Bibliotheken hier ab, nur weil es Bibliotheken sind, es sei denn, sie gehören wirklich nirgendwo anders hin.
dnsDNS-bezogene Software. 
docs*Meta-Ports für die FreeBSD-Dokumentation. 
editorsallgemeine Editoren.Spezielle Editoren gehören in Ihre jeweilige Kategorie, (z.B. gehört ein mathematischer Formeleditor in math).
elisp*Emacs-lisp-Ports. 
emulatorsEmulatoren 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.
financeFinanz-Software und ähnliches. 
frenchFranzösische Sprachunterstützung.  
ftpFTP Client- und Server-Werkzeuge.Falls Ihr Port sowohl FTP als auch HTTP unterstützt, stellen Sie ihn in ftp mit der Zweitkategorie www.
gamesSpiele. 
geography*geografische Software. 
germanDeutsche Sprachunterstützung. 
gnome*Ports für GNOME 
gnustep*Software für GNUstep. 
graphicsgrafische Werkzeuge. 
hamradio*Software für Amateurfunk. 
haskell*Software für die Haskell-Programmiersprache. 
hebrewHebräische Sprachunterstützung.  
hungarianUngarische Sprachunterstützung. 
ipv6*IPv6-bezogene Software. 
ircInternet Relay Chat (IRC)-Werkzeuge. 
japaneseJapanische Sprachunterstützung. 
javaSoftware 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. 
koreanKoreanische Sprachunterstützung. 
langProgrammiersprachen. 
linux*Linux-Applikationen und -Werkzeuge. 
lisp*Software für die Lisp-Programmiersprache.  
mailMail-Software. 
mathNumerische Berechnungen und andere mathematische Werkzeuge. 
mbone*MBone-Applikationen. 
miscVerschiedene 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.
multimediaMultimedia-Software. 
netVerschiedene Netzwerk-Software. 
net-imInstant Messaging-Software. 
net-mgmtNetzwerk-Management-Software. 
net-p2pPeer to peer-Netzwerkprogramme. 
newsUSENET News-Software. 
palmSoftware 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.  
polishPolnische Sprachunterstützung. 
ports-mgmtHilfsprogramme für das Installieren und Entwickeln von FreeBSD Ports und Paketen. 
portuguesePortugiesische Sprachunterstützung.  
printDrucker-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.  
russianRussische Sprachunterstützung. 
scheme*Software für die Scheme-Programmiersprache. 
scienceWissenschaftliche Programme, die in keine andere Kategorie passen wie z.B. astro, biology und math. 
securitySecurity-Werkzeuge. 
shellsShells. 
spanish*Spanische Sprachunterstützung. 
sysutilsSystem-Werkzeuge. 
tcl*Ports, welche Tcl benötigen. 
textprocTextverarbeitungsprogramme.Dies beinhaltet nicht DTP-Werkzeuge, diese gehören in print.
tk*Ports, welche Tk benötigen. 
ukrainianUkrainische Sprachunterstützung. 
vietnameseVietnamesische Sprachunterstützung.  
windowmaker*Ports für den WindowMaker Window-Manager.  
wwwSoftware für das World Wide Web (WWW). HTML-Werkzeuge gehören auch hierher.
x11X-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-clocksX11-Uhren. 
x11-driversX11-Treiber. 
x11-fmX11-Dateimanager. 
x11-fontsX11-Schriftarten und Werkzeuge. 
x11-serversX11-Server. 
x11-themesX11-Themes. 
x11-toolkitsX11-Toolkits. 
x11-wmX11-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:

  • Die erste (primäre) Kategorie muss eine physische (keine virtuelle, siehe oben) sein. Dies ist notwendig damit Pakete erstellt werden können. Die nachfolgenden Kategorien können wahllos virtuelle oder physische Kategorien sein.

  • Sprachspezifische Kategorien kommen immer zuerst. Wenn Ihr Port z.B. Japanische X11-Schriftarten installiert, dann muss Ihre CATEGORIES-Zeile japanese x11-fonts enthalten.

  • Spezifische Kategorien werden vor weniger spezifischen Kategorien aufgelistet. Ein HTML-Editor sollte z.B. als www editors aufgeführt werden und nicht umgekehrt. Genauso sollten Sie keinen Port unter net aufführen, wenn er zu irc, mail, news, security oder www passt, da net in diesen Kategorien bereits implizit eingeschlossen ist.

  • x11 wird nur als sekundäre Kategorie benutzt, wenn die primäre Kategorie eine sprachspezifische ist. Keinesfalls sollten Sie x11 in die Kategorie-Zeile einer X-Applikation setzen.

  • Emacs modes gehören in die gleiche Kategorie wie die vom jeweiligen mode unterstützte Applikation und nicht in editors. Ein Emacs mode z.B. für das Editieren von Quelltext einer bestimmten Programmiersprache gehört zur Kategorie lang.

  • Für Ports, die vom Benutzer ladbare Kernelmodule installieren, sollte die virtuelle Kategorie kld in die CATEGORIES-Zeile aufgenommen werden.

  • misc sollte nicht zusammen mit irgendeiner anderen nicht-virtuellen Kategorie auftreten. Falls Sie misc mit einer anderen Kategorie in CATEGORIES haben bedeutet dies, dass Sie gefahrlos misc streichen und die andere Kategorie alleine verwenden können!

  • Falls Ihr Port wirklich in keine andere Kategorie passt, verwenden Sie bitte misc.

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.

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.

Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.