Provided by: dpkg-dev_1.22.18ubuntu3_all bug

BEZEICHNUNG

       dpkg-gensymbols - Symboldateien (Abhängigkeitsinformationen für Laufzeitbibliotheken) erstellen

ÜBERSICHT

       dpkg-gensymbols [Option …]

BESCHREIBUNG

       dpkg-gensymbols durchsucht einen temporären Baubaum (standardmäßig debian/tmp), sucht nach Bibliotheken
       und erstellt eine Datei symbols, die diese beschreibt. Diese Datei wird, falls sie nicht leer ist, in das
       Unterverzeichnis DEBIAN des Baubaums installiert, so dass sie schlussendlich in der Steuerinformation des
       Pakets erscheint.

       Beim Erstellen dieser Dateien verwendet es als Eingabe einige vom Betreuer bereitgestellte Symboldateien.
       Es sucht nach den folgenden Dateien (und verwendet die erste, die gefunden wird):

       •   debian/Paket.symbols.Architektur

       •   debian/symbols.Architektur

       •   debian/Paket.symbols

       •   debian/symbols

       Der  Hauptzweck dieser Dateien besteht darin, die minimale Version bereitzustellen, die mit jedem von der
       Bibliothek bereitgestellten Symbol verknüpft ist. Normalerweise entspricht dies der  ersten  Version  des
       Pakets,  die  dieses  Symbol  bereitgestellt hat, kann aber vom Betreuer erhöht werden, falls die ABI des
       Symbols ohne brechen der Rückwärtskompatibilität erweitert wurde.  Es  liegt  in  der  Verantwortung  des
       Betreuers, diese Dateien aktuell zu halten, aber dpkg-gensymbols hilft dabei.

       Wenn  die  erstellten  Symboldateien  sich von denen, die der Betreuer bereitgestellt hat, unterscheiden,
       wird dpkg-gensymbols einen Diff zwischen den zwei Versionen anzeigen. Falls die Unterschiede  desweiteren
       zu  gravierend  sind,  wird  es  sogar  fehlschlagen  (Sie  können einstellen, wie große Unterschiede Sie
       tolerieren können, sehen Sie hierzu die Option -c).

       Dieses Programm wurde in Dpkg 1.14.8 hinzugefügt.

SYMBOLDATEIEN PFLEGEN

       Das grundlegende Austauschformat der Symboldatei wird in deb-symbols(5) beschrieben. Dies wird von den in
       Binärpaketen enthaltenen Symboldateien verwandt. Diese werden aus Vorlage-Symboldateien  erstellt,  deren
       Format auf Ersterem basiert, in deb-src-symbols(5) beschrieben und in Quellpaketen enthalten ist.

       Die  Symboldateien  sind  nur  wirklich  nützlich,  falls  sie die Entwicklung eines Paketes über mehrere
       Veröffentlichungen hinweg wiedergeben. Daher muss der Betreuer sie immer aktualisieren, wenn  eine  neues
       Symbol hinzugefügt wird, so dass die zugeordnete minimale Version der Realität entspricht.

       Die in den Bauprotokollen enthaltenen Diffs können als Startpunkt benutzt werden, aber zusätzlich hat der
       Betreuer  sicherzustellen,  dass  sich  das  Verhalten  dieser  Symbole  nicht  derart geändert hat, dass
       irgendetwas, was diese Symbole verwendet und gegen die neue Version gelinkt ist, daran hindern würde, mit
       der alten Version zu funktionieren.

       Meistens kann der Diff direkt auf die Datei  debian/Paket.symbols  angewandt  werden.  Allerdings  werden
       normalerweise  weitere  Anpassungen  notwendig: es wird beispielsweise empfohlen, die Debian-Revision von
       der minimalen Version zu entfernen, so dass Backports mit  einer  niedrigeren  Versionsnummer,  aber  der
       gleichen Version der Originalautoren immer noch die erstellten Abhängigkeiten erfüllen. Falls die Debian-
       Revision  nicht  entfernt  werden  kann,  da  das  Symbol  wirklich  von der Debian-spezifischen Änderung
       hinzugefügt wurde, dann sollte der Version ‚~’ angehängt werden.

       Bevor irgendein Patch auf die Symboldatei angewendet wird, sollte der Betreuer zweimal prüfen,  dass  der
       Patch vernünftig ist. Öffentliche Symbole sollten nicht verschwinden, daher sollte der Patch idealerweise
       nur neue Zeilen hinzufügen.

       Beachten Sie, dass Sie in Symboldateien Kommentare verwenden können.

       Vergessen  Sie  nicht,  zu  überprüfen,  ob  alte Versionen aktualisiert werden müssen. Es gibt für dpkg-
       gensymbols keine Möglichkeit, hierzu eine Warnung auszugeben. Wird der Diff blind  akzeptiert  oder  wird
       angenommen,  dass  nichts  geändert werden muss, wenn es keinen Diff gibt, ohne auf Änderungen zu prüfen,
       kann dies dazu führen, dass lockere Abhängigkeiten erzeugt  werden,  laut  deren  mit  älteren  Versionen
       gearbeitet  werden  kann,  obwohl  dies  nicht  möglich ist. Dies wird zu schwer zu findenden Fehlern bei
       (teilweisen) Upgrades führen.

   Gute Bibliotheksverwaltung
       Eine gut verwaltete Bibliothek hat die folgenden Eigenschaften:

       •   ihre API ist  stabil  (öffentliche  Symbole  entfallen  nie,  nur  neue  öffentliche  Symbole  werden
           hinzugefügt) und inkompatible Änderungen erfolgen nur, wenn sich der SONAME ändert,

       •   idealerweise  verwendet sie Symbolversionierung, um ABI-Stabilität trotz interner Änderungen und API-
           Erweiterungen zu erreichen,

       •   sie exportiert nie private Symbole (als Hilfslösung können diese als optional gekennzeichnet werden).

       Bei der Verwaltung der Symboldatei kann das Auftauchen  und  Verschwinden  von  Symbolen  leicht  bemerkt
       werden.  Es  ist  aber  schwieriger,  inkompatbile  API- und ABI-Änderungen zu bemerken. Daher sollte der
       Betreuer intensiv die Changelog-Einträge der Originalautoren durchschauen  und  nach  Fällen  suchen,  in
       denen  die  Regeln  der  guten  Bibliotheksverwaltung  gebrochen wurden. Falls mögliche Probleme entdeckt
       wurden, sollten der Originalautor informiert werden, da eine Korrektur vom Originalautor immer besser als
       eine Debian-spezifische Hilfslösung ist.

