From efedf5c4700bcdd22841cf6885485677a93cc31c Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Wed, 5 Feb 2025 16:29:37 +0100 Subject: solver3: Replace PropagateInstall() with Discover() Just propagate the stored clauses after we have discovered them; this is quite straightforward. We now more reliably discover common dependencies at the package level, adjust the test case accordingly. The next step is to make discovery recursive, or iterative, to build an entire recursive tree from all roots, and then we can reject reverse dependencies based on it. A bunch of refactorings are needed in the process. We remove the useless Hint enumeration and insert a flags struct into the State, such that we can record whether a package/version has been discovered, to avoid spending double time on discovery. --- test/integration/test-bug-549968-install-depends-of-not-installed | 1 + 1 file changed, 1 insertion(+) (limited to 'test') diff --git a/test/integration/test-bug-549968-install-depends-of-not-installed b/test/integration/test-bug-549968-install-depends-of-not-installed index 33cbd6ee4..ec730c7b2 100755 --- a/test/integration/test-bug-549968-install-depends-of-not-installed +++ b/test/integration/test-bug-549968-install-depends-of-not-installed @@ -38,6 +38,7 @@ Delete extracoolstuff:i386 [0] Reject:extracoolstuff:i386 () [0] Install:coolstuff:i386 (coolstuff:i386=1.0) [0] Reject:extracoolstuff:i386=1.0 (not extracoolstuff:i386) +Optional Item (0@0) coolstuff:i386 -> | extracoolstuff:i386=1.0 Optional Item (0@0) coolstuff:i386=1.0 -> | extracoolstuff:i386=1.0 Recommended packages: -- cgit v1.2.3-70-g09d2