diff options
author | David Kalnischkies <kalnischkies@gmail.com> | 2012-11-09 10:49:21 +0100 |
---|---|---|
committer | David Kalnischkies <kalnischkies@gmail.com> | 2012-11-09 10:49:21 +0100 |
commit | b29c448254fbc2000ea986a828cc6ec7dbbe41aa (patch) | |
tree | 9d196a18cd12c2ca6a17548df798280d3aa51db7 | |
parent | 35f6b9ea8a28022607e3921475c165c06d5ead8a (diff) | |
download | apt-b29c448254fbc2000ea986a828cc6ec7dbbe41aa.tar.gz |
* cmdline/apt-get.cc:
- do not call Mark{Install,Delete} from the autoremove code with
the FromUser bit set to avoid modifying the auto-installed bit
-rw-r--r-- | cmdline/apt-get.cc | 6 | ||||
-rw-r--r-- | debian/changelog | 3 | ||||
-rwxr-xr-x | test/integration/test-bug-604222-new-and-autoremove | 2 | ||||
-rwxr-xr-x | test/integration/test-bug-618848-always-respect-user-requests | 4 |
4 files changed, 9 insertions, 6 deletions
diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 6890b712..1bb981b2 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -1736,7 +1736,7 @@ bool DoAutomaticRemove(CacheFile &Cache) { if(Pkg.CurrentVer() != 0 && Pkg->CurrentState != pkgCache::State::ConfigFiles) - Cache->MarkDelete(Pkg, purgePkgs); + Cache->MarkDelete(Pkg, purgePkgs, 0, false); else Cache->MarkKeep(Pkg, false, false); } @@ -1750,7 +1750,7 @@ bool DoAutomaticRemove(CacheFile &Cache) { if (Pkg.CandVersion() != 0) tooMuch.insert(Pkg); - Cache->MarkDelete(Pkg, false); + Cache->MarkDelete(Pkg, false, 0, false); } // only show stuff in the list that is not yet marked for removal else if(hideAutoRemove == false && Cache[Pkg].Delete() == false) @@ -1787,7 +1787,7 @@ bool DoAutomaticRemove(CacheFile &Cache) continue; if (Debug == true) std::clog << "Save " << Pkg << " as another installed garbage package depends on it" << std::endl; - Cache->MarkInstall(Pkg, false); + Cache->MarkInstall(Pkg, false, 0, false); if (hideAutoRemove == false) ++autoRemoveCount; tooMuch.erase(Pkg); diff --git a/debian/changelog b/debian/changelog index 7644320c..b12e076d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -14,6 +14,9 @@ apt (0.9.7.7) UNRELEASED; urgency=low - don't call MarkInstall with the FromUser flag set for packages which are dependencies of APT::Never-MarkAuto-Sections matchers - no mode changes should obviously be ok for pkgDepCache::IsModeChangeOk + * cmdline/apt-get.cc: + - do not call Mark{Install,Delete} from the autoremove code with + the FromUser bit set to avoid modifying the auto-installed bit -- Jordi Mallach <jordi@debian.org> Thu, 18 Oct 2012 23:30:46 +0200 diff --git a/test/integration/test-bug-604222-new-and-autoremove b/test/integration/test-bug-604222-new-and-autoremove index 5820fb0d..ea73c577 100755 --- a/test/integration/test-bug-604222-new-and-autoremove +++ b/test/integration/test-bug-604222-new-and-autoremove @@ -51,7 +51,7 @@ Building dependency tree... MarkInstall libvtk5.4 [ i386 ] < none -> 5.4.2-8 > ( libs ) FU=0 MarkKeep libvtk5-dev [ i386 ] < none -> 5.4.2-8 > ( libdevel ) FU=0 MarkKeep libvtk5-dev [ i386 ] < none -> 5.4.2-8 > ( libdevel ) FU=0 - MarkDelete libvtk5.4 [ i386 ] < none -> 5.4.2-8 > ( libs ) FU=1 + MarkDelete libvtk5.4 [ i386 ] < none -> 5.4.2-8 > ( libs ) FU=0 The following extra packages will be installed: libavcodec52 libopenal-dev The following NEW packages will be installed: diff --git a/test/integration/test-bug-618848-always-respect-user-requests b/test/integration/test-bug-618848-always-respect-user-requests index 5148be64..1ebadf28 100755 --- a/test/integration/test-bug-618848-always-respect-user-requests +++ b/test/integration/test-bug-618848-always-respect-user-requests @@ -16,11 +16,11 @@ setupaptarchive testequal 'Reading package lists... Building dependency tree... MarkDelete libdb4.8 [ i386 ] < 1.0 > ( other ) FU=1 - MarkDelete exim4-daemon-light [ i386 ] < 1.0 > ( other ) FU=1 + MarkDelete exim4-daemon-light [ i386 ] < 1.0 > ( other ) FU=0 MarkInstall exim4-daemon-heavy [ i386 ] < none -> 1.0 > ( other ) FU=0 Ignore MarkInstall of libdb4.8 [ i386 ] < 1.0 > ( other ) as its mode (Delete) is protected MarkDelete exim4-daemon-heavy [ i386 ] < none -> 1.0 > ( other ) FU=0 - MarkDelete exim4 [ i386 ] < 1.0 > ( other ) FU=1 + MarkDelete exim4 [ i386 ] < 1.0 > ( other ) FU=0 The following packages will be REMOVED: exim4 exim4-daemon-light libdb4.8 MarkDelete exim4 [ i386 ] < 1.0 > ( other ) FU=1 |