From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.windriver.com (mail.windriver.com [147.11.1.11]) by mail.openembedded.org (Postfix) with ESMTP id 49D756C4F2 for ; Mon, 11 Feb 2019 07:12:31 +0000 (UTC) Received: from ALA-HCA.corp.ad.wrs.com ([147.11.189.40]) by mail.windriver.com (8.15.2/8.15.1) with ESMTPS id x1B7CUkX000929 (version=TLSv1 cipher=AES128-SHA bits=128 verify=FAIL) for ; Sun, 10 Feb 2019 23:12:31 -0800 (PST) Received: from [128.224.162.228] (128.224.162.228) by ALA-HCA.corp.ad.wrs.com (147.11.189.50) with Microsoft SMTP Server (TLS) id 14.3.435.0; Sun, 10 Feb 2019 23:12:30 -0800 To: References: <1548048935-326977-1-git-send-email-changqing.li@windriver.com> From: Changqing Li Message-ID: Date: Mon, 11 Feb 2019 15:12:27 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1 MIME-Version: 1.0 In-Reply-To: <1548048935-326977-1-git-send-email-changqing.li@windriver.com> X-Originating-IP: [128.224.162.228] Subject: Re: [PATCH V3] populate_sdk_base: provide options to set sdk type X-BeenThere: openembedded-core@lists.openembedded.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Patches and discussions about the oe-core layer List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Feb 2019 07:12:31 -0000 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US ping On 1/21/19 1:35 PM, changqing.li@windriver.com wrote: > From: Changqing Li > > 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 > --- > 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)