Date: Fri, 12 Jul 2002 00:39:25 -0700 From: Wes Peters <wes@softweyr.com> To: Mark Valentine <mark@thuvia.demon.co.uk> Cc: Terry Lambert <tlambert2@mindspring.com>, Jordan K Hubbard <jkh@queasyweasel.com>, Dan Nelson <dnelson@allantgroup.com>, Archie Cobbs <archie@dellroad.org>, Dan Moschuk <dan@freebsd.org>, Dag-Erling Smorgrav <des@ofug.org>, arch@freebsd.org Subject: Re: Package system flaws? Message-ID: <3D2E87AD.76DC449D@softweyr.com> References: <200207120055.g6C0tbpQ084565@dotar.thuvia.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Mark Valentine wrote: > > > From: wes@softweyr.com (Wes Peters) > > Date: Thu 11 Jul, 2002 > > Subject: Re: Package system flaws? > > > On problem in particular comes from changing the PREFIX of a > > package. You can easily do this in the package tools, but how do you > > change the BINARIES to realize they've been installed under another > > PREFIX? > > How about providing a packaging API call (and utility) for the packages > to grab their install root from a record in /var/db/pkg? Something > like pkg_getroot(3) and pkg_config(1). I was thinking we could replace a lot of the mish-mash in /var/db/pkg with a munged up version of the metadata file that includes all the real file locations, translations for various meta directory names, etc. Providing a simply library function to translate PREFIX for "my package" or a named package would be ever so sensible. > There probably isn't much less intrusive way to make a package's root > configurable at install time. It's a good idea, if we can just get the application developers to use it. Actually you might be able to do it by forcing autoconf to code in a meta-name for each the directory prefixes and linking against an overridden version of open(2) that properly translates the meta-name. But that's icky. And the next thing you know, somebody's gonna want that function to allow the meta-name to be expanded to a path, etc. etc. Augh! > If you didn't want the package to have to look in /var/db/pkg, have > the package binaries hold a maximum-length padded string variable (marked > similarly to what(1) strings), and provide a tool to edit the binary (and > scripts) at install time. Similar to the above, substituting scary editing of binaries for scary library linking. ;^) > I think environment variables are too fragile for this purpose. > > > You could almost do this on UNIX now, by putting such settings into > > init's environment, if you could get the application developers to > > write their code (especially libraries) appropriately. > > This doesn't sound like it would be easy to allow different packages to > be installed with different roots. You're right. VMS has a system table, a per-group table, and a per-user table to allow overrides. They teeter between being neat features and be overkill. -- "Where am I, and what am I doing in this handbasket?" Wes Peters Softweyr LLC wes@softweyr.com http://softweyr.com/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3D2E87AD.76DC449D>