From d0ec0f32b44c83329d5f5633f3a880475d6f8478 Mon Sep 17 00:00:00 2001 From: Johannes Schauer Marin Rodrigues <josch@mister-muffin.de> Date: Sat, 16 Nov 2024 16:25:55 +0100 Subject: [PATCH] linux/build.sh: also check stderr for run-parts output --- linux/build.sh | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/linux/build.sh b/linux/build.sh index eb40d74..b126448 100755 --- a/linux/build.sh +++ b/linux/build.sh @@ -83,6 +83,16 @@ maybe_faketime dch --force-distribution --distribution="$OURSUITE" --release "" # https://salsa.debian.org/kernel-team/linux/-/merge_requests/1159 # Do not require run-parts 5.21 or otherwise this would not work on bookworm +# - check whether either /etc or /usr directories exist +# - since the /etc directory is now allowed to be missing, do not pass it if +# it does not exist +# - use --help output of run-parts to determine whether more than one argument +# can be passed +# - in debianutils 5.14, run-parts --help output changed from stderr to stdout +# so we have to check both +# - this will fail if /etc does not exist *and* run-parts is too old (because +# then no directory will be passed) -- we assume that /etc can only +# be missing on new systems which will thus also have new run-parts cat << 'END' | env --chdir=linux patch -p1 --- a/debian/templates/headers.postinst.in +++ b/debian/templates/headers.postinst.in @@ -91,7 +101,7 @@ cat << 'END' | env --chdir=linux patch -p1 +if (-d "/etc/kernel/header_postinst.d" || -d "/usr/share/kernel/header_postinst.d") { system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && -+ '$(test -d /etc/kernel/header_postinst.d && echo /etc/kernel/header_postinst.d) $(test -d /usr/share/kernel/header_postinst.d && run-parts --help | grep -Fxq "Usage: run-parts [OPTION]... DIRECTORY [DIRECTORY ...]" && echo /usr/share/kernel/header_postinst.d)') && ++ '$(test -d /etc/kernel/header_postinst.d && echo /etc/kernel/header_postinst.d) $(test -d /usr/share/kernel/header_postinst.d && run-parts --help 2>&1 | grep -Fxq "Usage: run-parts [OPTION]... DIRECTORY [DIRECTORY ...]" && echo /usr/share/kernel/header_postinst.d)') && die "Failed to process /etc/kernel/header_postinst.d"; } END @@ -104,7 +114,7 @@ for maint in postinst postrm preinst prerm; do +if [ -d /etc/kernel/$maint.d ] || [ -d /usr/share/kernel/$maint.d ]; then DEB_MAINT_PARAMS="\$*" run-parts --report --exit-on-error --arg=\$version \\ - --arg=\$image_path /etc/kernel/$maint.d -+ --arg=\$image_path \$(test -d /etc/kernel/$maint.d && echo /etc/kernel/$maint.d) \$(test -d /usr/share/kernel/$maint.d && run-parts --help | grep -Fxq "Usage: run-parts [OPTION]... DIRECTORY [DIRECTORY ...]" && echo /usr/share/kernel/$maint.d) ++ --arg=\$image_path \$(test -d /etc/kernel/$maint.d && echo /etc/kernel/$maint.d) \$(test -d /usr/share/kernel/$maint.d && run-parts --help 2>&1 | grep -Fxq "Usage: run-parts [OPTION]... DIRECTORY [DIRECTORY ...]" && echo /usr/share/kernel/$maint.d) fi END -- GitLab