[OE-core] [PATCH 1/1] oe-init-build-env, scripts/oe-buildenv-internal: add error detecting for $BDIR

Cui, Dexuan dexuan.cui at intel.com
Thu Aug 4 07:37:19 UTC 2011


Darren Hart wrote on 2011-08-04:
> As for a patch, I'm on Jury duty all this week and only get to a very
> small percentage of my tasks. I would appreciate if you would try to
> put one together using the above source snippet, with the suggested
> changes from Paul of course. Then just send it to the list with Paul
> and myself on CC. We'll review and provided additional Acked-by's to
> confirm we're all happy with the end result.
I made a patch according to your and Paul's suggestions.
Please review the patch (I also pasted at the end of this mail):
http://git.pokylinux.org/cgit/cgit.cgi/poky-contrib/commit/?h=dcui/bug-671&id=13cd1538bc5be078039be2054f117610e2425951
Please note I use sed to remove any trailing slash since ${BDIR%/} can only remove one trailing slash and this can cause issue, e.g., if $1 is /tmp/build_new//, *on Ubuntu 10.04*, we would get a weird msg "Error: the directory /tmp doesn't exist?"

> I would suggest you include a patch to first revert the previous patch
> that was applied to address this issue.
I'm trying to patch the first patch to save a revert commit... :-)

Thanks,
-- Dexuan

commit 13cd1538bc5be078039be2054f117610e2425951
Author: Dexuan Cui <dexuan.cui at intel.com>
Date:   Thu Aug 4 14:53:20 2011 +0800

    scripts/oe-buildenv-internal: improve the error detecting for $BDIR

    Thanks a lot to Darren Hart and Paul Eggleton's sugestion!

    Signed-off-by: Dexuan Cui <dexuan.cui at intel.com>

diff --git a/scripts/oe-buildenv-internal b/scripts/oe-buildenv-internal
index 117b0c5..4a44174 100755
--- a/scripts/oe-buildenv-internal
+++ b/scripts/oe-buildenv-internal
@@ -28,14 +28,16 @@ if [ "x$BDIR" = "x" ]; then
     if [ "x$1" = "x" ]; then
         BDIR="build"
     else
-        BDIR=`readlink -f "$1"`
-        if [ -z "$BDIR"  ]; then
-            if expr "$1" : '.*/$' >/dev/null; then
-                echo >&2 "Error: please remove any trailing / in the argument."
-            else
-                PARENTDIR=`dirname "$1"`
-                echo >&2 "Error: the directory $PARENTDIR doesn't exist?"
-            fi
+        BDIR="$1"
+        if [ "$BDIR" = "/" ]; then
+            echo >&2 "Error: / is not supported as a build directory."
+            return 1
+        fi
+        BDIR=`echo $BDIR | sed -re 's|/+$||'`
+        BDIR=`readlink -f "$BDIR"`
+        if [ -z "$BDIR" ]; then
+            PARENTDIR=`dirname "$1"`
+            echo >&2 "Error: the directory $PARENTDIR doesn't exist?"
             return 1
         fi
     fi





More information about the Openembedded-core mailing list