diff options
-rw-r--r-- | apt-private/private-source.cc | 10 | ||||
-rwxr-xr-x | test/integration/test-apt-get-build-dep | 62 |
2 files changed, 65 insertions, 7 deletions
diff --git a/apt-private/private-source.cc b/apt-private/private-source.cc index 5cd0a6628..96344d7ab 100644 --- a/apt-private/private-source.cc +++ b/apt-private/private-source.cc @@ -668,16 +668,12 @@ bool DoBuildDep(CommandLine &CmdL) // 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) + for (auto && opt: _config->FindVector("APT::Build-Essential")) { - if (Opts->Value.empty() == true) + if (opt.empty()) continue; - pkgSrcRecords::Parser::BuildDepRec rec; - rec.Package = Opts->Value; + rec.Package = std::move(opt); rec.Type = pkgSrcRecords::Parser::BuildDependIndep; rec.Op = 0; BuildDeps.push_back(rec); diff --git a/test/integration/test-apt-get-build-dep b/test/integration/test-apt-get-build-dep index 4fa77961b..403de8f35 100755 --- a/test/integration/test-apt-get-build-dep +++ b/test/integration/test-apt-get-build-dep @@ -8,6 +8,7 @@ setupenvironment configarchitecture 'i386' insertpackage 'stable' 'build-essential' 'i386' '1' +insertpackage 'stable' 'build-essential2' 'i386' '1' insertpackage 'stable' 'build-depends' 'i386' '1' insertpackage 'stable' 'build-depends-arch' 'i386' '1' insertpackage 'stable' 'build-depends-indep' 'i386' '1' @@ -56,6 +57,67 @@ testsuccessequal "Note, using file './foobar.dsc' to get the build dependencies Reading package lists... Building dependency tree... The following packages will be REMOVED: + build-conflicts build-conflicts-arch build-conflicts-indep +The following NEW packages will be installed: + build-depends build-depends-arch build-depends-indep build-essential2 +0 upgraded, 4 newly installed, 3 to remove and 0 not upgraded. +Remv build-conflicts [1] +Remv build-conflicts-arch [1] +Remv build-conflicts-indep [1] +Inst build-depends (1 stable [i386]) +Inst build-depends-arch (1 stable [i386]) +Inst build-depends-indep (1 stable [i386]) +Inst build-essential2 (1 stable [i386]) +Conf build-depends (1 stable [i386]) +Conf build-depends-arch (1 stable [i386]) +Conf build-depends-indep (1 stable [i386]) +Conf build-essential2 (1 stable [i386])" aptget build-dep --simulate ./foobar.dsc -o APT::Build-Essential="build-essential2" + +testsuccessequal "Note, using file './foobar.dsc' to get the build dependencies +Reading package lists... +Building dependency tree... +The following packages will be REMOVED: + build-conflicts build-conflicts-arch build-conflicts-indep +The following NEW packages will be installed: + build-depends build-depends-arch build-depends-indep +0 upgraded, 3 newly installed, 3 to remove and 0 not upgraded. +Remv build-conflicts [1] +Remv build-conflicts-arch [1] +Remv build-conflicts-indep [1] +Inst build-depends (1 stable [i386]) +Inst build-depends-arch (1 stable [i386]) +Inst build-depends-indep (1 stable [i386]) +Conf build-depends (1 stable [i386]) +Conf build-depends-arch (1 stable [i386]) +Conf build-depends-indep (1 stable [i386])" aptget build-dep --simulate ./foobar.dsc -o APT::Build-Essential="," + +testsuccessequal "Note, using file './foobar.dsc' to get the build dependencies +Reading package lists... +Building dependency tree... +The following packages will be REMOVED: + build-conflicts build-conflicts-arch build-conflicts-indep +The following NEW packages will be installed: + build-depends build-depends-arch build-depends-indep build-essential + build-essential2 +0 upgraded, 5 newly installed, 3 to remove and 0 not upgraded. +Remv build-conflicts [1] +Remv build-conflicts-arch [1] +Remv build-conflicts-indep [1] +Inst build-depends (1 stable [i386]) +Inst build-depends-arch (1 stable [i386]) +Inst build-depends-indep (1 stable [i386]) +Inst build-essential (1 stable [i386]) +Inst build-essential2 (1 stable [i386]) +Conf build-depends (1 stable [i386]) +Conf build-depends-arch (1 stable [i386]) +Conf build-depends-indep (1 stable [i386]) +Conf build-essential (1 stable [i386]) +Conf build-essential2 (1 stable [i386])" aptget build-dep --simulate ./foobar.dsc -o APT::Build-Essential::="build-essential2" + +testsuccessequal "Note, using file './foobar.dsc' to get the build dependencies +Reading package lists... +Building dependency tree... +The following packages will be REMOVED: build-conflicts build-conflicts-arch The following NEW packages will be installed: build-depends build-depends-arch build-essential |