summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Kalnischkies <kalnischkies@gmail.com>2011-07-24 19:06:01 +0200
committerDavid Kalnischkies <kalnischkies@gmail.com>2011-07-24 19:06:01 +0200
commit91bee655abd9091eee0687dc3689744217c6cdb4 (patch)
tree1794eb3db92696f6f72415d8a319151a56be80ab
parent3fdb6f8315de03819a82bcf9fc5ac5d15389fcb0 (diff)
move the detection for installed versions up as it is the easiest case
-rw-r--r--cmdline/apt-get.cc45
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;