APPLIED: [UNSTABLE][PATCH] UBUNTU: [Packaging] make ZSTD module compression conditional
Dimitri John Ledkov
dimitri.ledkov at canonical.com
Mon Dec 4 22:36:45 UTC 2023
Applied to unstable only; with a buglink + without ignore, as per
review comments.
On Mon, 20 Nov 2023 at 22:32, Dimitri John Ledkov
<dimitri.ledkov at canonical.com> wrote:
>
> 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 <dimitri.ledkov at canonical.com>
> ---
>
> 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=<n> 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
>
--
Dimitri
Sent from Ubuntu Pro
https://ubuntu.com/pro
More information about the kernel-team
mailing list