Richtlinien zur Benennung

Richtlinien zur Versionierung wurden verschoben

Dieses Dokument enthielt zuvor Informationen zur Benennung und Versionierung. Die Richtlinien zur Versionierung finden Sie jetzt hier.

Gemeinsamer Zeichensatz für die Paketbenennung

Da Fedora eine internationale Community ist, ist aus Gründen der Konsistenz und Benutzerfreundlichkeit ein gemeinsamer Zeichensatz für die Paketbenennung erforderlich.

Genauer gesagt, dürfen alle Fedora-Pakete nur mit den folgenden ASCII-Zeichen benannt werden. Diese Zeichen werden hier angezeigt:

abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789-._+

Beachten Sie jedoch die Hinweise unter [Separators] bezüglich zusätzlicher Einschränkungen bei der Verwendung der Zeichen -._+.

Allgemeine Benennung

Paketnamen SOLLTEN in Kleinbuchstaben geschrieben werden und Bindestriche anstelle von Unterstrichen verwenden. Orientieren Sie sich am Namen des Upstream-Tarballs, dem Projektnamen, aus dem die Software stammt, und dem Namen, den andere Distributionen/Paketierer in der Vergangenheit für dieses Paket verwendet haben. Sie können auch die Upstream-Entwickler um Rat fragen. Folgen Sie diesen Beispielen jedoch nicht blind, denn Paketnamen SOLLTEN eher einheitlich innerhalb von Fedora als zwischen verschiedenen Distributionen sein.

Darüber hinaus ist es möglich, dass der Upstream-Name nicht dem [Common Character Set for Package Naming] entspricht. In diesem Fall lesen Sie bitte den Abschnitt [When Upstream Naming is outside of the specified character set].

Denken Sie auch daran zu prüfen, ob für den von Ihnen erstellten Pakettyp spezifische Namensregeln gelten. Beispiele hierfür sind [Font Packages] und die verschiedenen Arten von [Addon Packages].

Trenner

Bei der Benennung von Paketen für Fedora MUSS der Paketbetreuer den Bindestrich - als Trennzeichen für die Namensbestandteile verwenden. Der Paketbetreuer DARF NICHT den Unterstrich _, das Pluszeichen + oder den Punkt . als Trennzeichen verwenden. Versionsnummern in Kompatibilitätsbibliotheken müssen den Punkt . nicht weglassen oder in einen Bindestrich - ändern (siehe [Multiple packages with the same base name] für weitere Informationen hierzu).

Für die Unterstrichregel (_) gibt es eine Reihe von Ausnahmen:

  • Die Add-on-Pakete für httpd, pam und SDL sind ausgeschlossen; siehe Addon Packages (httpd, pam, and SDL).

  • Pakete, die sprachspezifisch sind und das Sprachschema im Namen verwenden, sind ausgeschlossen; siehe Addon Packages (locales).

  • Kompatibilitätspakete, deren Basispaketname mit einer Ziffer endet, werden unter [Multiple packages with the same base name] geführt.

  • Pakete, deren Upstream-Name naturgemäß einen Unterstrich enthält, sind davon ausgenommen. Beispiele für solche Pakete sind:

    arptables_jf
    dhcpv6_client
    java_cup
    knm_new
    libart_lgpl
    lm_sensors
    microcode_ctl
    nss_db
    nss_ldap
    sg3_utils
    tcp_wrappers

Im Zweifelsfall fragen Sie bitte auf devel@lists.fedoraproject.org.

Wenn die Upstream-Namensgebung außerhalb des angegebenen Zeichensatzes liegt

Fedora ist sich bewusst, dass die Umwandlung von Text in den angegebenen ASCII-Zeichensatz (auch Transliteration genannt) schwierig ist. Daher SOLLTE der Fedora-Paketbetreuer, wenn der Name der Originalsoftware außerhalb des angegebenen ASCII-Zeichensatzes liegt, zunächst den Entwickler der betreffenden Software kontaktieren und um eine Transliteration des Namens bitten, die Fedora verwenden kann.

Falls (und nur falls) die Upstream-Entwickler nicht in der Lage oder nicht willens sind, einen transliterierten Namen bereitzustellen (oder gar nicht erreichbar sind), muss der Fedora-Paketierer entweder eine eigene Transliteration vornehmen oder das Paket nicht in Fedora einbringen.

