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