Accepting request 680276 from home:michals

- Handle non-versioned dependency in purge-kernels.

OBS-URL: https://build.opensuse.org/request/show/680276
OBS-URL: https://build.opensuse.org/package/show/Base:System/dracut?expand=0&rev=368
This commit is contained in:
Marcus Meissner 2019-03-10 10:51:55 +00:00 committed by Git OBS Bridge
parent 47ac95bff3
commit 41793f43e1
2 changed files with 8 additions and 3 deletions

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Thu Feb 28 20:09:28 UTC 2019 - Michal Suchanek <msuchanek@suse.de>
- Handle non-versioned dependency in purge-kernels.
-------------------------------------------------------------------
Mon Feb 25 14:51:07 UTC 2019 - Daniel Molkentin <daniel.molkentin@suse.com>

View File

@ -272,7 +272,7 @@ sub find_package {
my $name = shift @_;
my $version = shift @_;
my @packages = @_;
my $expr = "^" . quotemeta("$name-$version");
my $expr = "^" . quotemeta($version ? "$name-$version" : $name);
my @found = grep { $_ =~ $expr } @packages;
return @found if @found;
$expr = "^" . quotemeta($name) . " = " . quotemeta($version) . "\$";
@ -334,12 +334,12 @@ sub remove_packages {
push(@packages, $1) unless $new_packages{$1};
$new_packages{$1} = 1;
$retry = 1;
} elsif (/([^ \t]*) = ([^ \t]*) is needed by \(installed\) /) {
} elsif (/([^ \t]*)(?: = ([^ \t]*))? is needed by \(installed\) /) {
my @unremovable = find_package($1, $2, @packages);
my $match = $unremovable[$#unremovable];
if ($match) {
print STDERR "$0: $_\n";
print STDERR "$0: Keeping $1 = $2 ($match)\n";
print STDERR "$0: Keeping " . ($2 ? "$1 = $2" : $1) . " ($match)\n";
@packages = grep { $_ !~ $match } @packages;
$taboo_packages{$match} = 1;
$retry = 1;