On Fri, 2007-01-05 at 13:43 -0500, James Carlson wrote: > > One feature that's missing, and would be infinitely useful for > > online package repositories, is >= style version checking in > > dependencies. E.g. if I have an xchat package that was compiled > > against GNOME 2.16, I'd like to say in the depend file that it > > needs SUNWgnome-base-libs >= 2.16.0. > > It's not missing from the underlying packaging standards -- see > pkginfo(4) and depend(4).
I know you can specify a list of versions for each dependency, but you can do anything more flexible. I've just tried and even the REV must match otherwise pkgadd complains. This make this feature completely unusable. (Unless I missed something in the man page). > Historically, we've taken a different approach here. Instead of > attempting to handle these microscopic dependencies (which, at least > in my experience, although "obvious" from the outset, quickly become > quite unwieldy in practice), we rest the software stability on a set > of architectural rules. Among those are: > > - If you rely on something special, then it's up to you to arrange > for simultaneous delivery of that 'something' so that customers > aren't left scrambling to figure out how to use your software. > (E.g., by patch dependencies and/or by special install scripts.) > > - Incompatible and disruptive change occurs only in particular kinds > of (relatively infrequent) releases. These rules work great for an integrated product like Solaris. But if I want to provide Solaris-compatible packages for download, how do I verify that the dependencies are the correct versions? For example, if I offer a binary package of XChat for download, and it was built against snv_53's GNOME 2.16, it'll work fine on 2.16 and later but unlikely to work on snv_52, which had GNOME 2.14. Compatibility is not working in that direction. I'd like to say something like P SUNWgnome-base-libs (i386) >= 2.16.0 I SUNWgnome-base-libs (i386) >= 3 i.e. my package will work with GNOME 2 version 2.16 or later but won't work with GNOME 3, because that's a major version change. Laca
