Re: [PATCH] kbuild: deb-pkg: Fix build error caused by lack of positionnal argument

From: Masahiro Yamada
Date: Tue Jul 16 2024 - 03:06:50 EST


On Thu, Jul 11, 2024 at 2:27 AM Marc Zyngier <maz@xxxxxxxxxx> wrote:
>
> Since 8ef052389f7f ("kbuild: package: add -e and -u options to some
> shell scripts"), building a debian package on my arm64 box fails:
>
> $ make -j20 bindeb-pkg
> UPD include/config/kernel.release
> GEN debian
> ./scripts/package/mkdebian: 138: 1: parameter not set
> make[2]: *** [scripts/Makefile.package:98: debian] Error 2
> make[1]: *** [/home/maz/hot-poop/arm-platforms/Makefile:1538: bindeb-pkg] Error 2
> make: *** [Makefile:224: __sub-make] Error 2
>
> Applying the same pattern for substitution of undefined variables
> seems to paper over the issue and brings the script back to life.
>
> Fixes: 8ef052389f7f ("kbuild: package: add -e and -u options to some shell scripts")
> Signed-off-by: Marc Zyngier <maz@xxxxxxxxxx>
> Cc: Masahiro Yamada <masahiroy@xxxxxxxxxx>
> Cc: Nicolas Schier <nicolas@xxxxxxxxx>
> ---
> scripts/package/mkdebian | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/package/mkdebian b/scripts/package/mkdebian
> index 196b14e8ad47..de8b460a46b4 100755
> --- a/scripts/package/mkdebian
> +++ b/scripts/package/mkdebian
> @@ -135,7 +135,7 @@ else
> fi
> maintainer="${name} <${email}>"
>
> -if [ "$1" = --need-source ]; then
> +if [ "${1:+set}" = --need-source ]; then
> gen_source
> fi
>


This is wrong.

It will break 'make srcdeb-pkg' because
"set" = "--need-source" is always false.



I will squash the following.


while [ $# -gt 0 ]; do
case "$1" in
--need-source)
gen_source
shift
;;
*)
break
;;
esac
done


Thanks for the report.
















--
Best Regards
Masahiro Yamada