Re: [PATCH 2/2] scripts/package/builddeb: split generating packaging and build
Hi Riku,
2017-08-16 20:08 GMT+09:00 <riku.voipio@linaro.org>:
> From: Riku Voipio <riku.voipio@linaro.org>
>
> Move debian/ directory generation out of builddeb to a new script,
> mkdebian. The package build commands are kept in builddeb, which
> is now and internal command called from debian/rules.
>
> With these changes in place, we can now use dpkg-buildpackage from
> deb-pkg and bindeb-pkg removing need for handrulled source/changes
> generation.
>
> This patch is based on the criticism of the current state of builddeb
> discussed on:
>
> https://patchwork.kernel.org/patch/9656403/
>
> Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
Sorry for late reply, and thanks for working on this!
In my opinion, this seems the right direction.
A few comments below.
(Please note I am not a debian developer.
If I am suggesting wrong, please correct me.)
> scripts/package/Makefile | 14 ++-
> scripts/package/builddeb | 233 +----------------------------------------------
> scripts/package/mkdebian | 209 ++++++++++++++++++++++++++++++++++++++++++
> 3 files changed, 221 insertions(+), 235 deletions(-)
> create mode 100755 scripts/package/mkdebian
>
> diff --git a/scripts/package/Makefile b/scripts/package/Makefile
> index 9867638896ad..176158c9b7da 100644
> --- a/scripts/package/Makefile
> +++ b/scripts/package/Makefile
> @@ -92,12 +92,18 @@ quiet_cmd_builddeb = BUILDDEB
> deb-pkg: FORCE
> $(MAKE) clean
> $(call cmd,src_tar,$(KDEB_SOURCENAME))
> - $(MAKE) KBUILD_SRC=
> - +$(call cmd,builddeb)
> + $(call cmd,updateversion)
> + mv $(KDEB_SOURCENAME).tar.gz ../$(KDEB_SOURCENAME)_$(KERNELRELEASE).orig.tar.gz
> + $(CONFIG_SHELL) $(srctree)/scripts/package/mkdebian
> + dpkg-buildpackage -r"fakeroot -u" -a$$(cat debian/arch) -i.git
This tries to sign the source package and .changes file by default.
Maybe, "-us -uc" options reasonable for easier use?
> bindeb-pkg: FORCE
> - $(MAKE) KBUILD_SRC=
> - +$(call cmd,builddeb)
> + $(call cmd,updateversion)
> + $(CONFIG_SHELL) $(srctree)/scripts/package/mkdebian
> + dpkg-buildpackage -r"fakeroot -u" -a$$(cat debian/arch) -b
IIUC, the whole of dpkg-buildpackage process is run under "fakeroot -u".
Correct?
It will internally invokes "make intdeb-pkg",
then $(call cmd,builddeb) calls "fakeroot -u" recursively,
this seems redundant to me.
Maybe,
dpkg-buildpackage -r"$(KBUILD_PKG_ROOTCMD)" -a$$(cat debian/arch) -b
makes more sense?
> +
> +cat <<EOF > debian/rules
> +#!/usr/bin/make -f
> +
> +ifneq (,\$(filter parallel=%,\$(DEB_BUILD_OPTIONS)))
> + NUMJOBS = \$(patsubst parallel=%,%,\$(filter parallel=%,\$(DEB_BUILD_OPTIONS)))
> + MAKEFLAGS += -j\$(NUMJOBS)
> +endif
> +
> +build:
> + \$(MAKE) ARCH=${ARCH}
> +
> +binary-arch:
> + \$(MAKE) KDEB_VERSION=${version} ARCH=${ARCH} intdeb-pkg
Hmm, instead of recursive make,
is it possible to run scripts/package/debuild directly here?
> +
> +clean:
> + rm -rf debian/*tmp debian/files
> + mv debian/ debian.backup # debian/ might be cleaned away
> + \$(MAKE) clean
The biggest change in the behavior is, "make bindeb-pkg" did not
previously "make clean",
but now does it.
If "make bindeb-pkg" is run in a row, all objects are cleaned every time.
Is it reasonable to skip "$(MAKE) clean" for bindeb-pkg?
--
Best Regards
Masahiro Yamada
Reply to: