Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 0/2] ADT installer fixes
@ 2013-09-25 15:40 Laurentiu Palcu
  2013-09-25 15:40 ` [PATCH 1/2] adt-installer: check if sudo is needed when installing target sysroot Laurentiu Palcu
  2013-09-25 15:40 ` [PATCH 2/2] adt-installer: add warning if MACHINE is not set in adt-installer.conf Laurentiu Palcu
  0 siblings, 2 replies; 3+ messages in thread
From: Laurentiu Palcu @ 2013-09-25 15:40 UTC (permalink / raw)
  To: openembedded-core

The following changes since commit 4d8ab87d25ea6e59dc88375813ef88ee0ac813d0:

  build-appliance: Update SRCREV (2013-09-24 18:09:12 +0100)

are available in the git repository at:

  git://git.yoctoproject.org/poky-contrib lpalcu/b5231_b5259_adt_installer_fixes
  http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=lpalcu/b5231_b5259_adt_installer_fixes

Laurentiu Palcu (2):
  adt-installer: check if sudo is needed when installing target sysroot
  adt-installer: add warning if MACHINE is not set in
    adt-installer.conf

 .../installer/adt-installer/adt_installer          |   14 ++++-
 .../installer/adt-installer/adt_installer.conf     |   10 ++--
 .../adt-installer/scripts/adt_installer_internal   |   55 ++++++++++++--------
 3 files changed, 51 insertions(+), 28 deletions(-)

-- 
1.7.9.5



^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH 1/2] adt-installer: check if sudo is needed when installing target sysroot
  2013-09-25 15:40 [PATCH 0/2] ADT installer fixes Laurentiu Palcu
@ 2013-09-25 15:40 ` Laurentiu Palcu
  2013-09-25 15:40 ` [PATCH 2/2] adt-installer: add warning if MACHINE is not set in adt-installer.conf Laurentiu Palcu
  1 sibling, 0 replies; 3+ messages in thread
From: Laurentiu Palcu @ 2013-09-25 15:40 UTC (permalink / raw)
  To: openembedded-core

Currently, if SDK is installed in a directory that needs sudo
preivileges, the target sysroot is also installed with sudo, even though
the location is in users's home directory.

This patch reuses the ownership checking code and uses it to check if
sudo is needed for target sysroot too.

[YOCTO #5259]

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
---
 .../adt-installer/scripts/adt_installer_internal   |   51 ++++++++++++--------
 1 file changed, 31 insertions(+), 20 deletions(-)

diff --git a/meta/recipes-devtools/installer/adt-installer/scripts/adt_installer_internal b/meta/recipes-devtools/installer/adt-installer/scripts/adt_installer_internal
index abed90d..ebfdf2a 100755
--- a/meta/recipes-devtools/installer/adt-installer/scripts/adt_installer_internal
+++ b/meta/recipes-devtools/installer/adt-installer/scripts/adt_installer_internal
@@ -42,6 +42,28 @@ parse_config()
   esac
 }
 
+get_sudo_app()
+{
+  username=$(id -nu)
+
+  # find the owner of the parent
+  dir=$1
+  while [ 1 ]; do
+      if [ -d $dir ]; then
+          owner=$(stat -c %U $dir)
+          break
+     else
+          dir=$(dirname $dir)
+     fi
+  done
+
+  if [ "$owner" = "$username" ]; then
+      true
+  else
+      echo sudo
+  fi
+}
+
 
 #let us install a qemu-native firstly
 #installation step 2
@@ -60,26 +82,11 @@ fi
 
 #Now begin to install native sdk and extract qemu rootfs which needs privilege rights
 #depending on the install location
-username=$(id -nu)
-
-# find the owner of the parent
-dir=$NATIVE_INSTALL_DIR
-while [ 1 ]; do
-    if [ -d $dir ]; then
-        owner=$(stat -c %U $dir)
-        break
-   else
-        dir=$(dirname $dir)
-   fi
-done
-
-if [ "$owner" = "$username" ]; then
-    SUDO=""
-else
-    echo_info "#######################################################################"
-    echo_info "Please note from this point on installation requires sudo password ..."
-    echo_info "#######################################################################"
-    SUDO=sudo
+SUDO=$(get_sudo_app $NATIVE_INSTALL_DIR)
+if [ -n "$SUDO" ]; then
+  echo_info "#######################################################################"
+  echo_info "Please note from this point on installation requires sudo password ..."
+  echo_info "#######################################################################"
 fi
 
 #we need to make this directory firstly since opkg need to use it.
