Bug 164716 - perl-Tk requires versioned perl(Tk) but doesn't provide it
perl-Tk requires versioned perl(Tk) but doesn't provide it
Product: Fedora
Classification: Fedora
Component: perl-Tk (Show other bugs)
All Linux
medium Severity low
: ---
: ---
Assigned To: Andreas Bierfert
Fedora Extras Quality Assurance
Depends On:
  Show dependency treegraph
Reported: 2005-07-30 19:40 EDT by Steven Pritchard
Modified: 2007-11-30 17:11 EST (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2005-07-30 21:19:35 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Steven Pritchard 2005-07-30 19:40:06 EDT
Description of problem:

I was looking through the output of "package-cleanup --problems" (from
yum-utils) and I noticed the following:

  Package perl-Tk requires perl(Tk) >= 800.005
  Package perl-Tk requires perl(Tk) >= 800.015
  Package perl-Tk requires perl(Tk) >= 804.000

Sure enough, there are versioned perl(Tk) dependencies, but the package doesn't
provide a versioned perl(Tk).

  $ rpm -q --requires perl-Tk | grep 'perl(Tk)'
  perl(Tk) >= 800.005
  perl(Tk) >= 800.015
  perl(Tk) >= 804.000
  $ rpm -q --provides perl-Tk | grep 'perl(Tk)'

It looks like the simple fix would be to add "Provides: perl(Tk) = %{version}"
to the spec.

Version-Release number of selected component (if applicable):

Comment 1 Andreas Bierfert 2005-07-30 21:19:35 EDT
Makes sense... 

Comment 2 Ville Skyttä 2005-07-31 05:37:17 EDT
I believe there are more than a few affected packages out there (I'm not 100% 
sure if it's a problem or not), but it would be more productive to track down 
why rpmbuild's perl autoprov stuff doesn't grok the versioned one and see if 
it's fixable there instead of modifying all affected packages. 
Comment 3 Andreas Bierfert 2005-07-31 06:03:55 EDT
I was wondering why this was not done via autoprov in the first place. I will
let it sit in there for now and we will see if it gets fixed in autoprov.
Comment 4 Steven Pritchard 2005-08-01 14:19:48 EDT
perl.prov says the following in the comments at the top:

# If there are lines in the file which match the pattern
#      (m/^\s*\$VERSION\s*=\s+/)
# then these are taken to be the version numbers of the modules.
# Special care is taken with a few known idioms for specifying version
# numbers of files under rcs/cvs control.

And, sure enough, the pattern match is for '\$VERSION'.  Tk.pm contains the
following though:

$Tk::VERSION     = '804.027';

So the pattern match doesn't pick it up...
Comment 5 Ville Skyttä 2005-08-02 05:34:24 EDT
Once upon a time, I patched perl.req/perl.prov to accommodate stuff like this, 
see bug 61797 comment 2.  If you want to start patching the Perl autodep 
stuff, that might save some time. 

Note You need to log in before you can comment on or make changes to this bug.