From 74b839fa53c6ebb386df6ec85e185020978d0b6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Fri, 3 Oct 2025 14:38:19 +0200 Subject: kernel-install.eclass: Fix updating symlinks with -p kernels MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes: https://bugs.gentoo.org/963683 Signed-off-by: Michał Górny Part-of: https://github.com/gentoo/gentoo/pull/44021 Closes: https://github.com/gentoo/gentoo/pull/44021 Signed-off-by: Michał Górny --- eclass/kernel-install.eclass | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'eclass/kernel-install.eclass') diff --git a/eclass/kernel-install.eclass b/eclass/kernel-install.eclass index 47afe6e75010..5d074598192f 100644 --- a/eclass/kernel-install.eclass +++ b/eclass/kernel-install.eclass @@ -263,10 +263,15 @@ kernel-install_can_update_symlink() { # strip KV_LOCALVERSION, we want to update the old kernels not using # KV_LOCALVERSION suffix and the new kernels using it symlink_ver=${symlink_ver%${KV_LOCALVERSION}} - - # if ${symlink_ver} contains anything but numbers (e.g. an extra - # suffix), it's not our kernel, so leave it alone - [[ -n ${symlink_ver//[0-9.]/} ]] && return 1 + symlink_ver=${symlink_ver/-p/_p} + # strip -p* revision + local symlink_ver_no_rev=${symlink_ver%_p[0-9]*} + local rev=${symlink_ver#${symlink_ver_no_rev}} + rev=${rev#_p} + + # if ${symlink_ver} contained anything but numbers and revision (e.g. + # an extra suffix), it's not our kernel, so leave it alone + [[ -n ${symlink_ver_no_rev//[0-9.]/} || -n ${rev//[0-9]/} ]] && return 1 local symlink_pkg=${CATEGORY}/${PN}-${symlink_ver} # if the current target is either being replaced, or still -- cgit v1.2.3