lib/rpmts.c: Ensure that we check both providename and filepaths When looking up a missing dependencies, such as /bin/sh, we need to lookup in both the providename and filepaths DB, not just the filepaths DB. Upstream-Status: Pending Signed-off-by: Mark Hatle Index: rpm-5.4.14/lib/rpmts.c =================================================================== --- rpm-5.4.14.orig/lib/rpmts.c +++ rpm-5.4.14/lib/rpmts.c @@ -410,8 +410,8 @@ fprintf(stderr, "--> %s(%p,%p,%p)\n", __ if (sdb == NULL) continue; - /* Look for a matching Provides: in suggested universe. */ - rpmtag = (*keyp == '/' ? RPMTAG_FILEPATHS : RPMTAG_PROVIDENAME); + rpmtag = RPMTAG_PROVIDENAME; + do { mi = rpmmiInit(sdb, rpmtag, keyp, keylen); while ((h = rpmmiNext(mi)) != NULL) { size_t hnamelen; @@ -446,6 +446,15 @@ fprintf(stderr, "--> %s(%p,%p,%p)\n", __ bhnamelen = hnamelen; } mi = rpmmiFree(mi); + + if (bh == NULL && *keyp == '/' && rpmtag == RPMTAG_PROVIDENAME) { + rpmtag = RPMTAG_FILEPATHS; + continue; + } + + break; + } while (1); + } /* Is there a suggested resolution? */