| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
The previous use of decision here conflicted with the use
of decision level and the general notion of having made a
decision, because the assignment might have been propagated
as a matter of fact.
|
| |
|
|
|
| |
Not needed so far because we export a default 3.0 APT_SOLVER, but
quite useful if we stop doing so (next commit).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce a new function, LongWhyStr() that returns a longer
reason for why something is being installed (or not).
This does the same path walk as the other function does, but
it renders the clauses at each level, and one per line, so
the whole output is a lot more informative.
It is a separate function to keep the existing debug messages
use the simple single line implication graph
We remove the other special case in AddWork() for empty solutions
to mke use of the general case in Solve() instead, and then adapt
the case in Solve() to the same case as in Enqueue(). This also
happens to fix the bug that when we encountered an empty clause
we just printed the clause had no solution, but not how we got
to install the package with the clause.
Adapt the test suite for the changes which is an annoying amount
of paperwork.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Dependencies shared by all versions are enqueued at the package
level, so avoid enqueuing duplicates at the version level. This
presumably has no meaningful impact on performance, potentially
a negative performance impact on some workloads as we now need
to find the duplicates again; it can become useful when there
is a lot of backtracking.
More importantly though this improves error messages, because
now we can say that "all versions of foo depend on X", rather
than saying "foo=1 depends on X" and you are left wondering
why we did not select "foo=2".
In this commit though, improved error messages are not implemented,
they depend on redesigning the reason tracking to use clauses.
Also the rationale tracking includes a lot more dependencies of
the form "pkg:arch=version -> pkg:arch" which are annoying. Improved
error messages should fold them into one node.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Highlights:
- test-bug-618848-always-respect-user-requests: (Do not) Support 3.0 solver
A manually installed package is never removed just because we request
the removal of its dependency in solver3.
- test-bug-657695-resolver-breaks-on-virtuals: Support 3.0 solver
For manually installed packages, solver 3.0 would require some
new xserver-xorg-video-driver to Conflict+Replace+Provides the
old one (once the logic is implemented), but that does seem
reasonable.
- test-bug-720597-build-dep-purge: Support 3.0 solver
This needs a simple aptmark auto because pkga is removed by the
build-dep. But further adjustments are necessary because it weirdly
tested for no autoremovable packages before installing pkgc.
- test-bug-960705-*: Support 3.0 solver
Bit awkward to deal with; notably the protect to conflict doesn't
actually work anymore and that is a feature these days.
|
|
|
This has the same behavior as --only-source name.
|