Bei der Entscheidung, wie ein Paketname transliteriert werden soll, SOLLTE der Fedora-Paketierer prüfen, wie (gegebenenfalls) andere Distributionen den Namen dieses Pakets transliterieren, und dies berücksichtigen.

Zusätzliche Provides

Transliterierte Pakete KÖNNEN den ursprünglichen, nicht transliterierten Namen in „Provides:“ angeben, sind aber nicht dazu verpflichtet.

Namenskonflikte

Namenskonflikte bei Paketen, selbst wenn sie sich nur in der Groß-/Kleinschreibung unterscheiden, sind nicht zulässig. Weitere Informationen finden Sie hier.

Mehrere Pakete mit dem gleichen Basisnamen

Aus verschiedenen Gründen kann es in Fedora vorteilhaft sein, mehrere Versionen eines Pakets gleichzeitig zu installieren. In diesem Fall muss der Paketname dies widerspiegeln. Ein Paket sollte den Basisnamen (ohne Versionsinformationen) verwenden. Alle davon abgeleiteten Pakete MÜSSEN den Basisnamen mit einem der folgenden Suffixe enthalten:

  • Die Paketversion, die die in der Originalversion vorhandenen Punkte enthalten SOLLTE.

    • Endet der Basispaketname mit einer Ziffer, muss ein einzelner Unterstrich („_“) an den Namen angehängt werden, und anschließend muss die Versionsnummer angehängt werden, um Verwechslungen zu vermeiden, wo der Name endet und die Versionsnummer beginnt.

    • Endet der Basispaketname nicht mit einer Ziffer, MUSS die Versionsangabe ohne Trennzeichen direkt an den Paketnamen angehängt werden.

  • ein Bindestrich („-“) gefolgt von einem beschreibenden Suffix wie z.B. „stable“, das einen Hinweis auf die Art der paketierten Version gibt.

Beispiele:

  • Das Paket python-sqlalchemy existiert unter Fedora gelegentlich in mehreren Versionen, um die Abwärtskompatibilität zu gewährleisten. Die aktuellste Version von python-sqlalchemy heißt python-sqlalchemy, eine ältere unterstützte Version ist python-sqlalchemy0.5. In diesem Fall wird kein Trennzeichen verwendet.

  • Die aktuellste Version des v8-Pakets heißt v8. Um die Version „3.13“ zu paketieren, muss das Paket den Namen v8_3.13 tragen.

Bitte beachten Sie auch, dass Zeichenketten wie „-latest“ im Laufe der Zeit oft irreführend werden können, wenn das Paket (in allen aktiven Fedora-Versionen) nicht auf die neueste Upstream-Version aktualisiert wird.

Dokumentationspakete mit eingebetteter Betriebssystem-Versionierung

Dokumentationspakete (gemäß Genehmigung durch das Fedora Documentation Project) können mit der Versionsnummer des Betriebssystems im Paketnamen benannt werden, um die parallele Installation mehrerer Versionen zu ermöglichen, falls die Dokumentation spezifisch für eine Fedora-Version ist und es von Vorteil ist, mehrere Versionen gleichzeitig zu installieren.

Groß-/Kleinschreibung

Bei der Paketierung in Fedora entscheidet der Paketbetreuer nach bestem Wissen und Gewissen über die Benennung des Pakets. Groß- und Kleinschreibung muss nicht zwingend beachtet werden, aber dann, wenn es unbedingt notwendig ist. Beachten Sie die Wünsche der Upstream-Entwickler. Wenn diese ihre Anwendung beispielsweise als „ORBit“ bezeichnen, sollten Sie ORBit als Paketnamen verwenden und nicht orbit. Falls keine Präferenz bezüglich der Groß- und Kleinschreibung angegeben wird, SOLLTEN Sie standardmäßig Kleinbuchstaben verwenden.

Eine Ausnahme hiervon bilden Perl-Modulpakete. Die CPAN-Gruppe und der Typ SOLLTEN im Namen groß geschrieben werden, als wären sie Eigennamen. (Siehe Addon Packages (Perl modules) für Details.)

Umbenennen/Ersetzen vorhandener Pakete

