Subject: Re: Package Paths Proposal v2
To: Curt Sampson <cjs@cynic.net>
From: Todd Vierling <tv@pobox.com>
List: tech-pkg
Date: 12/16/1998 13:25:25
On Wed, 16 Dec 1998, Curt Sampson wrote:

: Ok. This, to my mind, blows requirement three, since you're now
: given no way to separate the stuff the package system installs in
: etc and var from the /etc and /var directories, but if you don't
: have a problem with this, I don't either.

I interpret that requirement as for `binaries' only.  I'd rather see all
stuff in the absolute /etc and /var.

: > People using the existing package system -- and more importantly, existing
: > binary pkgs -- have to do Nothing to use the new system; simply adding a
: > symlink at /usr/pkg (instead of letting pkg_add create the directory)
: > suffices to intermix binaries.  People who don't have to mix don't change a
: > thing.
: 
: Ok, I see. You just wanted backwards compatability.

Partly that, and ...

: > Um, `our' new system reads that the default is not to intermix binaries.
: 
: I don't agree with this (though my disagreement is not particularly
: strong); I think the novice is much better off with intermixed
: binaries. What advantage accrues to a non-developer from not mixing
: them?

... partly because it is the way it works already.

Novices already deal with software in /usr/local (c.f. FreeBSD); as of the
1.3.3-compiled pkgs, /usr/pkg/lib no longer needs to be in /etc/ld.so.conf
on a.out, eliminating the last major novice-problem with pkgs.  Personally,
I loathe the way that Linux mixes *everything*.  But for mixing stuff in,
there's always a place in INSTALL that a note about the symlink can be put.
(Remember that from a fresh install, /usr/pkg does not exist at all.)

: > Because neither our current system nor the distrib-lists -> pkg proposal in
: > the works have that fine of granularity such that you can pkg_delete
: > something installed with the system distribution.  So, you move the system
: > stuff out of the way so that your pkg installed stuff will not conflict.
: 
: I'd say we should add that granularity, then, if we can. I'll live
: if it doesn't happen, though, since I don't have time to do the
: work myself.

`Catch-22'.  No one else has the time, either.  8-)

: Here are my current thoughts on how to install /etc and /var files:
: 
: 1. The package, when compiled, always looks in /etc and /var for
: the files appropriate to those directories.
: 
: 2. Packages are set up to place `fresh' or `example' etc and var
: files in /usr/pkg/share/examples/<pkgname>/{etc|var}. Nothing is
: placed in /etc or /var.

Grumble.  `var' should not be there - what example are you making for a
volatile file?  :)

And without `var', why have `etc' in the path... just make it
share/examples/pkgname/file.conf.  (And see edit-v2, also:  I mention not
even having a pkgname subdir for uniquely named single config files.)

: 3. For every file in /usr/pkg/share/examples/<pkgname>/etc, pkg_add
: checks to see if the file exists in /etc. If not, it copies it
: there. If one is there, pkg_add prints a note to say that this file
: has possibly been upgraded, and should be checked. pkg_add does
: the same for var.
: 
: 4. pkg_add has an option which does just step 3 for installed
: packages. (This is how one installs the /etc and /var stuff on a
: machine that's sharing /usr/pkg with other machines.)
: 
: 5. pkg_delete, when run, does not remove /usr/pkg/share/examples/<pkgname>,
: but instead renames it to <pkgname>.old. This is so that one can
: diff the files after uninstalling one version and installing a new one.

If we make a @configfile pkg_add option, this becomes trivial.

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