Subject: Re: Packages -- please respect the 4.4BSD directory structure!
To: Thor Lancelot Simon <>
From: Chris G Demetriou <Chris_G_Demetriou@LAGAVULIN.PDL.CS.CMU.EDU>
List: netbsd-users
Date: 03/12/1995 19:19:18
> I've been packaging a bunch of stuff up lately for a project and I find that
> I'm forced to duplicate a lot of work that's already on the NetBSD FTP sites.

i would agree wholeheartedly that things should be done "The Right
Way", but in some cases "The Right Way" isn't clear...

> Please, before just doing everything the way you would on SunOS, take a good
> hard look at the 4.4BSD refinements to the usual directory structure.  For
> example, things like news databases probably belong in /var/db,

This sounds right.  or /var/news...  (it's OK to add directories, if
they're appropriate.) or /var/db/news, if they really belong in
/var/db, but there are a lot of them, etc...

> and Perl and
> Emacs ancilliary code almost certainly belongs *not* in /usr/local/lib but in
> /usr/local/libdata.

actually, for emacs .el and .elc files, they could go into a
/usr/local/share, if such a thing existed, as they're machine-independent.
I actually prefer a '/usr/local/elisp' or similar...  but
e.g. 'wakeup' probably belongs under libexec.

i dunno about perl headers/compiled programs, etc.

> Daemons belong in /usr/local/libexec.  And so following.

unless they're invoked from rc, or by hand, in which case they go in
/usr/local/sbin.  _ONLY_ programs which are _ONLY_ invoked by other
binaries go in libexec, pretty much; if it is run by hand, it doesn't.

> There's no reason to create unnecessary and irritating clutter when /usr
> provides a good example of the Right Way to clean it up.

true...  However, for a lot of things (e.g. the emacs stuff), it's not
clear exactly where things should go.

The point is, for 'local' software, in some cases it's just Not Easily
Possible to do things as is specified in hier(7), without hacking the
software to bits.  Since it is 'local' software, however, it doesn't
have to follow the hier(7) guidelines exactly -- though i'd think that
software packages would at least try to follow their intent...