sys-kernel/vanilla-kernel: Update symlink target after installing
authorMichał Górny <mgorny@gentoo.org>
Thu, 19 Dec 2019 10:14:25 +0000 (11:14 +0100)
committerMichał Górny <mgorny@gentoo.org>
Thu, 19 Dec 2019 19:27:37 +0000 (20:27 +0100)
Signed-off-by: Michał Górny <mgorny@gentoo.org>
sys-kernel/vanilla-kernel/vanilla-kernel-5.4.5.ebuild

index dc2837b8fd05eaef83cf0660f0155a752e863fa8..37b591ff1c59a662a2995735232c8e681c27c7db 100644 (file)
@@ -151,8 +151,21 @@ pkg_postinst() {
                eend || fail=1
 
                [[ ${fail} ]] && die "Installing the kernel failed"
+       fi
 
-               # TODO: update /usr/src/linux symlink?
+       local symlink_target=$(readlink "${EROOT}"/usr/src/linux)
+       if [[ ${symlink_target} == linux-[0-9]* ]]; then
+               local symlink_ver=${symlink_target#linux-}
+               local symlink_pkg=${CATEGORY}/${PN}-${symlink_ver}
+               # if the current target is either being replaced, or still
+               # installed (probably depclean candidate), update the symlink
+               if has "${symlink_ver}" ${REPLACING_VERSIONS} ||
+                               has_version -r "~${symlink_pkg}"
+               then
+                       ebegin "Updating /usr/src/linux symlink"
+                       ln -f -n -s linux-${PV} "${EROOT}"/usr/src/linux
+                       eend
+               fi
        fi
 
        savedconfig_pkg_postinst