summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Lock <josh@linux.intel.com>2010-02-26 12:33:34 +0000
committerJoshua Lock <josh@linux.intel.com>2010-02-26 12:33:34 +0000
commitcb8ae04ebe34bbd81ff1fc91a124dc7e0712c049 (patch)
treee311baaf74ac878fea117ce47005dc6c8eb6f2a8
parentfce742aac60051d72d21e7ffa53e5661245793d5 (diff)
downloadopenembedded-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.bbclass25
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 () {