]> code.ossystems Code Review - openembedded-core.git/commitdiff
package_rpm.bbclass: fix the arch (replace "-" with "_")
authorRobert Yang <liezhi.yang@windriver.com>
Mon, 10 Sep 2012 07:58:52 +0000 (15:58 +0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 10 Sep 2012 11:02:23 +0000 (12:02 +0100)
rpm can't use the "-" as the arch, which causes problem, e.g., when
MACHINE = "beagleboard":

* The arch should be armv7a-vfp-neon, but rpm only takes the armv7a,
  this is incorrect since it is mixed with real arch armv7a.

* The nativesdk's arch should be i686-nativesdk (or x86_64-nativesdk),
  but rpm only takes the i686 (or x86_64), this in incorrect since it is
  mixed with the arch i686 (or x86_64).

Replace "-" with "_" when rpm package and the rootfs generation would
fix the problem, I think this is fine since it doesn't change the tune's
arch, the package manager doesn't care about the arch's name, but it
needs a unify arch system to avoid confusing. This is similar to what we
have done on the deb which fixed the arch i486, i586 and so on to i386.

[YOCTO #2328]

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/package_rpm.bbclass
meta/recipes-extended/sat-solver/sat-solver_git.bb

index 742f292307af21388444661f6e2395f28dc02ba7..43cdd572c3e5b1991d62410891bdbdf4dae4dd66 100644 (file)
@@ -27,12 +27,12 @@ package_update_index_rpm () {
        fi
 
        # Update target packages
-       base_archs="${PACKAGE_ARCHS}"
-       ml_archs="${MULTILIB_PACKAGE_ARCHS}"
+       base_archs="`echo ${PACKAGE_ARCHS} | sed 's/-/_/g'`"
+       ml_archs="`echo ${MULTILIB_PACKAGE_ARCHS} | sed 's/-/_/g'`"
        package_update_index_rpm_common "${RPMCONF_TARGET_BASE}" base_archs ml_archs
 
        # Update SDK packages
-       base_archs="${SDK_PACKAGE_ARCHS}"
+       base_archs="`echo ${SDK_PACKAGE_ARCHS} | sed 's/-/_/g'`"
        package_update_index_rpm_common "${RPMCONF_HOST_BASE}" base_archs
 }
 
@@ -1113,8 +1113,8 @@ python do_package_rpm () {
     rpmbuild = d.getVar('RPMBUILD', True)
     targetsys = d.getVar('TARGET_SYS', True)
     targetvendor = d.getVar('TARGET_VENDOR', True)
-    package_arch = d.getVar('PACKAGE_ARCH', True) or ""
-    if package_arch not in "all any noarch".split() and not package_arch.endswith("-nativesdk"):
+    package_arch = (d.getVar('PACKAGE_ARCH', True) or "").replace("-", "_")
+    if package_arch not in "all any noarch".split() and not package_arch.endswith("_nativesdk"):
         ml_prefix = (d.getVar('MLPREFIX', True) or "").replace("-", "_")
         d.setVar('PACKAGE_ARCH_EXTEND', ml_prefix + package_arch)
     else:
index e1054e9e22907f61f3f159b7fce34e6f400de0b7..67503b7278c6c70d1d816ee0ce25e1387be5c2cc 100644 (file)
@@ -47,7 +47,7 @@ do_archgen () {
                        all | any | noarch)
                                continue;;
                esac
-               INSTALL_PLATFORM_ARCHS="$each_arch $INSTALL_PLATFORM_ARCHS"
+               INSTALL_PLATFORM_ARCHS="`echo $each_arch | sed 's/-/_/g'` $INSTALL_PLATFORM_ARCHS"
        done
 
        echo "/* Automatically generated by the sat-solver recipe */" > src/core-arch.h