On Wed, 22 May 2002 00:23:56 +0300, Ville =?ISO-8859-1?Q?Skytt=E4?= said:
REQUIRES = Moby-Grape >= 1.3.4, Moby-Grape < 2.0
REQUIRES = 1.3.4 <= Moby-Grape < 2.0
REQUIRES = Moby-Grape >= 1.3.4
CONFLICTS = Moby-Grape >= 2.0
IBM's AIX also has the concept of an 'ifreq' - *IF* another package is
is installed, it must be at level X.Y.Z or later for the current package
to install - but if the package is not installed at all, that's OK too.
Actual 'installp' prereq file I used to package EXHM for AIX:
*prereq fw_tk.rte.bin 8.3.2.0
*prereq fw_metamail.rte 2.7.0.0
*prereq fw_nmh.rte 1.0.4.0
*ifreq fw_img.rte 1.2.3.0
*ifreq fw_netscape_remote.rte 1.2.0.0
*ifreq fw_pgp2.rte 2.6.2.0
*ifreq fw_pgp6.rte 6.5.8.0
*ifreq fw_procmail.rte 3.14.0.0
Meaning that you WILL NOT get it to install unless Tk, metamail, and nhm
are at the specified level (and the tk package then pre-reqs tcl itself),
and if Img, netscape_remote, pgp2, pgp6, or procmail are installed, they
have to be at that level or later.
And they support "group prerequisites" too, which is mind-bogglingly
useful for versioning to fit an operating system release. From 'lsof':
0 {
1 {
*prereq bos.rte v=4 r=3 m=2
*prereq fw_lsof.aix432.rte 4.54.0.0
}
1 {
*prereq bos.rte v=4 r=3 m=3
*prereq fw_lsof.aix433.rte 4.54.0.0
}
1 {
*prereq bos.rte 5.0.0.0
*prereq fw_lsof.aix5.rte 4.54.0.0
}
}
Meaning: to install, more than zero of the sub-groups must be satisfied. The
first subgroup requires more than 1 of (bos.rte at *exactly* 4.3.2 and the
lsof.aix432 binary), and similarly for the other two. The IBM compiler runtime
libs for C++ do an insane amount of this - they'll version on the opsys level,
say stuff like "at least 2 of the following 4 (and 3 of the choices are *ifreq
choices)", etc etc....
Of course, IBM AIX support stole the *ifreq stuff from the old MVS 'SMP4'
(right down to the '*' ;) so this is stuff they've been doing since OS/360
literally 38 years ago now.
--
Valdis Kletnieks
Computer Systems Senior Engineer
Virginia Tech