summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmdline/apt-get.cc18
-rw-r--r--debian/changelog4
2 files changed, 20 insertions, 2 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) {
diff --git a/debian/changelog b/debian/changelog
index dffa1171c..da82fc20a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -21,8 +21,10 @@ apt (0.5.9) unstable; urgency=low
* Patch from Otavio Salvador to avoid listing suggests/recommends for
packages which are selected for installation at the same time as the
package which suggests/recommends them (Closes: #200102)
+ * Patch from Otavio Salvador to avoid listing suggests/recommends which
+ are Provided by a package which is already installed (Closes: #200395)
- -- Matt Zimmerman <mdz@debian.org> Fri, 8 Aug 2003 19:31:25 -0400
+ -- Matt Zimmerman <mdz@debian.org> Fri, 8 Aug 2003 19:47:19 -0400
apt (0.5.8) unstable; urgency=medium