Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 Dec 2000 11:42:38 -0600 (CST)
From:      Mike Meyer <mwm@mired.org>
To:        current@FreeBSD.ORG
Subject:   /usr/local abuse
Message-ID:  <14899.49294.958909.82912@guru.mired.org>
In-Reply-To: <14899.47196.795281.662619@zircon.seattle.wa.us>
References:  <14898.33404.356173.963351@guru.mired.org> <14898.31393.228926.763711@guru.mired.org> <Pine.BSF.4.21.0012091347030.88984-100000@turtle.looksharp.net> <200012100904.CAA27546@harmony.village.org> <3A336781.94E1646@newsguy.com> <14899.41809.754369.259894@guru.mired.org> <200012101557.KAA29588@khavrinen.lcs.mit.edu> <14899.43958.622675.847234@guru.mired.org> <20001210120840.C38697@vger.bsdhome.com> <14899.47196.795281.662619@zircon.seattle.wa.us>

next in thread | previous in thread | raw e-mail | index | archive | help
Joe Kelsey <joe@zircon.seattle.wa.us> types:
> Mike Meyer writes:
>  > If memory serves (and it may not at this remove), /usr/local/bin
>  > wasn't on my path until I started using VAXen, meaning there were few
>  > or no packages installing in /usr/local on v6 & v7 on the 11s.
> If you remember v6 and v7, then please enumerate the packages which
> installed in /opt on those systems.  All "packages" I am aware of from
> the v6/v7 era installed in /usr or in /usr/local, although I am sort of
> fuzzy on the exact derivation of /usr/local at this point in time.  I do
> recall having a /usr/local on my V6 PDP-11/40, but it could have been
> contamination leaking over from the 32V system.  I do remember the
> abomination of /usr/ucb which put binaries in /usr/ucb but also included
> /usr/ucb/lib, etc.  I always hated that structure.  I know that we made
> extensive use of /usr/local in 1983 on 4.1bsd, especially in installing
> software taken from Usenet, so I think that /usr/local really started
> with extensive use of Usenet distribution, which was coincident with
> wide-spread use of BSD on VAXen.
> 
> As far as I remember, I never encountered the use of /opt until Solaris.

That's what I remember as well. So what? I'm not advocating that
packages install in /opt. I'm claiming that installing them in
/usr/local is a mistake. Other distributions that have adopted
FreeBSD's package/ports system have benefited from that mistake by
avoiding it.

Then again, your quoting of "packages" points up something else - I
never saw prepackaged binaries for v6 or v7. Or BSD, for that
matter. I never encounterd a package system until Solaris.  That would
make /opt a tradition as old as packages.

Brian Dean <bsd@bsdhome.com> types:
> On Sun, Dec 10, 2000 at 10:13:42AM -0600, Mike Meyer wrote:
> > Whether or not it's part of FreeBSD is immaterial. It's part of the
> > distribution that comes from FreeBSD, and is treated differentlyh from
> > locally installed software (whether written locally or by a third
> > party) in every case *except* where it installs - and that's only
> > because it's installed in the wrong place.
> > In other words, "It's not part of FreeBSD" is a rationalization.
> You are really reaching here.  Contributed software that the FreeBSD
> Project has chosen to integrate, i.e., Perl, Sendmail, just to name a
> few, are integrated tightly and installed in /usr/bin, etc, not in
> /usr/local.

Actualy, I'm *responding* to someone who's really reaching.

> Ports, on the other hand are installed in /usr/local or /usr/X11R6.

What happend to "that's what PREFIX is for"?

> You seem to mis-understand that a FreeBSD port is basically a set of
> patches and a source fetching mechanism that is included with FreeBSD
> as a convenience for building and installing third party software.
> The actual software that gets built and installed is _not_ part of
> FreeBSD.  This is not a rationalization.

You didn't read what I wrote. I never claimed that packages or a ports
are part of FreeBSD (after all, I do know what they are). I claimed
that they are part of the FreeBSD distribution. Or are you going to
deny that the ports tree and binary packages are on the installation
cdrom?

Sure, the software in ports/packages aren't part of FreeBSD. Using
that to claim they should have the same status or treatment as locally
written or maintained software is a rationalization.

> I for one would be really upset if when I installed a Port, it's
> binaries started getting dropped into /bin, /usr/bin, etc.  I suspect
> many others would too.

I won't argue - that's pretty clearly a mistake as well.

> I'm really not exactly sure what you are complaining about.  For
> example, the last time I built Emacs for Solaris (several years ago
> admittedly), by default it installed itself into /usr/local.  If you
> install Emacs onto FreeBSD, it goes into /usr/local.  The behaviour is
> the same.  Are you proposing that since FreeBSD provides a set of
> patches so that Emacs builds cleanly, that it should therefore install
> it somewhere other than /usr/local?

You seem to mis-understand what a port does. Any port that doesn't
provide exactly that set of patches is broken. If I install emacs from
the ports tree, the package database will claim that all the files are
in /usr/opt. If some files from the port land in /usr/local, then the
port is not PREFIX clean, and should be fixed.

Basically, I'm complaing that 1) the default PREFIX for ports co-opts
part of the file name space that it shouldn't, and 2) PREFIX is given
only lip service. Fixing #1 is the best option, because people who
think local means local could use precompiled packages from the
FreeBSD project and commercial vendors with the same administrative
regimen they give all software that isn't locally maintained. Fixing
#2 would help, though.

	<mike


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?14899.49294.958909.82912>