]> git.saurik.com Git - apt.git/commitdiff
* cmdline/apt-get.cc:
authorDavid Kalnischkies <kalnischkies@gmail.com>
Fri, 9 Nov 2012 09:49:21 +0000 (10:49 +0100)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Fri, 9 Nov 2012 09:49:21 +0000 (10:49 +0100)
  - do not call Mark{Install,Delete} from the autoremove code with
    the FromUser bit set to avoid modifying the auto-installed bit

cmdline/apt-get.cc
debian/changelog
test/integration/test-bug-604222-new-and-autoremove
test/integration/test-bug-618848-always-respect-user-requests

index 6890b71209a4f55f0f413bbd7f986310cb09cb23..1bb981b20566624355eebc21d6e95158ee1f37e4 100644 (file)
@@ -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);
index 7644320c3b41e0067189417a78a3cdb2bb9b9179..b12e076d5d1e9ec7d7210df567142e8a2cb09b51 100644 (file)
@@ -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
 
index 5820fb0dc1809472c673a325e7bcbf1cddcd0a50..ea73c57759031679601ba40d30be8bdbbe91d13b 100755 (executable)
@@ -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:
index 5148be6405320bb45b4cbcbe1437244d6a0237e7..1ebadf2800cc22c2bbc39833667e15b7c94cb5d5 100755 (executable)
@@ -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