diff options
author | David Kalnischkies <kalnischkies@gmail.com> | 2011-07-24 19:06:01 +0200 |
---|---|---|
committer | David Kalnischkies <kalnischkies@gmail.com> | 2011-07-24 19:06:01 +0200 |
commit | 91bee655abd9091eee0687dc3689744217c6cdb4 (patch) | |
tree | 1794eb3db92696f6f72415d8a319151a56be80ab | |
parent | 3fdb6f8315de03819a82bcf9fc5ac5d15389fcb0 (diff) |
move the detection for installed versions up as it is the easiest case
-rw-r--r-- | cmdline/apt-get.cc | 45 |
1 files changed, 20 insertions, 25 deletions
diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 721ce9dc7..9f9a9e589 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -2780,6 +2780,26 @@ bool DoBuildDep(CommandLine &CmdL) (*D).Package.c_str()); } + pkgCache::VerIterator IV = (*Cache)[Pkg].InstVerIter(*Cache); + if (IV.end() == false) + { + if (_config->FindB("Debug::BuildDeps",false) == true) + cout << " Is installed\n"; + + if (D->Version.empty() == true || + Cache->VS().CheckDep(IV.VerStr(),(*D).Op,(*D).Version.c_str()) == true) + { + skipAlternatives = hasAlternatives; + continue; + } + + if (_config->FindB("Debug::BuildDeps",false) == true) + cout << " ...but the installed version doesn't meet the version requirement\n"; + + if (((*D).Op & pkgCache::Dep::LessEq) == pkgCache::Dep::LessEq) + return _error->Error(_("Failed to satisfy %s dependency for %s: Installed package %s is too new"), + Last->BuildDepType((*D).Type), Src.c_str(), Pkg.FullName(true).c_str()); + } if ((*D).Version[0] != '\0') { // Versioned dependency @@ -2834,31 +2854,6 @@ bool DoBuildDep(CommandLine &CmdL) } } - pkgCache::VerIterator IV = (*Cache)[Pkg].InstVerIter(*Cache); - if (IV.end() == false) - { - if (_config->FindB("Debug::BuildDeps",false) == true) - cout << " Is installed\n"; - - if (Cache->VS().CheckDep(IV.VerStr(),(*D).Op,(*D).Version.c_str()) == true) - { - skipAlternatives = hasAlternatives; - continue; - } - - if (_config->FindB("Debug::BuildDeps",false) == true) - cout << " ...but the installed version doesn't meet the version requirement\n"; - - if (((*D).Op & pkgCache::Dep::LessEq) == pkgCache::Dep::LessEq) - { - return _error->Error(_("Failed to satisfy %s dependency for %s: Installed package %s is too new"), - Last->BuildDepType((*D).Type), - Src.c_str(), - Pkg.FullName(true).c_str()); - } - } - - if (_config->FindB("Debug::BuildDeps",false) == true) cout << " Trying to install " << (*D).Package << endl; |