Subject: Re: Changing from /var/db/pkg
To: Curt Sampson <cjs@cynic.net>
From: Julio M. Merino Vidal <jmmv84@gmail.com>
List: tech-pkg
Date: 03/05/2005 11:30:43
On Sat, 2005-03-05 at 18:37 +0900, Curt Sampson wrote:
> On Sat, 5 Mar 2005, Julio M. Merino Vidal wrote:
> 
> > Not under etc, please.  First of all because nothing should use
> > ${LOCALBASE}/etc directly.
> 
> Isn't that a foregone cause? Last I looked, tons of stuff installed from
> pkgsrc defaulted to ${LOCALBASE}/etc for configuration information.

Not completely, but it's "work in progress".  Lots of packages have been
converted to use the bsd.pkg.install.mk framework to install their
configuration files under PKG_SYSCONFDIR instead of PREFIX/etc.

(Personally, I consider broken any package which touches PREFIX/etc
directly.)

> > Furthermore, I don't see them as configuration files; they are extra
> > information associated with the installed packages. And you should
> > never have to modify them by hand.
> 
> One or both of these is true of many other things already in /etc, such
> as dumpdates, localtime, passwd, pwd.db, rc.conf.d/*, rc.d/*, rc.subr,
> release, skeykeys, and the list goes on.

Hmm true.

> > So this is why I proposed libdata: because it's extra information used
> > by some tools which the user should not edit directly. (We are already
> > using that hierarchy for multiple packages, following this rationale.)
> 
> That seems just fine to me, too, for this particular case. (Despite
> being changing information, which is not really what I'd thought of for
> libdata, if you lose the packages, the configuration files are safely
> deleted as well, since they're easily regenerated, so there's no point
> in putting them in some place where they're easy to back up separately.)

I'm not sure I understand you here.  It's "changing information", but it
only changes at well-known points: i.e., when installing a new package
or when removing an existent one[1].  If you blow away your LOCALBASE,
that information will also be removed - and it will be automatically
reconstructed when you install any other package.

The same happens for other packages that actually use libdata, such as
scrollkeeper, gstreamer or gtk2.  They only update the information in
that tree during (de)installation of packages, and they keep no local
configuration information.

[1] As an unrelated note: this won't cause any problems with ro-mounted
LOCALBASEs.

-- 
Julio M. Merino Vidal <jmmv84@gmail.com>
http://www.livejournal.com/users/jmmv/
The NetBSD Project - http://www.NetBSD.org/