[PATCH] kbuild: deb-pkg: apply short --rules-file option

Dmitrii Bundin posted 1 patch 2 years, 1 month ago
scripts/Makefile.package | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] kbuild: deb-pkg: apply short --rules-file option
Posted by Dmitrii Bundin 2 years, 1 month ago
The long --rules-file option might not be available for some older
versions of dpkg-buildpackage resulting in build failures. The -R option
has been available since 1.14.17 allowing builds for larger allowing
builds for larger set of versions of dpkg-buildpackage.

Signed-off-by: Dmitrii Bundin <dmitrii.bundin.a@gmail.com>
---
 scripts/Makefile.package | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/Makefile.package b/scripts/Makefile.package
index 2bcab02da965..0afbf5ad2919 100644
--- a/scripts/Makefile.package
+++ b/scripts/Makefile.package
@@ -148,7 +148,7 @@ deb-pkg srcdeb-pkg bindeb-pkg:
 	$(if $(findstring source, $(build-type)), \
 		--unsigned-source --compression=$(KDEB_SOURCE_COMPRESS)) \
 	$(if $(findstring binary, $(build-type)), \
-		--rules-file='$(MAKE) -f debian/rules' --jobs=1 -r$(KBUILD_PKG_ROOTCMD) -a$$(cat debian/arch), \
+		-R'$(MAKE) -f debian/rules' --jobs=1 -r$(KBUILD_PKG_ROOTCMD) -a$$(cat debian/arch), \
 		--no-check-builddeps) \
 	$(DPKG_FLAGS))
 
-- 
2.17.1
Re: [PATCH] kbuild: deb-pkg: apply short --rules-file option
Posted by Masahiro Yamada 2 years, 1 month ago
On Sat, Nov 4, 2023 at 8:43 AM Dmitrii Bundin
<dmitrii.bundin.a@gmail.com> wrote:
>
> The long --rules-file option might not be available for some older
> versions of dpkg-buildpackage resulting in build failures. The -R option
> has been available since 1.14.17 allowing builds for larger allowing
> builds for larger set of versions of dpkg-buildpackage.
>
> Signed-off-by: Dmitrii Bundin <dmitrii.bundin.a@gmail.com>
> ---
>  scripts/Makefile.package | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/Makefile.package b/scripts/Makefile.package
> index 2bcab02da965..0afbf5ad2919 100644
> --- a/scripts/Makefile.package
> +++ b/scripts/Makefile.package
> @@ -148,7 +148,7 @@ deb-pkg srcdeb-pkg bindeb-pkg:
>         $(if $(findstring source, $(build-type)), \
>                 --unsigned-source --compression=$(KDEB_SOURCE_COMPRESS)) \
>         $(if $(findstring binary, $(build-type)), \
> -               --rules-file='$(MAKE) -f debian/rules' --jobs=1 -r$(KBUILD_PKG_ROOTCMD) -a$$(cat debian/arch), \
> +               -R'$(MAKE) -f debian/rules' --jobs=1 -r$(KBUILD_PKG_ROOTCMD) -a$$(cat debian/arch), \
>                 --no-check-builddeps) \
>         $(DPKG_FLAGS))
>
> --
> 2.17.1
>


The replacement is inconsistent because you replaced
--rule-file, but kept --jobs, both of which are available
since 1.18.8



-j, --jobs[=jobs|auto]
   Specifies  the  number  of  jobs  allowed  to be run simultaneously
   (since dpkg 1.14.7, long option since dpkg 1.18.8).

-R, --rules-file=rules‐file
   Building  a  Debian package usually involves invoking debian/rules
   as a command with several standard parameters (since dpkg 1.14.17,
   long option since dpkg 1.18.8).


I do not think it is a big deal because the version 1.18.8
was released in 2016.




-- 
Best Regards
Masahiro Yamada
Re: [PATCH] kbuild: deb-pkg: apply short --rules-file option
Posted by Dmitrii Bundin 2 years, 1 month ago
On Sun, Nov 5, 2023 at 11:08 AM Masahiro Yamada <masahiroy@kernel.org> wrote:
>
>
> I do not think it is a big deal because the version 1.18.8
> was released in 2016.
>
> Best Regards
> Masahiro Yamada

