diff options
author | Thierry Vignaud <thierry.vignaud@gmail.com> | 2022-07-27 17:44:59 +0200 |
---|---|---|
committer | Thierry Vignaud <thierry.vignaud@gmail.com> | 2022-12-10 14:15:07 +0100 |
commit | 7a7c616d0add53a98641410376588fca509524a6 (patch) | |
tree | 2c8d4dee8423b8eded7ba3c9874e5ab90b9d6dc2 | |
parent | a4e05db225d23352effb66ffbc166573a2643ea0 (diff) | |
download | urpmi-7a7c616d0add53a98641410376588fca509524a6.tar urpmi-7a7c616d0add53a98641410376588fca509524a6.tar.gz urpmi-7a7c616d0add53a98641410376588fca509524a6.tar.bz2 urpmi-7a7c616d0add53a98641410376588fca509524a6.tar.xz urpmi-7a7c616d0add53a98641410376588fca509524a6.zip |
(_all_unrequested_orphans) handle mga9 kernels
Now kernel names are unversionned and we've multiple packages with the
same "kernel" name which make orphans handling to derail
-rw-r--r-- | Changes | 3 | ||||
-rw-r--r-- | urpm/orphans.pm | 12 |
2 files changed, 14 insertions, 1 deletions
@@ -1,5 +1,8 @@ - cpan_testers: o Skip mirrorlist tests if there's only one broken mirror such as on mga[1-6] +- urpmi: + o Fix --auto-orphans vs new kernel naming + (having multuple "kernel" pkgs with different versions) - urpmq: o --requires/suggests: do not warn about 14y+ old behavior change (mga#26448) diff --git a/urpm/orphans.pm b/urpm/orphans.pm index a5d5cc5c..11bd555e 100644 --- a/urpm/orphans.pm +++ b/urpm/orphans.pm @@ -1,7 +1,7 @@ package urpm::orphans; use strict; -use urpm::util qw(add2hash_ append_to_file cat_ output_safe partition put_in_hash uniq wc_l); +use urpm::util qw(add2hash_ append_to_file cat_ member output_safe partition put_in_hash uniq wc_l); use urpm::msg; use urpm; @@ -519,12 +519,22 @@ sub _all_unrequested_orphans { my (%l, %provides); # 1- list explicit provides (not files) from installed packages: + + my $need_expand = 0; foreach my $pkg (@$unreq) { $l{$pkg->fullname} = $pkg; + my $n = $pkg->name; + # Instead of hardcoding desktop/linus/server/... flavors, blacklist: + $need_expand++ if $n =~ /^kernel-(\w+)$/ && !member($1, qw(doc firmware source)); push @{$provides{$_}}, $pkg foreach $pkg->provides_nosense; } my $unreq_list = unrequested_list($urpm); + # we need to replace/augment eg "kernel-desktop" by the "kernel-desktop-V-R" for each installed kernel: + if ($need_expand) { + $kernels{$_->fullname} = $_ foreach grep { /^kernel/ } @$unreq; + } + my ($current_kernel_version, $current_kernel) = _get_current_kernel_package(); # 2- check if "unrequested" packages are still needed: |