diff options
author | David Kalnischkies <david@kalnischkies.de> | 2016-01-21 23:22:00 +0100 |
---|---|---|
committer | David Kalnischkies <david@kalnischkies.de> | 2016-01-25 18:15:44 +0100 |
commit | a249b3e6fd798935a02b769149c9791a6fa6ef16 (patch) | |
tree | 84a3848b7298d342486dca9ad86bc1e416a9185a /test/integration/test-apt-get-build-dep | |
parent | 074564d40c21cb063bf327e9151a4e24cd9534b5 (diff) |
reimplement build-dep via apts normal resolver
build-dep was implemented by parsing the build-dependencies of a package
and figuring out which packages to install/remove based on this. That
means that for the first level of dependencies build-dep was
implementing its very own resolver with all the benefits (aka: bugs)
this gives us for not using the existing resolver for all levels.
Making this work involves generating a dummy binary package with fitting
Depends and Conflicts and as we can't create them out of thin air the
cache generation needs to be involved so we end up writing a Packages
file which we want to parse – after we have parsed the other Packages
files already. With .dsc/.deb files we could add them before we started
parsing anything.
With a bit of care we can avoid generating too much data we have to
throw away again (as many parts assume that e.g. the count of packages
doesn't change midair), so that on a speed front there shouldn't be
much of a difference, but output can be slightly confusing as if we have
a completely valid cache on disk the "Reading package lists... Done" is
printed two times – but apt is pretty quick about it in that case.
Closes: #137560, #444930, #489911, #583914, #728317, #812173
Diffstat (limited to 'test/integration/test-apt-get-build-dep')
-rwxr-xr-x | test/integration/test-apt-get-build-dep | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/test/integration/test-apt-get-build-dep b/test/integration/test-apt-get-build-dep index b1c36222a..2cd4f57ec 100755 --- a/test/integration/test-apt-get-build-dep +++ b/test/integration/test-apt-get-build-dep @@ -38,9 +38,9 @@ Files: EOF test2vcardbuilddep() { - testsuccessequal "Reading package lists... + testsuccessequal "Note, using file './2vcard_0.5-3.dsc' to get the build dependencies +Reading package lists... Building dependency tree... -Note, using file './2vcard_0.5-3.dsc' to get the build dependencies The following packages will be REMOVED: build-conflict The following NEW packages will be installed: @@ -125,9 +125,9 @@ Description: install packages using the apt protocol - common data EOF -testsuccessequal "Reading package lists... +testsuccessequal "Note, using directory './foo-1.0' to get the build dependencies +Reading package lists... Building dependency tree... -Note, using directory './foo-1.0' to get the build dependencies The following NEW packages will be installed: build-essential debhelper 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. @@ -141,14 +141,9 @@ testsuccess aptget build-dep --simulate ../foo-1.0 testsuccess aptget build-dep --simulate "$(readlink -f ../foo-1.0)" cd .. +testfailureequal 'E: Must specify at least one package to check builddeps for' aptget build-dep +testfailureequal 'E: No architecture information available for armel. See apt.conf(5) APT::Architectures for setup' aptget build-dep --simulate ./foo-1.0 -a armel testfailureequal 'Reading package lists... -Building dependency tree... -E: Must specify at least one package to check builddeps for' aptget build-dep -testfailureequal 'Reading package lists... -Building dependency tree... -E: No architecture information available for armel. See apt.conf(5) APT::Architectures for setup' aptget build-dep --simulate ./foo-1.0 -a armel -testfailureequal 'Reading package lists... -Building dependency tree... E: Unable to find a source package for foo' aptget build-dep --simulate foo msgmsg 'Test with a dsc' 'with comments' @@ -172,9 +167,9 @@ Standards-Version: 3.9.6 # or this? EOF -testsuccessequal "Reading package lists... +testsuccessequal "Note, using file './comments.dsc' to get the build dependencies +Reading package lists... Building dependency tree... -Note, using file './comments.dsc' to get the build dependencies The following NEW packages will be installed: build-depends build-essential debhelper 0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded. @@ -184,3 +179,16 @@ Inst debhelper (7 stable [i386]) Conf build-depends (1 stable [i386]) Conf build-essential (1 stable [i386]) Conf debhelper (7 stable [i386])" aptget build-dep --simulate ./comments.dsc +testsuccessequal "Note, using file './comments.dsc' to get the build dependencies +Reading package lists... +Building dependency tree... +Execute external solver... +The following NEW packages will be installed: + build-depends build-essential debhelper +0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded. +Inst build-depends (1 stable [i386]) +Inst build-essential (1 stable [i386]) +Inst debhelper (7 stable [i386]) +Conf build-depends (1 stable [i386]) +Conf build-essential (1 stable [i386]) +Conf debhelper (7 stable [i386])" aptget build-dep --simulate ./comments.dsc --solver apt |