Просмотр исходного кода

purge packages in 'rc' state, thanks Rogier! (Closes: #150831)

David Kalnischkies лет назад: 16
Родитель
Сommit
6cb1583a73
2 измененных файлов с 7 добавлено и 3 удалено
  1. 6 3
      cmdline/apt-get.cc
  2. 1 0
      debian/changelog

+ 6 - 3
cmdline/apt-get.cc

@@ -844,9 +844,11 @@ struct TryToRemove {
    pkgCacheFile* Cache;
    pkgCacheFile* Cache;
    pkgProblemResolver* Fix;
    pkgProblemResolver* Fix;
    bool FixBroken;
    bool FixBroken;
+   bool PurgePkgs;
    unsigned long AutoMarkChanged;
    unsigned long AutoMarkChanged;
 
 
-   TryToRemove(pkgCacheFile &Cache, pkgProblemResolver &PM) : Cache(&Cache), Fix(&PM) {};
+   TryToRemove(pkgCacheFile &Cache, pkgProblemResolver &PM) : Cache(&Cache), Fix(&PM),
+				PurgePkgs(_config->FindB("APT::Get::Purge", false)) {};
 
 
    void operator() (pkgCache::VerIterator const &Ver)
    void operator() (pkgCache::VerIterator const &Ver)
    {
    {
@@ -856,10 +858,11 @@ struct TryToRemove {
       Fix->Protect(Pkg);
       Fix->Protect(Pkg);
       Fix->Remove(Pkg);
       Fix->Remove(Pkg);
 
 
-      if (Pkg->CurrentVer == 0)
+      if ((Pkg->CurrentVer == 0 && PurgePkgs == false) ||
+	  (PurgePkgs == true && Pkg->CurrentState == pkgCache::State::NotInstalled))
 	 ioprintf(c1out,_("Package %s is not installed, so not removed\n"),Pkg.FullName(true).c_str());
 	 ioprintf(c1out,_("Package %s is not installed, so not removed\n"),Pkg.FullName(true).c_str());
       else
       else
-	 Cache->GetDepCache()->MarkDelete(Pkg,_config->FindB("APT::Get::Purge",false));
+	 Cache->GetDepCache()->MarkDelete(Pkg, PurgePkgs);
    }
    }
 };
 };
 									/*}}}*/
 									/*}}}*/

+ 1 - 0
debian/changelog

@@ -32,6 +32,7 @@ apt (0.8.0~pre1) UNRELASED; urgency=low
   * cmdline/apt-get.cc:
   * cmdline/apt-get.cc:
     - let APT::Get::Arch-Only in build-dep default to false again
     - let APT::Get::Arch-Only in build-dep default to false again
       (Closes: #592628) Thanks Mohamed Amine IL Idrissi for report!
       (Closes: #592628) Thanks Mohamed Amine IL Idrissi for report!
+    - purge packages in 'rc' state, thanks Rogier! (Closes: #150831)
 
 
  -- David Kalnischkies <kalnischkies@gmail.com>  Wed, 11 Aug 2010 19:36:21 +0200
  -- David Kalnischkies <kalnischkies@gmail.com>  Wed, 11 Aug 2010 19:36:21 +0200