// Find the proper cache slot
StateCache &State = PkgState[I->ID];
State.iFlags = 0;
- State.InstallReason = Manual;
// Figure out the install version
State.CandidateVer = GetCandidateVer(I);
if(FileExists(state)) {
state_file.Open(state, FileFd::ReadOnly);
int file_size = state_file.Size();
- Prog->OverallProgress(0, file_size, 1,
- _("Reading state information"));
+ if(Prog != NULL)
+ Prog->OverallProgress(0, file_size, 1,
+ _("Reading state information"));
pkgTagFile tagfile(&state_file);
pkgTagSection section;
// Silently ignore unknown packages and packages with no actual
// version.
if(!pkg.end() && !pkg.VersionList().end()) {
- short reason = section.FindI("Install-Reason",pkgDepCache::Manual);
- PkgState[pkg->ID].InstallReason = (ChangedReason)reason;
+ short reason = section.FindI("Auto-Installed", 0);
+ if(reason > 0)
+ PkgState[pkg->ID].Flags |= Flag::Auto;
if(_config->FindB("Debug::pkgAutoRemove",false))
- std::cout << "Install-Reason for: " << pkgname
- << " is " << reason << std::endl;
+ std::cout << "Auto-Installed : " << pkgname << std::endl;
amt+=section.size();
- Prog->OverallProgress(amt, file_size, 1,
- _("Reading state information"));
+ if(Prog != NULL)
+ Prog->OverallProgress(amt, file_size, 1,
+ _("Reading state information"));
}
- Prog->OverallProgress(file_size, file_size, 1,
- _("Reading state information"));
+ if(Prog != NULL)
+ Prog->OverallProgress(file_size, file_size, 1,
+ _("Reading state information"));
}
}
FileFd StateFile;
string state = _config->FindDir("Dir::State") + "pkgstates";
+ if(_config->FindB("Debug::pkgAutoRemove",false))
+ std::clog << "pkgDepCache::writeStateFile()" << std::endl;
+
if(!StateFile.Open(state, FileFd::WriteEmpty))
return _error->Error(_("Failed to write StateFile %s"),
state.c_str());
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].InstallReason = Manual;
-
- // check if we have new information
- if(PkgState[pkg->ID].Flags & pkgCache::Flag::Auto) {
- if(_config->FindI("Debug::pkgAutoRemove",false))
- std::clog << "pkg: " << pkg.Name() << " is auto-dep" << std::endl;
- PkgState[pkg->ID].InstallReason = Libapt;
- }
-
- if(PkgState[pkg->ID].InstallReason != Manual) {
+ if(PkgState[pkg->ID].Flags & Flag::Auto) {
+ if(_config->FindB("Debug::pkgAutoRemove",false))
+ std::clog << "AutoInstal: " << pkg.Name() << std::endl;
ostr.str(string(""));
ostr << "Package: " << pkg.Name()
- << "\nInstall-Reason: "
- << (int)(PkgState[pkg->ID].InstallReason) << "\n\n";
+ << "\nAuto-Installed: 1\n\n";
StateFile.Write(ostr.str().c_str(), ostr.str().size());
}
}