Subject: Re: RFC: Subpackages from a single package Makefile
To: None <tech-pkg@NetBSD.org>
From: Julio M. Merino Vidal <jmmv@menta.net>
List: tech-pkg
Date: 05/31/2004 21:04:13
On Sun, 30 May 2004 19:39:08 +0000
"Johnny C. Lam" <jlam@NetBSD.org> wrote:

> I've attached a proposal to allow generating multiple subpackages from
> a single package directory.  I would appreciate comments on:
> 
>    (1) why this is a bad idea in pkgsrc;

It's not!  This is something I wanted, for example, to install libraries
w/o header files in my server, where the later are completely useless
(and many Linux distros allow this structure, with their -dev packages).
Furthermore, it will make maintaining of packages a lot easier (as you
say in the document).

>  (2) For package views users, it becomes easier to install bits of a
>      package into different views without dragging in the whole package
>      into every view.  This becomes important with "extensible"
>      packages that need to be added to the depot directory of the
>      extended package, e.g. add just the Perl bits of cyrus-imapd-2.2.4
>      into the perl-5.8.4 depot directory.

Have you considered the wrapper idea I proposed in a previous mail (from
beginning of May, IIRC)?

I don't like very much the idea of adding stuff of a package into the
depot directory of another one...  (but well, I could stand it if we
have good granularity of packages, with this new framework...).

>  (3) All subpackages are always built and installed if building from
>      source.

I have to agree with this.  This simplifies the build a lot, as one
doesn't need to mess with the build infrastructure of the package
(i.e., install everything and then create different binary packages).
This is the "purpose", right?

And at last, something that is not clear in the document.  How do you
specify different dependencies for the different subpackages?

For example, consider librsvg2.  The basic library could be in a
librsvg2-lib package, which does not need to depend on gtk2.  Then,
there could be a subpackage, librsvg2-gtk2, providing the gtk module,
which needs gtk2.  There should be a way to specify which depends
belong to each subpackage.

Thanks for doing this!

-- 
Julio M. Merino Vidal <jmmv@menta.net>
The NetBSD Project - http://www.NetBSD.org/