summaryrefslogtreecommitdiff
path: root/apt-private/private-output.cc
diff options
context:
space:
mode:
authorMichael Vogt <mvo@debian.org>2014-09-05 12:03:28 +0200
committerMichael Vogt <mvo@debian.org>2014-09-05 12:05:21 +0200
commitd059cc2668f284a7db77a15d1d742326d464e963 (patch)
treee0dab302f628dccb6cea44ec49f90eea91100bc0 /apt-private/private-output.cc
parent3b5607fc31371190470074371793cb8500b5139e (diff)
Fix incorrect upgradable listing in "apt list" (thanks to Michael Musenbrock)
The "apt list" command was using only the pkgDepCache but not the pkgPolicy to figure out if a package is upgradable. This lead to incorrect display of upgradable package when the user used the policy to pin-down packages. Thanks to Michael Musenbrock for the initial patch. Closes: #753297
Diffstat (limited to 'apt-private/private-output.cc')
-rw-r--r--apt-private/private-output.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/apt-private/private-output.cc b/apt-private/private-output.cc
index 8f1fb886e..2120b7a83 100644
--- a/apt-private/private-output.cc
+++ b/apt-private/private-output.cc
@@ -229,7 +229,10 @@ 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)
+ if(P.CurrentVer() == V &&
+ state.Upgradable() &&
+ state.CandidateVer != NULL &&
+ policy->GetCandidateVer(P) != P.CurrentVer())
{
strprintf(StatusStr, _("[installed,upgradable to: %s]"),
CandidateVerStr.c_str());