@@ -249,6 +256,9 @@ target_machine=`eval echo $target_machine_var`
 sysroot_image_name="core-image-$target_sysroot_image-$target_machine.tar.bz2"
     #echo_info "Extracting rootfs: $sysroot_image_name, using pseudo..."
 
+# sudo password might be needed to install the target sysroot
+SUDO=$(get_sudo_app $target_sysroot)
+
 $SUDO scripts/extract_rootfs $sysroot_image_name $target_sysroot $OECORE_NATIVE_SYSROOT $user_inst_type
 check_result
 
@@ -260,6 +270,7 @@ else
 fi
 
 if [ ! -z "$env_filename" ]; then
+  SUDO=$(get_sudo_app $INSTALL_FOLDER)
   $SUDO sed -i -e "s%##SDKTARGETSYSROOT##%$target_sysroot%g" $env_filename
 else
   echo_info "[ADT_INST] Error: Failed to find environment script for arch: $1"
-- 
1.7.9.5



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 2/2] adt-installer: add warning if MACHINE is not set in adt-installer.conf
  2013-09-25 15:40 [PATCH 0/2] ADT installer fixes Laurentiu Palcu
  2013-09-25 15:40 ` [PATCH 1/2] adt-installer: check if sudo is needed when installing target sysroot Laurentiu Palcu
@ 2013-09-25 15:40 ` Laurentiu Palcu
  1 sibling, 0 replies; 3+ messages in thread
From: Laurentiu Palcu @ 2013-09-25 15:40 UTC (permalink / raw)
  To: openembedded-core

Since the MACHINE can now be specified in adt-installer.conf, in order to
install the proper toolchain and environment script for the given
machine, add a sanity checking at the beginning to make sure MACHINE is
set for the wanted architecture.

Also:
 * uncomment the x86 target variables, in adt-installer.conf, in order
   to have qemux86 MACHINE set, by default, and also the sysroot
   installed (since it doesn't make much sense to install the toolchain
   without a target sysroot);
 * remove 'sudo' when creating relocate_sdk_tmp.py because the file is
   created in adt-installer directory;

