openSUSE:Richtlinien zur Bezeichnung von Paketen

Wechseln zu: Navigation, Suche
Die openSUSE Paket Bezeichnung Richtlinie wird Ihnen helfen, zu entscheiden, wie Sie Ihr Paket und Ihre Spezifikations-Datei korrekt benennen.

Allgemeiner Zeichensatz für die Paket-Benennung

openSUSE ist eine internationale Gemeinschaft, daher braucht sie einen allgemeinen, einheitlichen und geeigneten Zeichensatz zur Bezeichnung von Paketen.

Speziell alle openSUSE Pakete dürfen nur mit den folgenden ASCII-Zeichen beschriftet werden. Diese Zeichen werden hier dargestellt:

abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789-._+

Wenn eine eingereichte Bezeichnung außerhalb des spezifizierten Zeichensatzes ist

openSUSE sieht ein, dass die Aufgabe der Umwandlung von Text in den spezifizierten ASCII-Zeichensatz (aka transliteration) schwierig ist. Wenn daher die eingereichte Bezeichnung außerhalb des spezifizierten Zeichensatzes ist, sollte der openSUSE Paket-Wartungsbearbeiter zuerst den/die Bearbeiter der Software kontaktieren und sie um eine Umschreibung der Bezeichnung zur Verwendung in openSUSE bitten.

Wenn (und nur wenn) der Ersteller unfähig, unwillig oder nicht erreichbar ist, eine Umschreibung für die Bezeichnung zu liefern, müssen die openSUSE Paketbauer sich entscheiden, entweder ihre eigene Umschreibung durchzuführen oder die Absicht, das Paket in openSUSE einzubringen, zurücknehmen.

Wenn entschieden werden soll, wie die Paketbezeichnung umzuschreiben ist, sollten die openSUSE Paketbauer überprüfen, ob eine andere Distribution das für die Paket-Bezeichnung bereits getan hat und sollte das in Betracht ziehen.

Die umbenannten Pakete können den Originalnamen, den nicht umbenannten Namen, aufführen, ist aber nicht gefordert.

Allgemeine Namensgebung

Wenn man ein Paket benennt, sollte der Name dem des eingereichten Tar-Archivs oder der Projektbezeichnung entsprechen, von dem die Software kam. In einigen Fällen könnte diese Namenswahl komplizierter sein. Wenn dieses Paket in der Vergangenheit von anderen Distributionen/Paketbauern gepackt wurde, dann sollten Sie versuchen diesen Namen wegen der Einheitlichkeit zu verwenden. In jedem Fall, versuchen Sie Ihr bestes. Ebenso werden andere Entwickler bei der endgültigen Entscheidung helfen.

Ergänzung: Es ist möglich, dass der eingereichte Name nicht dem allgemeiner Zeichensatz für die Paket-Benennung entspricht. In diesem Fall sollten Sie den entsprechenden Absatz oben zur Anwendung bringen.

Trennzeichen

Wenn man Pakete für openSUSE bezeichnet, muss der Bearbeiter den Strich '-' als Trennzeichen für Bezeichnungsteile verwenden. Der Bearbeiter darf NICHT den Unterstrich '_', ein Pluszeichen '+' oder eine Folge von Punkten '.' als Trennzeichen verwenden.

Es gibt einige Ausnahmen zur Nicht-Unterstrich-Regel '_'.

  • httpd, pam, und SDL Addon-Pakete sind ausgeschlossen.
  • Pakete, die ortsspezifisch sind und die Ortskennzeichnung im Namen tragen sind ausgeschlossen.
  • Pakete, bei denen der eingereichter Name einen Unterstrich enthält, sind ausgeschlossen.

Beispiele dieser Pakete umfassen:

java_cup
libart_lgpl
microcode_ctl
nss_ldap
sg3_utils

Wenn Sie unsicher sind, fragen Sie auf der opensuse-packaging Mailingliste nach.

Mehrere Pakete mit der gleichen Grundbezeichnung

Es gibt viele Gründe, dass es manchmal vorteilhaft ist, mehrere Versionen eines Paketes in openSUSE zu behalten, um sie gleichzeitig zu installieren. Wenn man das so macht, sollte die Paketbezeichnung dieses reflektieren. Ein Paket sollte die Basisbezeichnung ohne Versionen verwenden und alle anderen Ergänzungen sollten ihre Version in der Bezeichnung kennzeichnen. Es gibt einige Ausnahmen, bei denen alle Pakete Versionsbezeichnungen im Paketnahmen enthalten (z.B. gibt es kein Paket ohne Versionsangabe in der Bezeichnung).


