123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- #!/bin/sh
- set -e
- TESTDIR="$(readlink -f "$(dirname "$0")")"
- . "$TESTDIR/framework"
- setupenvironment
- configarchitecture 'amd64'
- buildsimplenativepackage 'foo-1' 'all' '2' 'unstable'
- buildsimplenativepackage 'foo-2' 'amd64' '2' 'unstable'
- setupaptarchive --no-update
- cat >rootdir/etc/apt/apt.conf.d/get-contents <<EOF
- Acquire::IndexTargets::deb::Contents {
- MetaKey "\$(COMPONENT)/Contents-\$(ARCHITECTURE)";
- ShortDescription "Contents";
- Description "\$(RELEASE)/\$(COMPONENT) \$(ARCHITECTURE) 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
- 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-
- listcurrentlistsdirectory > lists.before
- testsuccess grep '_binary-all_Packages' lists.before
- testsuccess grep '_Contents-all\.' lists.before
- configarchitecture 'amd64' 'i386'
- testsuccessequal "All packages are up to date.
- N: Skipping acquire of configured file 'main/binary-i386/Packages' as repository 'file:$(readlink -f ./aptarchive) unstable InRelease' doesn't support architecture 'i386'" apt update -o quiet::NoProgress=1
- 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'
- sed -i '/^Architectures: / a\
- No-Support-for-Architecture-all: Packages' $(find ./aptarchive -name 'Release')
- signreleasefiles
- testsuccess apt update
- cp rootdir/tmp/testsuccess.output aptupdate.output
- 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'
- getarchitecturesfromreleasefile() { echo "$(getarchitectures)"; }
- generatereleasefiles
- signreleasefiles
- testsuccessequal 'All packages are up to date.' apt update -o quiet::NoProgress=1
- 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-
- configarchitecture 'amd64'
- testsuccess apt update
- 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 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 ''; }
- generatereleasefiles
- signreleasefiles
- testfailure grep '^Architectures: ' $(find ./aptarchive -name 'Release')
- testsuccess apt update
- 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-
- # apt doesn't know supported archs, so missing a configured arch is a failure
- configarchitecture 'amd64' 'i386'
- testfailure apt update
- testequal 'foo-1
- foo-2' aptcache pkgnames foo-
- rm -rf rootdir/var/lib/apt/lists
- msgmsg 'Releasefile no Architectures all, but forbids its usage'
- configarchitecture 'amd64'
- sed -i '/^Date: / a\
- No-Support-for-Architecture-all: Packages' $(find ./aptarchive -name 'Release')
- signreleasefiles
- testsuccess apt update
- cp rootdir/tmp/testsuccess.output aptupdate.output
- 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')
- msgmsg 'No Releasefile'
- rm -rf rootdir/var/lib/apt/lists
- find aptarchive -name '*Release*' -delete
- configarchitecture 'amd64'
- testfailure apt update
- testwarning apt update --allow-insecure-repositories
- testequal 'foo-1
- foo-2' aptcache pkgnames foo-
|