--- 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 @@
+@@ -39,28 +39,19 @@
+ eval { require version; $HAVE_VERSION = 1; };
- # by Ken Estes Mail.com kestes@staff.mail.com
-if ("@ARGV") {
- foreach (@ARGV) {
}
- }
-} 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)$)=) {
+ delete $require{$_};
+}
+delete $require{the}; # don't count "use the sth" as perl module
-+
- foreach $module (sort keys %require) {
- if (length($require{$module}) == 0) {
+ foreach $perlver (sort keys %perlreq) {
+ print "perl >= $perlver\n";
@@ -82,6 +74,53 @@
- exit 0;
-
+ }
+ }
+sub is_perlfile {
+ my $file = shift;
+ my $fh = shift;
-+
++
+ my $fl = <$fh>;
+
+ my $is_perl = 0;
-+
++
+ my $nw = 0;
+
+ if ($file =~ /\.(so|ph|h|html|pod|gz|bz2|png|gif|jpg|xpm|a|patch|o|mo)$/) {
+ last if ($. > 30);
+ }
+ }
-+
++
+ seek($fh, 0, 0);
-+
++
+ $is_perl = 1 if ($nw > 1); # propably perl file
-+
++
+ #if (!$is_perl) {
+ # print STDERR "NOPERL $file\n";
+ # return 0;
+ return $is_perl;
+}
+
-
sub process_file {
-
+
+ my ($file) = @_;
@@ -90,6 +129,8 @@
-
- open(FILE, "<$file") || return;
-
+ return;
+ }
+
+ return if (!is_perlfile($file, \*FILE));
+
while (<FILE>) {
-
- # skip the documentation
+
+ # skip the "= <<" block
@@ -111,6 +152,10 @@
last;
}