X-Git-Url: https://git.tld-linux.org/?p=packages%2Frpm.git;a=blobdiff_plain;f=perl.prov;h=6a66f7652b8e8a9204115a3c9edf26021e4fde29;hp=8f1a79d599aacdeb249789ebe93504ebc62aa106;hb=HEAD;hpb=685372ccad422be5593dabe2ed2d89f19037e7ca diff --git a/perl.prov b/perl.prov index 8f1a79d..6e98f9a 100644 --- a/perl.prov +++ b/perl.prov @@ -2,7 +2,7 @@ use strict; # perl.prov - find information about perl modules for RPM -# $Id: perl.prov,v 1.10 2004/05/05 17:13:54 radek Exp $ +# $Id$ # It's questionable if we should provide perl(Foo::Bar) for modules # from outside @INC (possibly shipped with some applications). @@ -92,20 +92,22 @@ sub process_file { # search for the package name if ( - !defined $package - && ( my ($pack) = m/^\s*(?:\{\s*)?package\s+([_:a-zA-Z0-9]+?):*\s*;/ ) + (!defined $package || !defined $version) + && ( my ($pack, $ver) = m/^\s*(?:\{\s*)?package\s+([_:a-zA-Z0-9]+?)\s*(?:v?([0-9_.]+)\s*)?[;{]/) && $1 ne 'main' && match_the_path( $file, $1 ) ) { $package = $pack; + $version = $ver; } if ( !defined $version && /([\$*])(([\w\:\']*)\bVERSION)\b.*\=/ ) { ( $version = $self->{safe}->reval($_) ) =~ s/^\s+|alpha|beta|\s+$//g; if ( defined $version && length $version - && $version =~ /[^\d\._abcdefgh]/ ) + && ($version =~ /[^\d\._abcdefgh]/ + || $version =~ /^[^\d]*$/ )) { warn "$0: weird version number in $file: [$version]\n"; $version = '';