OPTIONEN

       -PPaketbauverzeichnis
           Sucht nach Paketbauverzeichnis statt nach debian/tmp.

       -pPaket
           Definiert den Paketnamen.  Wird  benötigt,  falls  mehr  als  ein  binäres  Paket  in  debian/control
           aufgeführt ist (oder falls es keine Datei debian/control gibt).

       -vVersion
           Definiert  die Paketversion. Standardmäßig wird die Version aus debian/changelog entnommen. Benötigt,
           falls der Aufruf außerhalb des Quellpaketbaums erfolgt.

       -eBibliotheksdatei
           Untersucht nur die explizit aufgeführten Bibliotheken, statt nach allen öffentlichen Bibliotheken  zu
           suchen.  Sie  können  Shell-Muster,  die  zur  Expansion  von  Pfadnamen  verwandt  werden (siehe die
           Handbuchseite File::Glob für weitere Details) in Bibliotheksdatei verwenden, um mehrere  Bibliotheken
           mit einem einzelnen Argument abzugleichen (andernfalls benötigen Sie mehrere -e).

       -lVerzeichnis
           Stellt  Verzeichnis  der  Liste  der zu durchsuchenden privaten Laufzeitbibliotheken voran (seit Dpkg
           1.19.1). Diese Option kann mehrfach angegeben werden.

           Hinweis: Verwenden Sie diese Variable, statt LD_LIBRARY_PATH zu setzen,  da  diese  Umgebungsvariable
           verwandt  wird,  um  den  Laufzeit-Linker  zu  steuern  und  ihr  Missbrauch zum Setzen von Pfaden zu
           Laufzeitbibliotheken zur Bauzeit kann beispielsweise beim Cross-Kompilieren problematisch werden.

       -IDateiname
           Verwendet Dateiname als Referenzdatei, um die Symboldatei zu erstellen,  die  dann  im  Paket  selbst
           integriert wird.

       -O[Dateiname]
           Die  erstellte  Symbols-Datei  auf die Standardausgabe oder nach Dateiname, falls angegeben, ausgeben
           statt in  debian/tmp/DEBIAN/symbols  (oder  Paket-Bauverzeichnis/DEBIAN/symbols,  falls  -P  verwandt
           wurde).  Falls  Dateiname  bereits  existiert,  wird  deren  Inhalt  als  Grundlage für die erstellte
           Symboldatei verwandt. Sie können diese Funktionalität benutzen, um eine Symboldatei zu aktualisieren,
           so dass sie zu einer neueren Version der Originalautoren Ihrer Bibliothek passt.

       -t  Schreibt die Symboldatei  im  Vorlagenmodus  statt  im  zu  deb-symbols(5)  kompatiblen  Format.  Der
           Hauptunterschied  besteht  darin,  dass im Vorlagenmodus die Symbolnamen und Kennzeichnungen in ihrer
           Originalform geschrieben werden,  im  Gegensatz  zu  den  verarbeiteten  Symbolnamen  mit  entfernten
           Kennzeichnungen  im  Kompatibilitätsmodus.  Desweiteren  könnten  einige Symbole beim Schreiben einer
           Standard-deb-symbols(5)-Datei  entfernt  werden  (gemäß  der  Verarbeitungsregeln  für  Kennzeichen),
           während in der Symboldateivorlage immer alle Symbole geschrieben werden.

       -c[0-4]
           Definiert  die  Prüfungen,  die  beim  Vergleich der erstellten Symboldatei mit der Vorlagendatei als
           Startpunkt erfolgen sollen. Standardstufe ist 1. Zunehmende Stufen führen mehr  Prüfungen  durch  und
           enthalten alle Prüfungen der niedrigeren Stufen.

           Stufe 0
               schlägt nie fehl.

           Stufe 1
               Schlägt fehl, wenn einige Symbole verschwunden sind.

           Stufe 2
               falls einige neue Symbole eingeführt wurden.

           Stufe 3
               falls einige Bibliotheken verschwunden sind.

           Stufe 4
               falls einige Bibliotheken hinzugekommen sind.

           Dieser Wert kann von der Umgebungsvariablen DPKG_GENSYMBOLS_CHECK_LEVEL außer Kraft gesetzt werden.

       -q  Ruhig  verhalten  und  nie  einen  Diff  zwischen  der  erstellten Symboldatei und der als Startpunkt
           verwandten Vorlagendatei erstellen oder keine Warnungen bezüglich  neuer/verschwundener  Bibliotheken
           oder  neuer/verschwundener  Symbole  ausgeben.  Diese Option deaktiviert nur die informative Ausgabe,
           aber nicht die Prüfungen selbst (sehen Sie hierzu die Option -c).

       -aArchitektur
           Nimmt Arch als Host-Architektur beim Verarbeiten der Symboldateien an. Verwenden Sie diese Option, um
           Symboldateien oder Diffs für beliebige Architekturen zu erstellen, vorausgesetzt, die  Binärprogramme
           sind bereits verfügbar.

       -d  Debug-Modus  aktivieren.  Eine  Vielzahl  von  Meldungen  wird  angezeigt,  um zu erklären, was dpkg-
           gensymbols durchführt.

       -V  Ausführlichen Modus aktivieren. Die erstellte Symboldatei enthält veraltete Symbole  als  Kommentare.
           Im  Vorlagenmodus  werden  Mustersymbole  desweiteren von Kommentaren gefolgt, die die echten Symbole
           aufführen, die auf dieses Muster passen.

       -?, --help
           Zeigt einen Hinweis zum Aufruf und beendet das Programm.

       --version
           Gibt die Version aus und beendet das Programm.

