summaryrefslogtreecommitdiff
path: root/cmdline
diff options
context:
space:
mode:
authorArch Librarian <arch@canonical.com>2004-09-20 17:02:45 +0000
committerArch Librarian <arch@canonical.com>2004-09-20 17:02:45 +0000
commit9d1d4d123d282f0ed22915a95777888e92b73147 (patch)
tree338032c88b25588aa1f8b2fd5486762485d57b6d /cmdline
parent57e2d8ee90ba33606c471672137de2cc1f4a098c (diff)
* Patch from Otavio Salvador to avoid listing suggests/...
Author: mdz Date: 2003-08-08 23:48:48 GMT * Patch from Otavio Salvador to avoid listing suggests/recommends which are Provided by a package which is already installed (Closes: #200395)
Diffstat (limited to 'cmdline')
-rw-r--r--cmdline/apt-get.cc18
1 files changed, 17 insertions, 1 deletions
diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc
index 6aaa4e8c2..ab069ddc2 100644
--- a/cmdline/apt-get.cc
+++ b/cmdline/apt-get.cc
@@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: apt-get.cc,v 1.135 2003/08/08 23:45:00 mdz Exp $
+// $Id: apt-get.cc,v 1.136 2003/08/08 23:48:48 mdz Exp $
/* ######################################################################
apt-get - Cover for dpkg
@@ -1527,6 +1527,22 @@ bool DoInstall(CommandLine &CmdL)
pkgCache::DepIterator Start;
pkgCache::DepIterator End;
D.GlobOr(Start,End);
+
+ /*
+ * If this is a virtual package, we need to check the list of
+ * packages that provide it and see if any of those are
+ * installed
+ */
+ pkgCache::PrvIterator Prv = Start.TargetPkg().ProvidesList();
+ bool providedBySomething = false;
+ for (; Prv.end() != true; Prv++)
+ if ((*Cache)[Prv.OwnerPkg()].InstVerIter(*Cache).end() == false) {
+ providedBySomething = true;
+ break;
+ }
+
+ if (providedBySomething) continue;
+
do
{
if (Start->Type == pkgCache::Dep::Suggests) {