* [PATCH 0/2] RPM changes
@ 2013-08-09 22:51 Mark Hatle
2013-08-09 22:51 ` [PATCH 1/2] rpm: Change references from RPM_VENDOR_POKY to RPM_VENDOR_OE Mark Hatle
2013-08-09 22:51 ` [PATCH 2/2] rpm: Enable compatibility with older RPM packages that have invalid platforms Mark Hatle
0 siblings, 2 replies; 3+ messages in thread
From: Mark Hatle @ 2013-08-09 22:51 UTC (permalink / raw)
To: openembedded-core
We first to a long overdue cleanup and change the RPM_VENDOR_POKY to
RPM_VENDOR_OE. Then we fix a bug with older RPM packages that has been
found when attempting to install some of the LSB test packages.
The change was verified by <corneliux.stoicescu@intel.com> who reported
the issue to me.
Mark Hatle (2):
rpm: Change references from RPM_VENDOR_POKY to RPM_VENDOR_OE
rpm: Enable compatibility with older RPM packages that have invalid
platforms
.../rpm/rpm/python-rpm-rpmsense.patch | 4 ++--
.../rpm/rpm/rpm-lsb-compatibility.patch | 24 ++++++++++++++++++++++
meta/recipes-devtools/rpm/rpm/rpm-no-loopmsg.patch | 2 +-
.../rpm/rpm/rpm-platform-file-fix.patch | 2 +-
meta/recipes-devtools/rpm/rpm/rpm-platform.patch | 8 ++++----
meta/recipes-devtools/rpm/rpm/rpm-platform2.patch | 6 +++---
.../rpm/rpm/rpm-scriptletexechelper.patch | 22 ++++++++++----------
meta/recipes-devtools/rpm/rpm_5.4.9.bb | 3 ++-
8 files changed, 48 insertions(+), 23 deletions(-)
create mode 100644 meta/recipes-devtools/rpm/rpm/rpm-lsb-compatibility.patch
--
1.8.3
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 1/2] rpm: Change references from RPM_VENDOR_POKY to RPM_VENDOR_OE
2013-08-09 22:51 [PATCH 0/2] RPM changes Mark Hatle
@ 2013-08-09 22:51 ` Mark Hatle
2013-08-09 22:51 ` [PATCH 2/2] rpm: Enable compatibility with older RPM packages that have invalid platforms Mark Hatle
1 sibling, 0 replies; 3+ messages in thread
From: Mark Hatle @ 2013-08-09 22:51 UTC (permalink / raw)
To: openembedded-core
Change the #define references to match RPM_VENDOR_OE.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
---
.../rpm/rpm/python-rpm-rpmsense.patch | 4 ++--
meta/recipes-devtools/rpm/rpm/rpm-no-loopmsg.patch | 2 +-
.../rpm/rpm/rpm-platform-file-fix.patch | 2 +-
meta/recipes-devtools/rpm/rpm/rpm-platform.patch | 8 ++++----
meta/recipes-devtools/rpm/rpm/rpm-platform2.patch | 6 +++---
.../rpm/rpm/rpm-scriptletexechelper.patch | 22 +++++++++++-----------
6 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/meta/recipes-devtools/rpm/rpm/python-rpm-rpmsense.patch b/meta/recipes-devtools/rpm/rpm/python-rpm-rpmsense.patch
index 0fae571..c1fab3e 100644
--- a/meta/recipes-devtools/rpm/rpm/python-rpm-rpmsense.patch
+++ b/meta/recipes-devtools/rpm/rpm/python-rpm-rpmsense.patch
@@ -17,7 +17,7 @@ Index: rpm-5.4.9/python/rpmmodule.c
REGISTER_ENUM(RPMSENSE_NOTEQUAL);
REGISTER_ENUM(RPMSENSE_FIND_REQUIRES);
-#if defined(RPM_VENDOR_MANDRIVA)
-+#if defined(RPM_VENDOR_MANDRIVA) || defined(RPM_VENDOR_WINDRIVER) || defined(RPM_VENDOR_POKY)
++#if defined(RPM_VENDOR_MANDRIVA) || defined(RPM_VENDOR_WINDRIVER) || defined(RPM_VENDOR_OE)
REGISTER_ENUM(RPMSENSE_PREREQ);
REGISTER_ENUM(RPMSENSE_SCRIPT_PRE);
REGISTER_ENUM(RPMSENSE_SCRIPT_POST);
@@ -26,7 +26,7 @@ Index: rpm-5.4.9/python/rpmmodule.c
+ REGISTER_ENUM(RPMSENSE_SCRIPT_POSTUN);
+#endif
+
-+#if defined(RPM_VENDOR_WINDRIVER) || defined(RPM_VENDOR_POKY)
++#if defined(RPM_VENDOR_WINDRIVER) || defined(RPM_VENDOR_OE)
+ REGISTER_ENUM(RPMSENSE_MISSINGOK);
#endif
diff --git a/meta/recipes-devtools/rpm/rpm/rpm-no-loopmsg.patch b/meta/recipes-devtools/rpm/rpm/rpm-no-loopmsg.patch
index d81e25a..c4b4c03 100644
--- a/meta/recipes-devtools/rpm/rpm/rpm-no-loopmsg.patch
+++ b/meta/recipes-devtools/rpm/rpm/rpm-no-loopmsg.patch
@@ -12,7 +12,7 @@ diff -urN rpm-5.4.0.orig/lib/order.c rpm-5.4.0/lib/order.c
rpmlogLvl msglvl = (anaconda || (rpmtsDFlags(ts) & RPMDEPS_FLAG_DEPLOOPS))
? RPMLOG_WARNING : RPMLOG_ERR;
-#if defined(RPM_VENDOR_MANDRIVA) /* loop-detection-optional-loglevel */
-+#if defined(RPM_VENDOR_MANDRIVA) || defined(RPM_VENDOR_POKY) /* loop-detection-optional-loglevel */
++#if defined(RPM_VENDOR_MANDRIVA) || defined(RPM_VENDOR_OE) /* loop-detection-optional-loglevel */
// Report loops as debug-level message by default (7 = RPMLOG_DEBUG), overridable
msglvl = rpmExpandNumeric("%{?_loop_detection_loglevel}%{?!_loop_detection_loglevel:7}");
#endif
diff --git a/meta/recipes-devtools/rpm/rpm/rpm-platform-file-fix.patch b/meta/recipes-devtools/rpm/rpm/rpm-platform-file-fix.patch
index 0f391d2..1432b16 100644
--- a/meta/recipes-devtools/rpm/rpm/rpm-platform-file-fix.patch
+++ b/meta/recipes-devtools/rpm/rpm/rpm-platform-file-fix.patch
@@ -12,7 +12,7 @@ index e676601..9140bbe 100644
#endif
}
-+#if !defined(RPM_VENDOR_POKY) /* Skip the explicit-platform */
++#if !defined(RPM_VENDOR_OE) /* 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);
diff --git a/meta/recipes-devtools/rpm/rpm/rpm-platform.patch b/meta/recipes-devtools/rpm/rpm/rpm-platform.patch
index 9e167d8..172510c 100644
--- a/meta/recipes-devtools/rpm/rpm/rpm-platform.patch
+++ b/meta/recipes-devtools/rpm/rpm/rpm-platform.patch
@@ -14,7 +14,7 @@ diff -ur rpm-5.4.0.orig/lib/depends.c rpm-5.4.0/lib/depends.c
}
-#if defined(RPM_VENDOR_WINDRIVER)
-+#if defined(RPM_VENDOR_WINDRIVER) && !defined(RPM_VENDOR_POKY)
++#if defined(RPM_VENDOR_WINDRIVER) && !defined(RPM_VENDOR_OE)
/*
* If we're capable of installing multiple colors
* but at least one of the packages are white (0), we
@@ -23,7 +23,7 @@ diff -ur rpm-5.4.0.orig/lib/depends.c rpm-5.4.0/lib/depends.c
}
-#if defined(RPM_VENDOR_WINDRIVER)
-+#if defined(RPM_VENDOR_WINDRIVER) && !defined(RPM_VENDOR_POKY)
++#if defined(RPM_VENDOR_WINDRIVER) && !defined(RPM_VENDOR_OE)
/* Is "compat" compatible w/ arch? */
int _isCompatibleArch(const char * arch, const char * compat)
{
@@ -32,7 +32,7 @@ diff -ur rpm-5.4.0.orig/lib/depends.c rpm-5.4.0/lib/depends.c
if (arch == NULL || (parch = rpmteA(p)) == NULL)
continue;
-#if defined(RPM_VENDOR_WINDRIVER)
-+#if defined(RPM_VENDOR_WINDRIVER) && !defined(RPM_VENDOR_POKY)
++#if defined(RPM_VENDOR_WINDRIVER) && !defined(RPM_VENDOR_OE)
/* XXX hackery for alias matching. */
if (!_isCompatibleArch(arch, parch))
continue;
@@ -40,7 +40,7 @@ diff -ur rpm-5.4.0.orig/lib/depends.c rpm-5.4.0/lib/depends.c
return rc;
}
-+#if defined(RPM_VENDOR_WINDRIVER) || defined(RPM_VENDOR_POKY)
++#if defined(RPM_VENDOR_WINDRIVER) || defined(RPM_VENDOR_OE)
+#define _ETC_RPM_SYSINFO "%{_etcrpm}/sysinfo"
+#else
+#define _ETC_RPM_SYSINFO SYSCONFIGDIR "/sysinfo"
diff --git a/meta/recipes-devtools/rpm/rpm/rpm-platform2.patch b/meta/recipes-devtools/rpm/rpm/rpm-platform2.patch
index 6683d8f..79124bb 100644
--- a/meta/recipes-devtools/rpm/rpm/rpm-platform2.patch
+++ b/meta/recipes-devtools/rpm/rpm/rpm-platform2.patch
@@ -22,7 +22,7 @@ Index: rpm-5.4.9/lib/rpmrc.c
{
-#if defined(RPM_VENDOR_WINDRIVER)
-+#if defined(RPM_VENDOR_WINDRIVER) || defined(RPM_VENDOR_POKY)
++#if defined(RPM_VENDOR_WINDRIVER) || defined(RPM_VENDOR_OE)
addMacro(NULL, "_usrlibrpm", NULL, __usrlibrpm, RMIL_DEFAULT);
addMacro(NULL, "_etcrpm", NULL, __etcrpm, RMIL_DEFAULT);
addMacro(NULL, "_vendor", NULL, "%{?_host_vendor}%{!?_host_vendor:wrs}", RMIL_DEFAULT);
@@ -38,7 +38,7 @@ Index: rpm-5.4.9/lib/rpmrc.c
}
if (!parseCVOG(p, &cvog) && cvog != NULL) {
-+#if defined(RPM_VENDOR_POKY)
++#if defined(RPM_VENDOR_OE)
+ char * _gnu = NULL;
+
+ addMacro(NULL, "_platform_cpu", NULL, cvog->cpu, -1);
@@ -98,7 +98,7 @@ Index: rpm-5.4.9/python/rpmmodule.c
-#if defined(RPM_VENDOR_WINDRIVER)
- platform = rpmExpand(arch, "-%{_host_vendor}", "-%{_host_os}%{?_gnu}", NULL);
-+#if defined(RPM_VENDOR_WINDRIVER) || defined(RPM_VENDOR_POKY)
++#if defined(RPM_VENDOR_WINDRIVER) || defined(RPM_VENDOR_OE)
+ platform = rpmExpand(arch, "-%{_host_vendor}", "-%{_host_os}%{?_host_gnu}%{!?_host_gnu:%{?_gnu}}", NULL);
#else
platform = rpmExpand(arch, "-", "%{_vendor}", "-", "%{_os}", NULL);
diff --git a/meta/recipes-devtools/rpm/rpm/rpm-scriptletexechelper.patch b/meta/recipes-devtools/rpm/rpm/rpm-scriptletexechelper.patch
index 8a9e712..f4e4228 100644
--- a/meta/recipes-devtools/rpm/rpm/rpm-scriptletexechelper.patch
+++ b/meta/recipes-devtools/rpm/rpm/rpm-scriptletexechelper.patch
@@ -20,7 +20,7 @@ Index: rpm-5.4.9/lib/psm.c
int xx;
int i;
-+#ifdef RPM_VENDOR_POKY
++#ifdef RPM_VENDOR_OE
+ const char * scriptletWrapper = rpmExpand("%{?_cross_scriptlet_wrapper}", NULL);
+#endif
+
@@ -41,7 +41,7 @@ Index: rpm-5.4.9/lib/psm.c
+ argc = 0;
+ }
+
-+#ifdef RPM_VENDOR_POKY
++#ifdef RPM_VENDOR_OE
+ if (scriptletWrapper && *scriptletWrapper) {
+ argv[argc++] = scriptletWrapper;
+ argv[argc] = rpmtsRootDir(ts);
@@ -69,7 +69,7 @@ Index: rpm-5.4.9/lib/psm.c
if (rpmIsDebug() &&
- (!strcmp(argv[0], "/bin/sh") || !strcmp(argv[0], "/bin/bash")))
+ (!strcmp(argv[0], "/bin/sh") || !strcmp(argv[0], "/bin/bash"))
-+#ifdef RPM_VENDOR_POKY
++#ifdef RPM_VENDOR_OE
+ || (scriptletWrapper && *scriptletWrapper && !strcmp(argv[1], "/bin/sh"))
+ || (scriptletWrapper && *scriptletWrapper && !strcmp(argv[1], "/bin/bash"))
+#endif
@@ -81,7 +81,7 @@ Index: rpm-5.4.9/lib/psm.c
{ const char * rootDir = rpmtsRootDir(ts);
if (!rpmtsChrootDone(ts) && rootDir != NULL &&
-+#ifdef RPM_VENDOR_POKY
++#ifdef RPM_VENDOR_OE
+ !(scriptletWrapper && *scriptletWrapper) &&
+#endif
!(rootDir[0] == '/' && rootDir[1] == '\0'))
@@ -90,7 +90,7 @@ Index: rpm-5.4.9/lib/psm.c
xx = Chroot(rootDir);
/*@=modobserver@*/
}
-+#ifdef RPM_VENDOR_POKY
++#ifdef RPM_VENDOR_OE
+ if (!rpmtsChrootDone(ts) && rootDir != NULL &&
+ (scriptletWrapper && *scriptletWrapper) &&
+ !(rootDir[0] == '/' && rootDir[1] == '\0'))
@@ -105,7 +105,7 @@ Index: rpm-5.4.9/lib/psm.c
/* XXX running %verifyscript/%sanitycheck doesn't have psm->te */
{ rpmtxn _parent = (psm && psm->te ? psm->te->txn : NULL);
+
-+#ifdef RPM_VENDOR_POKY
++#ifdef RPM_VENDOR_OE
+ const char * scriptletWrapper = rpmExpand("%{?_cross_scriptlet_wrapper}", NULL);
+ if (scriptletWrapper && *scriptletWrapper)
+ rc = rpmpsmNext(psm, PSM_CHROOT_OUT);
@@ -118,7 +118,7 @@ Index: rpm-5.4.9/lib/psm.c
else
xx = rpmtxnCommit(rpmtsGetRdb(ts)->db_txn);
rpmtsGetRdb(ts)->db_txn = NULL;
-+#ifdef RPM_VENDOR_POKY
++#ifdef RPM_VENDOR_OE
+ if (scriptletWrapper && *scriptletWrapper)
+ rc = rpmpsmNext(psm, PSM_CHROOT_IN);
+#endif
@@ -126,13 +126,13 @@ Index: rpm-5.4.9/lib/psm.c
case PSM_TRIGGERS:
/* Run triggers in other package(s) this package sets off. */
if (rpmtsFlags(ts) & RPMTRANS_FLAG_TEST) break;
-+#ifdef RPM_VENDOR_POKY
++#ifdef RPM_VENDOR_OE
+ const char * scriptletWrapper = rpmExpand("%{?_cross_scriptlet_wrapper}", NULL);
+ if (scriptletWrapper && *scriptletWrapper)
+ rc = rpmpsmNext(psm, PSM_CHROOT_OUT);
+#endif
rc = runTriggers(psm);
-+#ifdef RPM_VENDOR_POKY
++#ifdef RPM_VENDOR_OE
+ if (scriptletWrapper && *scriptletWrapper)
+ rc = rpmpsmNext(psm, PSM_CHROOT_IN);
+#endif
@@ -143,14 +143,14 @@ Index: rpm-5.4.9/lib/psm.c
F_SET(psm, GOTTRIGGERS);
}
if (psm->triggers != NULL)
-+#ifdef RPM_VENDOR_POKY
++#ifdef RPM_VENDOR_OE
+ {
+ const char * scriptletWrapper = rpmExpand("%{?_cross_scriptlet_wrapper}", NULL);
+ if (scriptletWrapper && *scriptletWrapper)
+ rc = rpmpsmNext(psm, PSM_CHROOT_OUT);
+#endif
rc = runImmedTriggers(psm);
-+#ifdef RPM_VENDOR_POKY
++#ifdef RPM_VENDOR_OE
+ if (scriptletWrapper && *scriptletWrapper)
+ rc = rpmpsmNext(psm, PSM_CHROOT_IN);
+ }
--
1.8.3
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/2] rpm: Enable compatibility with older RPM packages that have invalid platforms
2013-08-09 22:51 [PATCH 0/2] RPM changes Mark Hatle
2013-08-09 22:51 ` [PATCH 1/2] rpm: Change references from RPM_VENDOR_POKY to RPM_VENDOR_OE Mark Hatle
@ 2013-08-09 22:51 ` Mark Hatle
1 sibling, 0 replies; 3+ messages in thread
From: Mark Hatle @ 2013-08-09 22:51 UTC (permalink / raw)
To: openembedded-core
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.)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
---
.../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
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 0000000..7101e5c
--- /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 <mark.hatle@windriver.com>
+
+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 3f4854e..bd05336 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
--
1.8.3
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-08-09 22:51 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-09 22:51 [PATCH 0/2] RPM changes Mark Hatle
2013-08-09 22:51 ` [PATCH 1/2] rpm: Change references from RPM_VENDOR_POKY to RPM_VENDOR_OE Mark Hatle
2013-08-09 22:51 ` [PATCH 2/2] rpm: Enable compatibility with older RPM packages that have invalid platforms Mark Hatle
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox