[rpm] - Fix multiple interleaved hardlink groups during build

Panu Matilainen pmatilai at fedoraproject.org
Mon Jun 30 11:55:38 UTC 2014


commit 44dacef8e0abfecd7bb1ffec610ea5cd0f83654d
Author: Panu Matilainen <pmatilai at redhat.com>
Date:   Mon Jun 30 14:52:01 2014 +0300

    - Fix multiple interleaved hardlink groups during build

 rpm-4.11.90-hardlink-groups.patch |   25 +++++++++++++++++++++++++
 rpm.spec                          |   10 +++++++++-
 2 files changed, 34 insertions(+), 1 deletions(-)
---
diff --git a/rpm-4.11.90-hardlink-groups.patch b/rpm-4.11.90-hardlink-groups.patch
new file mode 100644
index 0000000..1845231
--- /dev/null
+++ b/rpm-4.11.90-hardlink-groups.patch
@@ -0,0 +1,25 @@
+commit c64a4b54dd16537ad0c609037e96d295a60d9ace
+Author: Florian Festi <ffesti at redhat.com>
+Date:   Mon Jun 30 13:30:38 2014 +0200
+
+    Fix handling of hardlinks during rpmbuild
+    
+    After looping over the hardlinks and writing their headers entries to the
+    archive we need to return to the first entry to make sure we do not leave out
+    other groups of hardlinked files that start between the group we are currently
+    processing
+    
+    (cherry picked from commit b7b8b3343f8668f77baf8f2cddbdd99d9d62c1f4)
+
+diff --git a/lib/rpmfi.c b/lib/rpmfi.c
+index 27186dd..ed51d44 100644
+--- a/lib/rpmfi.c
++++ b/lib/rpmfi.c
+@@ -1819,6 +1819,7 @@ static int iterWriteArchiveNextFile(rpmfi fi)
+ 		return rc;
+ 	    }
+ 	}
++	rpmfiSetFX(fi, hardlinks[0]);
+     } else {
+ 	int rc = rpmfiArchiveWriteHeader(fi);
+ 	if (rc) {
diff --git a/rpm.spec b/rpm.spec
index 08f6dec..a44b81b 100644
--- a/rpm.spec
+++ b/rpm.spec
@@ -27,7 +27,7 @@
 Summary: The RPM package management system
 Name: rpm
 Version: %{rpmver}
-Release: %{?snapver:0.%{snapver}.}1%{?dist}
+Release: %{?snapver:0.%{snapver}.}2%{?dist}
 Group: System Environment/Base
 Url: http://www.rpm.org/
 Source0: http://rpm.org/releases/testing/%{name}-%{srcver}.tar.bz2
@@ -47,6 +47,9 @@ Patch3: rpm-4.9.90-no-man-dirs.patch
 # gnupg2 comes installed by default, avoid need to drag in gnupg too
 Patch4: rpm-4.8.1-use-gpg2.patch
 
+# Patches already upstream:
+Patch100: rpm-4.11.90-hardlink-groups.patch
+
 # These are not yet upstream
 Patch302: rpm-4.7.1-geode-i686.patch
 # Probably to be upstreamed in slightly different form
@@ -284,6 +287,8 @@ Requires: rpm-libs%{_isa} = %{version}-%{release}
 %patch3 -p1 -b .no-man-dirs
 %patch4 -p1 -b .use-gpg2
 
+%patch100 -p1 -b .hardlink-groups
+
 %patch302 -p1 -b .geode
 %patch304 -p1 -b .ldflags
 %patch305 -p1 -b .dwz-debuginfo
@@ -538,6 +543,9 @@ exit 0
 %doc doc/librpm/html/*
 
 %changelog
+* Mon Jun 30 2014 Panu Matilainen <pmatilai at redhat.com> - 4.11.90-0.git12844.2
+- Fix multiple interleaved hardlink groups during build
+
 * Mon Jun 30 2014 Panu Matilainen <pmatilai at redhat.com> - 4.11.90-0.git12844.1
 - Update to rpm 4.12-alpha ((http://rpm.org/wiki/Releases/4.12.0)
 - Drop/adjust patches as appropriate


More information about the scm-commits mailing list