LI library-specs - shared library name specifications
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]]'.
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 semantics
in their own ports: by bumping the minor number each
time the interface
is augmented, and by bumping the major number each time
the interface
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. 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,
and at
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,
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.
pkg_add(1), bsd.port.mk(5), packages(7), packages-specs(7),
ports(7)
Full support for library specifications first appeared in
OpenBSD 3.1.
OpenBSD 3.6 April 9, 2001
[ Back ] |