- fix regression on paths shared between a real file/dir and a ghost
This commit is contained in:
parent
3b3e157787
commit
8020bfa4fe
50
rpm-4.11-beta-skip-ghost.patch
Normal file
50
rpm-4.11-beta-skip-ghost.patch
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
commit a712252392eca75443ca45c10a72873cabec7963
|
||||||
|
Author: Panu Matilainen <pmatilai@redhat.com>
|
||||||
|
Date: Mon Jan 28 12:50:39 2013 +0200
|
||||||
|
|
||||||
|
Be more careful about skipping shared file/directory creation
|
||||||
|
|
||||||
|
- Only skip shared file/dir creation if its actually being created
|
||||||
|
by another package. Previously we could've decided to skip an entry
|
||||||
|
where the other file was also being skipped for some other reason.
|
||||||
|
- Ensure %ghost entries always have FA_SKIP on install, previously
|
||||||
|
they often were FA_CREATE which makes no sense for %ghost. We dont
|
||||||
|
encounter %ghosts at all during install in the FSM as they dont
|
||||||
|
exist in the payload, but the file disposition calculations need
|
||||||
|
to take them into account now that we're avoiding redundant creates.
|
||||||
|
- Fixes a regression from commit f7f5f88f9f3d6587e747b034ccb64a3f00ff4e1e
|
||||||
|
which unearthed the %ghost FA_CREATE issue, reported here:
|
||||||
|
http://lists.fedoraproject.org/pipermail/buildsys/2013-January/004047.html
|
||||||
|
|
||||||
|
diff --git a/lib/transaction.c b/lib/transaction.c
|
||||||
|
index 6e9e025..397f23d 100644
|
||||||
|
--- a/lib/transaction.c
|
||||||
|
+++ b/lib/transaction.c
|
||||||
|
@@ -572,7 +572,8 @@ assert(otherFi != NULL);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
/* Skip create on all but the first instance of a shared file */
|
||||||
|
- if (rpmfsGetAction(otherFs, otherFileNum) != FA_UNKNOWN)
|
||||||
|
+ rpmFileAction oaction = rpmfsGetAction(otherFs, otherFileNum);
|
||||||
|
+ if (oaction != FA_UNKNOWN && !XFA_SKIPPING(oaction))
|
||||||
|
rpmfsSetAction(fs, i, FA_SKIP);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -760,6 +761,17 @@ static void skipInstallFiles(const rpmts ts, rpmte p)
|
||||||
|
ix = rpmfiDX(fi);
|
||||||
|
drc[ix]++;
|
||||||
|
|
||||||
|
+ /*
|
||||||
|
+ * Always skip %ghosts on install.
|
||||||
|
+ * XXX: Should we skip directory creation if there are only
|
||||||
|
+ * %ghosts in it? Traditionally we create the (empty) directory, so
|
||||||
|
+ * preserving that behavior for now at least: leave the refcount alone.
|
||||||
|
+ */
|
||||||
|
+ if (rpmfiFFlags(fi) & RPMFILE_GHOST) {
|
||||||
|
+ rpmfsSetAction(fs, i, FA_SKIP);
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
/* Don't bother with skipped files */
|
||||||
|
if (XFA_SKIPPING(rpmfsGetAction(fs, i))) {
|
||||||
|
drc[ix]--; dff[ix] = 1;
|
4
rpm.spec
4
rpm.spec
@ -46,6 +46,7 @@ Patch5: rpm-4.9.90-armhfp.patch
|
|||||||
Patch6: rpm-4.9.0-armhfp-logic.patch
|
Patch6: rpm-4.9.0-armhfp-logic.patch
|
||||||
|
|
||||||
# Patches already in upstream
|
# Patches already in upstream
|
||||||
|
Patch100: rpm-4.11-beta-skip-ghost.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
|
||||||
@ -219,6 +220,8 @@ packages on a system.
|
|||||||
%patch3 -p1 -b .no-man-dirs
|
%patch3 -p1 -b .no-man-dirs
|
||||||
%patch4 -p1 -b .use-gpg2
|
%patch4 -p1 -b .use-gpg2
|
||||||
|
|
||||||
|
%patch100 -p1 -b .skip-ghost
|
||||||
|
|
||||||
%patch301 -p1 -b .niagara
|
%patch301 -p1 -b .niagara
|
||||||
%patch302 -p1 -b .geode
|
%patch302 -p1 -b .geode
|
||||||
%patch304 -p1 -b .ldflags
|
%patch304 -p1 -b .ldflags
|
||||||
@ -454,6 +457,7 @@ exit 0
|
|||||||
* Mon Jan 28 2013 Panu Matilainen <pmatilai@redhat.com> - 4.11.0-0.beta1.2
|
* Mon Jan 28 2013 Panu Matilainen <pmatilai@redhat.com> - 4.11.0-0.beta1.2
|
||||||
- armv7hl and armv7hnl should not have -mthumb (#901901)
|
- armv7hl and armv7hnl should not have -mthumb (#901901)
|
||||||
- fix duplicate directory ownership between rpm and rpm-build (#894201)
|
- fix duplicate directory ownership between rpm and rpm-build (#894201)
|
||||||
|
- fix regression on paths shared between a real file/dir and a ghost
|
||||||
|
|
||||||
* Mon Dec 10 2012 Panu Matilainen <pmatilai@redhat.com> - 4.11.0-0.beta1.1
|
* Mon Dec 10 2012 Panu Matilainen <pmatilai@redhat.com> - 4.11.0-0.beta1.1
|
||||||
- update to 4.11 beta
|
- update to 4.11 beta
|
||||||
|
Loading…
Reference in New Issue
Block a user