From c8879e23ab19af1e74c09310d33d3c7c519f63b7 Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Fri, 9 Aug 2013 17:51:30 -0500 Subject: rpm: Enable compatibility with older RPM packages that have invalid platforms Some LSB packages appear to have the platform set to '%{_target_platform}' which is not a valid platform field. This causes a failure of the type: warning: package lsb-test-core-4.1.15-1.x86_64 is intended for a %{_target_platform} platform When we detect an invalid platform, fall back and try to construct a new platform name that may be valid based on the arch and os contents of the package. (This should only ever be needed by invalid or older RPM packages.) (From OE-Core rev: 6513fa327aeb7e9fdd313290c205917952eed226) Signed-off-by: Mark Hatle Signed-off-by: Saul Wold Signed-off-by: Richard Purdie --- .../rpm/rpm/rpm-lsb-compatibility.patch | 24 ++++++++++++++++++++++ meta/recipes-devtools/rpm/rpm_5.4.9.bb | 3 ++- 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-devtools/rpm/rpm/rpm-lsb-compatibility.patch (limited to 'meta/recipes-devtools/rpm') diff --git a/meta/recipes-devtools/rpm/rpm/rpm-lsb-compatibility.patch b/meta/recipes-devtools/rpm/rpm/rpm-lsb-compatibility.patch new file mode 100644 index 0000000000..7101e5cbda --- /dev/null +++ b/meta/recipes-devtools/rpm/rpm/rpm-lsb-compatibility.patch @@ -0,0 +1,24 @@ +Enable platform tag matching workaround in OE. + +When installing some LSB packages the 'platform' field in the package +appears to be invalid. Instead of relying solely on the platform comparison +we also want to generate a perceived platform based on the valid rpm contents +of arch and os. + +Upstream-Status: Pending + +Signed-off-by: Mark Hatle + +Index: rpm-5.4.9/lib/depends.c +=================================================================== +--- rpm-5.4.9.orig/lib/depends.c ++++ rpm-5.4.9/lib/depends.c +@@ -594,7 +594,7 @@ int rpmtsAddInstallElement(rpmts ts, Hea + platform = rpmExpand(arch, "-unknown-", os, NULL); + + rc = rpmPlatformScore(platform, platpat, nplatpat); +-#if defined(RPM_VENDOR_MANDRIVA) ++#if defined(RPM_VENDOR_MANDRIVA) || defined(RPM_VENDOR_OE) + /* + * If no match on platform tag, we'll try again with arch tag + * in case platform tag is inconsistent with it, which is the case diff --git a/meta/recipes-devtools/rpm/rpm_5.4.9.bb b/meta/recipes-devtools/rpm/rpm_5.4.9.bb index 3f4854eb6a..bd05336ba0 100644 --- a/meta/recipes-devtools/rpm/rpm_5.4.9.bb +++ b/meta/recipes-devtools/rpm/rpm_5.4.9.bb @@ -86,7 +86,8 @@ 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 \ + file://rpm-platform-file-fix.patch \ + file://rpm-lsb-compatibility.patch \ " # Uncomment the following line to enable platform score debugging -- cgit v1.2.3-54-g00ecf