LIBRARY-SPECS(7)           OpenBSD Reference Manual           LIBRARY-SPECS(7)

NAME
     library-specs - shared library name specifications

DESCRIPTION
     Each LIB_DEPENDS item in the port tree conforms to
     `lib_specs:[pkgspec]:directory[,-subpackage][,flavor ...][:target]',
     where `lib_specs' is a comma-separated list of `lib_spec' of the form:
     `libname[.=major[.minor]]' or `libname[.>=major[.minor]]'.

     All libraries that a port needs must be mentioned in that list, either
     directly or indirectly through recursive dependencies (except, of course,
     for system libraries).

     The package system will embed correct dependency checks in the built
     package, according to the normal shared library semantics: any library
     with the same major number, and a greater or equal minor number will do.

     Therefore, porters must strive to respect correct shared library seman-
     tics in their own ports: by bumping the minor number each time the inter-
     face is augmented, and by bumping the major number each time the inter-
     face changes.  Note that adding functions to a library is an interface
     augmentation.  Removing functions is an interface change.

     The major.minor components of the library specification are used only as
     a build-time check.  For `libname.>=major[.minor]', any library which is
     more recent than the given major.minor version will do.  If a specific
     major number is needed, use the form `libname.=major[.minor]'.  If the
     minor component is left empty, any minor will do.  If both components are
     left empty, any version will do.

     The `pkgspec' part is always checked, both at build-time, and at
     pkg_add(1) time.  If `pkgspec' is left empty, any package will do: in ef-
     fect, the pkgspec used is `stem-*'.

     If a given architecture does not support shared libraries, all
     LIB_DEPENDS will be turned into simple BUILD_DEPENDS checks.  Failure to
     mention RUN_DEPENDS if the port needs anything beyond libraries from the
     dependent port will lead to strange errors.

SEE ALSO
     pkg_add(1), bsd.port.mk(5), packages(7), packages-specs(7), ports(7)

HISTORY
     Full support for library specifications first appeared in OpenBSD 3.1.
     The format of specifications changed slightly to include `>=' before
     OpenBSD 4.0.

OpenBSD 4.7                      May 31, 2007                                1
