From owner-freebsd-current Sun Dec 10 11: 2:18 2000 From owner-freebsd-current@FreeBSD.ORG Sun Dec 10 11:02:14 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 B169437B6AE for ; Sun, 10 Dec 2000 11:02:10 -0800 (PST) Received: (qmail 6541 invoked by uid 100); 10 Dec 2000 19:02:09 -0000 From: Mike Meyer MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <14899.54065.737498.114689@guru.mired.org> Date: Sun, 10 Dec 2000 13:02:09 -0600 (CST) To: freebsd-current@FreeBSD.ORG Subject: Re: Package installation location In-Reply-To: <20001210132152.B27718@drama.navipath.com> References: <20001210125026.A27718@drama.navipath.com> <20001210132152.B27718@drama.navipath.com> 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 Forrest Aldrich types: > Haha... okay, then what's the argument about. > > You're about six years late. The ports system has used $PREFIX for > > precisely this purpose since October 1994. As Jacques pointed out, you set LOCALBASE in /etc/make.conf. The problem is that *it doesn't work*. Well, not very well. Part of it is that it's only given lip service: the porters handbook says "make your ports PREFIX clean"; portlint doesn't do any checking about it. The porters handbook doesn't even provide instructions on how to test for whether or not a port is PREFIX clean. Making things LOCALBASE clean isn't even suggested. Admittedly, most port maintainers respond well when I report that things are broken, but checking for this should be done before the port is commited, not afterwards! Lots of other random things break: Packages built with a PREFIX value cannot reliably be installed with another value of PREFIX (no, I don't think that should be a requirement). This means that the prebuilt packages on the CDROM are unusable under these conditions. Since distfiles have been banished from the distribution, the pain of setting PREFIX to anything other than /usr/local for my clients that don't have good network connectivity is higher than the cost of doing intermixing the two different file types. For commercial packages, that's not even an option! The system perl build checks the /usr/local tree for modules, not the LOCALBASE tree. Perls module installation package also installs things in /usr/local, no matter what LOCALBASE is set to. This means that all ports that install PERL modules either 1) aren't PREFIX clean or 2) don't find those modules if they are. The python port breaks the other way: the binary only checks the LOCALBASE heirarchy for modules(*). Locally maintained modules wind up being scattered in among the ports modules, and thus require special treatment. I'm not sure about other ports that support modules, but it wouldn't surprise me if they had similar problems. Ports that have build dependencies on other binaries sometimes assume that the binary in question is on roots path. The startup scripts in /root set the path to include things in the /usr/local heirarchy, *not* the LOCALBASE heirarchy. Thus those builds - while being PREFIX clean - are still broken (not LOCALBASE clean). In fact, all the hook for supporting "local" things are pointed directly at /usr/local; none of them check LOCALBASE. All of these would be solved if the FreeBSD took a lesson from their peers. Most of them could be solved without changing the default value for LOCALBASE - if people wanted them solved.