diff options
-rwxr-xr-x | meta/recipes-devtools/installer/adt-installer/scripts/adt_installer_internal | 51 |
1 files 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 abed90d241..ebfdf2a69b 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() | |||
42 | esac | 42 | esac |
43 | } | 43 | } |
44 | 44 | ||
45 | get_sudo_app() | ||
46 | { | ||
47 | username=$(id -nu) | ||
48 | |||
49 | # find the owner of the parent | ||
50 | dir=$1 | ||
51 | while [ 1 ]; do | ||
52 | if [ -d $dir ]; then | ||
53 | owner=$(stat -c %U $dir) | ||
54 | break | ||
55 | else | ||
56 | dir=$(dirname $dir) | ||
57 | fi | ||
58 | done | ||
59 | |||
60 | if [ "$owner" = "$username" ]; then | ||
61 | true | ||
62 | else | ||
63 | echo sudo | ||
64 | fi | ||
65 | } | ||
66 | |||
45 | 67 | ||
46 | #let us install a qemu-native firstly | 68 | #let us install a qemu-native firstly |
47 | #installation step 2 | 69 | #installation step 2 |
@@ -60,26 +82,11 @@ fi | |||
60 | 82 | ||
61 | #Now begin to install native sdk and extract qemu rootfs which needs privilege rights | 83 | #Now begin to install native sdk and extract qemu rootfs which needs privilege rights |
62 | #depending on the install location | 84 | #depending on the install location |
63 | username=$(id -nu) | 85 | SUDO=$(get_sudo_app $NATIVE_INSTALL_DIR) |
64 | 86 | if [ -n "$SUDO" ]; then | |
65 | # find the owner of the parent | 87 | echo_info "#######################################################################" |
66 | dir=$NATIVE_INSTALL_DIR | 88 | echo_info "Please note from this point on installation requires sudo password ..." |
67 | while [ 1 ]; do | 89 | echo_info "#######################################################################" |
68 | if [ -d $dir ]; then | ||
69 | owner=$(stat -c %U $dir) | ||
70 | break | ||
71 | else | ||
72 | dir=$(dirname $dir) | ||
73 | fi | ||
74 | done | ||
75 | |||
76 | if [ "$owner" = "$username" ]; then | ||
77 | SUDO="" | ||
78 | else | ||
79 | echo_info "#######################################################################" | ||
80 | echo_info "Please note from this point on installation requires sudo password ..." | ||
81 | echo_info "#######################################################################" | ||
82 | SUDO=sudo | ||
83 | fi | 90 | fi |
84 | 91 | ||
85 | #we need to make this directory firstly since opkg need to use it. | 92 | #we need to make this directory firstly since opkg need to use it. |
@@ -249,6 +256,9 @@ target_machine=`eval echo $target_machine_var` | |||
249 | sysroot_image_name="core-image-$target_sysroot_image-$target_machine.tar.bz2" | 256 | sysroot_image_name="core-image-$target_sysroot_image-$target_machine.tar.bz2" |
250 | #echo_info "Extracting rootfs: $sysroot_image_name, using pseudo..." | 257 | #echo_info "Extracting rootfs: $sysroot_image_name, using pseudo..." |
251 | 258 | ||
259 | # sudo password might be needed to install the target sysroot | ||
260 | SUDO=$(get_sudo_app $target_sysroot) | ||
261 | |||
252 | $SUDO scripts/extract_rootfs $sysroot_image_name $target_sysroot $OECORE_NATIVE_SYSROOT $user_inst_type | 262 | $SUDO scripts/extract_rootfs $sysroot_image_name $target_sysroot $OECORE_NATIVE_SYSROOT $user_inst_type |
253 | check_result | 263 | check_result |
254 | 264 | ||
@@ -260,6 +270,7 @@ else | |||
260 | fi | 270 | fi |
261 | 271 | ||
262 | if [ ! -z "$env_filename" ]; then | 272 | if [ ! -z "$env_filename" ]; then |
273 | SUDO=$(get_sudo_app $INSTALL_FOLDER) | ||
263 | $SUDO sed -i -e "s%##SDKTARGETSYSROOT##%$target_sysroot%g" $env_filename | 274 | $SUDO sed -i -e "s%##SDKTARGETSYSROOT##%$target_sysroot%g" $env_filename |
264 | else | 275 | else |
265 | echo_info "[ADT_INST] Error: Failed to find environment script for arch: $1" | 276 | echo_info "[ADT_INST] Error: Failed to find environment script for arch: $1" |