discard candidates via IsInstallOk to allow override
authorDavid Kalnischkies <david@kalnischkies.de>
Tue, 11 Mar 2014 09:31:44 +0000 (10:31 +0100)
committerDavid Kalnischkies <david@kalnischkies.de>
Sun, 23 Mar 2014 11:38:43 +0000 (12:38 +0100)
commit21b3eac8f9ab8e12b43fa8998a5aa5465f29adc5
treedb422dd2b15ee2ed0b4340207c58042c9a44b795
parentbe7ce6f1d067fa62b01685e48094f3f73c95189f
discard candidates via IsInstallOk to allow override

In commit 446551c8 I changed MarkInstall to discard the candidate if the
candidate can't satisfy the dependency. This breaks interactive solvers
like aptitude which can change the candidate on-the-fly later.

In commit df77d8a5 I introduced this 'early' loop-breaking to begin with
which can't be that helpful for interactive solvers as well, but makes
perfect sense for non-interactives to stop them from exploring trees
which can't be satisfied, but it isn't perfect as ideally we would check
this before auto-installing the first dependency.

This commit therefore moves the loop into its own IsInstallOk hook so
that frontends can override this check if they want to and in exchange
removes the loop-breaking from MarkInstall itself and does it before any
dependency is installed.

Closes: 740750
apt-pkg/depcache.cc
apt-pkg/depcache.h
test/integration/test-bug-735967-lib32-to-i386-unavailable