[YOCTO #5259]

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
---
 .../installer/adt-installer/adt_installer          |   14 +++++++++++++-
 .../installer/adt-installer/adt_installer.conf     |   10 +++++-----
 .../adt-installer/scripts/adt_installer_internal   |    4 ++--
 3 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/meta/recipes-devtools/installer/adt-installer/adt_installer b/meta/recipes-devtools/installer/adt-installer/adt_installer
index 76afcf3..f3c0518 100755
--- a/meta/recipes-devtools/installer/adt-installer/adt_installer
+++ b/meta/recipes-devtools/installer/adt-installer/adt_installer
@@ -67,6 +67,10 @@ validate_config()
 
   for selected_arch_type in $YOCTOADT_TARGETS; do
     found=0
+    select_machine_var="\$YOCTOADT_TARGET_MACHINE_$selected_arch_type"
+    select_machine=`eval echo $select_machine_var`
+    show_error_banner=0
+
     for supported_arch_type in $YOCTOADT_SUPPORTED_TARGETS; do
       if [ "$selected_arch_type" == "$supported_arch_type" ]; then
         found=1
@@ -75,10 +79,18 @@ validate_config()
     done
     if [ $found == 0 ]; then
        echo_info "[ADT_INST] Error: YOCTADT_TARGETS in adt_installer.conf contains invalid entries: $YOCTOADT_TARGETS. Valid values are: $YOCTOADT_SUPPORTED_TARGETS"
+       show_error_banner=1
+    elif [ -z "$select_machine" ]; then
+       echo_info "[ADT_INST] Error: No MACHINE was defined for $selected_arch_type architecture! This is needed to install the toolchain and the correct environment settings."
+       echo_info "[ADT_INST] To do that, in adt-installer.conf, set the following variable: YOCTOADT_TARGET_MACHINE_$selected_arch_type"
+       show_error_banner=1
+    fi
+
+    if [ $show_error_banner == 1 ]; then
        echo -e "\n#############################################################################"
        echo -e "# Meet error(s) when installing Yocto ADT! Please check log file for details. "
        echo -e "#############################################################################\n"
-      exit -1
+       exit -1
     fi
   done
 
diff --git a/meta/recipes-devtools/installer/adt-installer/adt_installer.conf b/meta/recipes-devtools/installer/adt-installer/adt_installer.conf
index cc54acd..9329a8d 100644
--- a/meta/recipes-devtools/installer/adt-installer/adt_installer.conf
+++ b/meta/recipes-devtools/installer/adt-installer/adt_installer.conf
@@ -51,11 +51,11 @@ YOCTOADT_TARGET_MACHINE_arm="qemuarm"
 YOCTOADT_TARGET_SYSROOT_LOC_arm="$HOME/test-yocto/$YOCTOADT_TARGET_MACHINE_arm"
 
 
-#Here's another example for setting up target arch of x86, by uncommenting it will trigger the installer to download and setup 2 sysroot environment for 2 target arches: arm and x86.  If you want to add more target arch support, you can append more entries by following these samples
-#YOCTOADT_ROOTFS_x86="sato-sdk"
-#YOCTOADT_TARGET_SYSROOT_IMAGE_x86="sato-sdk"
-#YOCTOADT_TARGET_MACHINE_x86="qemux86"
-#YOCTOADT_TARGET_SYSROOT_LOC_x86="$HOME/test-yocto/$YOCTOADT_TARGET_MACHINE_x86"
+#Here's a template for setting up target arch of x86 
+YOCTOADT_ROOTFS_x86="sato-sdk"
+YOCTOADT_TARGET_SYSROOT_IMAGE_x86="sato-sdk"
+YOCTOADT_TARGET_MACHINE_x86="qemux86"
+YOCTOADT_TARGET_SYSROOT_LOC_x86="$HOME/test-yocto/$YOCTOADT_TARGET_MACHINE_x86"
 
 #Here's some template of other arches, which you need to change the value in ""
 #YOCTOADT_ROOTFS_x86_64="sato-sdk"
diff --git a/meta/recipes-devtools/installer/adt-installer/scripts/adt_installer_internal b/meta/recipes-devtools/installer/adt-installer/scripts/adt_installer_internal
index ebfdf2a..2eb13a9 100755
--- a/meta/recipes-devtools/installer/adt-installer/scripts/adt_installer_internal
+++ b/meta/recipes-devtools/installer/adt-installer/scripts/adt_installer_internal
@@ -195,8 +195,8 @@ escaped_sdkpath=$(echo $DEFAULT_INSTALL_FOLDER |sed -e "s:[\+\.]:\\\\\\\\\0:g")
 
 # We don't change the script in-place since we may want the user to re-run
 # adt-installer script
-$SUDO sh -c "sed -e '"s:##DEFAULT_INSTALL_DIR##:$escaped_sdkpath:"' scripts/relocate_sdk.py > scripts/relocate_sdk_tmp.py"
-$SUDO chmod +x scripts/relocate_sdk_tmp.py
+sed -e "s:##DEFAULT_INSTALL_DIR##:$escaped_sdkpath:" scripts/relocate_sdk.py > scripts/relocate_sdk_tmp.py
+chmod +x scripts/relocate_sdk_tmp.py
 
 dl_path=$(find $OECORE_NATIVE_SYSROOT/lib -name "ld-linux*")
 executable_files=$(find $OECORE_NATIVE_SYSROOT -type f -perm /111)
-- 
1.7.9.5



^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-09-25 15:40 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-25 15:40 [PATCH 0/2] ADT installer fixes Laurentiu Palcu
2013-09-25 15:40 ` [PATCH 1/2] adt-installer: check if sudo is needed when installing target sysroot Laurentiu Palcu
2013-09-25 15:40 ` [PATCH 2/2] adt-installer: add warning if MACHINE is not set in adt-installer.conf Laurentiu Palcu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox