Subject: Re: Reimplementing the /usr/contrib directory hierarchy
To: Igor Sobrado <>
From: Bang Jun-Young <>
List: tech-userlevel
Date: 01/03/2003 02:12:34
On Thu, Jan 02, 2003 at 03:41:48PM +0100, Igor Sobrado wrote:
> 1. It is useful to differentiate between software that is under the
>    control of the NetBSD Foundation, and other software packages.
>    Software that is not being maintained by the NetBSD Foundation
>    can be moved to /usr/contrib.  Some examples are gzip, bzip2,
>    rcs, cvs, and so on.

"can be" can't be a sufficient condition for "useful". We _could_ even
have /usr/gnu, /usr/ibm, /usr/freebsd, /usr/openbsd, ..., but what are
they useful for? 

> 2. It allows the NetBSD maintainers to reduce the risks derived from
>    running software that is not under the NetBSD Foundation control.
>    There are a lot of examples showing those risks.  Even if some of
>    those risks will never happen, other are real threats that must
>    be considered.
>    An example of the former is the implementation of bzip2 provided
>    by Sun Microsystems (SUNW) in Solaris 8.  They ported an old
>    release (0.9.x) of bzip2 to Solaris.  It is a mostly working
>    version of that good compression tool, but it has a race condition
>    (only observed in the Solaris operating system) that sometimes
>    removes both the compressed file and the original file when
>    compression process in interrupted.  They will not provide an
>    updated bzip2 release through the patch system (either as a public
>    patch or as a private patch) and it is a required component, that
>    cannot be removed from the system without breaking key components
>    like the patching subsystem itself.
>    An example of the latter has been recently observed in FreeBSD.
>    Perl was a required component of FreeBSD (up to release 4.7 and,
>    soon, 4.8).  Perl is not under the control of the FreeBSD
>    developers.  Each stable release doubles the size of the previous
>    stable version, making it too big (currently over 40MB).

These examples have nothing to do with directory hierachy. If they were
placed under /usr/contrib, how could they avoid the problem?

> 3. It allows the NetBSD Foundation to recover the nice design
>    provided by 4.4BSD/Lite and 4.4BSD/Lite2 releases.

Probably it was removed because it was not needed any more.


Bang Jun-Young <>