diff options
author | Arch Librarian <arch@canonical.com> | 2004-09-20 17:02:09 +0000 |
---|---|---|
committer | Arch Librarian <arch@canonical.com> | 2004-09-20 17:02:09 +0000 |
commit | cb99271c2b7944cc4653cb06f7c2137f3d828dd5 (patch) | |
tree | 490bba8d890576e216be74e71cd0d92d14e5ab9c /cmdline | |
parent | 5d1d073836e1b26dfa27dbc04eb9ce21bd369f67 (diff) |
* 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)
Diffstat (limited to 'cmdline')
-rw-r--r-- | cmdline/apt-get.cc | 33 |
1 files changed, 20 insertions, 13 deletions
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 |