From: Joshua Lock <josh@openedhand.com>
To: poky@yoctoproject.org
Subject: Re: [PATCH 6/6] meta_toolchain/populate_sdk: Made task populate_sdk more generic.
Date: Thu, 27 Jan 2011 10:47:01 +0000 [thread overview]
Message-ID: <1296125221.2711.13.camel@scimitar> (raw)
In-Reply-To: <6e68264b2e391cfa101c8816356f5da3f3edade2.1296095614.git.lianhao.lu@intel.com>
On Thu, 2011-01-27 at 10:51 +0800, Lianhao Lu wrote:
> From: Lianhao Lu <lianhao.lu@intel.com>
>
> Make the task populate_sdk more generic to support installing from all
> ipk, rpm, and deb package format.
>
> Also remove the .la files fixing in task populate_sdk code because the
> libtool 2.4 now supports sysroot.
Could you do this as a separate commit and actually remove the lines of
code, rather than commenting them out?
>
> Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
> ---
> meta/classes/populate_sdk.bbclass | 88 +++++++++++++++++++++++++
> meta/classes/populate_sdk_rpm.bbclass | 6 +-
> meta/recipes-core/meta/meta-toolchain.bb | 103 +-----------------------------
> 3 files changed, 94 insertions(+), 103 deletions(-)
> create mode 100644 meta/classes/populate_sdk.bbclass
>
> diff --git a/meta/classes/populate_sdk.bbclass b/meta/classes/populate_sdk.bbclass
> new file mode 100644
> index 0000000..02870a6
> --- /dev/null
> +++ b/meta/classes/populate_sdk.bbclass
> @@ -0,0 +1,88 @@
> +inherit meta toolchain-scripts
> +inherit populate_sdk_${IMAGE_PKGTYPE}
> +
> +SDK_DIR = "${WORKDIR}/sdk"
> +SDK_OUTPUT = "${SDK_DIR}/image"
> +SDK_DEPLOY = "${TMPDIR}/deploy/sdk"
> +
> +SDKTARGETSYSROOT = "${SDKPATH}/sysroots/${TARGET_SYS}"
> +
> +TOOLCHAIN_HOST_TASK ?= "task-sdk-host task-cross-canadian-${TRANSLATED_TARGET_ARCH}"
> +TOOLCHAIN_TARGET_TASK ?= "task-poky-standalone-sdk-target task-poky-standalone-sdk-target-dbg"
> +TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${DISTRO_VERSION}"
> +
> +RDEPENDS = "${TOOLCHAIN_TARGET_TASK} ${TOOLCHAIN_HOST_TASK}"
> +DEPENDS = "virtual/fakeroot-native sed-native"
> +
> +PID = "${@os.getpid()}"
> +
> +EXCLUDE_FROM_WORLD = "1"
> +
> +fakeroot do_populate_sdk() {
> + rm -rf ${SDK_OUTPUT}
> + mkdir -p ${SDK_OUTPUT}
> +
> + populate_sdk_${IMAGE_PKGTYPE}
> +
> + # Don't ship any libGL in the SDK
> + rm -rf ${SDK_OUTPUT}/${SDKPATHNATIVE}${libdir_nativesdk}/libGL*
> +
> + # Can copy pstage files here
> + # target_pkgs=`cat ${SDK_OUTPUT}/${SDKTARGETSYSROOT}/var/lib/opkg/status | grep Package: | cut -f 2 -d ' '`
> +
> + # Fix or remove broken .la files
> + # no longer needed since libtool now support sysroot
> + #for i in `find ${SDK_OUTPUT}/${SDKTARGETSYSROOT} -name \*.la`; do
> + # sed -i -e "/^dependency_libs=/s,\([[:space:]']\)${base_libdir},\1${SDKTARGETSYSROOT}${base_libdir},g" \
> + # -e "/^dependency_libs=/s,\([[:space:]']\)${libdir},\1${SDKTARGETSYSROOT}${libdir},g" \
> + # -e "/^dependency_libs=/s,\-\([LR]\)${base_libdir},-\1${SDKTARGETSYSROOT}${base_libdir},g" \
> + # -e "/^dependency_libs=/s,\-\([LR]\)${libdir},-\1${SDKTARGETSYSROOT}${libdir},g" \
> + # -e 's/^installed=yes$/installed=no/' $i
> + #done
> + #rm -f ${SDK_OUTPUT}/${SDKPATHNATIVE}/lib/*.la
> + rm -f ${SDK_OUTPUT}/${SDKPATHNATIVE}${libdir_nativesdk}/*.la
> +
> + # Link the ld.so.cache file into the hosts filesystem
> + ln -s /etc/ld.so.cache ${SDK_OUTPUT}/${SDKPATHNATIVE}/etc/ld.so.cache
> +
> + # Setup site file for external use
> + siteconfig=${SDK_OUTPUT}/${SDKPATH}/site-config-${MULTIMACH_TARGET_SYS}
> + touch $siteconfig
> + for sitefile in ${CONFIG_SITE} ; do
> + cat $sitefile >> $siteconfig
> + done
> +
> + toolchain_create_sdk_env_script
> +
> + # Add version information
> + versionfile=${SDK_OUTPUT}/${SDKPATH}/version-${MULTIMACH_TARGET_SYS}
> + touch $versionfile
> + echo 'Distro: ${DISTRO}' >> $versionfile
> + echo 'Distro Version: ${DISTRO_VERSION}' >> $versionfile
> + echo 'Metadata Revision: ${METADATA_REVISION}' >> $versionfile
> + echo 'Timestamp: ${DATETIME}' >> $versionfile
> +
> + # Package it up
> + mkdir -p ${SDK_DEPLOY}
> + cd ${SDK_OUTPUT}
> + tar --owner=root --group=root -cj --file=${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.tar.bz2 .
> +}
> +
> +populate_sdk_log_check() {
> +
> + lf_path="${WORKDIR}/temp/log.do_populate_sdk.${PID}"
> +
> + echo "log_check: Using $lf_path as logfile"
> +
> + if test -e "$lf_path"
> + then
> + populate_sdk_${IMAGE_PKGTYPE}_log_check $lf_path
> + else
> + echo "Cannot find logfile [$lf_path]"
> + fi
> + echo "Logfile is clean"
> +}
> +
> +do_populate_sdk[nostamp] = "1"
> +do_populate_sdk[recrdeptask] = "do_package_write"
> +addtask populate_sdk before do_build after do_install
> diff --git a/meta/classes/populate_sdk_rpm.bbclass b/meta/classes/populate_sdk_rpm.bbclass
> index 883e67f..0e46341 100644
> --- a/meta/classes/populate_sdk_rpm.bbclass
> +++ b/meta/classes/populate_sdk_rpm.bbclass
> @@ -29,7 +29,7 @@ populate_sdk_rpm_internal() {
> confbase=$1
> shift
> package_to_install=$@
> -
> +
> # Setup base system configuration
> mkdir -p ${target_rootfs}/etc/rpm/
> echo "${platform}" >${target_rootfs}/etc/rpm/platform
> @@ -109,12 +109,12 @@ fakeroot populate_sdk_rpm () {
> install -d ${SDK_OUTPUT}/${SDKPATHNATIVE}${localstatedir_nativesdk}/lib/rpm
> mv ${SDK_OUTPUT}${rpmlibdir}/* ${SDK_OUTPUT}/${SDKPATHNATIVE}${localstatedir_nativesdk}/lib/rpm/
> rm -Rf ${SDK_OUTPUT}/var
> -
> +
> install -d ${SDK_OUTPUT}/${SDKPATHNATIVE}/${sysconfdir}
> mv ${SDK_OUTPUT}/etc/* ${SDK_OUTPUT}/${SDKPATHNATIVE}/${sysconfdir}/
> rm -rf ${SDK_OUTPUT}/etc
>
> - populate_sdk_log_check
> + populate_sdk_log_check
> }
Whitespace changes here can be squashed into the original patch adding
this file.
>
> populate_sdk_rpm_log_check() {
> diff --git a/meta/recipes-core/meta/meta-toolchain.bb b/meta/recipes-core/meta/meta-toolchain.bb
> index 4aed9c2..feff9ac 100644
> --- a/meta/recipes-core/meta/meta-toolchain.bb
> +++ b/meta/recipes-core/meta/meta-toolchain.bb
> @@ -1,106 +1,9 @@
> DESCRIPTION = "Meta package for building a installable toolchain"
> LICENSE = "MIT"
> -DEPENDS = "opkg-native opkg-utils-native virtual/fakeroot-native sed-native"
> +
> +PR = "r1"
>
> LIC_FILES_CHKSUM = "file://${POKYBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
> file://${POKYBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
>
> -inherit meta toolchain-scripts
> -
> -SDK_DIR = "${WORKDIR}/sdk"
> -SDK_OUTPUT = "${SDK_DIR}/image"
> -SDK_DEPLOY = "${TMPDIR}/deploy/sdk"
> -
> -SDKTARGETSYSROOT = "${SDKPATH}/sysroots/${TARGET_SYS}"
> -
> -IPKG_HOST = "opkg-cl -f ${IPKGCONF_SDK} -o ${SDK_OUTPUT} --force-overwrite"
> -IPKG_TARGET = "opkg-cl -f ${IPKGCONF_TARGET} -o ${SDK_OUTPUT}/${SDKTARGETSYSROOT} --force-overwrite"
> -
> -TOOLCHAIN_HOST_TASK ?= "task-sdk-host task-cross-canadian-${TRANSLATED_TARGET_ARCH}"
> -TOOLCHAIN_TARGET_TASK ?= "task-poky-standalone-sdk-target task-poky-standalone-sdk-target-dbg"
> -TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${DISTRO_VERSION}"
> -
> -RDEPENDS = "${TOOLCHAIN_TARGET_TASK} ${TOOLCHAIN_HOST_TASK}"
> -
> -EXCLUDE_FROM_WORLD = "1"
> -
> -do_populate_sdk() {
> - rm -rf ${SDK_OUTPUT}
> - mkdir -p ${SDK_OUTPUT}
> - mkdir -p ${SDK_OUTPUT}${localstatedir}/lib/opkg/
> - mkdir -p ${SDK_OUTPUT}/${SDKTARGETSYSROOT}${localstatedir}/lib/opkg/
> -
> - rm -f ${IPKGCONF_TARGET}
> - touch ${IPKGCONF_TARGET}
> - rm -f ${IPKGCONF_SDK}
> - touch ${IPKGCONF_SDK}
> -
> - package_update_index_ipk
> - package_generate_ipkg_conf
> -
> - for arch in ${PACKAGE_ARCHS}; do
> - revipkgarchs="$arch $revipkgarchs"
> - done
> -
> - ${IPKG_HOST} update
> - ${IPKG_HOST} install ${TOOLCHAIN_HOST_TASK}
> -
> - ${IPKG_TARGET} update
> - ${IPKG_TARGET} install ${TOOLCHAIN_TARGET_TASK}
> -
> - install -d ${SDK_OUTPUT}/${SDKPATHNATIVE}${localstatedir_nativesdk}/lib/opkg
> - mv ${SDK_OUTPUT}/var/lib/opkg/* ${SDK_OUTPUT}/${SDKPATHNATIVE}${localstatedir_nativesdk}/lib/opkg/
> - rm -Rf ${SDK_OUTPUT}/var
> -
> - # Don't ship any libGL in the SDK
> - rm -rf ${SDK_OUTPUT}/${SDKPATHNATIVE}${libdir_nativesdk}/libGL*
> -
> - install -d ${SDK_OUTPUT}/${SDKTARGETSYSROOT}/${sysconfdir}
> - install -m 0644 ${IPKGCONF_TARGET} ${IPKGCONF_SDK} ${SDK_OUTPUT}/${SDKTARGETSYSROOT}/${sysconfdir}/
> -
> - install -d ${SDK_OUTPUT}/${SDKPATHNATIVE}/${sysconfdir}
> - install -m 0644 ${IPKGCONF_SDK} ${SDK_OUTPUT}/${SDKPATHNATIVE}/${sysconfdir}/
> -
> - # Can copy pstage files here
> - # target_pkgs=`cat ${SDK_OUTPUT}/${SDKTARGETSYSROOT}/var/lib/opkg/status | grep Package: | cut -f 2 -d ' '`
> -
> - # Fix or remove broken .la files
> - for i in `find ${SDK_OUTPUT}/${SDKTARGETSYSROOT} -name \*.la`; do
> - sed -i -e "/^dependency_libs=/s,\([[:space:]']\)${base_libdir},\1${SDKTARGETSYSROOT}${base_libdir},g" \
> - -e "/^dependency_libs=/s,\([[:space:]']\)${libdir},\1${SDKTARGETSYSROOT}${libdir},g" \
> - -e "/^dependency_libs=/s,\-\([LR]\)${base_libdir},-\1${SDKTARGETSYSROOT}${base_libdir},g" \
> - -e "/^dependency_libs=/s,\-\([LR]\)${libdir},-\1${SDKTARGETSYSROOT}${libdir},g" \
> - -e 's/^installed=yes$/installed=no/' $i
> - done
> - #rm -f ${SDK_OUTPUT}/${SDKPATHNATIVE}/lib/*.la
> - rm -f ${SDK_OUTPUT}/${SDKPATHNATIVE}${libdir_nativesdk}/*.la
> -
> - # Link the ld.so.cache file into the hosts filesystem
> - ln -s /etc/ld.so.cache ${SDK_OUTPUT}/${SDKPATHNATIVE}/etc/ld.so.cache
> -
> - # Setup site file for external use
> - siteconfig=${SDK_OUTPUT}/${SDKPATH}/site-config-${MULTIMACH_TARGET_SYS}
> - touch $siteconfig
> - for sitefile in ${CONFIG_SITE} ; do
> - cat $sitefile >> $siteconfig
> - done
> -
> - toolchain_create_sdk_env_script
> -
> - # Add version information
> - versionfile=${SDK_OUTPUT}/${SDKPATH}/version-${MULTIMACH_TARGET_SYS}
> - touch $versionfile
> - echo 'Distro: ${DISTRO}' >> $versionfile
> - echo 'Distro Version: ${DISTRO_VERSION}' >> $versionfile
> - echo 'Metadata Revision: ${METADATA_REVISION}' >> $versionfile
> - echo 'Timestamp: ${DATETIME}' >> $versionfile
> -
> - # Package it up
> - mkdir -p ${SDK_DEPLOY}
> - cd ${SDK_OUTPUT}
> - tar --owner=root --group=root -cj --file=${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.tar.bz2 .
> -}
> -
> -do_populate_sdk[nostamp] = "1"
> -do_populate_sdk[recrdeptask] = "do_package_write"
> -addtask populate_sdk before do_build after do_install
> +inherit populate_sdk
Cheers,
Joshua
--
Joshua Lock
Intel Open Source Technology Centre
next prev parent reply other threads:[~2011-01-27 10:47 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-27 2:51 [PATCH 0/6] Added rpm support in meta-toolchain Lianhao Lu
2011-01-27 2:51 ` [PATCH 1/6] cross-canadian/apt-native: support for debian package Lianhao Lu
2011-01-27 10:44 ` Joshua Lock
2011-01-27 2:51 ` [PATCH 2/6] classes/populate_sdk_ipk.bbclass: newly created Lianhao Lu
2011-01-27 2:51 ` [PATCH 5/6] package_rpm/populate_sdk_rpm: Added rpm support for populate_sdk task Lianhao Lu
2011-01-27 10:46 ` Joshua Lock
2011-01-27 2:51 ` [PATCH 4/6] classes/populate_sdk_*: remove blanks Lianhao Lu
2011-01-27 10:46 ` Joshua Lock
2011-01-27 2:51 ` [PATCH 6/6] meta_toolchain/populate_sdk: Made task populate_sdk more generic Lianhao Lu
2011-01-27 10:47 ` Joshua Lock [this message]
2011-01-27 2:51 ` [PATCH 3/6] populate_sdk_deb/package_deb: Added deb support for populate_sdk Lianhao Lu
2011-01-27 22:03 ` [PATCH 0/6] Added rpm support in meta-toolchain Richard Purdie
2011-01-28 4:13 ` Lu, Lianhao
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=1296125221.2711.13.camel@scimitar \
--to=josh@openedhand.com \
--cc=poky@yoctoproject.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.