summaryrefslogtreecommitdiff
path: root/meta/classes/image.bbclass
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2012-12-14 16:40:33 -0600
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-12-19 17:50:02 +0000
commitff01518c6667e1b6e87df4e5a435a701d0f38fa7 (patch)
treea93a177c7bb57dac0b61209346fc95bca835ccad /meta/classes/image.bbclass
parent33da18920c4ff2aaa10c81514df16d1ce6ccaecb (diff)
downloadopenembedded-core-ff01518c6667e1b6e87df4e5a435a701d0f38fa7.tar.gz
openembedded-core-ff01518c6667e1b6e87df4e5a435a701d0f38fa7.tar.bz2
openembedded-core-ff01518c6667e1b6e87df4e5a435a701d0f38fa7.zip
classes/image: handle multilibs in complementary package lookup
For multilib the vendor string is altered, so we need to iterate over all of the multilib vendors when we do the glob processing for complementary packages. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> In addition, the RPM package arch have been munged by adding the multilib identifier. This identifier needs to be stripped when generating the installed_packages list for the complementary lookup code to work. Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Diffstat (limited to 'meta/classes/image.bbclass')
-rw-r--r--meta/classes/image.bbclass16
1 files changed, 15 insertions, 1 deletions
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index 1461144949..8bf718a64b 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -113,6 +113,17 @@ python () {
bb.fatal("%s contains conflicting IMAGE_FEATURES %s %s" % (d.getVar('PN', True), feature, ' '.join(list(temp))))
d.setVar('IMAGE_FEATURES', ' '.join(list(remain_features)))
+
+ # Ensure we have the vendor list for complementary package handling
+ ml_vendor_list = ""
+ multilibs = d.getVar('MULTILIBS', True) or ""
+ for ext in multilibs.split():
+ eext = ext.split(':')
+ if len(eext) > 1 and eext[0] == 'multilib':
+ localdata = bb.data.createCopy(d)
+ vendor = localdata.getVar("TARGET_VENDOR_virtclass-multilib-" + eext[1], False)
+ ml_vendor_list += " " + vendor
+ d.setVar('MULTILIB_VENDORS', ml_vendor_list)
}
python image_handler () {
@@ -357,7 +368,10 @@ rootfs_install_complementary() {
if [ "$GLOBS" != "" ] ; then
# Use the magic script to do all the work for us :)
- oe-pkgdata-util glob ${TMPDIR}/pkgdata ${TARGET_VENDOR}-${TARGET_OS} ${WORKDIR}/installed_pkgs.txt "$GLOBS" > ${WORKDIR}/complementary_pkgs.txt
+ : > ${WORKDIR}/complementary_pkgs.txt
+ for vendor in ${TARGET_VENDOR} ${MULTILIB_VENDORS} ; do
+ oe-pkgdata-util glob ${TMPDIR}/pkgdata $vendor-${TARGET_OS} ${WORKDIR}/installed_pkgs.txt "$GLOBS" >> ${WORKDIR}/complementary_pkgs.txt
+ done
# Install the packages, if any
sed -i '/^$/d' ${WORKDIR}/complementary_pkgs.txt