書式
symbols説明
これらのファイルに設定可能な拡張された共有ライブラリの依存関係情報のフォーマットは以下のとおりである:
library-soname main-dependency-template
[| alternative-dependency-template]
[...]
[* field-name: field-value]
[...]
symbol minimal-version [id-of-dependency-template]
library-soname は objdump(1) によってエクスポートされた SONAME フィールドの値と完全に合致している。dependency-template は依存関係を示す。なお#MINVER# は "(>= minimal-version)" のようなバージョンチェックにより動的に置き換えられるか、(バージョンを明示した依存関係が不要だと判断された場合は) 空文字となる。
エクスポートされた各シンボル (name@version 形式で列挙。ライブラリにバージョンが存在しない場合、version は "Base" となる) は dependency template のminimal-version に関連付けられる (id-of-dependency-template が存在しない場合は、main-dependency-template が用いられる。代替の dependency-template の最初のものは 1 となり、次は 2 となっていく。
ライブラリの各エントリには、メタ情報を示すフィールドもいくつか存在する。これらのフィールドはアスタリスクから始まる行に保存される。現在のところ有効なフィールドは、Build-Depends-Package のみである。これは、ライブラリに関連する "-dev" パッケージ名を示し、dpkg-shlibdeps によって、生成される依存関係が、対応するビルド時の依存関係を最低限満たすことを保証するために用いられる。
例
簡単な symbol ファイル
libftp.so.3 libftp3 #MINVER#
DefaultNetbuf@Base 3.1-1-6
FtpAccess@Base 3.1-1-6
[...]
複雑な symbol ファイル
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
[...]