Subject: Location of Package Config Files
To: Alistair Crooks <agc@pkgsrc.org>
From: Curt Sampson <cjs@cynic.net>
List: tech-pkg
Date: 11/06/2001 18:41:07
On Tue, 6 Nov 2001, Alistair Crooks wrote:
> On Tue, Nov 06, 2001 at 05:35:01PM +0900, Curt Sampson wrote:
> >
> > 1. This file is not written by the program, so there's no problem
> > keeping it on a read-only file system. So this does not break that.
>
> Installation of a package by source or by pkg_add'ing a binary package does
> break it, though.
No, it doesn't! This installs nothing in /etc.
> No, wanting everything under ${PREFIX} is not a silly idea - it
> is quite logical and consistent.
That's certainly true if ${PREFIX} is not under /usr. Unfortuanately,
it is under /usr by default, which puts config files under /usr. It
would also presumably put log and other "var" files under /usr, except
we chose to be "consistently inconsistent" there and put "var" package
stuff directly under /var instead.
In fact, we put non-var information, such as which packages are installed,
under /var too! (So /var on a different system with shared /usr will
indicate that packages are not available when in fact they are installed.)
> I said there were some inconsistencies, and that's what I was
> talking about - ssh.
>
> It needs to be in /etc, really, for the base
> system. Having multiple copies of ssh host keys is not some place
> I want to go.
> > 4. A shared /usr is a pretty common configuration; it's practically
> > as old an idea Unix network file access period.
>
> Thanks, but it's not necessary to remind me how old I am.
I'm not trying to be insulting. I'm not not entirely convinced we should
be screwing these users over a different set. The implication that people
are more likely to want a read-only /etc than a read-only or sharable
/usr I find a little...unusual.
> > 5. This is a system configuration file. According to the hier(8)
> > manapage, we keep system configuration files in /etc.
>
> Yes, and we try to follow hier(7) conventions under ${PREFIX} where
> possible.
No we do not. We do not use ${PREFIX}/var, though it would be entirely
possible to do so.
> The reason I dislike your change is that it's just one single
> occurrence, and people will now think it's OK to veer from the
> norm, and start moving config file to /etc piecemeal, thereby making
> people's /etc and ${PREFIX}/etc directories possibly duplicatory.
> I don't want that.
Right, fair enough.
> I think Fred suggested a way recently whereby we would install config
> files to SYSTEM_CONFIG_DIR, which could be set prior to source install.
> Whilst this way has its problems, it's a lot more scalable than the
> approach you've taken.
It's got serious problems in that binary package users are still screwed.
If we really want to allow total separation of package stuff (which I
think is mostly just wanted by developers), what do you think about the
idea of putting a new hierachy under /pkg?
Shipping a /pkg directory with these symlinks:
/pkg/etc -> ../etc
/pkg/usr -> ../usr
/pkg/var -> ../var
would mean that those of us who don't use a separate filesystem for it
would just get everything integrated normally, and those who mount a
disk on /pkg would get everything completely separate. You don't even
have to add links or delete files for either circumstance.
cjs
--
Curt Sampson <cjs@cynic.net> +81 3 5778 0123 http://www.netbsd.org
Don't you know, in this new Dark Age, we're all light. --XTC