Re: [PATCH 2/2] kbuild: deb-pkg: add KDEB_SOURCE_COMPRESS to specify compression type

From: Nicolas Schier
Date: Wed Apr 19 2023 - 16:35:11 EST


On Mon 17 Apr 2023 23:25:48 GMT, Masahiro Yamada wrote:
> Add KDEB_SOURCE_COMPRESS to specify the compression for the orig and
> debian tarballs. (The existing KDEB_COMPRESS is used to specify the
> compression for binary packages.)

Sounds to me, that it would make sense to sum-up some documentation for
kbuild Debian package configuration.

> Supported algorithms are gzip, bzip2, lzma, and xz, all of which are
> supported by dpkg-source.
>
> Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>
> ---
>
> scripts/Makefile.package | 31 +++++++++++++++++++++++--------
> 1 file changed, 23 insertions(+), 8 deletions(-)
>
> diff --git a/scripts/Makefile.package b/scripts/Makefile.package
> index d8a36304b26e..ce3d8b4e9cb0 100644
> --- a/scripts/Makefile.package
> +++ b/scripts/Makefile.package
> @@ -41,19 +41,25 @@ check-git:
> false; \
> fi
>
> -git-config-tar.gz = -c tar.tar.gz.command="$(KGZIP)"
> -git-config-tar.bz2 = -c tar.tar.bz2.command="$(KBZIP2)"
> -git-config-tar.xz = -c tar.tar.xz.command="$(XZ)"
> -git-config-tar.zst = -c tar.tar.zst.command="$(ZSTD)"
> +git-config-tar.gz = -c tar.tar.gz.command="$(KGZIP)"
> +git-config-tar.bz2 = -c tar.tar.bz2.command="$(KBZIP2)"
> +git-config-tar.lzma = -c tar.tar.lzma.command="$(LZMA)"
> +git-config-tar.xz = -c tar.tar.xz.command="$(XZ)"
> +git-config-tar.zst = -c tar.tar.zst.command="$(ZSTD)"
>
> quiet_cmd_archive = ARCHIVE $@
> cmd_archive = git -C $(srctree) $(git-config-tar$(suffix $@)) archive \
> --output=$$(realpath $@) --prefix=$(basename $@)/ $(archive-args)
>
> +suffix-gzip := .gz
> +suffix-bzip2 := .bz2
> +suffix-lzma := .lzma
> +suffix-xz := .xz
> +
> # Linux source tarball
> # ---------------------------------------------------------------------------
>
> -linux-tarballs := $(addprefix linux, .tar.gz)
> +linux-tarballs := $(addprefix linux, .tar.gz .tar.bz2 .tar.lzma .tar.xz)
>
> targets += $(linux-tarballs)
> $(linux-tarballs): archive-args = $$(cat $<)
> @@ -88,6 +94,15 @@ binrpm-pkg:
> # deb-pkg srcdeb-pkg bindeb-pkg
> # ---------------------------------------------------------------------------
>
> +KDEB_SOURCE_COMPRESS ?= gzip

According to dpkg-source(1), xz is the default compression for deb
source format >= 2. Shouldn't we use xz here by default as well?

Reviewed-by: Nicolas Schier <nicolas@xxxxxxxxx>

Thanks and kind regards,
Nicolas


> +
> +PHONY += linux.tar.unsupported_deb_compress
> +linux.tar.unsupported_deb_compress:
> + @echo "error: $(KDEB_SOURCE_COMPRESS): unsupported debian source compression" >&2
> + @false
> +
> +debian-orig-suffix := $(if $(filter gzip bzip2 lzma xz, $(KDEB_SOURCE_COMPRESS)),$(suffix-$(KDEB_SOURCE_COMPRESS)),.unsupported_deb_compress)
> +
> quiet_cmd_debianize = GEN $@
> cmd_debianize = $(srctree)/scripts/package/mkdebian $(mkdebian-opts)
>
> @@ -97,9 +112,9 @@ debian: FORCE
> PHONY += debian-orig
> debian-orig: private source = $(shell dpkg-parsechangelog -S Source)
> debian-orig: private version = $(shell dpkg-parsechangelog -S Version | sed 's/-[^-]*$$//')
> -debian-orig: private orig-name = $(source)_$(version).orig.tar.gz
> +debian-orig: private orig-name = $(source)_$(version).orig.tar$(debian-orig-suffix)
> debian-orig: mkdebian-opts = --need-source
> -debian-orig: linux.tar.gz debian
> +debian-orig: linux.tar$(debian-orig-suffix) debian
> $(Q)if [ "$(df --output=target .. 2>/dev/null)" = "$(df --output=target $< 2>/dev/null)" ]; then \
> ln -f $< ../$(orig-name); \
> else \
> @@ -120,7 +135,7 @@ deb-pkg srcdeb-pkg bindeb-pkg:
> +$(strip dpkg-buildpackage \
> --build=$(build-type) --no-pre-clean --unsigned-changes \
> $(if $(findstring source, $(build-type)), \
> - --unsigned-source) \
> + --unsigned-source --compression=$(KDEB_SOURCE_COMPRESS)) \
> $(if $(findstring binary, $(build-type)), \
> -r$(KBUILD_PKG_ROOTCMD) -a$$(cat debian/arch), \
> --no-check-builddeps) \
> --
> 2.37.2

Attachment: signature.asc
Description: PGP signature