diff options
| -rw-r--r-- | meta/classes/populate_sdk_ext.bbclass | 6 | ||||
| -rw-r--r-- | meta/files/toolchain-shar-extract.sh | 11 | ||||
| -rwxr-xr-x | scripts/oe-publish-sdk | 8 |
3 files changed, 18 insertions, 7 deletions
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() { | |||
| 365 | exit 1 | 365 | exit 1 |
| 366 | fi | 366 | fi |
| 367 | SDK_EXTENSIBLE="1" | 367 | SDK_EXTENSIBLE="1" |
| 368 | if [ "$publish" = "1" ] ; then | ||
| 369 | EXTRA_TAR_OPTIONS="$EXTRA_TAR_OPTIONS --exclude=ext-sdk-prepare.py" | ||
| 370 | if [ "${SDK_EXT_TYPE}" = "minimal" ] ; then | ||
| 371 | EXTRA_TAR_OPTIONS="$EXTRA_TAR_OPTIONS --exclude=sstate-cache" | ||
| 372 | fi | ||
| 373 | fi | ||
| 368 | } | 374 | } |
| 369 | SDK_PRE_INSTALL_COMMAND_task-populate-sdk-ext = "${sdk_ext_preinst}" | 375 | SDK_PRE_INSTALL_COMMAND_task-populate-sdk-ext = "${sdk_ext_preinst}" |
| 370 | 376 | ||
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 | |||
| 38 | 38 | ||
| 39 | DEFAULT_INSTALL_DIR="@SDKPATH@" | 39 | DEFAULT_INSTALL_DIR="@SDKPATH@" |
| 40 | SUDO_EXEC="" | 40 | SUDO_EXEC="" |
| 41 | EXTRA_TAR_OPTIONS="" | ||
| 41 | target_sdk_dir="" | 42 | target_sdk_dir="" |
| 42 | answer="" | 43 | answer="" |
| 43 | relocate=1 | 44 | relocate=1 |
| 44 | savescripts=0 | 45 | savescripts=0 |
| 45 | verbose=0 | 46 | verbose=0 |
| 46 | while getopts ":yd:nDRS" OPT; do | 47 | publish=0 |
| 48 | while getopts ":yd:npDRS" OPT; do | ||
| 47 | case $OPT in | 49 | case $OPT in |
| 48 | y) | 50 | y) |
| 49 | answer="Y" | 51 | answer="Y" |
| @@ -54,6 +56,10 @@ while getopts ":yd:nDRS" OPT; do | |||
| 54 | n) | 56 | n) |
| 55 | prepare_buildsystem="no" | 57 | prepare_buildsystem="no" |
| 56 | ;; | 58 | ;; |
| 59 | p) | ||
| 60 | prepare_buildsystem="no" | ||
| 61 | publish=1 | ||
| 62 | ;; | ||
| 57 | D) | 63 | D) |
| 58 | verbose=1 | 64 | verbose=1 |
| 59 | ;; | 65 | ;; |
| @@ -70,6 +76,7 @@ while getopts ":yd:nDRS" OPT; do | |||
| 70 | echo " -d <dir> Install the SDK to <dir>" | 76 | echo " -d <dir> Install the SDK to <dir>" |
| 71 | echo "======== Extensible SDK only options ============" | 77 | echo "======== Extensible SDK only options ============" |
| 72 | echo " -n Do not prepare the build system" | 78 | echo " -n Do not prepare the build system" |
| 79 | echo " -p Publish mode (implies -n)" | ||
| 73 | echo "======== Advanced DEBUGGING ONLY OPTIONS ========" | 80 | echo "======== Advanced DEBUGGING ONLY OPTIONS ========" |
| 74 | echo " -S Save relocation scripts" | 81 | echo " -S Save relocation scripts" |
| 75 | echo " -R Do not relocate executables" | 82 | echo " -R Do not relocate executables" |
| @@ -181,7 +188,7 @@ fi | |||
| 181 | payload_offset=$(($(grep -na -m1 "^MARKER:$" $0|cut -d':' -f1) + 1)) | 188 | payload_offset=$(($(grep -na -m1 "^MARKER:$" $0|cut -d':' -f1) + 1)) |
| 182 | 189 | ||
| 183 | printf "Extracting SDK..." | 190 | printf "Extracting SDK..." |
| 184 | tail -n +$payload_offset $0| $SUDO_EXEC tar xJ -C $target_sdk_dir --checkpoint=.2500 || exit 1 | 191 | tail -n +$payload_offset $0| $SUDO_EXEC tar xJ -C $target_sdk_dir --checkpoint=.2500 $EXTRA_TAR_OPTIONS || exit 1 |
| 185 | echo "done" | 192 | echo "done" |
| 186 | 193 | ||
| 187 | printf "Setting it up..." | 194 | 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): | |||
| 94 | 94 | ||
| 95 | # Unpack the SDK | 95 | # Unpack the SDK |
| 96 | logger.info("Unpacking SDK") | 96 | logger.info("Unpacking SDK") |
| 97 | cleanupfiles = [dest_sdk, os.path.join(destdir, 'ext-sdk-prepare.py')] | ||
| 98 | if not is_remote: | 97 | if not is_remote: |
| 99 | cmd = "sh %s -n -y -d %s" % (dest_sdk, destination) | 98 | cmd = "sh %s -p -y -d %s" % (dest_sdk, destination) |
| 100 | ret = subprocess.call(cmd, shell=True) | 99 | ret = subprocess.call(cmd, shell=True) |
| 101 | if ret == 0: | 100 | if ret == 0: |
| 102 | logger.info('Successfully unpacked %s to %s' % (dest_sdk, destination)) | 101 | logger.info('Successfully unpacked %s to %s' % (dest_sdk, destination)) |
| 103 | for cleanupfile in cleanupfiles: | 102 | os.remove(dest_sdk) |
| 104 | os.remove(cleanupfile) | ||
| 105 | else: | 103 | else: |
| 106 | logger.error('Failed to unpack %s to %s' % (dest_sdk, destination)) | 104 | logger.error('Failed to unpack %s to %s' % (dest_sdk, destination)) |
| 107 | return ret | 105 | return ret |
| 108 | else: | 106 | else: |
| 109 | cmd = "ssh %s 'sh %s -n -y -d %s && rm -f %s'" % (host, dest_sdk, destdir, ' '.join(cleanupfiles)) | 107 | cmd = "ssh %s 'sh %s -p -y -d %s && rm -f %s'" % (host, dest_sdk, destdir, dest_sdk) |
| 110 | ret = subprocess.call(cmd, shell=True) | 108 | ret = subprocess.call(cmd, shell=True) |
| 111 | if ret == 0: | 109 | if ret == 0: |
| 112 | logger.info('Successfully unpacked %s to %s' % (dest_sdk, destdir)) | 110 | logger.info('Successfully unpacked %s to %s' % (dest_sdk, destdir)) |
