X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=rpm-perl-req-perlfile.patch;h=5fe81f943d0387afcdfdde5a50fa899c9df02d94;hb=289cde62c737f0a460fb87c718cef4a5852e4c60;hp=45043f743eb062a9fe900b01dafe6add6cbf9fd1;hpb=2699ff919079f4ea750db78e2459d81a26fb8e2f;p=packages%2Frpm.git diff --git a/rpm-perl-req-perlfile.patch b/rpm-perl-req-perlfile.patch index 45043f7..5fe81f9 100644 --- a/rpm-perl-req-perlfile.patch +++ b/rpm-perl-req-perlfile.patch @@ -1,6 +1,43 @@ ---- rpm-4.0/scripts/perl.req Wed Jul 5 14:26:37 2000 -+++ rpm-4.0.new/scripts/perl.req Wed Nov 15 21:31:03 2000 -@@ -82,6 +82,53 @@ +--- rpm-4.2/scripts/perl.req.wigperl Tue Apr 1 13:33:52 2003 ++++ rpm-4.2/scripts/perl.req Tue Apr 1 13:39:47 2003 +@@ -39,28 +39,20 @@ + + # by Ken Estes Mail.com kestes@staff.mail.com + +-if ("@ARGV") { +- foreach (@ARGV) { ++foreach ( @ARGV ? @ARGV : <> ) { ++ chomp; + if (m=/usr/(sbin|bin|lib|share|X11R6/(lib|bin))/=) { + if (! m=(/(doc|man|info|usr/src)/|\.(so|ph|h|html|pod)$)=) { +- process_file($_); ++ process_file($_) if -f; + } + } +- } +-} else { +- +- # notice we are passed a list of filenames NOT as common in unix the +- # contents of the file. +- +- foreach (<>) { +- if (m=/usr/(sbin|bin|lib|share|X11R6/(lib|bin))/=) { +- if (! m=(/(doc|man|info|usr/src)/|\.(so|ph|h|html|pod)$)=) { +- process_file($_); +- } +- } +- } + } + ++foreach (sort keys %provide) { ++ delete $require{$_}; ++} ++delete $require{the}; # don't count "use the sth" as perl module ++ + + foreach $module (sort keys %require) { + if (length($require{$module}) == 0) { +@@ -82,6 +74,53 @@ exit 0; @@ -54,23 +91,34 @@ sub process_file { -@@ -90,6 +137,8 @@ +@@ -90,6 +129,8 @@ - open(FILE, "<$file")|| - die("$0: Could not open file: '$file' : $!\n"); -+ -+ return if (!is_perlfile($file, \*FILE)); + open(FILE, "<$file") || return; ++ return if (!is_perlfile($file, \*FILE)); ++ while () { -@@ -209,6 +258,10 @@ - # if the module name starts in a dot it is not a module name. + # skip the documentation +@@ -111,6 +152,10 @@ + last; + } - ($module =~ m/^\./) && next; ++ if (m/^\s*package\s+([_:a-zA-Z0-9]+)\s*;/) { ++ $provide{$1} = 1; ++ } + + # Each keyword can appear multiple times. Don't + # bother with datastructures to store these strings, + # if we need to print it print it now. +@@ -236,6 +281,10 @@ + + ($module =~ m/^\./) && next; + + # name starts in a non alphanumeric character it is not a module + # name. + ($module =~ m/^\W/) && next; - ++ # if the module ends with .pm strip it to leave only basename. + $module =~ s/\.pm$//;