Subject: Re: Notes and Thoughs on System Packages
To: John Darrow <John.P.Darrow@wheaton.edu>
From: Todd Vierling <tv@pobox.com>
List: tech-pkg
Date: 09/23/1998 16:28:09
On Wed, 23 Sep 1998, John Darrow wrote:

: >Admin from the server.  If you're sharing /usr, you don't want to delete
: >stuff in /usr from a client box.
: 
: But this doesn't solve the problem.  We should be able to do a 'pkg_info'
: from any of the clients and see all the system packages listed.  In this
: setup, we'd only see them on the server machine.  And who says that the
: files are in /usr on the server machine, or that it is even (necessarily)
: running netbsd?  For quite a while our system had much of /usr shared via
: nfs from a server running HP-UX 10.20 (while eagerly awaiting the release
: of netbsd/hp700 :)

If you're installing on a net server, you have a couple options:

- Install via the client.  The /etc information gets updated.
- Share /etc/pkg (which should be trivial if you're sharing /usr).

Because pkgs _do_ and _will_ put stuff outside of /usr, it really isn't wise
to try to do adminning from more than one box when fooling with base sets.
It's just not advisable.  The cleanest solution is and will be adminning
from one box when messing with the base system.

:  Currently, the comp set includes the /sys link (which is wrong, IMO, as
: it hardcodes to /usr/src/sys, and many people do not keep their sources
: there)

That's the standard location; has been for a long time.  But /sys is not
even a necessary path; none of the kernel uses it by default.  It's just
there for convenience.

: and /var/db/libc.tags (which is rebuilt with a make build anyway), the
: secr set has kerberized versions of /sbin/init and /bin/ed, and the
: games set includes some files in /var/games/hackdir and
: /var/games/phantasia.  The etc set is entirely outside of /usr.  Only
: the base set includes large numbers of files both in and out of /usr.

Doesn't matter if the numbers are large or small.  The fact that there are
files both in and out of /usr makes trying to share such pkg information
messy and prone to error.

: I would propose that the non-{base,etc} 'packages' be prefixed in /usr,
: resulting in a package db directory of /usr/etc/pkg.  This would give them
: a parallel structure to the non-system packages (e.g. ${PREFIX}/include for
: include files, ${PREFIX}/share for sharable files) [1].

No.  That kills mounting /usr read-only, as some programs (games, for
example) must write files which already exist in the set, and which are NOT 
shared.

: As a corollary to this, this would allow the X sets to be converted into
: packages rooted at /usr/X11R6, thus resulting in /usr/X11R6/etc/pkg, and
: allowing just /usr/X11R6 to be shared on some systems, rather than the
: entire /usr.

X11 is a completely new can of worms when you talk about sharing, and there
are proposals in the works to move some of the nonshareable files into /var
- blasting your whole proposal out of the water.  :-/  There's far more
drive to be able to share partitions _read-only_ than to be able to make
sure all files for a given set are in the same path prefix.

: [1] The most significant place where this would not _currently_ match up
: with the pkg hierarchy is in the man files.  But, ideally, shouldn't pkg
: man files go into ${PREFIX}/share/man/* instead of ${PREFIX}/man/*, since
: they are mi text files/roff source, anyway?

Proposed; not much work done on it.  I believe it is a good idea.

-- 
-- Todd Vierling (Personal tv@pobox.com; Bus. todd_vierling@xn.xerox.com)