From 8a46159dde2e77bb59b3430bc6aa22c9ed581581 Mon Sep 17 00:00:00 2001 From: Panu Matilainen Date: Mar 20 2012 14:40:27 +0000 Subject: - fix bad interaction with yum's test-transaction and pretrans scripts --- 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 +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 - 4.9.90-0.git11505.3 +- fix bad interaction with yum's test-transaction and pretrans scripts + * Tue Mar 20 2012 Jindrich Novy - 4.9.90-0.git11505.2 - rebuild