diff --git a/meta/classes/populate_sdk_ext.bbclass b/meta/classes/populate_sdk_ext.bbclass index 5e2ebd7969..2bbd181208 100644 --- a/meta/classes/populate_sdk_ext.bbclass +++ b/meta/classes/populate_sdk_ext.bbclass @@ -365,6 +365,12 @@ sdk_ext_preinst() { exit 1 fi SDK_EXTENSIBLE="1" + if [ "$publish" = "1" ] ; then + EXTRA_TAR_OPTIONS="$EXTRA_TAR_OPTIONS --exclude=ext-sdk-prepare.py" + if [ "${SDK_EXT_TYPE}" = "minimal" ] ; then + EXTRA_TAR_OPTIONS="$EXTRA_TAR_OPTIONS --exclude=sstate-cache" + fi + fi } SDK_PRE_INSTALL_COMMAND_task-populate-sdk-ext = "${sdk_ext_preinst}" diff --git a/meta/files/toolchain-shar-extract.sh b/meta/files/toolchain-shar-extract.sh index 0295bded6e..23a86dd52f 100644 --- a/meta/files/toolchain-shar-extract.sh +++ b/meta/files/toolchain-shar-extract.sh @@ -38,12 +38,14 @@ fi DEFAULT_INSTALL_DIR="@SDKPATH@" SUDO_EXEC="" +EXTRA_TAR_OPTIONS="" target_sdk_dir="" answer="" relocate=1 savescripts=0 verbose=0 -while getopts ":yd:nDRS" OPT; do +publish=0 +while getopts ":yd:npDRS" OPT; do case $OPT in y) answer="Y" @@ -54,6 +56,10 @@ while getopts ":yd:nDRS" OPT; do n) prepare_buildsystem="no" ;; + p) + prepare_buildsystem="no" + publish=1 + ;; D) verbose=1 ;; @@ -70,6 +76,7 @@ while getopts ":yd:nDRS" OPT; do echo " -d Install the SDK to " echo "======== Extensible SDK only options ============" echo " -n Do not prepare the build system" + echo " -p Publish mode (implies -n)" echo "======== Advanced DEBUGGING ONLY OPTIONS ========" echo " -S Save relocation scripts" echo " -R Do not relocate executables" @@ -181,7 +188,7 @@ fi payload_offset=$(($(grep -na -m1 "^MARKER:$" $0|cut -d':' -f1) + 1)) printf "Extracting SDK..." -tail -n +$payload_offset $0| $SUDO_EXEC tar xJ -C $target_sdk_dir --checkpoint=.2500 || exit 1 +tail -n +$payload_offset $0| $SUDO_EXEC tar xJ -C $target_sdk_dir --checkpoint=.2500 $EXTRA_TAR_OPTIONS || exit 1 echo "done" printf "Setting it up..." diff --git a/scripts/oe-publish-sdk b/scripts/oe-publish-sdk index 992de19955..e6cb7af861 100755 --- a/scripts/oe-publish-sdk +++ b/scripts/oe-publish-sdk @@ -94,19 +94,17 @@ def publish(args): # Unpack the SDK logger.info("Unpacking SDK") - cleanupfiles = [dest_sdk, os.path.join(destdir, 'ext-sdk-prepare.py')] if not is_remote: - cmd = "sh %s -n -y -d %s" % (dest_sdk, destination) + cmd = "sh %s -p -y -d %s" % (dest_sdk, destination) ret = subprocess.call(cmd, shell=True) if ret == 0: logger.info('Successfully unpacked %s to %s' % (dest_sdk, destination)) - for cleanupfile in cleanupfiles: - os.remove(cleanupfile) + os.remove(dest_sdk) else: logger.error('Failed to unpack %s to %s' % (dest_sdk, destination)) return ret else: - cmd = "ssh %s 'sh %s -n -y -d %s && rm -f %s'" % (host, dest_sdk, destdir, ' '.join(cleanupfiles)) + cmd = "ssh %s 'sh %s -p -y -d %s && rm -f %s'" % (host, dest_sdk, destdir, dest_sdk) ret = subprocess.call(cmd, shell=True) if ret == 0: logger.info('Successfully unpacked %s to %s' % (dest_sdk, destdir))