From: Babanpreet Singh <bbnpreetsingh@gmail.com>
To: openembedded-core@lists.openembedded.org
Cc: Ross Burton <ross.burton@arm.com>,
Babanpreet Singh <bbnpreetsingh@gmail.com>
Subject: [PATCH] oe-init-build-env: fix unbound variable errors under 'set -u'
Date: Wed, 11 Nov 2026 19:56:04 +0000 [thread overview]
Message-ID: <20261111195604.7-1-bbnpreetsingh@gmail.com> (raw)
Sourcing oe-init-build-env from a shell running with 'set -u' fails:
./oe-init-build-env: line 29: BBSERVER: unbound variable
Give the variables that may be unset an explicit empty default, here
and in oe-buildenv-internal.
[YOCTO #15469]
Signed-off-by: Babanpreet Singh <bbnpreetsingh@gmail.com>
---
oe-init-build-env | 14 +++++++-------
scripts/oe-buildenv-internal | 22 +++++++++++-----------
2 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/oe-init-build-env b/oe-init-build-env
index 5a2bd0f4d9..660c6ad02e 100755
--- a/oe-init-build-env
+++ b/oe-init-build-env
@@ -14,9 +14,9 @@
# when being sourced. To workaround the shell limitation use "set <builddir>"
# prior to sourcing this script.
#
-if [ -n "$BASH_SOURCE" ]; then
+if [ -n "${BASH_SOURCE:-}" ]; then
THIS_SCRIPT=$BASH_SOURCE
-elif [ -n "$ZSH_NAME" ]; then
+elif [ -n "${ZSH_NAME:-}" ]; then
THIS_SCRIPT=$0
else
THIS_SCRIPT="$(pwd)/oe-init-build-env"
@@ -26,16 +26,16 @@ else
exit 1
fi
fi
-if [ -n "$BBSERVER" ]; then
+if [ -n "${BBSERVER:-}" ]; then
unset BBSERVER
fi
-if [ -z "$ZSH_NAME" ] && [ "$0" = "$THIS_SCRIPT" ]; then
+if [ -z "${ZSH_NAME:-}" ] && [ "$0" = "$THIS_SCRIPT" ]; then
echo "Error: This script needs to be sourced. Please run as '. $THIS_SCRIPT'" >&2
exit 1
fi
-if [ -z "$OEROOT" ]; then
+if [ -z "${OEROOT:-}" ]; then
OEROOT=$(dirname "$THIS_SCRIPT")
OEROOT=$(readlink -f "$OEROOT")
fi
@@ -43,12 +43,12 @@ unset THIS_SCRIPT
export OEROOT
. "$OEROOT"/scripts/oe-buildenv-internal &&
- TEMPLATECONF="$TEMPLATECONF" "$OEROOT"/scripts/oe-setup-builddir || {
+ TEMPLATECONF="${TEMPLATECONF:-}" "$OEROOT"/scripts/oe-setup-builddir || {
unset OEROOT
return 1
}
unset OEROOT
-[ -z "$BUILDDIR" ] || cd "$BUILDDIR"
+[ -z "${BUILDDIR:-}" ] || cd "$BUILDDIR"
diff --git a/scripts/oe-buildenv-internal b/scripts/oe-buildenv-internal
index 2fdb19565a..6b2e4ea518 100755
--- a/scripts/oe-buildenv-internal
+++ b/scripts/oe-buildenv-internal
@@ -19,12 +19,12 @@ if ! $(return >/dev/null 2>&1) ; then
fi
# It is assumed OEROOT is already defined when this is called
-if [ -z "$OEROOT" ]; then
+if [ -z "${OEROOT:-}" ]; then
echo >&2 "Error: OEROOT is not defined!"
return 1
fi
-if [ -z "$OE_SKIP_SDK_CHECK" ] && [ -n "$OECORE_SDK_VERSION" ]; then
+if [ -z "${OE_SKIP_SDK_CHECK:-}" ] && [ -n "${OECORE_SDK_VERSION:-}" ]; then
echo >&2 "Error: The OE SDK/ADT was detected as already being present in this shell environment. Please use a clean shell when sourcing this environment script."
return 1
fi
@@ -39,8 +39,8 @@ if [ "$py_v38_check" != "True" ]; then
fi
unset py_v38_check
-if [ -z "$BDIR" ]; then
- if [ -z "$1" ]; then
+if [ -z "${BDIR:-}" ]; then
+ if [ -z "${1:-}" ]; then
BDIR="build"
else
BDIR="$1"
@@ -61,7 +61,7 @@ if [ -z "$BDIR" ]; then
return 1
fi
fi
- if [ -n "$2" ]; then
+ if [ -n "${2:-}" ]; then
BITBAKEDIR="$2"
fi
fi
@@ -72,9 +72,9 @@ else
fi
unset BDIR
-if [ -z "$BITBAKEDIR" ]; then
- BITBAKEDIR="$OEROOT/bitbake$BBEXTRA"
- test -d "$BITBAKEDIR" || BITBAKEDIR="$OEROOT/../bitbake$BBEXTRA"
+if [ -z "${BITBAKEDIR:-}" ]; then
+ BITBAKEDIR="$OEROOT/bitbake${BBEXTRA:-}"
+ test -d "$BITBAKEDIR" || BITBAKEDIR="$OEROOT/../bitbake${BBEXTRA:-}"
fi
BITBAKEDIR=$(readlink -f "$BITBAKEDIR")
@@ -89,11 +89,11 @@ if [ ! -d "$BITBAKEDIR" ]; then
fi
# Add BitBake's library to PYTHONPATH
-PYTHONPATH=$BITBAKEDIR/lib:$PYTHONPATH
+PYTHONPATH=$BITBAKEDIR/lib:${PYTHONPATH:-}
export PYTHONPATH
# Remove any paths added by sourcing this script before
-[ -n "$OE_ADDED_PATHS" ] && PATH=$(echo $PATH | sed -e "s#$OE_ADDED_PATHS##") ||
+[ -n "${OE_ADDED_PATHS:-}" ] && PATH=$(echo $PATH | sed -e "s#$OE_ADDED_PATHS##") ||
PATH=$(echo $PATH | sed -e "s#$OEROOT/scripts:$BITBAKEDIR/bin:##")
# Make sure our paths are at the beginning of $PATH
@@ -114,6 +114,6 @@ SDKMACHINE BB_NUMBER_THREADS BB_NO_NETWORK PARALLEL_MAKE GIT_PROXY_COMMAND \
SOCKS5_PASSWD SOCKS5_USER SCREENDIR STAMPS_DIR BBPATH_EXTRA BB_SETSCENE_ENFORCE \
BB_LOGCONFIG"
-BB_ENV_PASSTHROUGH_ADDITIONS="$(echo $BB_ENV_PASSTHROUGH_ADDITIONS $BB_ENV_PASSTHROUGH_ADDITIONS_OE | tr ' ' '\n' | LC_ALL=C sort --unique | tr '\n' ' ')"
+BB_ENV_PASSTHROUGH_ADDITIONS="$(echo ${BB_ENV_PASSTHROUGH_ADDITIONS:-} $BB_ENV_PASSTHROUGH_ADDITIONS_OE | tr ' ' '\n' | LC_ALL=C sort --unique | tr '\n' ' ')"
export BB_ENV_PASSTHROUGH_ADDITIONS
--
2.43.0
reply other threads:[~2026-11-11 19:56 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261111195604.7-1-bbnpreetsingh@gmail.com \
--to=bbnpreetsingh@gmail.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=ross.burton@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox