summaryrefslogtreecommitdiff
path: root/dselect/pkgdepcon.cc
diff options
context:
space:
mode:
Diffstat (limited to 'dselect/pkgdepcon.cc')
-rw-r--r--dselect/pkgdepcon.cc9
1 files changed, 5 insertions, 4 deletions
diff --git a/dselect/pkgdepcon.cc b/dselect/pkgdepcon.cc
index 712c683f8..95f96e5cc 100644
--- a/dselect/pkgdepcon.cc
+++ b/dselect/pkgdepcon.cc
@@ -414,8 +414,7 @@ packagelist::deppossatisfied(deppossi *possi, perpackagestate **fixbyupgrade)
return false;
}
}
- if (possi->verrel != DPKG_RELATION_NONE)
- return false;
+
deppossi *provider;
for (provider = possi->ed->depended.installed;
@@ -427,7 +426,8 @@ packagelist::deppossatisfied(deppossi *possi, perpackagestate **fixbyupgrade)
provider->up->up->clientdata &&
!useavailable(provider->up->up) &&
would_like_to_install(provider->up->up->clientdata->selected,
- provider->up->up))
+ provider->up->up) &&
+ pkg_virtual_deppossi_satisfied(possi, provider))
return true;
}
for (provider = possi->ed->depended.available;
@@ -438,7 +438,8 @@ packagelist::deppossatisfied(deppossi *possi, perpackagestate **fixbyupgrade)
provider->up->up->set == possi->up->up->set) ||
!provider->up->up->clientdata ||
!would_like_to_install(provider->up->up->clientdata->selected,
- provider->up->up))
+ provider->up->up) ||
+ !pkg_virtual_deppossi_satisfied(possi, provider))
continue;
if (useavailable(provider->up->up))
return true;