From 943562a4ed2ddc80b84466d85e821037937f8b5c Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Wed, 5 Feb 2025 20:37:12 +0100 Subject: solver3: Only enqueue shared dependencies at the package level 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. --- test/integration/test-apt-get-source-only | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'test/integration/test-apt-get-source-only') diff --git a/test/integration/test-apt-get-source-only b/test/integration/test-apt-get-source-only index b974146ff..882f82b33 100755 --- a/test/integration/test-apt-get-source-only +++ b/test/integration/test-apt-get-source-only @@ -40,7 +40,7 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: builddeps:foo : Depends: foo-bd but it is not installable -E: Unsatisfiable dependency group builddeps:foo:amd64=1 -> foo-bd:amd64" +E: Unsatisfiable dependency group builddeps:foo:amd64 -> foo-bd:amd64" BUILDDEPNOTFOO="Reading package lists... Building dependency tree... @@ -52,7 +52,7 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: builddeps:not-foo : Depends: not-foo-bd but it is not installable -E: Unsatisfiable dependency group builddeps:not-foo:amd64=1 -> not-foo-bd:amd64" +E: Unsatisfiable dependency group builddeps:not-foo:amd64 -> not-foo-bd:amd64" else BUILDDEPFOO="Reading package lists... Building dependency tree... -- cgit v1.2.3-70-g09d2