summaryrefslogtreecommitdiffstats
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:55:00 +0000
commit84a5c63a57d60b1557268389cf333c69dd841fcd (patch)
tree110360d6d2046e9bf1734f883c7d34b1eb75e7ad
parentcaaabe651023e2bb9eb5c0501ee3a76275b4aee2 (diff)
downloadast2050-yocto-poky-84a5c63a57d60b1557268389cf333c69dd841fcd.zip
ast2050-yocto-poky-84a5c63a57d60b1557268389cf333c69dd841fcd.tar.gz
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. (From OE-Core rev: ff01518c6667e1b6e87df4e5a435a701d0f38fa7) 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> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/image.bbclass16
-rw-r--r--meta/classes/package_rpm.bbclass5
2 files changed, 19 insertions, 2 deletions
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index 1461144..8bf718a 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
diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass
index a00b702..05108b2 100644
--- a/meta/classes/package_rpm.bbclass
+++ b/meta/classes/package_rpm.bbclass
@@ -99,8 +99,11 @@ translate_smart_to_oe() {
if [ "$arch" = "$cmp_arch" -o "$fixed_arch" = "$cmp_arch" ]; then
if [ "$mlib" = "default" ]; then
new_pkg="$pkg"
+ new_arch=$cmp_arch
else
new_pkg="$mlib-$pkg"
+ # We need to strip off the ${mlib}_ prefix on the arch
+ new_arch=${cmp_arch#${mlib}_}
fi
# Workaround for bug 3565
# Simply look to see if we know of a package with that name, if not try again!
@@ -121,7 +124,7 @@ translate_smart_to_oe() {
#echo "$pkg -> $new_pkg" >&2
if [ "$arg1" = "arch" ]; then
- echo $new_pkg $cmp_arch $other
+ echo $new_pkg $new_arch $other
else
echo $new_pkg $other
fi
OpenPOWER on IntegriCloud