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.
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 istpython-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 Namenv8_3.13tragen.
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.)
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
-
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.
-
Es empfiehlt sich, Herausgebername- in einem kurzen Präfix zusammenzufassen.
-
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.
-
-
Falls sich der Projektname oder der Herausgebername im Schriftfamiliennamen wiederholen, können sie aus dem Schriftfamiliennamen entfernt werden.
-
Wenn der Herausgebername, der Projektname oder der Schriftfamilienname bereits das Suffix font oder fonts enthalten, sollte dieses Suffix entfernt werden, [1].
-
Der -Schriftfamilienname sollte nicht im srpm-Namen eines Pakets enthalten sein, das mehrere verschiedene Schriftfamilien enthält.
-
Falls ein Element des Namens Leerzeichen enthält, sollten diese durch „-“ ersetzt werden.
-
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) |
|
argparse |
5.1 |
|
sql |
5.2 |
|
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.
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.
Autoren
Der ursprüngliche Autor dieser Richtlinien war Tom 'spot' Callaway. Sie werden nun vom Packaging Committee unter Einbeziehung der Fedora-Community gepflegt.
Want to help? Learn how to contribute to Fedora Docs ›