Ensure we have a Policy in CacheFile.BuildDepCache()
authorMichael Vogt <mvo@debian.org>
Fri, 5 Sep 2014 10:50:15 +0000 (12:50 +0200)
committerMichael Vogt <mvo@debian.org>
Fri, 5 Sep 2014 10:50:15 +0000 (12:50 +0200)
This partly reverts d059cc2 and fixes bug #753297 in a more
general way by ensuring that CacheFile.BuildDepCache() builds
a pkgPolicy if there isn't one already.

apt-pkg/cachefile.cc
apt-private/private-cacheset.cc
apt-private/private-output.cc

index 0fd4010..ea3d454 100644 (file)
@@ -143,6 +143,9 @@ bool pkgCacheFile::BuildDepCache(OpProgress *Progress)
    if (DCache != NULL)
       return true;
 
+   if (BuildPolicy(Progress) == false)
+      return false;
+
    DCache = new pkgDepCache(Cache,Policy);
    if (_error->PendingError() == true)
       return false;
index 159e1d8..e37e7b2 100644 (file)
@@ -55,10 +55,7 @@ bool GetLocalitySortedVersionSet(pkgCacheFile &CacheFile,
       }
       else if (_config->FindB("APT::Cmd::Upgradable") == true)
       {
-         pkgPolicy *policy = CacheFile.GetPolicy();
-         if(P.CurrentVer() && 
-            state.Upgradable() && 
-            policy->GetCandidateVer(P) != P.CurrentVer())
+         if(P.CurrentVer() && state.Upgradable())
          {
              pkgPolicy *policy = CacheFile.GetPolicy();
              output_set.insert(policy->GetCandidateVer(P));
index 2120b7a..522f768 100644 (file)
@@ -229,10 +229,7 @@ void ListSingleVersion(pkgCacheFile &CacheFile, pkgRecords &records,       /*{{{*/
       std::string CandidateVerStr = GetCandidateVersion(CacheFile, P);
       std::string InstalledVerStr = GetInstalledVersion(CacheFile, P);
       std::string StatusStr;
-      if(P.CurrentVer() == V && 
-         state.Upgradable() &&
-         state.CandidateVer != NULL &&
-         policy->GetCandidateVer(P) != P.CurrentVer())
+      if(P.CurrentVer() == V && state.Upgradable())
       {
          strprintf(StatusStr, _("[installed,upgradable to: %s]"),
                    CandidateVerStr.c_str());