Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Changqing Li <changqing.li@windriver.com>
To: <openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH V3] populate_sdk_base: provide options to set sdk type
Date: Mon, 11 Feb 2019 15:12:27 +0800	[thread overview]
Message-ID: <e53e14ae-d634-c7a4-e04a-7b9ccf2ea033@windriver.com> (raw)
In-Reply-To: <1548048935-326977-1-git-send-email-changqing.li@windriver.com>

ping

On 1/21/19 1:35 PM, changqing.li@windriver.com wrote:
> From: Changqing Li <changqing.li@windriver.com>
>
> Current sdk type is tar.xz, but for mingw sdk, since we
> have symlink under the sdk folder, 7zip which used to
> extract tar.xz cannot handle it, refer 7zip upstream bug:
> https://sourceforge.net/p/sevenzip/discussion/45797/thread/c71d6b96/
> so add option for usr can select the sdk type.
>
> default type is tar.xz, and also support type zip.
> user want to use zip type can set SDK_ARCHIVE_TYPE to zip.
>
> Signed-off-by: Changqing Li <changqing.li@windriver.com>
> ---
>   meta/classes/populate_sdk_base.bbclass | 28 +++++++++++++++++++++-------
>   1 file changed, 21 insertions(+), 7 deletions(-)
>
> diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass
> index 677ba3c..3e7aec8 100644
> --- a/meta/classes/populate_sdk_base.bbclass
> +++ b/meta/classes/populate_sdk_base.bbclass
> @@ -44,8 +44,23 @@ TOOLCHAIN_TARGET_TASK ?= "${@multilib_pkg_extend(d, 'packagegroup-core-standalon
>   TOOLCHAIN_TARGET_TASK_ATTEMPTONLY ?= ""
>   TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${SDK_VERSION}"
>   
> +# Default archived SDK's suffix
> +SDK_ARCHIVE_TYPE ?= "tar.xz"
> +
> +# To support different sdk type according to SDK_ARCHIVE_TYPE, now support zip and tar.xz
> +python () {
> +    if d.getVar('SDK_ARCHIVE_TYPE') == 'zip':
> +       d.setVar('SDK_ARCHIVE_DEPENDS', 'zip-native')
> +       # SDK_ARCHIVE_CMD used to generate archived sdk ${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE} from input dir ${SDK_OUTPUT}/${SDKPATH} to output dir ${SDKDEPLOYDIR}
> +       # recommand to cd into input dir first to avoid archive with buildpath
> +       d.setVar('SDK_ARCHIVE_CMD', 'cd ${SDK_OUTPUT}/${SDKPATH}; zip -r ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE} .')
> +    else:
> +       d.setVar('SDK_ARCHIVE_DEPENDS', 'xz-native')
> +       d.setVar('SDK_ARCHIVE_CMD', 'cd ${SDK_OUTPUT}/${SDKPATH}; tar ${SDKTAROPTS} -cf - . | xz -T 0 > ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE}')
> +}
> +
>   SDK_RDEPENDS = "${TOOLCHAIN_TARGET_TASK} ${TOOLCHAIN_HOST_TASK}"
> -SDK_DEPENDS = "virtual/fakeroot-native xz-native cross-localedef-native nativesdk-qemuwrapper-cross ${@' '.join(["%s-qemuwrapper-cross" % m for m in d.getVar("MULTILIB_VARIANTS").split()])} qemuwrapper-cross"
> +SDK_DEPENDS = "virtual/fakeroot-native ${SDK_ARCHIVE_DEPENDS} cross-localedef-native nativesdk-qemuwrapper-cross ${@' '.join(["%s-qemuwrapper-cross" % m for m in d.getVar("MULTILIB_VARIANTS").split()])} qemuwrapper-cross"
>   PATH_prepend = "${STAGING_DIR_HOST}${SDKPATHNATIVE}${bindir}/crossscripts:${@":".join(all_multilib_tune_values(d, 'STAGING_BINDIR_CROSS').split())}:"
>   SDK_DEPENDS_append_libc-glibc = " nativesdk-glibc-locale"
>   
> @@ -103,7 +118,7 @@ POPULATE_SDK_POST_TARGET_COMMAND_append = " write_sdk_test_data ; "
>   POPULATE_SDK_POST_TARGET_COMMAND_append_task-populate-sdk  = " write_target_sdk_manifest ; "
>   POPULATE_SDK_POST_HOST_COMMAND_append_task-populate-sdk = " write_host_sdk_manifest; "
>   SDK_PACKAGING_COMMAND = "${@'${SDK_PACKAGING_FUNC};' if '${SDK_PACKAGING_FUNC}' else ''}"
> -SDK_POSTPROCESS_COMMAND = " create_sdk_files; check_sdk_sysroots; tar_sdk; ${SDK_PACKAGING_COMMAND} "
> +SDK_POSTPROCESS_COMMAND = " create_sdk_files; check_sdk_sysroots; archive_sdk; ${SDK_PACKAGING_COMMAND} "
>   
>   def populate_sdk_common(d):
>       from oe.sdk import populate_sdk
> @@ -221,11 +236,10 @@ python check_sdk_sysroots() {
>   
>   SDKTAROPTS = "--owner=root --group=root"
>   
> -fakeroot tar_sdk() {
> +fakeroot archive_sdk() {
>   	# Package it up
>   	mkdir -p ${SDKDEPLOYDIR}
> -	cd ${SDK_OUTPUT}/${SDKPATH}
> -	tar ${SDKTAROPTS} -cf - . | xz -T 0 > ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.tar.xz
> +	${SDK_ARCHIVE_CMD}
>   }
>   
>   TOOLCHAIN_SHAR_EXT_TMPL ?= "${COREBASE}/meta/files/toolchain-shar-extract.sh"
> @@ -268,10 +282,10 @@ EOF
>   	chmod +x ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.sh
>   
>   	# append the SDK tarball
> -	cat ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.tar.xz >> ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.sh
> +	cat ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE} >> ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.sh
>   
>   	# delete the old tarball, we don't need it anymore
> -	rm ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.tar.xz
> +	rm ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE}
>   }
>   
>   populate_sdk_log_check() {

-- 
BRs

Sandy(Li Changqing)



  reply	other threads:[~2019-02-11  7:12 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-16  9:37 [PATCH] populate_sdk_base: add option of add other type of sdk changqing.li
2019-01-16 12:07 ` Burton, Ross
2019-01-17  9:52   ` [PATCH V2] populate_sdk_base: provide options to set sdk type changqing.li
2019-01-17  9:55     ` Changqing Li
2019-01-17  9:52   ` changqing.li
2019-01-17  9:52     ` changqing.li
2019-01-17 12:06       ` Burton, Ross
2019-01-21  5:35         ` [PATCH V3] " changqing.li
2019-02-11  7:12           ` Changqing Li [this message]
2019-02-27  6:44             ` Changqing Li

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e53e14ae-d634-c7a4-e04a-7b9ccf2ea033@windriver.com \
    --to=changqing.li@windriver.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox