Message ID | 20220405171717.54715-1-abongwabonalais@gmail.com |
---|---|
State | New |
Headers | show |
Series | Added quotes around variables to prevent word splitting in the oe-init-build-env/oe-setup-builddir shell scripts. | expand |
Whitespace is not a valid char in builddir. There's sanity check for this in sanity.bbclass: if val.find(' ') != -1: status.addresult("Error, you have a space in your %s directory path. Please move the installation to a directory which doesn't include a space since autotools doesn't support this." % checkdir) Regards, Qi On 4/6/22 01:17, Abongwa Amahnui Bonalais wrote: > Used shellcheck to add quotes to the variables. This is to make sure that > directories with names that have space between, such as "Desktop/projects/test repo/poky" > will not be considered as 2 separate words. With this modification, running the command "source oe-init-build-env" will not give the error "bash: oe-init-build-env: No such file or directory" > > Signed-off-by: Abongwa Bonalais Amahnui <abongwabonalais@gmail.com> > --- > oe-init-build-env | 4 ++-- > scripts/oe-setup-builddir | 8 ++++---- > 2 files changed, 6 insertions(+), 6 deletions(-) > > diff --git a/oe-init-build-env b/oe-init-build-env > index 8c1bd54e57..38333ab858 100755 > --- a/oe-init-build-env > +++ b/oe-init-build-env > @@ -42,8 +42,8 @@ fi > unset THIS_SCRIPT > > export OEROOT > -. $OEROOT/scripts/oe-buildenv-internal && > - TEMPLATECONF="$TEMPLATECONF" $OEROOT/scripts/oe-setup-builddir || { > +. "$OEROOT"/scripts/oe-buildenv-internal && > + TEMPLATECONF="$TEMPLATECONF" "$OEROOT"/scripts/oe-setup-builddir || { > unset OEROOT > return 1 > } > diff --git a/scripts/oe-setup-builddir b/scripts/oe-setup-builddir > index d4ac074ad9..54048e62ec 100755 > --- a/scripts/oe-setup-builddir > +++ b/scripts/oe-setup-builddir > @@ -42,7 +42,7 @@ if [ -f "$BUILDDIR/conf/templateconf.cfg" ]; then > TEMPLATECONF=$(cat "$BUILDDIR/conf/templateconf.cfg") > fi > > -. $OEROOT/.templateconf > +. "$OEROOT"/.templateconf > > if [ ! -f "$BUILDDIR/conf/templateconf.cfg" ]; then > echo "$TEMPLATECONF" >"$BUILDDIR/conf/templateconf.cfg" > @@ -79,7 +79,7 @@ example, select a different MACHINE (target hardware). See conf/local.conf > for more information as common configuration options are commented. > > EOM > - cp -f $OECORELOCALCONF "$BUILDDIR/conf/local.conf" > + cp -f "$OECORELOCALCONF" "$BUILDDIR/conf/local.conf" > SHOWYPDOC=yes > fi > > @@ -100,7 +100,7 @@ EOM > # to replace it for compatibility. > sed -e "s|##OEROOT##|$OEROOT|g" \ > -e "s|##COREBASE##|$OEROOT|g" \ > - $OECORELAYERCONF > "$BUILDDIR/conf/bblayers.conf" > + "$OECORELAYERCONF" > "$BUILDDIR/conf/bblayers.conf" > SHOWYPDOC=yes > fi > > @@ -125,5 +125,5 @@ fi > if [ -z "$OECORENOTESCONF" ]; then > OECORENOTESCONF="$OEROOT/meta/conf/conf-notes.txt" > fi > -[ ! -r "$OECORENOTESCONF" ] || cat $OECORENOTESCONF > +[ ! -r "$OECORENOTESCONF" ] || cat "$OECORENOTESCONF" > unset OECORENOTESCONF > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#164050): https://lists.openembedded.org/g/openembedded-core/message/164050 > Mute This Topic: https://lists.openembedded.org/mt/90270943/3618072 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [Qi.Chen@windriver.com] > -=-=-=-=-=-=-=-=-=-=-=- >
Hi Qi Thanks for the clarity, Therefore there is no need to put whitespaces in qoutes if it will be checked for and an error message reported concerning it in future. That means we just have to let oe-init-build-env tell you at the early stages. Thanks I understand.
On Wed, 2022-04-06 at 11:08 +0800, Chen Qi wrote: > Whitespace is not a valid char in builddir. There's sanity check for > this in sanity.bbclass: > if val.find(' ') != -1: > status.addresult("Error, you have a space in your %s > directory path. Please move the installation to a directory which > doesn't include a space since autotools doesn't support this." % checkdir) The issue was that you couldn't reach that error message if you had a space in the build path. This change allows you to reach the sanity check! Cheers, Richard
On Wed, 2022-04-06 at 00:37 -0700, Abongwa Amahnui Bonalais wrote: > Hi Richard > I presume it is a good change since the user will know what is wrong and be > able to fix it. Yes, I did merge it to master with a small fix to the subject line to clarify where the patch was being applied to. Cheers, Richard
diff --git a/oe-init-build-env b/oe-init-build-env index 8c1bd54e57..38333ab858 100755 --- a/oe-init-build-env +++ b/oe-init-build-env @@ -42,8 +42,8 @@ fi unset THIS_SCRIPT export OEROOT -. $OEROOT/scripts/oe-buildenv-internal && - TEMPLATECONF="$TEMPLATECONF" $OEROOT/scripts/oe-setup-builddir || { +. "$OEROOT"/scripts/oe-buildenv-internal && + TEMPLATECONF="$TEMPLATECONF" "$OEROOT"/scripts/oe-setup-builddir || { unset OEROOT return 1 } diff --git a/scripts/oe-setup-builddir b/scripts/oe-setup-builddir index d4ac074ad9..54048e62ec 100755 --- a/scripts/oe-setup-builddir +++ b/scripts/oe-setup-builddir @@ -42,7 +42,7 @@ if [ -f "$BUILDDIR/conf/templateconf.cfg" ]; then TEMPLATECONF=$(cat "$BUILDDIR/conf/templateconf.cfg") fi -. $OEROOT/.templateconf +. "$OEROOT"/.templateconf if [ ! -f "$BUILDDIR/conf/templateconf.cfg" ]; then echo "$TEMPLATECONF" >"$BUILDDIR/conf/templateconf.cfg" @@ -79,7 +79,7 @@ example, select a different MACHINE (target hardware). See conf/local.conf for more information as common configuration options are commented. EOM - cp -f $OECORELOCALCONF "$BUILDDIR/conf/local.conf" + cp -f "$OECORELOCALCONF" "$BUILDDIR/conf/local.conf" SHOWYPDOC=yes fi @@ -100,7 +100,7 @@ EOM # to replace it for compatibility. sed -e "s|##OEROOT##|$OEROOT|g" \ -e "s|##COREBASE##|$OEROOT|g" \ - $OECORELAYERCONF > "$BUILDDIR/conf/bblayers.conf" + "$OECORELAYERCONF" > "$BUILDDIR/conf/bblayers.conf" SHOWYPDOC=yes fi @@ -125,5 +125,5 @@ fi if [ -z "$OECORENOTESCONF" ]; then OECORENOTESCONF="$OEROOT/meta/conf/conf-notes.txt" fi -[ ! -r "$OECORENOTESCONF" ] || cat $OECORENOTESCONF +[ ! -r "$OECORENOTESCONF" ] || cat "$OECORENOTESCONF" unset OECORENOTESCONF
Used shellcheck to add quotes to the variables. This is to make sure that directories with names that have space between, such as "Desktop/projects/test repo/poky" will not be considered as 2 separate words. With this modification, running the command "source oe-init-build-env" will not give the error "bash: oe-init-build-env: No such file or directory" Signed-off-by: Abongwa Bonalais Amahnui <abongwabonalais@gmail.com> --- oe-init-build-env | 4 ++-- scripts/oe-setup-builddir | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-)