Specifying RPM dependency as "one of the following"

1.3k Views Asked by At

I am developing an RPM spec file for an in-house package. The package depends on libuuid, which is available as the libuuid package on Fedora, but there is no libuuid package for CentOS 5 in the standard RPM repositories. We can satisfy the dependency on CentOS with the e2fsprogs-devel development RPM (e2fsprogs-devel installs libuuid and the associated headers). I would like to specify that our RPM depends on libuuid, such that the libuuid package is installed on Fedora during installation of our RPM, but e2fsprogs-devel is installed during installation on CentOS. Is there a way to specify a dependency as "one of libuuid or e2fsprogs-devel, in that order" in an RPM spec file?

2

There are 2 best solutions below

0
On BEST ANSWER

No. Use the Dist Tag to distinguish between Fedora and one of its derivatives.

0
On

You may directly specify files as a requirement but this is ugly. Also don't use %dist for distinguishing.

You should just rely on the build process. If one specific file is located in different packages depending on the distro then you should just (re-) build the package on every distro you wish to support (AutoReq/AutoReqProv must not be disabled).