- ensure relocatable packages always get install-prefix(es) set (#979443)
This commit is contained in:
parent
1f5bf02b91
commit
2bbb203d3d
55
rpm-4.11.1-instprefix.patch
Normal file
55
rpm-4.11.1-instprefix.patch
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
commit 1ac9e84d9a4a04df7c8f659a8df676fc4f8544f0
|
||||||
|
Author: Panu Matilainen <pmatilai@redhat.com>
|
||||||
|
Date: Fri Jul 5 10:27:18 2013 +0300
|
||||||
|
|
||||||
|
Ensure relocatable packages always get install-prefix(es) set (RhBug:979443)
|
||||||
|
|
||||||
|
- Scriptlets from relocatable packages should always run with
|
||||||
|
$RPM_INSTALL_PREFIX* defined, whether actually being relocated or not.
|
||||||
|
- Fixes regression introduced by the optimization in commit
|
||||||
|
5d3018c4ed476b1b7ac18e2573af517f872cb303. We always need to call
|
||||||
|
addPrefixes() but return early from rpmRelocateFileList() when
|
||||||
|
no relocations are taking place, fixing the performance regression
|
||||||
|
introduced all the way back in cb8241dda783f7e8c143b08fecf57fe89a39c3a6
|
||||||
|
which is what 5d3018c4ed476b1b7ac18e2573af517f872cb303 was trying
|
||||||
|
to fix. Pooh :)
|
||||||
|
|
||||||
|
(cherry picked from commit 88d24b14a8e0e33e768cb74a3487acf0925b012a)
|
||||||
|
|
||||||
|
diff --git a/lib/rpmfi.c b/lib/rpmfi.c
|
||||||
|
index 0bfb5dd..185deae 100644
|
||||||
|
--- a/lib/rpmfi.c
|
||||||
|
+++ b/lib/rpmfi.c
|
||||||
|
@@ -793,7 +793,8 @@ static int addPrefixes(Header h, rpmRelocation *relocations, int numRelocations)
|
||||||
|
headerPutStringArray(h, RPMTAG_INSTPREFIXES, actualRelocations, numActual);
|
||||||
|
}
|
||||||
|
free(actualRelocations);
|
||||||
|
- return numActual;
|
||||||
|
+ /* When any relocations are present there'll be more work to do */
|
||||||
|
+ return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void saveRelocs(Header h, rpmtd bnames, rpmtd dnames, rpmtd dindexes)
|
||||||
|
@@ -835,7 +836,8 @@ void rpmRelocateFileList(rpmRelocation *relocations, int numRelocations,
|
||||||
|
int i, j;
|
||||||
|
struct rpmtd_s bnames, dnames, dindexes, fmodes;
|
||||||
|
|
||||||
|
- addPrefixes(h, relocations, numRelocations);
|
||||||
|
+ if (!addPrefixes(h, relocations, numRelocations))
|
||||||
|
+ return;
|
||||||
|
|
||||||
|
if (!_printed) {
|
||||||
|
_printed = 1;
|
||||||
|
diff --git a/lib/rpmte.c b/lib/rpmte.c
|
||||||
|
index 6afd69e..87fb391 100644
|
||||||
|
--- a/lib/rpmte.c
|
||||||
|
+++ b/lib/rpmte.c
|
||||||
|
@@ -98,7 +98,7 @@ static rpmfi getFI(rpmte p, Header h)
|
||||||
|
(RPMFI_NOHEADER | RPMFI_FLAGS_ERASE);
|
||||||
|
|
||||||
|
/* relocate stuff in header if necessary */
|
||||||
|
- if (rpmteType(p) == TR_ADDED && rpmfsFC(p->fs) > 0 && p->nrelocs) {
|
||||||
|
+ if (rpmteType(p) == TR_ADDED && rpmfsFC(p->fs) > 0) {
|
||||||
|
if (!headerIsSource(h) && !headerIsEntry(h, RPMTAG_ORIGBASENAMES)) {
|
||||||
|
rpmRelocateFileList(p->relocs, p->nrelocs, p->fs, h);
|
||||||
|
}
|
7
rpm.spec
7
rpm.spec
@ -21,7 +21,7 @@
|
|||||||
Summary: The RPM package management system
|
Summary: The RPM package management system
|
||||||
Name: rpm
|
Name: rpm
|
||||||
Version: %{rpmver}
|
Version: %{rpmver}
|
||||||
Release: %{?snapver:0.%{snapver}.}2%{?dist}
|
Release: %{?snapver:0.%{snapver}.}3%{?dist}
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
Url: http://www.rpm.org/
|
Url: http://www.rpm.org/
|
||||||
Source0: http://rpm.org/releases/testing/%{name}-%{srcver}.tar.bz2
|
Source0: http://rpm.org/releases/testing/%{name}-%{srcver}.tar.bz2
|
||||||
@ -48,6 +48,7 @@ Patch6: rpm-4.9.0-armhfp-logic.patch
|
|||||||
# Patches already in upstream
|
# Patches already in upstream
|
||||||
# Filter soname dependencies by name
|
# Filter soname dependencies by name
|
||||||
Patch100: rpm-4.11.x-filter-soname-deps.patch
|
Patch100: rpm-4.11.x-filter-soname-deps.patch
|
||||||
|
Patch101: rpm-4.11.1-instprefix.patch
|
||||||
|
|
||||||
# These are not yet upstream
|
# These are not yet upstream
|
||||||
Patch301: rpm-4.6.0-niagara.patch
|
Patch301: rpm-4.6.0-niagara.patch
|
||||||
@ -231,6 +232,7 @@ packages on a system.
|
|||||||
%patch4 -p1 -b .use-gpg2
|
%patch4 -p1 -b .use-gpg2
|
||||||
|
|
||||||
%patch100 -p1 -b .filter-soname-deps
|
%patch100 -p1 -b .filter-soname-deps
|
||||||
|
%patch101 -p1 -b .instprefix
|
||||||
|
|
||||||
%patch301 -p1 -b .niagara
|
%patch301 -p1 -b .niagara
|
||||||
%patch302 -p1 -b .geode
|
%patch302 -p1 -b .geode
|
||||||
@ -466,6 +468,9 @@ exit 0
|
|||||||
%doc COPYING doc/librpm/html/*
|
%doc COPYING doc/librpm/html/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Jul 05 2013 Panu Matilainen <pmatilai@redhat.com> - 4.11.1-3
|
||||||
|
- ensure relocatable packages always get install-prefix(es) set (#979443)
|
||||||
|
|
||||||
* Thu Jul 04 2013 Panu Matilainen <pmatilai@redhat.com> - 4.11.1-2
|
* Thu Jul 04 2013 Panu Matilainen <pmatilai@redhat.com> - 4.11.1-2
|
||||||
- fix .gnu_debuglink CRC32 after dwz, buildrequire binutils-devel (#971119)
|
- fix .gnu_debuglink CRC32 after dwz, buildrequire binutils-devel (#971119)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user