Subject: [MANTIC][NOBLE][UNSTABLE][PATCH] UBUNTU: [Packaging] make ZSTD module compression conditional From: Dimitri John Ledkov Date: 20.11.23, 23:32 To: kernel-team@lists.ubuntu.com Make ZSTD module compression conditional. Only enable it when building on recent series, such that backports of v6.5 kernels to jammy keep uncompressed modules, with zstd compressed .deb. Fixes: b2638e9702 ("UBUNTU: [Packaging] ZSTD compress modules") Ignore: yes Signed-off-by: Dimitri John Ledkov Acked-by: Andrea Righi Acked-by: Roxana Nicolescu Signed-off-by: Stefan Bader --- Fixup zstd module compression for easy backports to jammy. If active changelog targets jammy the build is uncompressed .ko, compressed debs: $ make -nf ./debian/rules binary 2>&1 | grep -e zstd -e dh_builddeb | grep linux-modules dh_builddeb -plinux-modules-6.5.0-14-generic dh_builddeb -plinux-modules-extra-6.5.0-14-generic; \ dh_builddeb -plinux-modules-ipu6-6.5.0-14-generic; dh_installchangelogs -plinux-modules-ivsc-6.5.0-14-generic dh_builddeb -plinux-modules-ivsc-6.5.0-14-generic; dh_installchangelogs -plinux-modules-iwlwifi-6.5.0-14-generic dh_builddeb -plinux-modules-iwlwifi-6.5.0-14-generic; If active changelog is not jammy the build is compressed .ko, uncompressed debs: $ make -nf ./debian/rules binary 2>&1 | grep -e zstd -e dh_builddeb | grep linux-modules find debian/linux-modules-6.5.0-14-generic -name '*.ko' -print0 | xargs -0 -n1 -P 2 zstd -19 --quiet --rm dh_builddeb -plinux-modules-6.5.0-14-generic -- -Znone find debian/linux-modules-extra-6.5.0-14-generic -name '*.ko' -print0 | xargs -0 -n1 -P 2 zstd -19 --quiet --rm; \ dh_builddeb -plinux-modules-extra-6.5.0-14-generic -- -Znone; \ find debian/linux-modules-ipu6-6.5.0-14-generic -name '*.ko' -print0 | xargs -0 -n1 -P 2 zstd -19 --quiet --rm dh_builddeb -plinux-modules-ipu6-6.5.0-14-generic -- -Znone; dh_installchangelogs -plinux-modules-ivsc-6.5.0-14-generic find debian/linux-modules-ivsc-6.5.0-14-generic -name '*.ko' -print0 | xargs -0 -n1 -P 2 zstd -19 --quiet --rm dh_builddeb -plinux-modules-ivsc-6.5.0-14-generic -- -Znone; dh_installchangelogs -plinux-modules-iwlwifi-6.5.0-14-generic find debian/linux-modules-iwlwifi-6.5.0-14-generic -name '*.ko' -print0 | xargs -0 -n1 -P 2 zstd -19 --quiet --rm dh_builddeb -plinux-modules-iwlwifi-6.5.0-14-generic -- -Znone; Tested by producing both builds in cbd with both changelogs: $ file *-build/amd64/linux-modules*.deb jammy-build/amd64/linux-modules-6.5.0-14-generic_6.5.0-14.14_amd64.deb: Debian binary package (format 2.0), with control.tar.zs, data compression zst jammy-build/amd64/linux-modules-extra-6.5.0-14-generic_6.5.0-14.14_amd64.deb: Debian binary package (format 2.0), with control.tar.zs, data compression zst jammy-build/amd64/linux-modules-ipu6-6.5.0-14-generic_6.5.0-14.14_amd64.deb: Debian binary package (format 2.0), with control.tar.zs, data compression zst jammy-build/amd64/linux-modules-ivsc-6.5.0-14-generic_6.5.0-14.14_amd64.deb: Debian binary package (format 2.0), with control.tar.zs, data compression zst jammy-build/amd64/linux-modules-iwlwifi-6.5.0-14-generic_6.5.0-14.14_amd64.deb: Debian binary package (format 2.0), with control.tar.zs, data compression zst $ less jammy-build/amd64/linux-modules*.deb | grep iwlwifi.ko -rw-r--r-- root/root 1256145 2023-11-20 21:11 ./lib/modules/6.5.0-14-generic/kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko -rw-r--r-- root/root 1204353 2023-11-20 21:15 ./lib/modules/6.5.0-14-generic/ubuntu/iwlwifi/iwlwifi.ko mantic-build/amd64/linux-modules-6.5.0-14-generic_6.5.0-14.14_amd64.deb: Debian binary package (format 2.0), with control.tar mantic-build/amd64/linux-modules-extra-6.5.0-14-generic_6.5.0-14.14_amd64.deb: Debian binary package (format 2.0), with control.tar mantic-build/amd64/linux-modules-ipu6-6.5.0-14-generic_6.5.0-14.14_amd64.deb: Debian binary package (format 2.0), with control.tar mantic-build/amd64/linux-modules-ivsc-6.5.0-14-generic_6.5.0-14.14_amd64.deb: Debian binary package (format 2.0), with control.tar mantic-build/amd64/linux-modules-iwlwifi-6.5.0-14-generic_6.5.0-14.14_amd64.deb: Debian binary package (format 2.0), with control.tar $ less mantic-build/amd64/linux-modules*.deb | grep iwlwifi.ko -rw-r--r-- root/root 248816 2023-11-20 21:12 ./lib/modules/6.5.0-14-generic/kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko.zst -rw-r--r-- root/root 235220 2023-11-20 21:15 ./lib/modules/6.5.0-14-generic/ubuntu/iwlwifi/iwlwifi.ko.zst Mark commit as Ignore: yes, as it actually doesn't introduce any changes to the end user in mantic+ kernels. Once this is applied the previous revert of all zst compressed modules applied in hwe-6.5 only, should be dropped upon rebase. debian/rules.d/0-common-vars.mk | 6 ++++++ debian/rules.d/2-binary-arch.mk | 10 +++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/debian/rules.d/0-common-vars.mk b/debian/rules.d/0-common-vars.mk index 410de315af..1dc77bcf78 100644 --- a/debian/rules.d/0-common-vars.mk +++ b/debian/rules.d/0-common-vars.mk @@ -199,6 +199,12 @@ do_dtbs=false # FIPS check do_fips_checks=false +# ZSTD compressed kernel modules +do_zstd_ko=true +ifeq ($(series),jammy) +do_zstd_ko= +endif + # Support parallel= in DEB_BUILD_OPTIONS (see #209008) # # These 2 environment variables set the -j value of the kernel build. For example, diff --git a/debian/rules.d/2-binary-arch.mk b/debian/rules.d/2-binary-arch.mk index 53fbb55c19..444564faea 100644 --- a/debian/rules.d/2-binary-arch.mk +++ b/debian/rules.d/2-binary-arch.mk @@ -567,8 +567,8 @@ define dh_all dh_installchangelogs -p$(1) dh_installdocs -p$(1) dh_compress -p$(1) - # Compress kernel modules - find debian/$(1) -name '*.ko' -print0 | xargs -0 -n1 -P $(CONCURRENCY_LEVEL) zstd -19 --quiet --rm + # 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) dh_fixperms -p$(1) -X/boot/ dh_shlibdeps -p$(1) $(shlibdeps_opts) dh_installdeb -p$(1) @@ -621,7 +621,7 @@ binary-%: checks-% dh_testroot $(call dh_all,$(pkgimg)) -- -Znone - $(call dh_all,$(pkgimg_mods)) -- -Znone + $(call dh_all,$(pkgimg_mods))$(if $(do_zstd_ko), -- -Znone) ifeq ($(do_extras_package),true) ifeq ($(ship_extras_package),false) @@ -633,13 +633,13 @@ ifeq ($(do_extras_package),true) | tee -a $(target_flavour).not-shipped.log; else if [ -f $(DEBIAN)/control.d/$(target_flavour).inclusion-list ] ; then \ - $(call dh_all_inline,$(pkgimg_ex)) -- -Znone; \ + $(call dh_all_inline,$(pkgimg_ex))$(if $(do_zstd_ko), -- -Znone); \ fi endif endif $(foreach _m,$(all_standalone_dkms_modules), \ - $(if $(enable_$(_m)),$(call dh_all,$(dkms_$(_m)_pkg_name)-$*) -- -Znone;)\ + $(if $(enable_$(_m)),$(call dh_all,$(dkms_$(_m)_pkg_name)-$*)$(if $(do_zstd_ko), -- -Znone);)\ ) $(call dh_all,$(pkgbldinfo)) -- 2.34.1 -- kernel-team mailing list kernel-team@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/kernel-team