//----------------------------------------------------------------------------
-// helper functions for distupgrade
+// helper functions for distupgrade and installation order
//----------------------------------------------------------------------------
PoolItemList SATResolver::whoProvides(Capability cap) {
PoolItemList itemList;
Id p, *pp;
- Repo *installedRepo = sat::Pool::instance().systemRepo().get();
for (pp = pool_whatprovides(_SATPool, cap.id()) ; (p = *pp++) != 0; ) {
- Solvable *solvable = _SATPool->solvables + p;
PoolItem item = _pool.find (sat::Solvable(p));
- if (item &&
- (!installedRepo || solvable->repo != installedRepo) ) {
+ if (item) {
itemList.push_back (item);
MIL << item << " provides " << cap << endl;
}
otherVendorFound = true;
} else if ( provider.status().isToBeUninstalled() ) {
MIL << " IGNORE relation match (package is tagged to delete): " << provider << endl;
- }
+ } else if ( provider.status().isInstalled() ) {
+ MIL << " IGNORE relation match (package is tagged to delete): " << provider << endl;
+ }
else {
FindMap::iterator it = providersMap.find( provider->name() );