Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[rpm] Fix compatibility with RPM < 4.12.x (Contributes to JB#28828)
  • Loading branch information
thp committed May 27, 2015
1 parent 3c02ac4 commit cd50f6f
Show file tree
Hide file tree
Showing 2 changed files with 78 additions and 0 deletions.
@@ -0,0 +1,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

2 changes: 2 additions & 0 deletions rpm/libzypp.spec
Expand Up @@ -7,6 +7,7 @@ Release: 1
Source: %{name}-%{version}.tar.bz2
Source1: %{name}-rpmlintrc
Patch0: 0001-zypp-PublicKey.cc-Use-GPG_BINARY-from-KeyRing.cc.patch
Patch1: 0002-Revert-Collect-and-execute-posttrans-scripts-delayed.patch
BuildRequires: cmake
BuildRequires: openssl-devel
BuildRequires: libudev-devel
Expand Down Expand Up @@ -76,6 +77,7 @@ Authors:
%prep
%setup -q -n %{name}-%{version}/%{name}
%patch0 -p1
%patch1 -p1

%build
mkdir -p build
Expand Down

0 comments on commit cd50f6f

Please sign in to comment.