tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Package split or package options?



Splitting stuff into separate packages is the most efficient way
to do things.


In OpenBSD, *all* of the complexity of flavors and multi-packages is
geared towards making this maximally useful.

Summary:

FLAVORS are options that are handled by a given port.

MULTI_PACKAGES are the different subpackages that will be built for a given
port.

If
DISTNAME = foo-1.0
MULTI_PACKAGES = -server -client -doc

then we will get the pkgnames from
PKGNAME-server
PKGNAME-client

for instance,
PKGNAME-server = foo-server-1.0
PKGNAME-client = foo-1.0

The FULLPKGNAME has flavors appended, by default, e.g.,
if FLAVORS=a b c
and FLAVOR=c
let's explicitly set
FULLPKGNAME-doc = foo-doc-1.0 (as it doesn't depend on the flavor in
that case).


then
FULLPKGNAME-server = foo-server-1.0-c
FULLPKGNAME-client = foo-1.0-c
FULLPKGNAME-doc = foo-doc-1.0

this works just fine.


One nifty additions is PSEUDO_FLAVORS, such as
PSEUDO_FLAVORS = no_server: these are flavors that only affect
the build, and that don't change the pkgnames.


e.g., if
FLAVOR=a b no_server,  then I'll end up with
FULLPKGNAME-client = foo-1.0-a-b
FULLPKGNAME-doc = foo-doc-1.0
(and no server subpackage).

In the actual case of a full bulk build, we can uniquely identify each
binary packages easily... 

By default, dependencies ignore flavors, unless we explicitly tell them
to require ONE specific flavor.


Home | Main Index | Thread Index | Old Index