]> git.saurik.com Git - apt.git/commitdiff
deal with configured build-essential first
authorDavid Kalnischkies <david@kalnischkies.de>
Tue, 1 Dec 2015 10:29:17 +0000 (11:29 +0100)
committerDavid Kalnischkies <david@kalnischkies.de>
Tue, 1 Dec 2015 13:25:28 +0000 (14:25 +0100)
There is no need to check configured build-essentials for each package,
doing it once at the start ought to be enough.

Git-Dch: Ignore

apt-private/private-source.cc

index c2aabdcc6646de4fd91e18f0d847f266c05fdce5..546aa523f2a3c8cbe3d1085d5f5103beb26424ee 100644 (file)
@@ -951,6 +951,29 @@ bool DoBuildDep(CommandLine &CmdL)
    else
       StripMultiArch = true;
 
+   // deal with the build essentials first
+   {
+      std::vector<pkgSrcRecords::Parser::BuildDepRec> BuildDeps;
+
+      Configuration::Item const *Opts = _config->Tree("APT::Build-Essential");
+      if (Opts)
+        Opts = Opts->Child;
+      for (; Opts; Opts = Opts->Next)
+      {
+        if (Opts->Value.empty() == true)
+           continue;
+
+        pkgSrcRecords::Parser::BuildDepRec rec;
+        rec.Package = Opts->Value;
+        rec.Type = pkgSrcRecords::Parser::BuildDependIndep;
+        rec.Op = 0;
+        BuildDeps.push_back(rec);
+      }
+
+      if (InstallBuildDepsLoop(Cache, "APT::Build-Essential", BuildDeps, StripMultiArch, hostArch) == false)
+        return false;
+   }
+
    unsigned J = 0;
    for (const char **I = CmdL.FileList + 1; *I != 0; I++, J++)
    {
@@ -1003,22 +1026,6 @@ bool DoBuildDep(CommandLine &CmdL)
       else if (Last->BuildDepends(BuildDeps, _config->FindB("APT::Get::Arch-Only", false), StripMultiArch) == false)
         return _error->Error(_("Unable to get build-dependency information for %s"),Src.c_str());
 
-      // Also ensure that build-essential packages are present
-      Configuration::Item const *Opts = _config->Tree("APT::Build-Essential");
-      if (Opts) 
-        Opts = Opts->Child;
-      for (; Opts; Opts = Opts->Next)
-      {
-        if (Opts->Value.empty() == true)
-           continue;
-
-        pkgSrcRecords::Parser::BuildDepRec rec;
-        rec.Package = Opts->Value;
-        rec.Type = pkgSrcRecords::Parser::BuildDependIndep;
-        rec.Op = 0;
-        BuildDeps.push_back(rec);
-      }
-
       if (BuildDeps.empty() == true)
       {
         ioprintf(c1out,_("%s has no build depends.\n"),Src.c_str());