APPLIED: [MANTIC][NOBLE][UNSTABLE][PATCH] UBUNTU: [Packaging] make ZSTD module compression conditional

Stefan Bader stefan.bader at canonical.com
Fri Dec 1 14:24:54 UTC 2023


On 20.11.23 23:32, Dimitri John Ledkov wrote:

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

> 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>
> ---

Applied to mantic:linux/master-next using above bug report. Thanks.

-Stefan

> 
> 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))

-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_0xE8675DEECBEECEA3.asc
Type: application/pgp-keys
Size: 44613 bytes
Desc: OpenPGP public key
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20231201/b8cf30e5/attachment-0001.key>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20231201/b8cf30e5/attachment-0001.sig>


More information about the kernel-team mailing list