From 87d850a66a4c3b1108e9b932926804afa90df0b1 Mon Sep 17 00:00:00 2001 From: Thierry Vignaud Date: Wed, 27 Jul 2022 09:55:20 +0200 Subject: (_replace_kernel_by_its_provide) split it out Rationale: so that we can document kernel management --- urpm/orphans.pm | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/urpm/orphans.pm b/urpm/orphans.pm index cc9e76d2..60bfb4a1 100644 --- a/urpm/orphans.pm +++ b/urpm/orphans.pm @@ -421,6 +421,24 @@ sub _get_current_kernel_package() { -e "/boot/vmlinuz-$release" && ($release, `rpm -qf --qf '%{name}' /boot/vmlinuz-$release`); } +=item _replace_kernel_by_its_provide($urpm, $pkg) + +Take a dep, replace it by the pkg providing it. +Eg: +Return the current kernel's package so that we can filter out current running +kernel: + +On mdv & mga[1-8], it's for getting the fullname of the matching pkg. +Eg: kernel-desktop-5.15.45-1.mga8 -> kernel-desktop-5.15.45-1.mga8-1-1.x86_64 + +=cut + +sub _replace_kernel_by_its_provide { + my ($urpm, $pkg) = @_; + my ($req) = grep { /^kernel/ } $pkg->requires; + my @a = $urpm->packages_providing($pkg->requires); + $a[0]; +} =item _kernel_callback ($pkg, $unreq_list) @@ -464,8 +482,7 @@ sub _kernel_callback { # keep track of packages required by latest kernels in order not to try removing requested kernels: if ($n =~ /latest/) { - my @a = $urpm->packages_providing($pkg->requires); - my $kpkg = $a[0]; + my $kpkg = _replace_kernel_by_its_provide($urpm, $pkg); push @req_by_latest_kernels, scalar $kpkg->fullname if $kpkg; } else { $kernels{$n} = $pkg; -- cgit v1.2.1