On 4/23/13 8:37 AM, Bogdan Marinescu wrote:
Don't add the first line of /etc/rpm/platform to the list of patterns
to match when computing an arch score, use it just for getting
information about the platform (cpu/vendor/os).

[YOCTO #3864]

Signed-off-by: Bogdan Marinescu <bogdan.a.marine...@intel.com>
---
  .../rpm/rpm/rpm-platform-file-fix.patch            |   28 ++++++++++++++++++++
  meta/recipes-devtools/rpm/rpm_5.4.9.bb             |    3 ++-
  2 files changed, 30 insertions(+), 1 deletion(-)
  create mode 100644 meta/recipes-devtools/rpm/rpm/rpm-platform-file-fix.patch

diff --git a/meta/recipes-devtools/rpm/rpm/rpm-platform-file-fix.patch 
b/meta/recipes-devtools/rpm/rpm/rpm-platform-file-fix.patch
new file mode 100644
index 0000000..3e14d4d
--- /dev/null
+++ b/meta/recipes-devtools/rpm/rpm/rpm-platform-file-fix.patch
@@ -0,0 +1,28 @@
+Don't add the first line of /etc/rpm/platform to the list of patterns
+to match when computing an arch score, use it just for getting
+information about the platform (cpu/vendor/os). Fixes #3864.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+diff --git a/lib/rpmrc.c b/lib/rpmrc.c
+index e676601..e433faa 100644
+--- a/lib/rpmrc.c
++++ b/lib/rpmrc.c
+@@ -510,17 +510,6 @@ static rpmRC rpmPlatform(const char * platform)
+ #endif
+       }
+

The change below should be fine, and does address both of my concerns. (it slightly changes /etc/rpm/platform behavior, but I don't think it does so in a way that will confuse anyone.)

I do suggest the patch be reworked though to conform with the upstream guidelines for "local vendor patches" Replace the following with:

+-#if defined(RPM_VENDOR_OPENPKG) /* explicit-platform */
+-      /* do not use vendor and GNU attribution */
+-      p = rpmExpand("%{_host_cpu}-%{_host_os}", NULL);
+-#else
+-      p = rpmExpand("%{_host_cpu}-%{_host_vendor}-%{_host_os}",
+-              (cvog && *cvog->gnu ? "-" : NULL),
+-              (cvog ? cvog->gnu : NULL), NULL);
+-#endif
+-      xx = mireAppend(RPMMIRE_STRCMP, 0, p, NULL, &mi_re, &mi_nre);
+-      p = _free(p);
+-      

#if !defined(RPM_VENDOR_POKY) /* Skip the explicit-platform */
 #if defined(RPM_VENDOR_OPENPKG) /* explicit-platform */
        /* do not use vendor and GNU attribution */
        p = rpmExpand("%{_host_cpu}-%{_host_os}", NULL);
 #else
        p = rpmExpand("%{_host_cpu}-%{_host_vendor}-%{_host_os}",
                (cvog && *cvog->gnu ? "-" : NULL),
                (cvog ? cvog->gnu : NULL), NULL);
 #endif
        xx = mireAppend(RPMMIRE_STRCMP, 0, p, NULL, &mi_re, &mi_nre);
        p = _free(p);
#endif

(And yes, at some point we really should change from VENDOR_POKY to VENDOR_OE or similar.. but that is the existing setting.. so we should use it for now.)

+       init_platform++;
+     }
+     rc = (init_platform ? RPMRC_OK : RPMRC_FAIL);
diff --git a/meta/recipes-devtools/rpm/rpm_5.4.9.bb 
b/meta/recipes-devtools/rpm/rpm_5.4.9.bb
index 7d2cba4..112d11d 100644
--- a/meta/recipes-devtools/rpm/rpm_5.4.9.bb
+++ b/meta/recipes-devtools/rpm/rpm_5.4.9.bb
@@ -43,7 +43,7 @@ LICENSE = "LGPLv2.1"
  LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1"

  DEPENDS = "libpcre attr acl popt ossp-uuid file bison-native"
-PR = "r62"
+PR = "r63"

  # rpm2cpio is a shell script, which is part of the rpm src.rpm.  It is needed
  # in order to extract the distribution SRPM into a format we can extract...
@@ -86,6 +86,7 @@ SRC_URI = 
"http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.9-0.20120508.src.rpm;ex
           file://rpm-platform2.patch \
           file://rpm-remove-sykcparse-decl.patch \
           file://debugedit-segv.patch \
+     file://rpm-platform-file-fix.patch \
          "

  # Uncomment the following line to enable platform score debugging



_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Reply via email to