]> code.ossystems Code Review - openembedded-core.git/commitdiff
package_rpm: Workaround for 'all' arch multilib package naming
authorMark Hatle <mark.hatle@windriver.com>
Tue, 11 Dec 2012 22:05:49 +0000 (16:05 -0600)
committerSaul Wold <sgw@linux.intel.com>
Fri, 14 Dec 2012 23:17:19 +0000 (15:17 -0800)
[YOCTO #3565]

All packages should not be multilib specific, however when the multilib
rules run, they automatically rename the 'all' target recipes.  As such
there is no way to know if an 'all' package should or should not contain
the multilib prefix.  We workaround this issue in the translate function
by checking to see if the runtime-reverse file exists or not.

The workaround should be removed once a proper solution to the architectural
issue is in place.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
meta/classes/package_rpm.bbclass

index 6a0bb91d23386093a97f0042b2a27fbc1febe6fd..a00b70205ce3677de872ead2d317dcdaec7a05c4 100644 (file)
@@ -80,6 +80,7 @@ translate_smart_to_oe() {
 
        # Dump installed packages
        while read pkg arch other ; do
+               found=0
                if [ -z "$pkg" ]; then
                        continue
                fi
@@ -101,10 +102,19 @@ translate_smart_to_oe() {
                                        else
                                                new_pkg="$mlib-$pkg"
                                        fi
-                                       break
+                                       # Workaround for bug 3565
+                                       # Simply look to see if we know of a package with that name, if not try again!
+                                       filename=`ls ${TMPDIR}/pkgdata/*/runtime-reverse/$new_pkg 2>/dev/null | head -n 1`
+                                       if [ -n "$filename" ] ; then
+                                               found=1
+                                               break
+                                       fi
+                                       # 'real' code
+                                       # found=1
+                                       # break
                                fi
                        done
-                       if [ "$arch" = "$cmp_arch" -o "$fixed_arch" = "$cmp_arch" ]; then
+                       if [ "$found" = "1" ] && [ "$arch" = "$cmp_arch" -o "$fixed_arch" = "$cmp_arch" ]; then
                                break
                        fi
                done