diff options
author | Joshua Lock <josh@linux.intel.com> | 2010-02-26 12:33:34 +0000 |
---|---|---|
committer | Joshua Lock <josh@linux.intel.com> | 2010-02-26 12:33:34 +0000 |
commit | cb8ae04ebe34bbd81ff1fc91a124dc7e0712c049 (patch) | |
tree | e311baaf74ac878fea117ce47005dc6c8eb6f2a8 | |
parent | fce742aac60051d72d21e7ffa53e5661245793d5 (diff) | |
download | openembedded-core-cb8ae04ebe34bbd81ff1fc91a124dc7e0712c049.tar.gz openembedded-core-cb8ae04ebe34bbd81ff1fc91a124dc7e0712c049.tar.bz2 openembedded-core-cb8ae04ebe34bbd81ff1fc91a124dc7e0712c049.zip |
packaged-staging: post-process non-binary files to fix paths in native packages
Extend the existing libtool hack so that native packages (native, cross, sdk)
have all non-binary files scanned and the STAGING_DIR fixed up.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
-rw-r--r-- | meta/classes/packaged-staging.bbclass | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/meta/classes/packaged-staging.bbclass b/meta/classes/packaged-staging.bbclass index 4789ecc3b1..84ee734928 100644 --- a/meta/classes/packaged-staging.bbclass +++ b/meta/classes/packaged-staging.bbclass @@ -19,6 +19,7 @@ PSTAGE_PKGPN = "${@bb.data.expand('staging-${PN}-${MULTIMACH_ARCH}${TARGET_ PSTAGE_PKGNAME = "${PSTAGE_PKGPN}_${PSTAGE_PKGVERSION}_${PSTAGE_PKGARCH}.ipk" PSTAGE_PKG = "${PSTAGE_DIR}/${PSTAGE_PKGPATH}/${PSTAGE_PKGNAME}" PSTAGE_WORKDIR = "${TMPDIR}/pstage" +PSTAGE_SCAN_CMD ?= "find ${PSTAGE_TMPDIR_STAGE} -name "*.la" -type f" PSTAGE_NATIVEDEPENDS = "\ shasum-native \ @@ -36,6 +37,8 @@ python () { path = bb.data.getVar('PSTAGE_PKGPATH', d, 1) path = path + bb.data.getVar('TMPDIR', d, 1).replace('/', '-') bb.data.setVar('PSTAGE_PKGPATH', path, d) + scan_cmd = "qrep -Irl ${STAGING_DIR} ${PSTAGE_TMDPDIR_STAGE}" + bb.data.setVar('PSTAGE_SCAN_CMD', scan_cmd, d) # PSTAGE_NATIVEDEPENDS lists the packages we need before we can use packaged # staging. There will always be some packages we depend on. @@ -356,8 +359,9 @@ staging_packager () { # Need to remove hardcoded paths and fix these when we install the # staging packages. # Could someone please add sysroot support to libtool! - for i in `find ${PSTAGE_TMPDIR_STAGE} -name "*.la" -type f` ; do \ - sed -i -e s:${STAGING_DIR}:FIXMESTAGINGDIR:g $i + for i in `${PSTAGE_SCAN_CMD}` ; do \ + sed -i -e s:${STAGING_DIR}:FIXMESTAGINGDIR:g $i + echo $i | sed -e 's:${PSTAGE_TMPDIR_STAGE}/::' >> ${PSTAGE_TMPDIR_STAGE}/sysroots/fixmepath done ${PSTAGE_BUILD_CMD} ${PSTAGE_TMPDIR_STAGE} ${PSTAGE_DIR}/${PSTAGE_PKGPATH} @@ -382,12 +386,21 @@ staging_package_installer () { find -type f | grep -v ./CONTROL | sed -e 's/^\.//' > ${TMPDIR}${libdir_native}/opkg/info/${PSTAGE_PKGPN}.list } -staging_package_libtoolhack () { +python staging_package_libtoolhack () { # Deal with libtool not supporting sysroots and add our new # staging location - for i in `find ${STAGING_DIR} -name "*.la" -type f` ; do \ - sed -i -e s:FIXMESTAGINGDIR:${STAGING_DIR}:g $i - done + tmpdir = bb.data.getVar('TMPDIR', d, True) + staging = bb.data.getVar('STAGING_DIR', d, True) + fixmefn = staging + "/fixmepath" + try: + fixmefd = open(fixmefn,"r") + fixmefiles = fixmefd.readlines() + fixmefd.close() + os.system('rm -f ' + fixmefn) + for file in fixmefiles: + os.system("sed -i -e s:FIXMESTAGINGDIR:%s:g %s" % (staging, tmpdir + '/' + file)) + except IOError: + pass } python do_package_stage () { |