const char * name;
availableIndexEntry result;
int resultCnt;
+ int obsolete;
availablePackage alp;
int rc;
if (al->providesHash == NULL && al->fileHash == NULL)
rpmalMakeIndex(al);
- if (*name == '/') {
+ obsolete = (rpmdsTagN(ds) == RPMTAG_OBSOLETENAME);
+ if (!obsolete && *name == '/') {
/* First, look for files "contained" in package ... */
ret = rpmalAllFileSatisfiesDepend(al, ds);
if (ret != NULL && *ret != NULL)
if (alp->p == NULL) // deleted
continue;
(void) rpmdsSetIx(alp->provides, result[i].entryIx);
+
+ /* Obsoletes are on package name, filter out other provide matches */
+ if (obsolete && !rstreq(rpmdsN(alp->provides), rpmteN(alp->p)))
+ continue;
+
rc = 0;
if (rpmdsIx(alp->provides) >= 0)
rc = rpmdsCompare(alp->provides, ds);