38 lines
1.1 KiB
Diff
38 lines
1.1 KiB
Diff
|
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);
|
||
|
|