Dokumentations-Teilpakete

Umfangreiche Dokumentationsdateien SOLLTEN in ein Teilpaket ausgelagert werden. Dieses Teilpaket muss nach folgendem Format benannt werden: %{name}-doc. Die Definition von „umfangreich“ liegt im Ermessen des Paketierers, ist aber nicht auf die Dateigröße beschränkt. „Umfangreich“ kann sich sowohl auf die Dateigröße als auch auf die Anzahl der Dateien beziehen.

Schriftpakete

Pakete, die Schriftarten enthalten, müssen in Kleinbuchstaben den Namen [Herausgebername-]Projektname[-Schriftfamilienname]-fonts tragen.

Klarstellungen

  1. Für Fedora ist der „Herausgeber“ eine Organisation, die eine Reihe von Schriftarten mit einheitlichen Qualitätssicherungsregeln veröffentlicht. Ein generischer Hosting-Dienst wie http://www.sf.net [SourceForge] ist daher kein Herausgeber, die Open Font Library hingegen schon.

  2. Es empfiehlt sich, Herausgebername- in einem kurzen Präfix zusammenzufassen.

  3. Das Präfix Herausgebername- kann optional weggelassen werden:

    • für Herausgeber, die nie mehr als eine Schriftfamilie veröffentlicht haben, oder

    • wenn das Schriftprojekt und der Herausgeber ein und dasselbe sind.

  4. Falls sich der Projektname oder der Herausgebername im Schriftfamiliennamen wiederholen, können sie aus dem Schriftfamiliennamen entfernt werden.

  5. Wenn der Herausgebername, der Projektname oder der Schriftfamilienname bereits das Suffix font oder fonts enthalten, sollte dieses Suffix entfernt werden, [1].

  6. Der -Schriftfamilienname sollte nicht im srpm-Namen eines Pakets enthalten sein, das mehrere verschiedene Schriftfamilien enthält.

  7. Falls ein Element des Namens Leerzeichen enthält, sollten diese durch „-“ ersetzt werden.

  8. Die Verwendung des Suffixes -fonts ist nicht von der tatsächlichen Anzahl der Schriftartdateien im Paket abhängig.

Im Zweifelsfall bitten Sie in der Mailingliste um Klärung.

Addon-Pakete

Wenn ein Paket als „Add-on“-Paket betrachtet wird, das ein bestehendes Fedora-Paket erweitert oder dessen Funktionalität ergänzt, ohne für sich allein nützlich zu sein, SOLLTE sein Name diese Tatsache widerspiegeln.

Das neue Paket („child“) SOLLTE den Namen des „parent“-Pakets voranstellen, und zwar im Format: %{parent}-%{child}.

Beispiele:

gnome-applet-netmon (netmon-Applet für Gnome, benötigt Gnome)
php-adodb (adodb-Funktionalität für PHP, benötigt php)
python3-twisted (Twisted-Modul für Python 3, benötigt Python 3)
xmms-cdread (Direktes CD-Lesen für XMMS, benötigt XMMS)

Wenn es sich bei dem Add-on-Paket um eine Sprachbindung handelt, ist zu beachten, dass die Sprache selbst immer der übergeordnete Name ist. Eine Lua-Bindung für die Datenbank „randomdb“ wäre also lua-randomdb und nicht randomdb-lua. Beachten Sie außerdem, dass einige Pakete möglicherweise ältere Namen mit umgekehrter Reihenfolge verwenden.

Es gibt einige Ausnahmen von dieser allgemeinen Namensrichtlinie für Add-on-Pakete, die im Folgenden aufgeführt sind.

httpd, pam und SDL

Pakete, die Apache httpd, pam oder SDL als Basis verwenden, nutzen ein leicht abweichendes Namensschema. pam- und SDL-Add-ons verwenden das Format: %{parent}_%{child}, wobei ein Unterstrich _ als Trennzeichen dient. Apache httpd-Add-ons verwenden das Format: mod_%{child}, ebenfalls mit einem Unterstrich _ als Trennzeichen. Dieses Namensschema entspricht üblicherweise dem Namen des Quellcode-Tarballs.

Beispiele:

