Sollten Sie die Unterstützung für Shared-Libraries bei einem Port oder einem Stück Software, das dies nicht hat, hinzufügen, sollten die Versionsnummern dessen Regeln folgen. Im Allgemeinen hat die sich daraus resultierende Nummer nichts mit der Release-Version der Software zu tun.
Die drei Grundsätze zum Erstellen von Shared-Libraries sind:
Sie beginnen mit 1.0
.
Gibt es eine Änderung, die abwärtskompatibel ist, so springen Sie zur nächsten Minor-Version (beachten Sie, dass ELF-Systeme die Minor-Version ignorieren).
Gibt es eine inkompatible Änderung, so springen Sie bitte zur nächsten Major-Version.
Zum Beispiel wird beim Hinzufügen von Funktionen und oder Fehlerbehebungen zur nächsten Minor-Version gesprungen, beim Löschen einer Funktion, Ändern von Funktionsaufrufen usw. ändert sich die Major-Version.
Bleiben Sie bei Versionsnummern in der Form major.minor
(x
.y
).
Unser dynamischer Linker a.out kann mit Versionsnummern
in der Form
x
.y
.z
nicht gut umgehen.
Jede Versionsnummer nach dem y
(die dritte Zahl) wird völlig ignoriert, wenn
Versionsnummern der Shared-Libraries verglichen werden, um
zu bestimmen, mit welcher Bibliothek eine Anwendung verlinkt wird.
Sind zwei Shared-Libraries vorhanden, die sich nur in der
„micro“-Revision unterscheiden, so wird
ld.so
zu der höheren verlinken.
Dies bedeutet, dass wenn Sie mit libfoo.so.3.3.3
verlinken, der Linker nur 3.3
in den
Header aufnimmt und alles linkt, was mit
libfoo.so.3
.(irgendetwas
>= 3)
.(höchste
verfügbare Nummer)
beginnt.
ld.so
wird immer die höchste
„Minor“-Revision benutzen. Beispielsweise wird
es die libc.so.2.2
bevorzugen
gegenüber der libc.so.2.0
, auch
dann, wenn das Programm ursprünglich mit
libc.so.2.0
verlinkt war.
Unser dynamischer ELF-Linker kann keine Minor-Versionen
handhaben. Dennoch sollten die Major- und Minor-Versionen genutzt
werden, da unsere Makefile
s „das
Richtige machen“ bezogen auf den Systemtyp.
Für nicht-Port-Bibliotheken lautet die Richtlinie,
die Shared-Library-Versionsnummer nur einmal zwischen den
Releases zu ändern. Weiterhin ist es vorgeschrieben, die
Major-Version der Shared-Libraries nur bei Major-OS-Releases zu
ändern (beispielsweise von 6.0 auf 7.0). Wenn Sie also eine
Änderung an einer Systembibliothek vornehmen, die eine neue
Versionsnummer benötigt, überprüfen Sie die
Commit-Logs des Makefile
s. Es liegt in der
Verantwortung des Committers, dass sich eine erste solche
Änderung seit dem letzten Release in der aktualisierten
Versionsnummer der Shared-Library im
Makefile
äußert, folgende
Änderungen werden nicht berücksichtigt.
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>.