Subject: Re: PROPOSAL: NetBSD System Packages
To: Alan Barrett <apb@iafrica.com>
From: Todd Whitesel <toddpw@best.com>
List: tech-install
Date: 10/01/1998 03:58:01
> Could we keep both groups of people happy somehow?  Perhaps by having
> mutant pkg-sets that contains pointers to its constituent pkgs instead of
> containing copies of them, and letting people choose whether to use the
> plain pkg-sets (containing copies of the pkgs) or the mutants (containing
> pointers to the pkgs). 

I like this a lot. While the extra granularity is cool, it is very nice to
know that you can always put together a system from scratch by hand. I'd
even go so far as to say that it's essential, because it is part of what
differentiates us from Micro$haft.

Unfortunately the doubling of available 'styles' would mean extra disk space
on the servers (but not on large media like the CD-ROM). What if the pkg-set
format is a mind-bogglingly simple conglomeration of normal pkgsrc packages,
for which a simple and very portable integration/disintegration tool is
available?

In other words, have pkg-sets be little more than a bunch of pkgsrc packages
in a tar file together with a table-of-contents file at the front. Think 'ar'
plus 'ranlib'; pkg_add is to dl_open() as sysinst is to 'ld', somewhat.

It should be possible to write a fairly portable script that builds a table
of contents for its arguments and tars them all up. That would allow people
with basic tar skills to construct their own pkg-sets. If the script has some
simple logic to check dependencies, then we can make 'uber' packages that
just have dependencies in them. It should be possible to say

    sh conglomerate cvf my-pkg-sets.tar uber-base.tgz uber-man.tgz uber-gnu.tgz

And have it roll up everything you need for those into one file.

Come to think of it, something like this would be real nice for the binary
packages with complicated library dependencies...

> These mutant pkg-sets seem to look a lot like meta-pkgs, and I can imagine
> a new kind of meta-pkg that does everything the existing meta-pkgs do, and
> everything the proposed pkg-sets do, and allows the people who build the
> pkg to choose whether to use copies of or pointers to the constituent
> pkgs.

Seems to me that meta-pkg's and "mutant pkg-sets" are really just standard
packages with no files and lots of dependency statements. It should take
very little or no work to teach the existing package tools what they mean.
(Ignoring the issue of automatic recursive operation, that is.)

Todd Whitesel
toddpw @ best.com