[rpm] - fix bad interaction with yum's test-transaction and pretrans scripts

Panu Matilainen pmatilai at fedoraproject.org
Tue Mar 20 14:40:43 UTC 2012


commit 8a46159dde2e77bb59b3430bc6aa22c9ed581581
Author: Panu Matilainen <pmatilai at redhat.com>
Date:   Tue Mar 20 16:40:27 2012 +0200

    - fix bad interaction with yum's test-transaction and pretrans scripts

 rpm-4.9.90-rpmte-fileinfo.patch |   28 ++++++++++++++++++++++++++++
 rpm.spec                        |    8 +++++++-
 2 files changed, 35 insertions(+), 1 deletions(-)
---
diff --git a/rpm-4.9.90-rpmte-fileinfo.patch b/rpm-4.9.90-rpmte-fileinfo.patch
new file mode 100644
index 0000000..af2c3b3
--- /dev/null
+++ b/rpm-4.9.90-rpmte-fileinfo.patch
@@ -0,0 +1,28 @@
+commit 274dbf557d1cac90f7c278f9b6d6af05997d92df
+Author: Panu Matilainen <pmatilai at redhat.com>
+Date:   Tue Mar 20 16:32:54 2012 +0200
+
+    Don't free up file info sets on transaction test-runs, take II
+    
+    - Despite commit cef18c94807af0935b7796c462aab8ed39f0f376, we'd still
+      end up freeing the file info sets via rpmteClose() while going
+      through the test-transaction packages. This together with commit
+      06a2f1269b035a3a76464149834f2a5a8c4e89f2 caused install failures
+      on packages which have %pretrans scriptlets, if a test-transaction
+      was first performed on the same transaction set that gets used
+      for the "real" transaction as well. How wonderfully obscure...
+
+diff --git a/lib/rpmte.c b/lib/rpmte.c
+index d1e4f87..65e1e76 100644
+--- a/lib/rpmte.c
++++ b/lib/rpmte.c
+@@ -917,7 +917,8 @@ int rpmteProcess(rpmte te, pkgGoal goal)
+ {
+     /* Only install/erase resets pkg file info */
+     int scriptstage = (goal != PKG_INSTALL && goal != PKG_ERASE);
+-    int reset_fi = (scriptstage == 0);
++    int test = (rpmtsFlags(te->ts) & RPMTRANS_FLAG_TEST);
++    int reset_fi = (scriptstage == 0 && test == 0);
+     int failed = 1;
+ 
+     /* Dont bother opening for elements without pre/posttrans scripts */
diff --git a/rpm.spec b/rpm.spec
index beabff2..cf02b9d 100644
--- a/rpm.spec
+++ b/rpm.spec
@@ -22,7 +22,7 @@
 Summary: The RPM package management system
 Name: rpm
 Version: %{rpmver}
-Release: %{?snapver:0.%{snapver}.}2%{?dist}
+Release: %{?snapver:0.%{snapver}.}3%{?dist}
 Group: System Environment/Base
 Url: http://www.rpm.org/
 Source0: http://rpm.org/releases/testing/%{name}-%{srcver}.tar.bz2
@@ -44,6 +44,7 @@ Patch5: rpm-4.9.90-armhfp.patch
 Patch6: rpm-4.9.0-armhfp-logic.patch
 
 # Patches already in upstream
+Patch200: rpm-4.9.90-rpmte-fileinfo.patch
 
 # These are not yet upstream
 Patch301: rpm-4.6.0-niagara.patch
@@ -213,6 +214,8 @@ packages on a system.
 %patch3 -p1 -b .no-man-dirs
 %patch4 -p1 -b .use-gpg2
 
+%patch200 -p1 -b .rpmte-fileinfo
+
 %patch301 -p1 -b .niagara
 %patch302 -p1 -b .geode
 %patch304 -p1 -b .ldflags
@@ -438,6 +441,9 @@ exit 0
 %doc COPYING doc/librpm/html/*
 
 %changelog
+* Tue Mar 20 2012 Panu Matilainen <pmatilai at redhat.com> - 4.9.90-0.git11505.3
+- fix bad interaction with yum's test-transaction and pretrans scripts
+
 * Tue Mar 20 2012 Jindrich Novy <jnovy at redhat.com> - 4.9.90-0.git11505.2
 - rebuild
 


More information about the scm-commits mailing list