https://bugzilla.novell.com/show_bug.cgi?id=255009 Summary: /usr/lib/rpm/perl.prov fails occasionally (short story) Product: openSUSE 10.2 Version: Final Platform: All OS/Version: All Status: NEW Severity: Normal Priority: P5 - None Component: Development AssignedTo: pth@novell.com ReportedBy: opensuse@augensalat.de QAContact: qa@suse.de /usr/lib/rpm/perl.prov is a script to automatically find versions of Perl modules. While in pre-10.2 distribution it didn't seem to find any version numbers at all, it now (in 10.2) sometimes find wrong ones. Example: Class::C3 http://search.cpan.org/dist/Class-C3-0.14/ This is obviously at version 0.14, but when building an RPM we get a package that claims (rpm -qp --provides perl-Class-C3-0.14-2.i586.rpm): perl(Class::C3) = 0.01 What happened? /usr/lib/rpm/perl.prov scans the modules files for $VERSION strings and for each package in each module file remembers the *LAST* value of $VERSION. In Class::C3 there are some hidden packages that /usr/lib/rpm/perl.prov doesn't regognize, but that have their own version numbers - the last one those is at 0.01. See http://search.cpan.org/src/BLBLACK/Class-C3-0.14/lib/Class/C3.pm The quick fix is --- /usr/lib/rpm/perl.prov.orig 2007-03-14 18:25:18.000000000 +0100 +++ /usr/lib/rpm/perl.prov 2007-03-14 18:25:23.000000000 +0100 @@ -158,7 +158,7 @@ $version= $1; } - $require{$package}=$version; + $require{$package}||=$version; } # Allow someone to have a variable that defines virtual packages -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.