From e8e5d464623f1c2e1ef96b14e622728bbf4b89af Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 20 Jul 2016 09:03:09 +0200 Subject: allow arch=all to override No-Support-for-Architecture-all If a user explicitly requests the download of arch:all apt shouldn't get in the way and perform its detection dance if arch:all packages are (also) in arch:any files or not. This e.g. allows setting arch=all on a source with such a field (or one which doesn't support all at all, but has the arch:all files like Debian itself ATM) to get only the arch:all packages from there instead of behaving like a no-op. Reported-By: Helmut Grohne on IRC --- test/integration/test-acquire-binary-all | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'test/integration/test-acquire-binary-all') diff --git a/test/integration/test-acquire-binary-all b/test/integration/test-acquire-binary-all index d428c106d..ba47eddc2 100755 --- a/test/integration/test-acquire-binary-all +++ b/test/integration/test-acquire-binary-all @@ -18,6 +18,7 @@ Acquire::IndexTargets::deb::Contents { KeepCompressed "true"; }; EOF +cp -a rootdir/etc/apt/sources.list.d rootdir/etc/apt/sources.list.d.bak msgmsg 'Releasefile with Architectures field and all included' testsuccess apt update @@ -38,6 +39,16 @@ testfileequal lists.before "$(listcurrentlistsdirectory)" testequal 'foo-1 foo-2' aptcache pkgnames foo- +rm -rf rootdir/var/lib/apt/lists +msgmsg 'Releasefile with Architectures field and all included, but arch-=all' +sed -i 's#^deb\(-src\)\? #deb\1 [arch-=all] #' rootdir/etc/apt/sources.list.d/* +testsuccesswithnotice apt update +cp -a rootdir/etc/apt/sources.list.d.bak/* rootdir/etc/apt/sources.list.d/ +cp rootdir/tmp/testsuccess.output aptupdate.output +testfailure grep '^Get.* all Packages ' aptupdate.output +testfailure grep '^Get.* all Contents ' aptupdate.output +testequal 'foo-2' aptcache pkgnames foo- + rm -rf rootdir/var/lib/apt/lists msgmsg 'Releasefile has all, but forbids its usage' configarchitecture 'amd64' @@ -50,6 +61,16 @@ testfailure grep '^Get.* all Packages ' aptupdate.output testsuccess grep '^Get.* all Contents ' aptupdate.output sed -i '/^No-Support-for-Architecture-all: / d' $(find ./aptarchive -name 'Release') +rm -rf rootdir/var/lib/apt/lists +msgmsg 'Releasefile has all, forbids its usage, but it is forced with arch=all' +sed -i 's#^deb\(-src\)\? #deb\1 [arch=all] #' rootdir/etc/apt/sources.list.d/* +testsuccess apt update +cp -a rootdir/etc/apt/sources.list.d.bak/* rootdir/etc/apt/sources.list.d/ +cp rootdir/tmp/testsuccess.output aptupdate.output +testsuccess grep '^Get.* all Packages ' aptupdate.output +testsuccess grep '^Get.* all Contents ' aptupdate.output +testequal 'foo-1' aptcache pkgnames foo- + rm -rf rootdir/var/lib/apt/lists msgmsg 'Releasefile with Architectures field but without all' configarchitecture 'amd64' 'i386' @@ -69,6 +90,17 @@ testfailure grep '^Get.* all Packages ' aptupdate.output testfailure grep '^Get.* all Contents ' aptupdate.output testequal 'foo-2' aptcache pkgnames foo- +rm -rf rootdir/var/lib/apt/lists +msgmsg 'Releasefile with Architectures field but without all forced with arch+=all' +sed -i 's#^deb\(-src\)\? #deb\1 [arch+=all] #' rootdir/etc/apt/sources.list.d/* +testsuccess apt update +cp -a rootdir/etc/apt/sources.list.d.bak/* rootdir/etc/apt/sources.list.d/ +cp rootdir/tmp/testsuccess.output aptupdate.output +testsuccess grep '^Get.* all Packages ' aptupdate.output +testsuccess grep '^Get.* all Contents ' aptupdate.output +testequal 'foo-1 +foo-2' aptcache pkgnames foo- + rm -rf rootdir/var/lib/apt/lists msgmsg 'Releasefile without Architectures field' getarchitecturesfromreleasefile() { echo -n ''; } -- cgit v1.2.3