From owner-freebsd-ports@FreeBSD.ORG Thu Sep 2 18:11:26 2004 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 477C816A4CE for ; Thu, 2 Sep 2004 18:11:26 +0000 (GMT) Received: from torres.uwaterloo.ca (torres.cs.uwaterloo.ca [129.97.15.126]) by mx1.FreeBSD.org (Postfix) with ESMTP id 04FC143D5C for ; Thu, 2 Sep 2004 18:11:26 +0000 (GMT) (envelope-from mike.patterson@unb.ca) Received: from torres.uwaterloo.ca (localhost [127.0.0.1]) by torres.uwaterloo.ca (8.12.10/8.12.10) with ESMTP id i82IBOHi078260; Thu, 2 Sep 2004 14:11:24 -0400 (EDT) (envelope-from mike.patterson@unb.ca) Received: (from mpatters@localhost) by torres.uwaterloo.ca (8.12.10/8.12.10/Submit) id i82IBOSA078259; Thu, 2 Sep 2004 14:11:24 -0400 (EDT) (envelope-from mike.patterson@unb.ca) From: Mike To: Oliver Eikemeier In-Reply-To: <19DD9455-FCF9-11D8-B720-00039312D914@fillmore-labs.com> References: <19DD9455-FCF9-11D8-B720-00039312D914@fillmore-labs.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Message-Id: <1094148684.78074.18.camel@torres> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 Date: Thu, 02 Sep 2004 14:11:24 -0400 cc: freebsd-ports@freebsd.org Subject: Re: PREFIX "cleverness" X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Sep 2004 18:11:26 -0000 On Thu, 2004-09-02 at 11:59, Oliver Eikemeier wrote: > make PREFIX='/usr/local/${PORTNAME}' install I'd thought of that, but I wasn't certain if there was an automated way to do this (via make.conf). > You need to build a link farm from LOCALBASE to the files installed by > your port, since other ports expect them to be there. Another > consequence is that new CONFLICTS checking routines are required. [..] > Your degree of insanity depends on just what you are trying to > accomplish. If you want to do this `just because it can be done' - yes. > If you believe it will better separate the packing lists of ports - > maybe. If you attempt to pkgsrcify the FreeBSD ports collection - who > knows. To better explain, at my place of work (and I should have posted with my work address, since that's also my subscribed address) we use a locally built system called xhier for shipping packages and binaries and config files and such around. http://www.math.uwaterloo.ca/mfcf/documentation/xhier/ has papers from a presentation made at LISA '91 for the morbidly curious. It's an old paper, but it's an old system. Basically the intention was (and is) to provide some level of homogenity across multiple platforms. I could go on, but I won't since it'd start to get off-topic. One of the conventions used is packages are installed under /software/packagename (where packagename may - and ought to - include a version number). Programs can be configured to appear in default paths or not. Links are made as required into system locations. There's a utility called showpath that can be used to set paths programatically. Packages are built on a single machine (architecture master or archmaster) and then distributed out to clients. Practically, this can eliminate the idea of package conflicts altogether (so I'm not so concerned about that) because it just doesn't put the conflicting packages into the default path - only one package can be the default version of a given application at any time. (So gcc-3 can point to gcc-3.3, but gcc 3.2 and 3.4 can be installed as well. You just need to tell your Makefiles where to look instead.) Currently there's some interest in using FreeBSD machines in our department, but one of the sticking points is (as it is with any new OS or architecture) "can xhier work on it". I've set up several projects that have long been sorely needed on a FreeBSD machine on the "it's easier to beg forgiveness than to ask permission" premise, but those projects have now attracted attention so I'd like to head off complaints about FreeBSD lacking xhier before they even come up. Conventionally packages are built on the archmasters by hand: "./configure --prefix=/software/packagename" usually does the trick. However, I'd like to take advantage of the ports system if I can. The systems for configuring and patching and such are already there, after all; it will save some steps, and plus I'd be able to push it even more: "Look, I xhiered this package in 10 minutes on FreeBSD, it took you a full day for Solaris." What I'd envisioned was building the ports on the archmaster and then using xhier to ship them to client machines, same way we do with other arches (but maybe even better if I could do "make package" and ship the package tarball across to be installed with pkgadd). Or maybe I'm making too much work for myself, I don't know. But I was curious as to how workable such a scheme would be. From yours and Sergey's responses, I'm still unsure so I guess I'll have to try :-) - but if you have any more comments based on what I've said I'd be glad to hear them. Mike