Red Hat Bugzilla – Bug 13520
RPM doesn't see perl-5.6 as >= 5.00503
Last modified: 2008-05-01 11:37:56 EDT
perl-libnet from powertools says:
error: failed dependencies:
perl >= 5.00503 is needed by perl-libnet-1.0703-3
(and perl 5.6 doesn't seem to satisfy as such)
( I suppose perl-5.6 shoud provide 5.00503 or something (like fix rpm
version algorithm? -- I don't think this should be fixed in modules )
This is actually some unexpected behavior from RPM.
This defect is considered MUST-FIX for Winston Beta-5
This problem cannot easily be fixed in rpm without breaking legacy behavior. The
has to do with versioned dependencies in packages that look like
Requires: perl >= 5.00503
being satisfied by a perl package that does (essentially)
Provides: perl = 1:5.6.0
(Note the 1: epoch prefix).
Before versioned provides were added in rpm-3.0.3, there was no way to specify
as part of the Requires: (there was an obscure mechanism to require an epoch, so
that it was never used AFAICT). In order to maintain compatibility with legacy
packaging that contains Requires: and Provides: as above, the dependencies are
compared in the same
epoch rather than assuming epoch 0 for the Requires: That means that the
Requires above is promoted or interpreted as if it had been written
Requires: perl >= 1:5.00503
and, since 503 > 6, the dependency fails to be satisfied.
The Right Thing To Do (at the moment anyways) is to repackage perl-libnet to
Require: perl >= 0:5.00503
but that can't be done for all the legacy packaging in the world.
Meanwhile, for powertools 7.0 CPAN packages have
Requires: perl >= 5.6
That still is not the right thing to do, as an epoch now has to be included
Requires: perl >= 1:5.6
now that perl has an epoch, and 7.0 CPAN packaging dependencies will be
the now legacy
Provides: perl >= 5.00503
But 7.0 packages will install cleanly with perl-5.6.