UBUNTU: [Packaging] Fix kernel module compression failures

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

The kernel module compression step is run for every binary package,
not just the modules packages. This results in a build failure when
run in a console for packages that don't contain any .ko files:

\# Compress kernel modules
find debian/linux-unstable-tools-6.6.0-12 -name '*.ko' -print0 | xargs -0 -n1 -P 8 zstd -19 --quiet --rm
stdout is a console, aborting
make: *** [debian/rules.d/2-binary-arch.mk:769: binary-perarch] Error 123

Basically, if find returns nothing, zstd tries to read from stdin:
$ echo | xargs zstd
stdout is a console, aborting
$ echo $?
123

To fix that, tell xargs not to run the command if stdin is empty:
$ echo | xargs -r zstd
$ echo $?
0

Signed-off-by: Juerg Haefliger <juerg.haefliger@canonical.com>
Acked-by: Manuel Diewald <manuel.diewald@canonical.com>
Acked-by: Thibault Ferrante <thibault.ferrante@canonical.com>
Acked-by: Dimitri John Ledkov <dimitri.ledkov@canonical.com>
Signed-off-by: Dimitri John Ledkov <dimitri.ledkov@canonical.com>
This commit is contained in:
Juerg Haefliger
2023-11-24 11:51:38 +01:00
committed by Paolo Pisati
parent b6bffb0e8b
commit b448cf64c9
+1 -1
View File
@@ -568,7 +568,7 @@ define dh_all
dh_installdocs -p$(1)
dh_compress -p$(1)
# Compress kernel modules, on mantic+
$(if $(do_zstd_ko),find debian/$(1) -name '*.ko' -print0 | xargs -0 -n1 -P $(CONCURRENCY_LEVEL) zstd -19 --quiet --rm, true)
$(if $(do_zstd_ko),find debian/$(1) -name '*.ko' -print0 | xargs -0 -n1 -P $(CONCURRENCY_LEVEL) -r zstd -19 --quiet --rm, true)
dh_fixperms -p$(1) -X/boot/
dh_shlibdeps -p$(1) $(shlibdeps_opts)
dh_installdeb -p$(1)