From 9d1d4d123d282f0ed22915a95777888e92b73147 Mon Sep 17 00:00:00 2001 From: Arch Librarian Date: Mon, 20 Sep 2004 17:02:45 +0000 Subject: * 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) --- cmdline/apt-get.cc | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'cmdline') 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) { -- cgit v1.2.3