Beispiele:
autoconf oder sqlite haben gelegentlich mehrere Versionen in openSUSE, wegen der Rückwärtskompatibilität.
Die gegenwärtige Version von autoconf heißt Name: autoconf
Die ältere Version 2.1.3 von autoconf heißt Name: autoconf213
Die Pakete für die 3.x Serie von sqlite heißen Name: sqlite3 und Name: sqlite3-devel
Die Pakete für die 2.x Serie von sqlite heißen Name: sqlite2 und Name: sqlite2-devel

Beachte, dass wir keine Trennzeichen in dieser Situation im Namen verwenden. Wir entfernten den Punkt '.' aus der Versionsnummer und fügen ihn an die Bezeichnung an.


Der Spezialfall, der anders behandelt wird sind die Bibliotheken. In der Richtlinie für mehrfach benutzte Bibliotheken wird beschrieben, wie sie zu handhaben sind.

Case Sensitivity

Beim openSUSE Paketbau sollte der/die Bearbeiter(in) sein/ihr bestes Urteilsvermögen anwenden, wenn darüber nachgedacht wird, wie ein Paket zu bezeichnen ist. Während die case sensitivity nicht zwingend gefordert ist, sollte eine Zeichenänderung, nur wenn nötig, angewendet werden. Behalten Sie im Kopf, dass Sie die Wünsche des Erstellers respektieren. Wenn der Ersteller seine Anwendung als "ORBit" bezeichnet, sollten Sie "ORBit" als Paketbezeichnung verwenden und nicht "orbit". Wenn der Ersteller keine Schreibweise bevorzugt, sollten Sie standardmäßig Bezeichnungen in Kleinbuchstaben verwenden.


Eine Ausnahme gilt für Perl-Mudul-Paketbau. Die CPAN-Gruppe und Typ sollten in der Bezeichnung mit Großbuchstaben ausgeführt werden. Details finden Sie unter Paketbau Perl und Perl.

Bezeichnungen für Spezifikations-Dateien

Spezifikations-Dateien sollten folgendes Schema verwenden: %{Name}.spec. Wenn Ihr Paket mit foo-1.0-1.src.rpm benannt ist, sollte die Bezeichnung der Spezifikations-Datei %foo.spec lauten.

Umbenennung/Ersatz vorhandener Pakete

Wenn es notwendig wird, ein vorhandenes Paket umzubenennen oder zu ersetzen, sollte das neue Paket die Änderung für Endnutzer sichtbar machen. Wenn ein Paket ohne funktionelle Änderungen umbenannt wurde oder ein vergleichbarer Ersatz zu dem vorhandenen Paket ist vorhanden, liefern Sie bitte saubere Aktualisierungs-Pfade und eine Kompatibilität mit:

Provides: oldpackagename = %version
Obsoletes: oldpackagename < 1.0

Wenn ein Paket ein vorhandenes ablöst/ersetzt ohne ausreichend kompatibel zu sein, verwenden Sie nur die veralteten.

Beispiel

  1. walkman wird umbenannt zu ipod
  2. ipod ist kompatibel mit walkman
  3. die letzte walkman Paket-Version war walkman-1.4

Das sollte der Inhalt der ipod.spec sein.

Provides: walkman = %{version}
Obsoletes: walkman < 1.0

Provides sollte als veraltet angenommen und nach dem nächsten Distro-Release gelöscht werden. Für Pakete, die gewöhnlich nicht durch die Verwendung einer Paketbezeichnung als Abhängigkeit einbezogen werden, wie reine Bibliothek-Pakete (die einbezogen werden durch Bibliothek-Soname-Abhängigkeiten), gibt es gewöhnlich keine Notwendigkeit, die Provides hinzu zu fügen.

Dokumentation von Sub-Paketen

Große Dokumentations-Dateien sollten in ein Sub-Paket gepackt werden. Dieses Sub-Paket sollte mit dem Format %{name}-doc bezeichnet werden. Die Definition für groß ist dem Paketbauer überlassen. Groß kann sich sowohl auf die Dimension als auch die menge beziehen.

Addon Pakete (Grundsatz)

Wenn ein neues Paket als ein "Addon"-Paket betrachtet wird, das die Funktionsweise zu einem vorhandenen openSUSE Paket verstärkt oder eine neue hinzufügt, ohne allein anwendbar zu sein, sollte seine Bezeichnung diese Tatsache widerspiegeln.

Das neue Paket ("Kind") sollte das "Eltern"-Paket in seiner Bezeichnung voranstellen. Das Format sieht so aus: %{parent}-%{child}.


Beispiele:

gnome-applet-netmon (netmon applet für gnome, bezieht sich auf gnome)
php-adodb (adodb Funktionsweise für php, bezieht sich auf php)
python-twisted (das Modul twisted für python, bezieht sich auf python)
xmms-cdread (lenkt cd, liest Funktionsweise für xmms, bezieht sich auf xmms)