0002-Revert-Collect-and-execute-posttrans-scripts-delayed.patch 2.64 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
From 09a9767a6919a986f3ac1add444a6760007d5d78 Mon Sep 17 00:00:00 2001
From: Thomas Perl <m@thp.io>
Date: Wed, 27 May 2015 19:05:22 +0200
Subject: [PATCH] Revert "Collect and execute %posttrans scripts delayed
 (Fate#313506)"

This temporarily reverts commit 40f1e5737baa7082850925573fdd2b45d91deade.

The reason is that the old RPM doesn't have the --noposttrans flag (as already
established). This was added in this commit:

    https://github.com/rpm-software-management/rpm/commit/23e82afcbc8a9ddde13f0d20c75a549196920139

The commit in libzypp that introduced usage of this is the following:

    https://github.com/openSUSE/libzypp/commit/40f1e5737baa7082850925573fdd2b45d91deade

Following the breadcrumbs (Fate#313506) with a Google search from there leads us to:

    https://bugzilla.novell.com/show_bug.cgi?id=786318

So basically libzypp uses this to move the posttrans scriptlets to after the
transaction has finished.

As a stopgap measure, we revert that patch in our newer libzypp package to
avoid that specific error. Once the new RPM is integrated, we can remove the
revert and get the right posttrans behavior.
---
 zypp/target/TargetImpl.cc | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/zypp/target/TargetImpl.cc b/zypp/target/TargetImpl.cc
index 89506ed..cd15cbc 100644
--- a/zypp/target/TargetImpl.cc
+++ b/zypp/target/TargetImpl.cc
@@ -45,7 +45,6 @@
 #include "zypp/target/TargetCallbackReceiver.h"
 #include "zypp/target/rpm/librpmDb.h"
 #include "zypp/target/CommitPackageCache.h"
-#include "zypp/target/RpmPostTransCollector.h"
 
 #include "zypp/parser/ProductFileReader.h"
 
@@ -1508,7 +1507,6 @@ namespace zypp
       MIL << "TargetImpl::commit(<list>" << policy_r << ")" << steps.size() << endl;
 
       bool abort = false;
-      RpmPostTransCollector postTransCollector( _root );
       std::vector<sat::Solvable> successfullyInstalledPackages;
       TargetImpl::PoolItemList remaining;
 
@@ -1585,8 +1583,6 @@ namespace zypp
             try
             {
               progress.tryLevel( target::rpm::InstallResolvableReport::RPM_NODEPS_FORCE );
-	      if ( postTransCollector.collectScriptFromPackage( localfile ) )
-		flags |= rpm::RPMINST_NOPOSTTRANS;
 	      rpm().installPackage( localfile, flags );
               HistoryLog().install(citem);
 
@@ -1731,12 +1727,6 @@ namespace zypp
 
       } // for
 
-      // process all remembered posttrans scripts.
-      if ( !abort )
-	postTransCollector.executeScripts();
-      else
-	postTransCollector.discardScripts();
-
       // Check presence of update scripts/messages. If aborting,
       // at least log omitted scripts.
       if ( ! successfullyInstalledPackages.empty() )
-- 
2.1.4