Hi everybody,
I don't know much about relocatable packages and I'm hoping people on this
list can help fill me in on things.
First, could people tell me which Unix, Linux, and BSD distributions do or
don't use relocatable packages. I know Red Hat has few relocatable
packages, and SuSe seems to be the same. It sounds like Solaris uses sysv
and ships most, but not all, packages relocatable. What about everything
else?
Second, is relocating RPMs *extremely* lame, or is my information out of
date? I was just reading about it here:
http://www.rpmdp.org/rpmbook/node80.html#12292
It looks like relocating packages with RPM only really works if all of
your files are under $prefix. If you put things under /etc or /var or
anywhere else, there seems to be no nice way of doing it. This seems like
a really dumb limitation in RPM, so I'm hoping this document is just
obsolete and that RPM has been improved since the time this document was
written (1997-8).
Does relocating a package normally happen in the same trivial way that it
does for RPM? ie. It just takes all the file paths which match a certain
pattern for $prefix and substitute a new $prefix in place of it when it
installs. Are there other common features?
My general impression is that at least with RPM, people would often not be
able to make their applications relocatable without doing some odd
monkeying around to get it to work. I'm guessing that other packaging
systems are much better. I guess for the sake of ScrollKeeper we will
support relocatable packages and then let the packagers decide for
themselves whether they use this feature.
Given all this, I think the old proposal to the list which Laszlo just
linked to should more or less be the right approach. The spec file (or
whatever it is called in a particular packaging system) just needs to call
a post-install script and provide it with the information:
(1) where the OMF files are
(2) where the docs are
Does anybody know offhand whether the prefix the user passes to RPM on the
command line to relocate a package is available as a variable inside the
spec file to be passed to the post-install script? The link above does
not seem to say, but I think that it indirectly implies it is possible to
access this variable.
I'd really like to hear feedback on all this from people who ship
relocatable packages. This is all more of an exercise for me since I use
Red Hat and thus never use relocatable packages. I would like to get this
all right on the first try though ;)
Dan
|