From cb99271c2b7944cc4653cb06f7c2137f3d828dd5 Mon Sep 17 00:00:00 2001 From: Arch Librarian Date: Mon, 20 Sep 2004 17:02:09 +0000 Subject: * Skip version check if a build-dependency is provided ... Author: mdz Date: 2003-07-22 03:00:19 GMT * Skip version check if a build-dependency is provided by an installed package (Closes: #126938) --- cmdline/apt-get.cc | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) (limited to 'cmdline') diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 75d375453..c81538a23 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.131 2003/07/22 01:49:26 mdz Exp $ +// $Id: apt-get.cc,v 1.132 2003/07/22 03:00:19 mdz Exp $ /* ###################################################################### apt-get - Cover for dpkg @@ -2093,25 +2093,32 @@ bool DoBuildDep(CommandLine &CmdL) * installed */ pkgCache::PrvIterator Prv = Pkg.ProvidesList(); - for (; Prv.end() != true; Prv++) + for (; Prv.end() != true; Prv++) { if ((*Cache)[Prv.OwnerPkg()].InstVerIter(*Cache).end() == false) break; + } // Get installed version and version we are going to install pkgCache::VerIterator IV = (*Cache)[Pkg].InstVerIter(*Cache); - pkgCache::VerIterator CV = (*Cache)[Pkg].CandidateVerIter(*Cache); - for (; CV.end() != true; CV++) - { - if (Cache->VS().CheckDep(CV.VerStr(),(*D).Op,(*D).Version.c_str()) == true) - break; + if (Prv.end() == true || (*D).Version != "") { + /* We either have a versioned dependency (so a provides won't do) + or nothing is providing this package */ + + pkgCache::VerIterator CV = (*Cache)[Pkg].CandidateVerIter(*Cache); + + for (; CV.end() != true; CV++) + { + if (Cache->VS().CheckDep(CV.VerStr(),(*D).Op,(*D).Version.c_str()) == true) + break; + } + if (CV.end() == true) + return _error->Error(_("%s dependency for %s cannot be satisfied " + "because no available versions of package %s " + "can satisfy version requirements"), + Last->BuildDepType((*D).Type),Src.c_str(), + (*D).Package.c_str()); } - if (CV.end() == true) - return _error->Error(_("%s dependency for %s cannot be satisfied " - "because no available versions of package %s " - "can satisfy version requirements"), - Last->BuildDepType((*D).Type),Src.c_str(), - (*D).Package.c_str()); /* * TODO: if we depend on a version lower than what we already have -- cgit v1.2.3