[PATCH 2/2] kbuild: deb-pkg: invoke linux-base scripts if installed

From: Sascha Silbe
Date: Sun Oct 24 2021 - 10:08:53 EST


From: Sascha Silbe <x-linux@xxxxxxxxxxxxxx>

Kernel images built from source can be installed and used manually. On
systems where "flash-kernel" is used, new versions will be picked up
automatically and used on next boot. However on systems relying on
symlinks this does not happen as the symlinks are not updated, unlike
with stock Debian kernels.

To fix this invoke the scripts from linux-base if they are installed
just like the maintainer scripts of the stock Debian kernel packages
do.

Signed-off-by: Sascha Silbe <x-linux@xxxxxxxxxxxxxx>
---
scripts/package/builddeb | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

diff --git a/scripts/package/builddeb b/scripts/package/builddeb
index 91a502bb97e8a..69e0c51d324e0 100755
--- a/scripts/package/builddeb
+++ b/scripts/package/builddeb
@@ -202,6 +202,28 @@ export DEB_MAINT_PARAMS="\$*"
# Tell initramfs builder whether it's wanted
export INITRD=$(if_enabled_echo CONFIG_BLK_DEV_INITRD Yes No)

+# Call linux-base scripts if they are installed
+if command -v linux-update-symlinks > /dev/null; then
+ if [ $script = preinst ] && [ "\$1" = install ]; then
+ mkdir -p /lib/modules/$version
+ touch /lib/modules/$version/.fresh-install
+ elif [ $script = postinst ] && [ "\$1" = configure ]; then
+ if [ -f /lib/modules/$version/.fresh-install ]; then
+ linux-update-symlinks install $version /$installed_image_path
+ rm /lib/modules/$version/.fresh-install
+ else
+ linux-update-symlinks upgrade $version /$installed_image_path
+ fi
+ elif [ $script = prerm ] && [ "\$1" = remove ]; then
+ linux-check-removal $version
+ elif [ $script = postrm ]; then
+ rm -f /lib/modules/$version/.fresh-install
+ if [ "\$1" != upgrade ]; then
+ linux-update-symlinks remove $version /$installed_image_path
+ fi
+ fi
+fi
+
test -d $debhookdir/$script.d && run-parts --arg="$version" --arg="/$installed_image_path" $debhookdir/$script.d
exit 0
EOF
--
2.30.2