0007-parentdir-vs-requires.patch 1.08 KB
Avoid looking up files or directories that this package provides
Included upstream
diff -u --new-file --recursive rpm-5.2.0_vanilla/lib/depends.c rpm-5.2.0_parentdir-vs-requires/lib/depends.c
--- rpm-5.2.0_vanilla/lib/depends.c	2009-05-23 01:23:46.000000000 +0000
+++ rpm-5.2.0_parentdir-vs-requires/lib/depends.c	2009-09-22 17:00:24.880956271 +0000
@@ -2095,6 +2095,7 @@
     rpmtsi qi; rpmte q;
     tsortInfo tsi;
     nsType NSType = rpmdsNSType(requires);
+    const char * N = rpmdsN(requires);
     fnpyKey key;
     int teType = rpmteType(p);
     alKey pkgKey;
@@ -2128,6 +2129,23 @@
 	break;
     }
 
+    /* Avoid looking up files/directories that are "owned" by _THIS_ package. */
+    if (*N == '/') {
+    rpmfi fi = rpmteFI(p, RPMTAG_BASENAMES);
+    int bingo = 0;
+
+    fi = rpmfiInit(fi, 0);
+    while (rpmfiNext(fi) >= 0) {
+        const char * fn = rpmfiFN(fi);
+        if (strcmp(N, fn))
+        continue;
+        bingo = 1;
+        break;
+    }
+    if (bingo)
+        return 0;
+    }
+
     pkgKey = RPMAL_NOMATCH;
     key = rpmalSatisfiesDepend(al, requires, &pkgKey);