summaryrefslogtreecommitdiff
path: root/apt-pkg/depcache.cc
diff options
context:
space:
mode:
Diffstat (limited to 'apt-pkg/depcache.cc')
-rw-r--r--apt-pkg/depcache.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc
index 552a45a16..c490d89bc 100644
--- a/apt-pkg/depcache.cc
+++ b/apt-pkg/depcache.cc
@@ -151,6 +151,17 @@ bool pkgDepCache::writeStateFile(OpProgress *prog)
std::ostringstream ostr;
for(pkgCache::PkgIterator pkg=Cache->PkgBegin(); !pkg.end();pkg++) {
+
+ // clear out no longer installed pkg
+ if(PkgState[pkg->ID].Delete() || pkg.CurrentVer() == NULL)
+ PkgState[pkg->ID].AutomaticRemove = pkgCache::State::RemoveUnknown;
+
+ // check if we have new information
+ if(PkgState[pkg->ID].Flags & pkgCache::Flag::Auto) {
+ std::cout << "pkg: " << pkg.Name() << " is auto-dep" << std::endl;
+ PkgState[pkg->ID].AutomaticRemove = pkgCache::State::RemoveRequired;
+ }
+
if(PkgState[pkg->ID].AutomaticRemove != pkgCache::State::RemoveUnknown) {
ostr.str(string(""));
ostr << "Package: " << pkg.Name()