| 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); |
| |