2023-11-03 23:43:29

by Dmitrii Bundin

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

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 <[email protected]>
---
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


2023-11-05 08:09:08

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH] kbuild: deb-pkg: apply short --rules-file option

On Sat, Nov 4, 2023 at 8:43 AM Dmitrii Bundin
<[email protected]> 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 <[email protected]>
> ---
> 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

2023-11-05 21:55:37

by Dmitrii Bundin

[permalink] [raw]
Subject: Re: [PATCH] kbuild: deb-pkg: apply short --rules-file option

On Sun, Nov 5, 2023 at 11:08 AM Masahiro Yamada <[email protected]> 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.

2023-11-05 21:56:55

by Dmitrii Bundin

[permalink] [raw]
Subject: [PATCH v2] kbuild: deb-pkg: apply short -R and -j options

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 <[email protected]>
---
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

2023-11-24 13:59:34

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH v2] kbuild: deb-pkg: apply short -R and -j options

On Mon, Nov 6, 2023 at 6:56 AM Dmitrii Bundin
<[email protected]> 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 <[email protected]>
> ---

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