UMGEBUNG

       DEB_HOST_ARCH
           Setzt die Host-Architektur, falls die Option --arch nicht angegeben wurde.

       DPKG_GENSYMBOLS_CHECK_LEVEL
           Setzt die Befehlsüberprüfungsstufe außer Kraft, selbst wenn das  Befehlszeilenargument  -c  übergeben
           wurde  (beachten  Sie, dass dies der üblichen Konvention widerspricht, demnach Befehlszeilenargumente
           Vorrang gegenüber Umgebungsvariablen haben).

       DPKG_COLORS
           Setzt den Farbmodus (seit Dpkg 1.18.5). Die derzeit unterstützten Werte sind: auto (Vorgabe),  always
           und never.

       DPKG_NLS
           Falls  dies gesetzt ist, wird es zur Entscheidung, ob Native Language Support, auch als Unterstützung
           für Internationalisierung (oder i18n) bekannt, aktiviert wird (seit Dpkg  1.19.0).  Die  akzeptierten
           Werte sind: 0 und 1 (Vorgabe).

SIEHE AUCH

       <https://people.redhat.com/drepper/symbol-versioning>,
       <https://people.redhat.com/drepper/goodpractice.pdf>,   <https://people.redhat.com/drepper/dsohowto.pdf>,
       deb-src-symbol(5), deb-symbols(5), dpkg-shlibdeps(1).

ÜBERSETZUNG

       Die deutsche Übersetzung wurde 2004, 2006-2025 von  Helge  Kreutzmann  <debian@helgefjell.de>,  2007  von
       Florian  Rehnisch  <eixman@gmx.de>  und  2008  von  Sven  Joachim  <svenjoac@gmx.de>  angefertigt.  Diese
       Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 2  oder  neuer  für
       die Kopierbedingungen. Es gibt KEINE HAFTUNG.

1.22.18                                            2025-04-28                                 dpkg-gensymbols(1)