PREFIX "cleverness"

Brooks Davis brooks at one-eyed-alien.net
Thu Sep 2 11:17:03 PDT 2004


On Thu, Sep 02, 2004 at 02:11:24PM -0400, Mike wrote:
> 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.

Due to the hardcoding of LOCALBASE in dependencies, I think you will
have a hard time getting this sort of thing to work with ports unless
you also create a symlink farm and point LOCALBASE to it.  You might
actually consider using NetBSD's pkgsrc.  It has a lot less packages,
but is supports installations of many current packages in a more xhier
compatable fasion using the pkgviews concept.

-- Brooks

-- 
Any statement of the form "X is the one, true Y" is FALSE.
PGP fingerprint 655D 519C 26A7 82E7 2529  9BF0 5D8E 8BE9 F238 1AD4
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20040902/395333b9/attachment.bin


More information about the freebsd-ports mailing list