mod_perl (Perl-Komponenten für Apache httpd, benötigt httpd)
pam_krb5 (krb5-Komponenten für pam, benötigt pam)
SDL_gfx (Zusätzliche Grafikkomponenten für SDL, benötigt SDL)
SDL_ttf (Unterstützung für die Darstellung von TrueType-Schriftarten in SDL, benötigt SDL)

Emacs-Komponenten

Pakete von Emacs-Add-on-Komponenten (Code, der Emacs zusätzliche Funktionalität hinzufügt) SOLLTEN einen Namen haben, der den Upstream-Namen der Emacs-Komponente berücksichtigt, indem sie emacs-$NAME genannt werden.

Beispiele:

emacs-auctex (auctex-Komponente für GNU Emacs)
emacs-deferred (deferred-Komponente für GNU Emacs)
emacs-flycheck (flycheck-Komponente für GNU Emacs)

Erlang-Module

Pakete von Erlang-Modulen (die somit auf Erlang als übergeordnetem Modul basieren) haben ein eigenes Namensschema. Sie SOLLTEN den Namen des übergeordneten Erlang-Moduls berücksichtigen. Das Paketnamensformat lautet daher erlang-$NAME. Im Zweifelsfall verwenden Sie den Namen des Moduls, den Sie beim Importieren in ein Skript verwenden.

Beispiel:

erlang-esdl (Erlang-Modul namens esdl)

GAP-Pakete

In den GAP-Richtlinien finden Sie Hinweise für die korrekte Benennung von GAP-Addon-Paketen.

Gnome-Shell-Erweiterungen

Pakete, die die Gnome Shell erweitern, SOLLTEN mit dem Präfix gnome-shell-extension- beginnen. Insbesondere SOLLTE dieses Präfix NICHT im Plural stehen (das heißt, es SOLLTE NICHT gnome-shell-extensions lauten).

GStreamer-Plugins

Pakete, die GStreamer erweitern, SOLLTEN mit dem Präfix gstreamer1-plugin- beginnen. Insbesondere SOLLTE dieses Präfix NICHT im Plural stehen (d.h. es SOLLTE NICHT gstreamer1-plugins lauten), es sei denn, es handelt sich um eine Sammlung von Plugins (d.h. gstreamer1-plugins-good).

LibreOffice-Erweiterungen

Pakete von LibreOffice-Erweiterungen (die somit auf LibreOffice als Basiskomponente basieren) haben ein eigenes Namensschema. Sie müssen den Namen der zugrunde liegenden LibreOffice-Erweiterung berücksichtigen. Daraus ergibt sich das Paketnamensformat libreoffice-$NAME.

Sprachpakete

Wenn ein Paket zu einem bestehenden übergeordneten Paket eine Locale hinzufügt, dann kann es einen Unterstrich in der Locale verwenden.

Beispiele:

ttfonts-zh_TW (fügt zh_TW-Locale-Schriften in der ttfonts-Familie hinzu)
ttfonts-zh_CN (fügt zh_CN-Locale-Schriften in der ttfonts-Familie hinzu)

Lua-Module

Es ist üblich, dass mehrere Lua-Versionen paketiert werden, und jede Version kann entsprechende Modulpakete enthalten. Selbstverständlich MÜSSEN die Lua-Basispakete den entsprechenden siehe Benennungsrichtlinien entsprechen, was zu Paketnamen wie lua5.1 führt.

Die Modulpakete SOLLTEN den Namen des entsprechenden Lua-Basispakets (wie in den relevanten Richtlinien vorgeschrieben) als Präfix tragen. Einige Beispiele:

Modulname

Lua-Basisversion

Paketname

argparse

(Standard)

lua-argparse

argparse

5.1

lua5.1-argparse

sql

5.2

lua5.2-sql

NGINX-Module

Pakete von NGINX-Modulen SOLLTEN mit dem Präfix nginx-mod- beginnen. Dieses Präfix SOLLTE insbesondere NICHT im Plural verwendet werden (d. h. es SOLLTE NICHT nginx-mods lauten). Einige Upstream-Projekte verwenden möglicherweise module als Präfix; dies muss berücksichtigt und im Paketnamen entsprechend ersetzt werden.

OBS-Studio-Plugins

