]> code.ossystems Code Review - openembedded-core.git/commitdiff
package_rpm.bbclass: Update the platform config and --target
authorMark Hatle <mark.hatle@windriver.com>
Thu, 11 Aug 2011 15:38:30 +0000 (10:38 -0500)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 12 Aug 2011 16:11:23 +0000 (17:11 +0100)
When constructing the /etc/rpm/platform file, we need to ensure that
the any, all, and noarch platforms will allow any "linux" variant to
be installable, not just matching variants.. i.e.

arm-oe-linux-gnueabi should be able to install noarch-oe-linux

Also ensure that we pass the full canonical arch via the --target=
parameter.  This allows us to define the proper platform settings
for all packages.

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

index 59e8d48b2027b6eea77d19a55e317b941bb0ac15..5c67f69bb9a2f1e18a95df27aedfd79d52d42ea2 100644 (file)
@@ -177,7 +177,15 @@ package_install_internal_rpm () {
        echo "${platform}${TARGET_VENDOR}-${TARGET_OS}" > ${target_rootfs}/etc/rpm/platform
        if [ ! -z "$platform_extra" ]; then
                for pt in $platform_extra ; do
-                       echo "$pt-.*-${TARGET_OS}" >> ${target_rootfs}/etc/rpm/platform
+                       case $pt in
+                               noarch | any | all)
+                                       os="`echo ${TARGET_OS} | sed "s,-.*,,"`.*"
+                                       ;;
+                               *)
+                                       os="${TARGET_OS}"
+                                       ;;
+                       esac
+                       echo "$pt-.*-$os" >> ${target_rootfs}/etc/rpm/platform
                done
        fi
 
@@ -821,13 +829,13 @@ python do_package_rpm () {
        targetsys = bb.data.getVar('TARGET_SYS', d, True)
        targetvendor = bb.data.getVar('TARGET_VENDOR', d, True)
        pkgwritedir = bb.data.expand('${PKGWRITEDIRRPM}/${PACKAGE_ARCH}', d)
-       pkgarch = bb.data.expand('${PACKAGE_ARCH}', d)
+       pkgarch = bb.data.expand('${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}', d)
        magicfile = bb.data.expand('${STAGING_DIR_NATIVE}/usr/share/misc/magic.mgc', d)
        bb.mkdirhier(pkgwritedir)
        os.chmod(pkgwritedir, 0755)
 
        cmd = rpmbuild
-       cmd = cmd + " --nodeps --short-circuit --target " + pkgarch + targetvendor + "-linux-gnu --buildroot " + pkgd
+       cmd = cmd + " --nodeps --short-circuit --target " + pkgarch + " --buildroot " + pkgd
        cmd = cmd + " --define '_topdir " + workdir + "' --define '_rpmdir " + pkgwritedir + "'"
        cmd = cmd + " --define '_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm'"
        cmd = cmd + " --define '_use_internal_dependency_generator 0'"