You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
2.3 KiB
81 lines
2.3 KiB
--- rpm-4.11.3/scripts/perl.req.old 2019-05-26 15:41:33.316395021 +0200 |
|
+++ rpm-4.11.3/scripts/perl.req 2019-05-26 14:08:38.248028422 +0200 |
|
@@ -90,10 +90,10 @@ |
|
|
|
sub compute_global_requires { |
|
|
|
-# restrict require to all non provided by the file |
|
- foreach my $moduler (sort keys %require) { |
|
- if (exists $provide{$moduler} && length($require{$moduler}) == 0) { |
|
- $require = delete $require{$moduler}; |
|
+# restrict require_removable to all non provided by the file |
|
+ foreach my $moduler (sort keys %require_removable) { |
|
+ if (exists $provide{$moduler} && length($require_removable{$moduler}) == 0) { |
|
+ $require_removable = delete $require_removable{$moduler}; |
|
} |
|
} |
|
# store requires to global_requires |
|
@@ -107,8 +107,21 @@ |
|
$global_require{$module} = $newver; |
|
} |
|
} |
|
+ |
|
+# store requires_removable to global_requires |
|
+ foreach my $module (sort keys %require_removable) { |
|
+ my $oldver = $global_require{$module}; |
|
+ my $newver = $require_removable{$module}; |
|
+ if ($oldver) { |
|
+ $global_require{$module} = $newver |
|
+ if ($HAVE_VERSION && $newver && version->new($oldver) < $newver); |
|
+ } else { |
|
+ $global_require{$module} = $newver; |
|
+ } |
|
+ } |
|
# remove all local requires and provides |
|
undef %require; |
|
+ undef %require_removable; |
|
undef %provide; |
|
} |
|
|
|
@@ -124,6 +137,18 @@ |
|
} |
|
} |
|
|
|
+sub add_require_removable { |
|
+ my ($module, $newver) = @_; |
|
+ my $oldver = $require_removable{$module}; |
|
+ if ($oldver) { |
|
+ $require_removable{$module} = $newver |
|
+ if ($HAVE_VERSION && $newver && version->new($oldver) < $newver); |
|
+ } |
|
+ else { |
|
+ $require_removable{$module} = $newver; |
|
+ } |
|
+} |
|
+ |
|
sub process_file { |
|
|
|
my ($file) = @_; |
|
@@ -286,7 +311,6 @@ |
|
|
|
# if the module starts with /, it is an absolute path to a file |
|
if ($module =~ m(^/)) { |
|
- print "$module\n"; |
|
next; |
|
} |
|
|
|
@@ -346,7 +370,13 @@ |
|
add_require($_, undef) for split(' ', $1); |
|
} |
|
elsif ($version =~ /(["'])([^"']+)\1/) { |
|
- add_require($2, undef); |
|
+ # requires like "use base name" can be removed if they are |
|
+ # provided in the same file |
|
+ if (($whitespace eq "") && ($statement eq "use") && ($module eq "base")) { |
|
+ add_require_removable($2, undef); |
|
+ } else { |
|
+ add_require($2, undef); |
|
+ } |
|
} |
|
next; |
|
}
|
|
|