Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 13520

Summary: RPM doesn't see perl-5.6 as >= 5.00503
Product: [Retired] Red Hat Linux Reporter: Pekka Savola <pekkas>
Component: rpmAssignee: Jeff Johnson <jbj>
Status: CLOSED WONTFIX QA Contact:
Severity: medium Docs Contact:
Priority: high    
Version: 7.1   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2000-07-18 20:02:18 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 22377    
Bug Blocks:    

Description Pekka Savola 2000-07-06 11:14:14 UTC
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 )

Comment 1 Nalin Dahyabhai 2000-07-06 16:15:00 UTC
This is actually some unexpected behavior from RPM.

Comment 2 Glen Foster 2000-07-18 20:02:16 UTC
This defect is considered MUST-FIX for Winston Beta-5


Comment 3 Jeff Johnson 2000-07-19 17:23:34 UTC
This problem cannot easily be fixed in rpm without breaking legacy behavior. The
problem
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
an epoch
as part of the Requires: (there was an obscure mechanism to require an epoch, so
obscure
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
explicitly, something
like
	Requires: perl >= 1:5.6
now that perl has an epoch, and 7.0 CPAN packaging dependencies will be
satisfied by
the now legacy
	Provides: perl >= 5.00503
But 7.0 packages will install cleanly with perl-5.6.