summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Vogt <mvo@debian.org>2014-09-05 12:50:15 +0200
committerMichael Vogt <mvo@debian.org>2014-09-05 12:50:15 +0200
commit592d06b6f3c2ef2ae47c38005ae3c4e96a0841f2 (patch)
treec29e508df8bff2bb8935c7447eda3f022ad46175
parentd059cc2668f284a7db77a15d1d742326d464e963 (diff)
Ensure we have a Policy in CacheFile.BuildDepCache()
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.
-rw-r--r--apt-pkg/cachefile.cc3
-rw-r--r--apt-private/private-cacheset.cc5
-rw-r--r--apt-private/private-output.cc5
3 files changed, 5 insertions, 8 deletions
diff --git a/apt-pkg/cachefile.cc b/apt-pkg/cachefile.cc
index 0fd40106f..ea3d45480 100644
--- a/apt-pkg/cachefile.cc
+++ b/apt-pkg/cachefile.cc
@@ -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;
diff --git a/apt-private/private-cacheset.cc b/apt-private/private-cacheset.cc
index 159e1d8f1..e37e7b227 100644
--- a/apt-private/private-cacheset.cc
+++ b/apt-private/private-cacheset.cc
@@ -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));
diff --git a/apt-private/private-output.cc b/apt-private/private-output.cc
index 2120b7a83..522f7682d 100644
--- a/apt-private/private-output.cc
+++ b/apt-private/private-output.cc
@@ -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());