Added quotes around variables to prevent word splitting in the oe-init-build-env/oe-setup-builddir shell scripts.

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

Commit Message

Abongwa Bonalais April 5, 2022, 5:17 p.m. UTC
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(-)

Comments

ChenQi April 6, 2022, 3:08 a.m. UTC | #1
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]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Abongwa Bonalais April 6, 2022, 5:49 a.m. UTC | #2
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.
Richard Purdie April 6, 2022, 7:07 a.m. UTC | #3
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
Richard Purdie April 6, 2022, 8:23 a.m. UTC | #4
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

Patch

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