* Jordan Brown <[EMAIL PROTECTED]> [2008-06-10 00:22]:
> Hello?
>
> Jordan Brown wrote:
> > I've been handed a requirement, supposedly based on IPS requirements,
> > that our packages be "relocatable". Unfortunately, this requirement
> > came to me without explanation and the people who gave it to me are only
> > messengers, so I don't know exactly what's meant.
> >
> > <background>
> > In traditional Solaris packaging, there are two mostly-unrelated
> > concepts that could both be considered "relocation": using -R to
> > specify an alternate root, and changing the install location by changing
> > BASEDIR.
> >
> > Changing BASEDIR is used to change where the software is installed on
> > the system, for storage management reasons, to have multiple instances
> > of the software installed, or for other reasons. It has a direct impact
> > on the software involved, because that software must be prepared to have
> > its components be in different places in the file hierarchy. This is, I
> > believe, what SVR4 packaging documentation calls "relocatable".
> >
> > -R, on the other hand, is used to manipulate a different "system". It
> > says "manipulate that system with its root over there". It is used, for
> > instance, when installing the OS, where the currently running system has
> > its root on the install media and packages are being installed on the
> > file system with the root on the hard disk.
> >
> > Traditional Solaris packages can be compliant with neither, either, or
> > both of these kinds of relocation.
> > </background>
> >
> > Which of these meanings is intended in this requirement?
(I was hoping you'd send the text of the requirement, so I could see if
it's derived from any of the documents we've emitted so far...)
> > The hints that I have gotten suggest that the intent is that the
> > packages must be -R compliant, that they must be installable to an
> > alternate root. If so, this is easy: as far as I can tell, an IPS
> > package can't *not* be alternate root capable.
> >
> > If, however, the requirement is for BASEDIR-style relocatability, my job
> > gets harder.
> >
> > There are two important levels to BASEDIR-style relocatability:
> > install-time and run-time. Achieving BASEDIR-style relocatability at
> > install time is relatively straightforward: all of the paths in the
> > package must be relative to the BASEDIR, and none may be absolute.
> > Achieving BASEDIR-style relocatability at run time is another story
> > entirely, requiring that the application be prepared to dynamically find
> > its other components instead of assuming fixed paths for them.
> >
> > I would hope that IPS handles packages that are, in this sense,
> > non-relocatable. Many packages will want to deliver files into fixed
> > system locations (e.g. /etc/rc*.d, /var/svc/manifest, et cetera).
> > However, if IPS isn't capable of handling non-relocatable packages, I
> > can relatively mechanically rearrange my packages so that they are
> > always relative to / and contain no absolute paths. That would address
> > the install-time issue with relatively little work. The run-time issue,
> > however, is non-negotiable: our application is not prepared to be
> > installed into alternate locations on the system, it would be a
> > substantial effort to make it able to handle alternate installation
> > locations, and we have no identified customer requirement to handle it.
> >
> > So... please tell me that what was meant was -R compliance and that IPS
> > handles packages with relocatable and non-relocatable files, and that
> > there is no way for an IPS package to violate the -R constraint. If
> > that's the case, the my requirement is met and I'm happy.
> >
> > Comments?
Everything about -R is fine.
At present, the expectation is that a package that can be run at any
installed location ("BASEDIR"-style relocatability) will be labelled
with an additional boolean property. Ultimately, a user image will be
restricted to only install relocatable packages. An option in this
scenario is to allow filtering of actions based on image type, which
would handle your example globally-relevant files.
In any case, your package would be fine for a full image, whether
manipulated live or with the -R option. Your package would have
pkg.relocatable set to false, and have no property equivalent to
BASEDIR.
- Stephen
--
[EMAIL PROTECTED] http://blogs.sun.com/sch/
_______________________________________________
pkg-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss