diff --git a/rpm-4.10.1-skipped-hardlinks.patch b/rpm-4.10.1-skipped-hardlinks.patch new file mode 100644 index 0000000..567480d --- /dev/null +++ b/rpm-4.10.1-skipped-hardlinks.patch @@ -0,0 +1,32 @@ +commit df4eed5debcdc9209e1f5e66d17230861a55a7fc +Author: Panu Matilainen +Date: Wed Oct 10 10:37:34 2012 +0300 + + Filter out skipped files on hardlink checking (RhBug:864622) + + - Legitimately skipped files (links) must not cause install-errors. + This has always been broken, but the errors were completely ignored + on install prior to rpm 4.10. + - Backported from commit eeea54c76b130da3769ae10f7db2c2fcfb5c57be + +diff --git a/lib/fsm.c b/lib/fsm.c +index e4ffcaf..4840708 100644 +--- a/lib/fsm.c ++++ b/lib/fsm.c +@@ -1964,12 +1964,14 @@ static int fsmStage(FSM_t fsm, fileStage stage) + fsm->links = fsm->li->next; + fsm->li->next = NULL; + if (fsm->goal == FSM_PKGINSTALL && fsm->li->linksLeft) { ++ rpmfs fs = rpmteGetFileStates(fsmGetTe(fsm)); + for (nlink_t i = 0 ; i < fsm->li->linksLeft; i++) { +- if (fsm->li->filex[i] < 0) ++ int ix = fsm->li->filex[i]; ++ if (ix < 0 || XFA_SKIPPING(rpmfsGetAction(fs, ix))) + continue; + rc = CPIOERR_MISSING_HARDLINK; + if (fsm->failedFile && *fsm->failedFile == NULL) { +- fsm->ix = fsm->li->filex[i]; ++ fsm->ix = ix; + if (!fsmMapPath(fsm)) { + /* Out-of-sync hardlinks handled as sub-state */ + *fsm->failedFile = fsm->path; diff --git a/rpm.spec b/rpm.spec index 39f6c04..79b216c 100644 --- a/rpm.spec +++ b/rpm.spec @@ -21,7 +21,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/rpm-4.10.x/%{name}-%{srcver}.tar.bz2 @@ -45,6 +45,7 @@ Patch5: rpm-4.9.90-armhfp.patch Patch6: rpm-4.9.0-armhfp-logic.patch # Patches already in upstream +Patch100: rpm-4.10.1-skipped-hardlinks.patch # These are not yet upstream Patch301: rpm-4.6.0-niagara.patch @@ -218,6 +219,8 @@ packages on a system. %patch3 -p1 -b .no-man-dirs %patch4 -p1 -b .use-gpg2 +%patch100 -p1 -b .skipped-hardlinks + %patch301 -p1 -b .niagara %patch302 -p1 -b .geode %patch304 -p1 -b .ldflags @@ -448,6 +451,9 @@ exit 0 %doc COPYING doc/librpm/html/* %changelog +* Wed Oct 10 2012 Panu Matilainen - 4.10.1-2 +- account for intentionally skipped files when verifying hardlinks (#864622) + * Wed Oct 03 2012 Panu Matilainen - 4.10.1-1 - update to 4.10.1 ((http://rpm.org/wiki/Releases/4.10.1)