summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apt-pkg/depcache.cc2
-rwxr-xr-xtest/integration/test-bug-992993-marked-cycles30
2 files changed, 31 insertions, 1 deletions
diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc
index 76e8f5357..7c14d0e05 100644
--- a/apt-pkg/depcache.cc
+++ b/apt-pkg/depcache.cc
@@ -2240,7 +2240,7 @@ static bool MarkPackage(pkgCache::PkgIterator const &Pkg,
std::unique_ptr<APT::CacheFilter::Matcher> &IsAVersionedKernelPackage,
std::unique_ptr<APT::CacheFilter::Matcher> &IsProtectedKernelPackage)
{
- if (Ver.end() || (fullyExplored[Pkg->ID] && PkgState[Pkg->ID].Marked))
+ if (Ver.end() || PkgState[Pkg->ID].Marked)
return true;
if (IsPkgInBoringState(Pkg, PkgState))
diff --git a/test/integration/test-bug-992993-marked-cycles b/test/integration/test-bug-992993-marked-cycles
new file mode 100755
index 000000000..a569040cf
--- /dev/null
+++ b/test/integration/test-bug-992993-marked-cycles
@@ -0,0 +1,30 @@
+#!/bin/sh
+set -e
+
+TESTDIR="$(readlink -f "$(dirname "$0")")"
+. "$TESTDIR/framework"
+setupenvironment
+configarchitecture 'amd64'
+
+insertinstalledpackage 'librust-nom-4-dev' 'all' '4.2.3-3' 'Provides: librust-nom-dev (= 4.2.3-3)'
+insertinstalledpackage 'librust-nom-dev' 'all' '5.0.1-4' 'Depends: librust-nom+default-dev (= 5.0.1-4)'
+insertinstalledpackage 'librust-nom+default-dev ' 'all' '5.0.1-4' 'Depends: librust-nom-dev (= 5.0.1-4)'
+insertinstalledpackage 'librust-nom-4+std-dev' 'all' '4.2.3-3' 'Provides: librust-nom+default-dev (= 4.2.3-3)'
+
+insertinstalledpackage 'foo' 'all' '1' 'Depends: librust-nom-4-dev, librust-nom-dev, librust-nom-4+std-dev'
+
+for AUTO in '' 'librust-nom-4-dev' 'librust*' 'foo' '.*'; do
+ msgmsg 'Running test with these packages marked auto:' "$AUTO"
+ testsuccess aptmark manual '.*'
+ if [ -n "$AUTO" ]; then
+ testsuccess aptmark auto "$AUTO"
+ fi
+
+ testsuccess aptget check
+ testsuccess aptget autoremove -s
+
+ testsuccess aptget upgrade
+ testsuccess aptget full-upgrade
+
+ testsuccess apt show foo
+done