[OE-core] [PATCH] populate_sdk_base: fix directory creation as normal user

Laurentiu Palcu laurentiu.palcu at intel.com
Wed Dec 5 11:00:00 UTC 2012


My previous patch removed the mkdir and added it at the end of the
"gaining SUDO rights" block in order to fix directory creation when
installing in a location without proper rights. Unfortunately this
messed up the directory creation as normal user as it will ask for
sudo right in order to create it...

Hopefully, this will fix both cases.

Signed-off-by: Laurentiu Palcu <laurentiu.palcu at intel.com>
---
 meta/classes/populate_sdk_base.bbclass |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass
index f0b88b3..c15a4d4 100644
--- a/meta/classes/populate_sdk_base.bbclass
+++ b/meta/classes/populate_sdk_base.bbclass
@@ -187,6 +187,9 @@ if [ "$answer" != "Y" -a "$answer" != "y" ]; then
 	exit 1
 fi
 
+# Try to create the directory (this will not succeed if user doesn't have rights)
+mkdir -p $target_sdk_dir >/dev/null 2>&1
+
 # if don't have the right to access dir, gain by sudo 
 if [ ! -x $target_sdk_dir -o ! -w $target_sdk_dir -o ! -r $target_sdk_dir ]; then 
 	SUDO_EXEC=$(which "sudo")
@@ -198,10 +201,10 @@ if [ ! -x $target_sdk_dir -o ! -w $target_sdk_dir -o ! -r $target_sdk_dir ]; the
 	# test sudo could gain root right
 	$SUDO_EXEC pwd >/dev/null 2>&1
 	[ $? -ne 0 ] && echo "Sorry, you are not allowed to execute as root." && exit 1
-fi
 
-# create dir and don't care about the result.
-$SUDO_EXEC mkdir -p $target_sdk_dir >/dev/null 2>&1
+	# now that we have sudo rights, create the directory
+	$SUDO_EXEC mkdir -p $target_sdk_dir >/dev/null 2>&1
+fi
 
 payload_offset=$(($(grep -na -m1 "^MARKER:$" $0|cut -d':' -f1) + 1))
 
-- 
1.7.9.5





More information about the Openembedded-core mailing list