From owner-freebsd-current Sun Dec 10 10:31:16 2000 From owner-freebsd-current@FreeBSD.ORG Sun Dec 10 10:31:12 2000 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from guru.mired.org (okc-65-26-235-186.mmcable.com [65.26.235.186]) by hub.freebsd.org (Postfix) with SMTP id 1264737B400 for ; Sun, 10 Dec 2000 10:31:12 -0800 (PST) Received: (qmail 5637 invoked by uid 100); 10 Dec 2000 18:31:11 -0000 From: Mike Meyer MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <14899.52206.955003.130371@guru.mired.org> Date: Sun, 10 Dec 2000 12:31:10 -0600 (CST) To: current@FreeBSD.ORG Subject: Re: Confusing error messages from shell image activation In-Reply-To: References: <14898.33404.356173.963351@guru.mired.org> <14898.31393.228926.763711@guru.mired.org> <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> X-Mailer: VM 6.75 under 21.1 (patch 10) "Capitol Reef" XEmacs Lucid X-face: "5Mnwy%?j>IIV\)A=):rjWL~NB2aH[}Yq8Z=u~vJ`"(,&SiLvbbz2W`;h9L,Yg`+vb1>RG% *h+%X^n0EZd>TM8_IB;a8F?(Fb"lw'IgCoyM.[Lg#r\ Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Nat Lanza types: > Mike Meyer 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).