Openembedded Core Discussions
 help / color / mirror / Atom feed
* [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