--- rpm-4.4.2/lib/transaction.c.ghostconflicts 2005-06-11 15:37:34.000000000 -0400
+++ rpm-4.4.2/lib/transaction.c 2005-11-28 13:25:25.000000000 -0500
@@ -165,6 +165,7 @@
for (i = 0; i < sharedCount; i++, shared++) {
int otherFileNum, fileNum;
int isCfgFile;
+ int isGhostFile;
otherFileNum = shared->otherFileNum;
(void) rpmfiSetFX(otherFi, otherFileNum);
@@ -177,6 +178,7 @@
FColor &= tscolor;
isCfgFile = ((rpmfiFFlags(otherFi) | rpmfiFFlags(fi)) & RPMFILE_CONFIG);
+ isGhostFile = ((rpmfiFFlags(otherFi) & RPMFILE_GHOST) && (rpmfiFFlags(fi) & RPMFILE_GHOST));
#ifdef DYING
/* XXX another tedious segfault, assume file state normal. */
@@ -187,6 +189,9 @@
if (XFA_SKIPPING(fi->actions[fileNum]))
continue;
+ if (isGhostFile)
+ continue;
+
if (rpmfiCompare(otherFi, fi)) {
int rConflicts;