8.4. Development files
If there are development files associated with a shared library, the source package needs to generate a binary development package named libraryname-dev, or if you need to support multiple development versions at a time, librarynameapiversion-dev. Installing the development package must result in installation of all the development files necessary for compiling programs against that shared library. 7
In case several development versions of a library exist, you may need to use dpkg
’s Conflicts mechanism (see Conflicting binary packages - Conflicts) to ensure that the user only installs one development version at a time (as different development versions are likely to have the same header files in them, which would cause a filename clash if both were unpacked).
The development package should contain a symlink for the associated shared library without a version number. For example, the libgdbm-dev package should include a symlink from /usr/lib/libgdbm.so
to libgdbm.so.3.0.0
. This symlink is needed by the linker (ld
) when compiling packages, as it will only look for libgdbm.so
when compiling dynamically.
If the package provides Ada Library Information (*.ali
) files for use with GNAT, these files must be installed read-only (mode 0444) so that GNAT will not attempt to recompile them. This overrides the normal file mode requirements given in Permissions and owners.
This wording allows the development files to be split into several packages, such as a separate architecture-independent libraryname-headers, provided that the development package depends on all the required additional packages.