library-specs - shared library name specifications
Each LIB_DEPENDS item in the port tree conforms to
where `lib_specs' is a comma-separated list of `lib_spec' of
All libraries that a port needs must be mentioned in that
directly or indirectly through recursive dependencies (except, of course,
for system libraries).
The package system will embed correct dependency checks in
package, according to the normal shared library semantics:
with the same major number, and a greater or equal minor
number will do.
Therefore, porters must strive to respect correct shared library semantics
in their own ports: by bumping the minor number each
time the interface
is augmented, and by bumping the major number each time
changes. Note that adding functions to a library is an
augmentation. Removing functions is an interface change.
The major.minor components of the library specification are
used only as
a build-time check. Any library which is more recent than
the given major.minor
version will do. If the minor component is left
empty, any minor
will do. If both components are left empty, any version
will do. If
a specific major number is needed, use the form `libname.=major[.minor]'.
The `pkgspec' part is always checked, both at build-time,
pkg_add(1) time. If `pkgspec' is left empty, any package
will do: in effect,
the pkgspec used is `stem-*'.
If a given architecture does not support shared libraries,
LIB_DEPENDS will be turned into simple BUILD_DEPENDS checks.
mention RUN_DEPENDS if the port needs anything beyond libraries from the
dependent port will lead to strange errors.
pkg_add(1), bsd.port.mk(5), packages(7), packages-specs(7),
Full support for library specifications first appeared in
OpenBSD 3.6 April 9, 2001
[ Back ]