[R][PATCH 2/2] UBUNTU: [Packaging] templates: Run scripts in /usr/share/kernel/*.d too

Emil Renner Berthing emil.renner.berthing at canonical.com
Wed Apr 1 11:44:12 UTC 2026


BugLink: https://bugs.launchpad.net/bugs/214700

Packages like linux-base and system-boot moved their packaged scripts
from /etc/kernel/*.d to /usr/share/kernel/*.d. We're already using
run-parts which supports multiple directories with /etc overriding
scripts in /share, so let's just add the /usr/share/kernel/*.d
directories to our templates.

Signed-off-by: Emil Renner Berthing <emil.renner.berthing at canonical.com>
---
 debian/templates/extra.postinst.in   | 4 ++--
 debian/templates/extra.postrm.in     | 4 ++--
 debian/templates/headers.postinst.in | 4 ++--
 debian/templates/image.postinst.in   | 4 ++--
 debian/templates/image.postrm.in     | 4 ++--
 debian/templates/image.preinst.in    | 4 ++--
 debian/templates/image.prerm.in      | 4 ++--
 7 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/debian/templates/extra.postinst.in b/debian/templates/extra.postinst.in
index f9704d122605..d0a7c388f629 100755
--- a/debian/templates/extra.postinst.in
+++ b/debian/templates/extra.postinst.in
@@ -9,10 +9,10 @@ if [ "$1" != configure ]; then
 fi
 
 depmod -a -F /boot/System.map-$version $version || true
-if [ -d /etc/kernel/postinst.d ]; then
+if [ -d /etc/kernel/postinst.d ] || [ -d /usr/share/kernel/postinst.d ]; then
     cat - >/usr/lib/linux/triggers/$version <<EOF
 DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \
-    --arg="$image_path" /etc/kernel/postinst.d
+    --arg="$image_path" /etc/kernel/postinst.d /usr/share/kernel/postinst.d
 EOF
     dpkg-trigger --no-await linux-update-$version
 fi
diff --git a/debian/templates/extra.postrm.in b/debian/templates/extra.postrm.in
index 70e14b31b265..67e7ca975698 100755
--- a/debian/templates/extra.postrm.in
+++ b/debian/templates/extra.postrm.in
@@ -17,13 +17,13 @@ depmod -a -F /boot/System.map-$version $version 2>/dev/null || true
 # leave lying about could be confusing, but we trade that against safety on
 # removal.
 #
-#if [ -d /etc/kernel/postinst.d ]; then
+#if [ -d /etc/kernel/postinst.d ] || [ -d /usr/share/kernel/postinst.d ]; then
 #    # We want to behave as if linux-image (without us) was installed, therefore
 #    # we do not want the postinst support to know we are being removed, claim
 #    # this is an installation event.
 #    cat - >/usr/lib/linux/triggers/$version <<EOF
 #DEB_MAINT_PARAMS="configure" run-parts --report --exit-on-error --arg=$version \
-#    --arg="$image_path" /etc/kernel/postinst.d
+#    --arg="$image_path" /etc/kernel/postinst.d /usr/share/kernel/postinst.d
 #EOF
 #    dpkg-trigger --no-await linux-update-$version
 #fi
diff --git a/debian/templates/headers.postinst.in b/debian/templates/headers.postinst.in
index 0ec6c5c0785f..0d97d0664441 100755
--- a/debian/templates/headers.postinst.in
+++ b/debian/templates/headers.postinst.in
@@ -7,9 +7,9 @@ if [ "$1" != configure ]; then
     exit 0
 fi
 
-if [ -d /etc/kernel/header_postinst.d ]; then
+if [ -d /etc/kernel/header_postinst.d ] || [ -d /usr/share/kernel/header_postinst.d ]; then
     DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \
-        /etc/kernel/header_postinst.d
+        /etc/kernel/header_postinst.d /usr/share/kernel/header_postinst.d
 fi
 
 exit 0
diff --git a/debian/templates/image.postinst.in b/debian/templates/image.postinst.in
index 27eb95efad6d..966e57156ac0 100755
--- a/debian/templates/image.postinst.in
+++ b/debian/templates/image.postinst.in
@@ -50,11 +50,11 @@ fi
 linux-update-symlinks $change $version $image_path
 rm -f /usr/lib/modules/$version/.fresh-install
 
-if [ -d /etc/kernel/postinst.d ]; then
+if [ -d /etc/kernel/postinst.d ] || [ -d /usr/share/kernel/postinst.d ]; then
     mkdir -p /usr/lib/linux/triggers
     cat - >/usr/lib/linux/triggers/$version <<EOF
 DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \
-    --arg=$image_path /etc/kernel/postinst.d
+    --arg=$image_path /etc/kernel/postinst.d /usr/share/kernel/postinst.d
 EOF
     dpkg-trigger --no-await linux-update-$version
 fi
diff --git a/debian/templates/image.postrm.in b/debian/templates/image.postrm.in
index 940702df14ed..f401c5d4b564 100755
--- a/debian/templates/image.postrm.in
+++ b/debian/templates/image.postrm.in
@@ -10,7 +10,7 @@ if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then
     linux-update-symlinks remove $version $image_path
 fi
 
-if [ -d /etc/kernel/postrm.d ]; then
+if [ -d /etc/kernel/postrm.d ] || [ -d /usr/share/kernel/postrm.d ]; then
     # We cannot trigger ourselves as at the end of this we will no longer
     # exist and can no longer respond to the trigger.  The trigger would
     # then become lost.  Therefore we clear any pending trigger and apply
@@ -20,7 +20,7 @@ if [ -d /etc/kernel/postrm.d ]; then
         rm -f /usr/lib/linux/triggers/$version
     fi
     DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \
-        --arg=$image_path /etc/kernel/postrm.d
+        --arg=$image_path /etc/kernel/postrm.d /usr/share/kernel/postrm.d
 fi
 
 if [ "$1" = purge ]; then
diff --git a/debian/templates/image.preinst.in b/debian/templates/image.preinst.in
index 8785fd16f0c1..0deae26fd12b 100755
--- a/debian/templates/image.preinst.in
+++ b/debian/templates/image.preinst.in
@@ -14,9 +14,9 @@ if [ "$1" = install ]; then
     touch /usr/lib/modules/$version/.fresh-install
 fi
 
-if [ -d /etc/kernel/preinst.d ]; then
+if [ -d /etc/kernel/preinst.d ] || [ -d /usr/share/kernel/preinst.d ]; then
     DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \
-        --arg=$image_path /etc/kernel/preinst.d
+        --arg=$image_path /etc/kernel/preinst.d /usr/share/kernel/preinst.d
 fi
 
 exit 0
diff --git a/debian/templates/image.prerm.in b/debian/templates/image.prerm.in
index 539038cfa82d..13e12e719258 100755
--- a/debian/templates/image.prerm.in
+++ b/debian/templates/image.prerm.in
@@ -10,9 +10,9 @@ fi
 
 linux-check-removal $version
 
-if [ -d /etc/kernel/prerm.d ]; then
+if [ -d /etc/kernel/prerm.d ] || [ -d /usr/share/kernel/prerm.d ]; then
     DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \
-        --arg=$image_path /etc/kernel/prerm.d
+        --arg=$image_path /etc/kernel/prerm.d /usr/share/kernel/prerm.d
 fi
 
 exit 0
-- 
2.53.0




More information about the kernel-team mailing list