Pakete von OBS Studio-Plugins SOLLTEN mit dem Präfix obs-studio-plugin- beginnen. Insbesondere SOLLTE dieses Präfix NICHT im Plural stehen (d. h. es SOLLTE NICHT obs-studio-plugins lauten).

OCaml-Module

OCaml-Module, -Bibliotheken und -Syntaxerweiterungen SOLLTEN einen Namen nach dem Schema ocaml-foo tragen. Beispiele hierfür sind: ocaml-extlib, ocaml-ssl.

Diese Namenskonvention gilt nicht für in OCaml geschriebene Anwendungen, die ihren normalen Namen behalten können. Beispiele hierfür sind: mldonkey, virt-top, cduce

Perl-Module

Pakete von Perl-Modulen (die somit auf Perl basieren) verwenden ein leicht abweichendes Namensschema. Sie SOLLTEN perl-CPANDIST heißen, wobei CPANDIST der Name der paketierten CPAN-Moduldistribution ist (die fast immer auch die Einheit der Perl-Modulpaketierung darstellt). In den seltenen Fällen, in denen eine CPAN-Moduldistribution in kleinere Teilpakete aufgeteilt werden muss, z.B. aufgrund von Abhängigkeiten, SOLLTEN die zusätzlichen Teilpakete perl-CPANDIST-irgendetwas heißen.

Beispiele:

perl-Archive-Zip (Archive-Zip ist der Name im CPAN)
perl-Cache-Cache (Cache-Cache ist der Name im CPAN)

PHP-Module

Für Details zum PHP-Namensschema siehe Namensschema.

Python-Module

Die Benennung von Python-Modulen wird vollständig im Abschnitt Benennung der Python-Paketbaurichtlinien behandelt.

Kurz gesagt: Der Paketname SOLLTE dem Namen des zugehörigen Python-Moduls entsprechen und sollte im Allgemeinen den Namen des Moduls berücksichtigen, der beim Import in Python-Skripten verwendet wird. Dieser Name wird je nach Pakettyp mit einem Präfix versehen.

  • Ein gebautes (d.h. nicht SRPM-)Paket für eine Python-Bibliothek MUSS mit dem Präfix python3- benannt werden.

  • Ein Quellpaket, das hauptsächlich eine Python-Bibliothek enthält, MUSS mit dem Präfix python- benannt werden.

Das Zeichen + ist für Extras reserviert.

Benennung von Python2-Binärpaketen

Python-2-Binärpakete MÜSSEN mit dem Präfix python2- benannt werden. Beachten Sie, dass Python 2 in Fedora als veraltet gilt und eine explizite Ausnahmegenehmigung erfordert.

R-module

Pakete von R-Modulen (die somit auf R basieren) haben ein eigenes Namensschema. Sie SOLLTEN den Namen des übergeordneten R-Moduls berücksichtigen. Das Paketnamensformat lautet daher R-$NAME. Im Zweifelsfall verwenden Sie den Namen des Moduls, den Sie zum Importieren in R eingeben.

Beispiele:

R-mAr (R-Modul namens mAr)
R-RScaLAPACK (R-Modul namens RScaLAPACK)
R-waveslim (R-Modul namens waveslim)

Sugar-Aktivitäten

Alle Namen für paketierte Sugar-Aktivitäten müssen mit sugar- beginnen. Weitere Informationen finden Sie in den Paketbaurichtlinien für Sugar-Aktivitäten.

Tcl/Tk-Erweiterungen

Alle Paketnamen für Tcl/Tk-Erweiterungen müssen mit tcl- beginnen. Diese Regel gilt auch für Tcl/Tk-Pakete, deren Name bereits mit tcl beginnt. Weitere Informationen finden Sie in den Namenskonventionen für Tcl/Tk.

TeX

Da Fedora in der Vergangenheit die TeX-Umgebung gewechselt hat, SOLLTEN TeX-Pakete nicht nach der TeX-Umgebung (TeX Live oder teTeX) benannt werden, sondern das Präfix tex- tragen.

Autoren

Der ursprüngliche Autor dieser Richtlinien war Tom 'spot' Callaway. Sie werden nun vom Packaging Committee unter Einbeziehung der Fedora-Community gepflegt.


1. Um foofont-fonts-Pakete zu vermeiden.