kbuild: package: add -e and -u options to some shell scripts

Set -e to make these scripts fail on the first error.

Set -u because these scripts are invoked by Makefile, and do not work
properly without necessary variables defined.

I tweaked mkdebian to cope with optional environment variables.

Remove the explicit "test -n ..." from install-extmod-build.

Both options are described in POSIX. [1]

[1]: https://pubs.opengroup.org/onlinepubs/009604499/utilities/set.html

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
This commit is contained in:
Masahiro Yamada 2024-07-03 03:02:42 +09:00
parent c520908053
commit c041441975
6 changed files with 22 additions and 13 deletions

View File

@ -10,7 +10,7 @@
# specified in KDEB_HOOKDIR) that will be called on package install and
# removal.
set -e
set -eu
is_enabled() {
grep -q "^$1=y" include/config/auto.conf

View File

@ -11,7 +11,7 @@
# Wichert Akkerman <wichert@wiggy.net>.
#
set -e
set -eu
#
# Some variables and settings used throughout the script

View File

@ -1,6 +1,8 @@
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0-only
set -eu
diff_patch=$1
mkdir -p "$(dirname "${diff_patch}")"

View File

@ -1,13 +1,10 @@
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0-only
set -e
set -eu
destdir=${1}
test -n "${srctree}"
test -n "${SRCARCH}"
is_enabled() {
grep -q "^$1=y" include/config/auto.conf
}

View File

@ -4,7 +4,7 @@
#
# Simple script to generate a debian/ directory for a Linux kernel.
set -e
set -eu
is_enabled() {
grep -q "^$1=y" include/config/auto.conf
@ -19,7 +19,7 @@ if_enabled_echo() {
}
set_debarch() {
if [ -n "$KBUILD_DEBARCH" ] ; then
if [ "${KBUILD_DEBARCH:+set}" ]; then
debarch="$KBUILD_DEBARCH"
return
fi
@ -135,13 +135,21 @@ else
fi
maintainer="${name} <${email}>"
if [ "$1" = --need-source ]; then
gen_source
fi
while [ $# -gt 0 ]; do
case "$1" in
--need-source)
gen_source
shift
;;
*)
break
;;
esac
done
# Some variables and settings used throughout the script
version=$KERNELRELEASE
if [ -n "$KDEB_PKGVERSION" ]; then
if [ "${KDEB_PKGVERSION:+set}" ]; then
packageversion=$KDEB_PKGVERSION
else
packageversion=$(${srctree}/scripts/setlocalversion --no-local ${srctree})-$($srctree/scripts/build-version)
@ -158,7 +166,7 @@ debarch=
set_debarch
# Try to determine distribution
if [ -n "$KDEB_CHANGELOG_DIST" ]; then
if [ "${KDEB_CHANGELOG_DIST:+set}" ]; then
distribution=$KDEB_CHANGELOG_DIST
# In some cases lsb_release returns the codename as n/a, which breaks dpkg-parsechangelog
elif distribution=$(lsb_release -cs 2>/dev/null) && [ -n "$distribution" ] && [ "$distribution" != "n/a" ]; then

View File

@ -9,6 +9,8 @@
# Patched for non-x86 by Opencon (L) 2002 <opencon@rio.skydome.net>
#
set -eu
output=$1
mkdir -p "$(dirname "${output}")"