diff options
| author | Julian Andres Klode <jak@debian.org> | 2026-05-17 18:43:41 +0000 |
|---|---|---|
| committer | Julian Andres Klode <jak@debian.org> | 2026-05-17 18:43:41 +0000 |
| commit | 1514ddad0e542c325c55c93866507dcc96ff5c29 (patch) | |
| tree | 3d8512cfa60ba13896de4bc1d46a061e2c1628df | |
| parent | 57cff6ed0173999f28fb421df9ee9ee3bf90df2d (diff) | |
| parent | 10a05580e74e2ba5a5768d45c6f9feff216c8689 (diff) | |
Merge branch 'solver3-fix-suggests' into 'main'
solver3: Follow installed Suggests earlier
See merge request apt-team/apt!581
| -rw-r--r-- | apt-pkg/solver3.h | 6 | ||||
| -rwxr-xr-x | test/integration/test-apt-cli-why | 9 |
2 files changed, 10 insertions, 5 deletions
diff --git a/apt-pkg/solver3.h b/apt-pkg/solver3.h index 9af580b86..8d5e25906 100644 --- a/apt-pkg/solver3.h +++ b/apt-pkg/solver3.h @@ -102,15 +102,15 @@ enum class Group : uint8_t InstallManual, ObsoleteManual, + // Satisfy optional dependencies that were previously satisfied but won't otherwise be installed + SatisfySuggests, + // Automatically installed packages must come last in the group, this allows // us to see if they were installed as a dependency of a manually installed package, // allowing a simple implementation of an autoremoval code. UpgradeAuto, KeepAuto, ObsoleteAuto, - - // Satisfy optional dependencies that were previously satisfied but won't otherwise be installed - SatisfySuggests, }; // \brief This essentially describes the install state in RFC2119 terms. diff --git a/test/integration/test-apt-cli-why b/test/integration/test-apt-cli-why index 8bcd0c4d9..b7ca5d38b 100755 --- a/test/integration/test-apt-cli-why +++ b/test/integration/test-apt-cli-why @@ -6,9 +6,11 @@ TESTDIR="$(readlink -f "$(dirname "$0")")" setupenvironment configarchitecture 'amd64' -insertinstalledpackage 'root' 'all' '1' 'Depends: level-1' +insertinstalledpackage 'root' 'all' '1' 'Depends: level-1 +Suggests: level-2-suggests' insertinstalledpackage 'level-1' 'all' '1' 'Depends: level-2' insertinstalledpackage 'level-2' 'all' '1' 'Depends: level-2' +insertinstalledpackage 'level-2-suggests' 'all' '1' 'Suggests: level-2-suggests' insertpackage 'unstable' 'other-level-2' 'all' '1' 'Conflicts: level-2 Provides: level-2' insertpackage 'unstable' 'almost-level-2' 'all' '1' 'Conflicts: level-2' @@ -17,7 +19,7 @@ insertpackage 'unstable' 'provider-for-virtual-package' 'all' '1' 'Provides: vir insertpackage 'unstable' 'depends-on-not-really-virtual-package' 'all' '1' 'Depends: not-really-virtual-package' setupaptarchive -testsuccess aptmark auto level-1 level-2 +testsuccess aptmark auto level-1 level-2 level-2-suggests testsuccessequal "level-2:amd64=1 is selected for install because: @@ -76,3 +78,6 @@ testsuccessequal "virtual-package:amd64 is a virtual package, printing all provi provider-for-virtual-package:amd64=1 is undecided" apt why virtual-package testsuccessequal "not-really-virtual-package:amd64 is a virtual package without a provider" apt why not-really-virtual-package +testsuccessequal "level-2-suggests:amd64 is selected for install because: +1. root:amd64 is selected for install +2. root:amd64 Suggests level-2-suggests" apt why level-2-suggests |
