ÜBERSICHT
symbolsBESCHREIBUNG
Die Symboldateien werden in Debian-Binärpaketen ausgeliefert. Deren Format ist eine Teilmenge der Vorlagensymboldateien, die von dpkg-gensymbols(1) in Debian-Quellpaketen verwandt wird.Das Format eines Eintrags für eine erweiterte Abhängigkeitsinformation einer Laufzeitbibliothek (»shared library«) lautet:
Bibliotheks-Soname Hauptabhängigkeitsvorlage
[| alternative-Abhängigkeitsvorlage]
[…]
[* Feldname: Feldwert]
[…]
Symbol Minimalversion [Kennung-der-Abhängigkeitsvorlage]
Der Bibliotheks-Soname ist genau der Wert des SONAME-Feldes, wie er von objdump(1) exportiert wird. Eine Abhängigkeitsvorlage ist eine Abhängigkeit, in der #MINVER# dynamisch entweder von einer Versionsprüfung der Art "(>= Minimalversion)" oder durch nichts ersetzt wird, falls eine nicht-versionierte Abhängigkeit als ausreichend erachtet wird.
Jedem exportierten Symbol (aufgeführt als Name@Version, mit Version als "Base", falls die Bibliothek nicht versioniert ist) wird eine Minimalversion seiner Abhängigkeitsvorlage zugeordnet (die Hauptabhängigkeitsvorlage wird immer verwandt und wird am Ende mit der abhängigen, in id-of-dependency-template referenzierten Vorlage (falls vorhanden) kombiniert) Die erste alternative Abhängigkeitsvorlage wird mit 1 nummeriert, die zweite mit 2 usw.
Jeder Eintrag für eine Bibliothek kann auch einige Felder mit Metainformationen enthalten. Diese Felder werden in Zeilen gespeichert, die mit einem Stern beginnen. Derzeit sind die einzig gültigen Felder:
- Build-Depends-Package
- Es gibt den Namen des "-dev"-Pakets an, das der Bibliothek zugeordnet ist, und wird von dpkg-shlibdeps verwandt, um sicherzustellen, dass die erstellte Abhängigkeit mindestens genauso strikt ist wie die zugehörige Bau-Abhängigkeit (seit Dpkg 1.14.13).
- Ignore-Blacklist-Groups
- Es gibt in einer durch Leerraumzeichen getrennten Liste an, welche Blacklist-Gruppen ignoriert werden sollten, so dass Symbole, die in diesen Gruppen enthalten sind, in die Ausgabedatei aufgenommen werden (seit Dpkg 1.17.6). Dies sollte nur für Toolchain-Pakete notwendig sein, die solche Symbole in Blacklists bereitstellen. Die verfügbaren Gruppen sind systemabhängig, für ELF- und GNU-basierte Systeme sind dies aeabi und gomp.
BEISPIELE
Einfache Symboldatei
libftp.so.3 libftp3 #MINVER#
DefaultNetbuf@Base 3.1-1-6
FtpAccess@Base 3.1-1-6
[…]
Fortgeschrittene Symboldatei
libGL.so.1 libgl1
| libgl1-mesa-glx #MINVER#
* Build-Depends-Package: libgl1-mesa-dev
publicGlSymbol@Base 6.3-1
[…]
implementationSpecificSymbol@Base 6.5.2-7 1
[…]