Even in spite of being documented that way the long option
--rules-file was fixed to behave the way it currently does in the
commit 5cd52673aabdf5eaa58181972119a41041fc85f2 of dpkg dated dated
23.07.18 and become available starting 1.19.1. That might cause build
failures for some versions newer than 1.18.8. I faced
dpkg-buildpackage: error: unknown option or argument --rules-file when
building the Kernel using Debian dpkg-buildpackage version 1.19.0.5
having no errors for --jobs. To avoid such inconsistencies I think it
might be useful to apply short options that are guaranteed to be
available starting 1.14.7.
[PATCH v2] kbuild: deb-pkg: apply short -R and -j options
Posted by Dmitrii Bundin 2 years, 1 month ago
The long version --rules-file and --jobs are available since 1.18.8
while their short analogues -R and -j have been added since 1.14.7.

The option --rules-file the way it works currently was introduced in the
commit 5cd52673aabdf5eaa58181972119a41041fc85f2 of dpkg dated 23.07.18
with the following changelog entry:

* Fix dpkg-buildpackage option --rules-file parsing. It was trying to parse
  it as --rules-target, which due to the ordering was a no-op.

The current behavior of the long version --rules-file is guaranteed to
be in use starting 1.19.1 and might cause build failures for some
versions newer than 1.18.8 even in spite of being documented that way.

Signed-off-by: Dmitrii Bundin <dmitrii.bundin.a@gmail.com>
---
 scripts/Makefile.package | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/Makefile.package b/scripts/Makefile.package
index 2bcab02da965..af96319be98e 100644
--- a/scripts/Makefile.package
+++ b/scripts/Makefile.package
@@ -148,7 +148,7 @@ deb-pkg srcdeb-pkg bindeb-pkg:
 	$(if $(findstring source, $(build-type)), \
 		--unsigned-source --compression=$(KDEB_SOURCE_COMPRESS)) \
 	$(if $(findstring binary, $(build-type)), \
-		--rules-file='$(MAKE) -f debian/rules' --jobs=1 -r$(KBUILD_PKG_ROOTCMD) -a$$(cat debian/arch), \
+		-R'$(MAKE) -f debian/rules' -j1 -r$(KBUILD_PKG_ROOTCMD) -a$$(cat debian/arch), \
 		--no-check-builddeps) \
 	$(DPKG_FLAGS))
 
-- 
2.17.1
Re: [PATCH v2] kbuild: deb-pkg: apply short -R and -j options
Posted by Masahiro Yamada 2 years, 1 month ago
On Mon, Nov 6, 2023 at 6:56 AM Dmitrii Bundin
<dmitrii.bundin.a@gmail.com> wrote:
>
> The long version --rules-file and --jobs are available since 1.18.8
> while their short analogues -R and -j have been added since 1.14.7.
>
> The option --rules-file the way it works currently was introduced in the
> commit 5cd52673aabdf5eaa58181972119a41041fc85f2 of dpkg dated 23.07.18
> with the following changelog entry:
>
> * Fix dpkg-buildpackage option --rules-file parsing. It was trying to parse
>   it as --rules-target, which due to the ordering was a no-op.
>
> The current behavior of the long version --rules-file is guaranteed to
> be in use starting 1.19.1 and might cause build failures for some
> versions newer than 1.18.8 even in spite of being documented that way.
>
> Signed-off-by: Dmitrii Bundin <dmitrii.bundin.a@gmail.com>
> ---

Applied to linux-kbuild.
Thanks.


>  scripts/Makefile.package | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/Makefile.package b/scripts/Makefile.package
> index 2bcab02da965..af96319be98e 100644
> --- a/scripts/Makefile.package
> +++ b/scripts/Makefile.package
> @@ -148,7 +148,7 @@ deb-pkg srcdeb-pkg bindeb-pkg:
>         $(if $(findstring source, $(build-type)), \
>                 --unsigned-source --compression=$(KDEB_SOURCE_COMPRESS)) \
>         $(if $(findstring binary, $(build-type)), \
> -               --rules-file='$(MAKE) -f debian/rules' --jobs=1 -r$(KBUILD_PKG_ROOTCMD) -a$$(cat debian/arch), \
> +               -R'$(MAKE) -f debian/rules' -j1 -r$(KBUILD_PKG_ROOTCMD) -a$$(cat debian/arch), \
>                 --no-check-builddeps) \
>         $(DPKG_FLAGS))
>
> --
> 2.17.1
>


-- 
Best Regards
Masahiro Yamada