Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 Dec 2000 12:31:10 -0600 (CST)
From:      Mike Meyer <mwm@mired.org>
To:        current@FreeBSD.ORG
Subject:   Re: Confusing error messages from shell image activation
Message-ID:  <14899.52206.955003.130371@guru.mired.org>
In-Reply-To: <uoc66ksnqsk.fsf@hurlame.pdl.cs.cmu.edu>
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> <uoc66ksnqsk.fsf@hurlame.pdl.cs.cmu.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
Nat Lanza <magus@cs.cmu.edu> types:
> Mike Meyer <mwm@mired.org> writes:
> > 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.
> Your argument doesn't make much sense to me.

Ok, let's walk through the details (bottom of the letter).

> So if I compile sawfish myself I should install it in /usr/local, but if
> I install a FreeBSD package for it, it should never go in /usr/local?

It should go where you want it to. /usr/local is a bad place because
of it's tradition of being for locally maintained software.

> If I grab a sawfish FreeBSD package from the sawfish website, where
> should that install? /usr/local? /opt? /usr/pkg?

Not /usr/local - that's for locally maintained software. I'd rather it
go on /usr, so I don't like /opt. When I got to choose, I chose
/usr/opt. But anything other than /usr/local on /usr would do as well.

> Third party software is third party software, no matter who compiled
> and packaged it.

That's true. But if it's packaged, it belongs in an area reserved for
*packages*. FreeBSD is the only system I know of that coopts
/usr/local for packages, instead of reserving it for things that are
locally maintained.  Whether that locally maintained software is
written locally or comes from a third party is irrelevant to this
discussion.

> If I install a package of third-party software, the end result should
> be about the same as if I compiled and installed it by hand -- the
> packaged software is a convenience, not a fundamentally different
> entity.

That's correct. The differences aren't in the software, they are in
the administrative regimen. Let's look at how you deal with FreeBSD
proper, ports/packages, 3rd party software that isn't from a port or
package, and locally written software.


Administrative		FreeBSD		port/pkg	3rd party	local
item

Binary from		FreeBSD		FreeBSD		author		author


Source from		FreeBSD		patches and	author		author
					location from
					FreeBSD

Responsible for		FreeBSD		Port 		local		local
it building on		maintainer	maintainer	maintainer	maint-
my FreeBSD box								ainer

requires local src	No		No		Yes		Yes
configuration?

Updates from		FreeBSD		FreeBSD		author		author

Patches best sent	FreeBSD		Port		author		author
to			maintainer	maintainer


As you can see, the only difference between locally written software
and third party software is that the author in the latter case is
local.  Meanwhile, the primary difference between software that is
part of FreeBSD and a port/pkg is that the person who takes
responsibility for some part of FreeBSD is always a FreeBSD committer,
whereas the person who takes that responsibility for a port/package
may not be a FreeBSD committer. Sure, sometimes that person for a port
is the author - but that's also true for FreeBSD. For 3rd party and
local software, you always deal with the author; for FreeBSD and a
port or package, you deal with an intermediary that has taken
responsibility for the software on FreeBSD, who may *not* be the
author.

The critical difference is the "requires local src configuration"
line. For FreeBSD or any of the ports or packages, I can blow away the
source tree without worrying about needing it back; I can always get
it back from FreeBSD again. For the same reason, I don't worry much
about the binaries.  For locally written software, if I lose ths
source, I'm SOL. For true third party software, how screwed I am
depends on how hard it was getting the thing to build on FreeBSD. As a
general rule, I always save them. The binaries get the same
treatment. Having to figure out which is which is *much* easier if the
two are in different directory hierarchies.

Clearly, a package is *not* the same as either third party or locally
written software. For people who don't care about any of those
differences, packages co-opting /usr/local doesn't matter. For people
who do, there's PREFIX - except it doesn't work very well, and can't
work for binary builds (and with the CDROM set no longer having
distfiles on it, that's a major PITA).

	<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.52206.955003.130371>