summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Andres Klode <jak@debian.org>2026-05-17 20:09:37 +0200
committerJulian Andres Klode <jak@debian.org>2026-05-17 20:10:59 +0200
commit10a05580e74e2ba5a5768d45c6f9feff216c8689 (patch)
tree3d8512cfa60ba13896de4bc1d46a061e2c1628df
parent57cff6ed0173999f28fb421df9ee9ee3bf90df2d (diff)
solver3: Follow installed Suggests earlier
We accidentally followed "keepauto" and friends earlier, breaking `apt why` for suggested packages. Reported-By: uau on IRC
-rw-r--r--apt-pkg/solver3.h6
-rwxr-xr-xtest/integration/test-apt-cli-why9
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