Don't use "Requires(foo,bar): ..." notation

Michael Schwendt ms-nospam-0306 at
Sat Apr 17 13:18:36 UTC 2004

I'd like to call on everybody, who's maintaining packages, to no longer
use "Requires(foo,bar): ..." notation in spec files, because it can lead
to unexpected results due to two bugs. [1] [2] Details in the bugzilla

Instead, it should be split like this to work around those bugs:

  Requires(pre): foo
  Requires(post): foo

For instance, we here have a package with "Requires(post,preun): GConf2"
because gconftool-2 is needed and executed in the package's postinstall
and preuninstall scriptlets. However, the installed package does not seem
to depend on GConf2 when it is queried like this

  $ rpm --query straw
  $ rpm --query --whatrequires GConf2 | grep straw

and actually one can erase the GConf2 package (provided that no other
installed package depends on it, of course, which makes this bug more
dangerous when less widely used programs are required in package
scriplets). A subsequent "rpm --erase straw" would fail in the
preuninstall scriptlet, since gconftool-2 is no longer available.

[1] Requires(pre,postun) screws up package ordering

[2] Requires(pre,postun) is ignored for installed packages

Fedora Core release 1.91 (FC2) - Linux 2.6.5-1.326

More information about the fedora-devel-list mailing list