# deb-symbols

## NAME



           deb-symbols - Debian's extended shared library information file
    


## SYNOPSIS



           **DEBIAN/symbols**
    


## DESCRIPTION



           The symbol files are shipped in Debian binary packages, and its
           format is a subset of the template symbol files used by
           dpkg-gensymbols(1) in Debian source packages, see
           deb-src-symbols(5).
    
           The format for an extended shared library dependency information
           entry in these files is:
    
            _library-soname main-dependency-template_
            [| _alternative-dependency-template_]
            [...]
            [* _field-name_ : _field-value_]
            [...]
             _symbol minimal-version_ [_id-of-dependency-template_]
    
           The _library-soname_ is exactly the value of the SONAME field as
           exported by objdump(1).  A _dependency-template_ is a dependency
           where _#MINVER#_ is dynamically replaced either by a version check
           like “(>= _minimal-version_)” or by nothing (if an unversioned
           dependency is deemed sufficient).
    
           Each exported _symbol_ (listed as _name_ @_version_ , with _version_ being
           “Base” if the library is not versioned) is associated to a
           _minimal-version_ of its dependency template (the main dependency
           template is always used and will end up being combined with the
           dependency template referenced by _id-of-dependency-template_ if
           present).  The first alternative dependency template is numbered
           1, the second one 2, etc.  Each column is separated by exactly a
           single whitespace.
    
           Each entry for a library can also have some fields of
           meta-information.  Those fields are stored on lines starting with
           an asterisk.  Currently, the only valid fields are:
    
           **Build-Depends-Package**
               It indicates the name of the “-dev” package associated to the
               library and is used by **dpkg-shlibdeps** to make sure that the
               dependency generated is at least as strict as the
               corresponding build dependency (since dpkg 1.14.13).
    
           **Build-Depends-Packages**
               The same as **Build-Depends-Package** but accepts a
               comma-separated list of package names (since dpkg 1.20.0).
               This field will override any **Build-Depends-Package** field
               present, and is mostly useful with “-dev” packages and
               metapackages depending on these, say for a transition period.
    
           **Allow-Internal-Symbol-Groups**
               It indicates what internal symbol groups should be ignored, as
               a whitespace separated list, so that the symbols contained in
               those groups get included in the output file (since dpkg
               1.20.1).  This should only be necessary for toolchain packages
               providing those internal symbols.  The available groups are
               system dependent, for ELF and GNU-based systems these are
               **aeabi** and **gomp**.
    


## EXAMPLES



       **Simple symbols file**
            libftp.so.3 libftp3 #MINVER#
             DefaultNetbuf@Base 3.1-1-6
             FtpAccess@Base 3.1-1-6
             [...]
    
       **Advanced symbols file**
            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
             [...]
    


* * *