-
Committer:
Niels Thykier
-
Date:
2013-11-27 18:46:59 UTC
-
mto:
This revision was merged to the branch mainline in
revision
419.
-
Revision ID:
git-v1:7051d5b0e968936ebbd8a93040e9a2cbe9d3a7e1
Rewrite installability tester
The new Installability Tester (IT) module replaces the remaining
C-parts. Unlike C-implementation, it does not give up and emit an
"AIEEE" half-way through.
In order to determine installability, it uses two sets "musts" and
"never". As the names suggest, the sets represents the packages that
must be (co-)installable with the package being tested and those that
can never be co-installable. For a package to be installable, "musts"
and "never" have remain disjoint.
These sets are also used to reduce the number of alternatives that are
available to satisfy a given dependency. When these sets are unable
to remove the choice completely, the new IT defers the choice to later.
This occasionally reduces backtracking as a later package may conflict
or unconditionally depend on one of the remaining alternatives.
Signed-off-by: Niels Thykier <niels@thykier.net>