extensible sdk: Error when trying to install as root.
Since the extensible sdk uses bitbake, which can't run as root, the sdk shouldn't be installed as root. Previously it would error out late into setup when bitbake errored saying not to run bitbake as root. Now the script errors with a message saying the extensible sdk can't be installed as root. [Yocto #7545] (From OE-Core rev: 309e8f4e536148056223f50637ed291c48d148ca) Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
873b8edd41
commit
2563aa5528
|
@ -51,6 +51,7 @@ PID = "${@os.getpid()}"
|
|||
EXCLUDE_FROM_WORLD = "1"
|
||||
|
||||
SDK_PACKAGING_FUNC ?= "create_shar"
|
||||
SDK_PRE_INSTALL_COMMAND ?= ""
|
||||
SDK_POST_INSTALL_COMMAND ?= ""
|
||||
SDK_RELOCATE_AFTER_INSTALL ?= "1"
|
||||
|
||||
|
@ -134,15 +135,21 @@ fakeroot create_shar() {
|
|||
# copy in the template shar extractor script
|
||||
cp ${COREBASE}/meta/files/toolchain-shar-extract.sh ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
|
||||
|
||||
rm -f ${T}/post_install_command
|
||||
rm -f ${T}/pre_install_command ${T}/post_install_command
|
||||
|
||||
if [ ${SDK_RELOCATE_AFTER_INSTALL} -eq 1 ] ; then
|
||||
cp ${COREBASE}/meta/files/toolchain-shar-relocate.sh ${T}/post_install_command
|
||||
fi
|
||||
cat << "EOF" >> ${T}/pre_install_command
|
||||
${SDK_PRE_INSTALL_COMMAND}
|
||||
EOF
|
||||
|
||||
cat << "EOF" >> ${T}/post_install_command
|
||||
${SDK_POST_INSTALL_COMMAND}
|
||||
EOF
|
||||
sed -i -e '/@SDK_POST_INSTALL_COMMAND@/r ${T}/post_install_command' ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
|
||||
sed -i -e '/@SDK_PRE_INSTALL_COMMAND@/r ${T}/pre_install_command' \
|
||||
-e '/@SDK_POST_INSTALL_COMMAND@/r ${T}/post_install_command' \
|
||||
${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
|
||||
|
||||
# substitute variables
|
||||
sed -i -e 's#@SDK_ARCH@#${SDK_ARCH}#g' \
|
||||
|
@ -151,6 +158,7 @@ EOF
|
|||
-e 's#@REAL_MULTIMACH_TARGET_SYS@#${REAL_MULTIMACH_TARGET_SYS}#g' \
|
||||
-e 's#@SDK_TITLE@#${SDK_TITLE}#g' \
|
||||
-e 's#@SDK_VERSION@#${SDK_VERSION}#g' \
|
||||
-e '/@SDK_PRE_INSTALL_COMMAND@/d' \
|
||||
-e '/@SDK_POST_INSTALL_COMMAND@/d' \
|
||||
${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
|
||||
|
||||
|
|
|
@ -173,6 +173,17 @@ install_tools() {
|
|||
install ${SDK_DEPLOY}/${BUILD_ARCH}-nativesdk-libc.tar.bz2 ${SDK_OUTPUT}/${SDKPATH}
|
||||
}
|
||||
|
||||
# Since bitbake won't run as root it doesn't make sense to try and install
|
||||
# the extensible sdk as root.
|
||||
sdk_ext_preinst() {
|
||||
if [ "`id -u`" = "0" ]; then
|
||||
echo "ERROR: The extensible sdk cannot be installed as root."
|
||||
exit 1
|
||||
fi
|
||||
SDK_EXTENSIBLE="1"
|
||||
}
|
||||
SDK_PRE_INSTALL_COMMAND_task-populate-sdk-ext = "${sdk_ext_preinst}"
|
||||
|
||||
# FIXME this preparation should be done as part of the SDK construction
|
||||
sdk_ext_postinst() {
|
||||
printf "\nExtracting buildtools...\n"
|
||||
|
|
|
@ -71,6 +71,8 @@ if [ $verbose = 1 ] ; then
|
|||
set -x
|
||||
fi
|
||||
|
||||
@SDK_PRE_INSTALL_COMMAND@
|
||||
|
||||
if [ "$target_sdk_dir" = "" ]; then
|
||||
read -e -p "Enter target directory for SDK (default: $DEFAULT_INSTALL_DIR): " target_sdk_dir
|
||||
[ "$target_sdk_dir" = "" ] && target_sdk_dir=$DEFAULT_INSTALL_DIR
|
||||
|
@ -116,6 +118,11 @@ 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
|
||||
if [ "$SDK_EXTENSIBLE" = "1" ]; then
|
||||
echo "Unable to access \"$target_sdk_dir\"."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
SUDO_EXEC=$(which "sudo")
|
||||
if [ -z $SUDO_EXEC ]; then
|
||||
echo "No command 'sudo' found, please install sudo first. Abort!"
|
||||
|
|
Loading…
Reference in New Issue