diff options
author | David Kalnischkies <david@kalnischkies.de> | 2015-10-28 14:38:49 +0100 |
---|---|---|
committer | David Kalnischkies <david@kalnischkies.de> | 2015-11-04 18:42:27 +0100 |
commit | 1dd20368486820efb6ef4476ad739e967174bec4 (patch) | |
tree | e47f748b70975ab3fadd5c10734156346b172e5e /test/integration | |
parent | e2ea6b63d333e6999d855a026a005726067c38ac (diff) |
support arch:all data e.g. in separate Packages file
Based on a discussion with Niels Thykier who asked for Contents-all this
implements apt trying for all architecture dependent files to get a file
for the architecture all, which is treated internally now as an official
architecture which is always around (like native). This way arch:all
data can be shared instead of duplicated for each architecture requiring
the user to download the same information again and again.
There is one problem however: In Debian there is already a binary-all/
Packages file, but the binary-any files still include arch:all packages,
so that downloading this file now would be a waste of time, bandwidth
and diskspace. We therefore need a way to decide if it makes sense to
download the all file for Packages in Debian or not. The obvious answer
would be a special flag in the Release file indicating this, which would
need to default to 'no' and every reasonable repository would override
it to 'yes' in a few years time, but the flag would be there "forever".
Looking closer at a Release file we see the field "Architectures", which
doesn't include 'all' at the moment. With the idea outlined above that
'all' is a "proper" architecture now, we interpret this field as being
authoritative in declaring which architectures are supported by this
repository. If it says 'all', apt will try to get all, if not it will be
skipped. This gives us another interesting feature: If I configure a
source to download armel and mips, but it declares it supports only
armel apt will now print a notice saying as much. Previously this was a
very cryptic failure. If on the other hand the repository supports mips,
too, but for some reason doesn't ship mips packages at the moment, this
'missing' file is silently ignored (= that is the same as the repository
including an empty file).
The Architectures field isn't mandatory through, so if it isn't there,
we assume that every architecture is supported by this repository, which
skips the arch:all if not listed in the release file.
Diffstat (limited to 'test/integration')
30 files changed, 322 insertions, 117 deletions
diff --git a/test/integration/framework b/test/integration/framework index f9bb2e824..04f54c8e2 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -774,7 +774,7 @@ EOF for DIST in $(find ./pool/ -maxdepth 1 -name '*.pkglist' -type f | cut -d'/' -f 3 | cut -d'.' -f 1 | sort | uniq); do cat <<EOF tree "dists/$DIST" { - Architectures "$ARCHS source"; + Architectures "$ARCHS all source"; FileList "${DIST}.\$(SECTION).pkglist"; SourceFileList "${DIST}.\$(SECTION).srclist"; Sections "$(find ./pool/ -maxdepth 1 -name "${DIST}.*.pkglist" -type f | cut -d'/' -f 3 | cut -d'.' -f 2 | sort | uniq | tr '\n' ' ')"; @@ -816,7 +816,7 @@ insertpackage() { continue fi for arch in $(getarchitecturesfromcommalist "$ARCH"); do - if [ "$arch" = 'all' -o "$arch" = 'none' ]; then + if [ "$arch" = 'none' ]; then ARCHS="$(getarchitectures)" else ARCHS="$arch" @@ -962,6 +962,7 @@ getcodenamefromsuite() { getreleaseversionfromsuite() { true; } getlabelfromsuite() { true; } getoriginfromsuite() { true; } +getarchitecturesfromreleasefile() { echo "all $(getarchitectures)"; } aptftparchiverelease() { aptftparchive -qq release "$@" | sed -e '/0 Release$/ d' # remove the self reference @@ -969,9 +970,12 @@ aptftparchiverelease() { generatereleasefiles() { # $1 is the Date header and $2 is the ValidUntil header to be set # both should be given in notation date/touch can understand + local DATE="$1" + local VALIDUNTIL="$2" msgninfo "\tGenerate Release files… " if [ -e aptarchive/dists ]; then for dir in $(find ./aptarchive/dists -mindepth 1 -maxdepth 1 -type d); do + local ARCHITECTURES="$(getarchitecturesfromreleasefile "$dir")" local SUITE="$(echo "$dir" | cut -d'/' -f 4)" local CODENAME="$(getcodenamefromsuite $SUITE)" local VERSION="$(getreleaseversionfromsuite $SUITE)" @@ -986,9 +990,13 @@ generatereleasefiles() { if [ -n "$ORIGIN" ]; then ORIGIN="-o APT::FTPArchive::Release::Origin=${ORIGIN}" fi + if [ -n "$ARCHITECTURES" ]; then + ARCHITECTURES="-o APT::FTPArchive::Release::Architectures=${ARCHITECTURES}" + fi aptftparchiverelease "$dir" \ -o APT::FTPArchive::Release::Suite="${SUITE}" \ -o APT::FTPArchive::Release::Codename="${CODENAME}" \ + ${ARCHITECTURES} \ ${LABEL} \ ${ORIGIN} \ ${VERSION} \ @@ -1001,15 +1009,15 @@ NotAutomatic: yes' "$dir/Release" else aptftparchiverelease ./aptarchive > aptarchive/Release fi - if [ -n "$1" -a "$1" != "now" ]; then + if [ -n "$DATE" -a "$DATE" != "now" ]; then for release in $(find ./aptarchive -name 'Release'); do - sed -i "s/^Date: .*$/Date: $(date -d "$1" '+%a, %d %b %Y %H:%M:%S %Z')/" "$release" - touch -d "$1" "$release" + sed -i "s/^Date: .*$/Date: $(date -d "$DATE" '+%a, %d %b %Y %H:%M:%S %Z')/" "$release" + touch -d "$DATE" "$release" done fi - if [ -n "$2" ]; then + if [ -n "$VALIDUNTIL" ]; then sed -i "/^Date: / a\ -Valid-Until: $(date -d "$2" '+%a, %d %b %Y %H:%M:%S %Z')" $(find ./aptarchive -name 'Release') +Valid-Until: $(date -d "$VALIDUNTIL" '+%a, %d %b %Y %H:%M:%S %Z')" $(find ./aptarchive -name 'Release') fi msgdone "info" } diff --git a/test/integration/test-acquire-binary-all b/test/integration/test-acquire-binary-all new file mode 100755 index 000000000..478bf1a28 --- /dev/null +++ b/test/integration/test-acquire-binary-all @@ -0,0 +1,71 @@ +#!/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 + +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 +testequal 'foo-1 +foo-2' aptcache pkgnames foo- + +listcurrentlistsdirectory > lists.before +testsuccess grep '_binary-all_Packages' 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 -q=0 -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 but without all' +getarchitecturesfromreleasefile() { echo "$(getarchitectures)"; } +generatereleasefiles +signreleasefiles +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 -q=0 -o quiet::NoProgress=1 +cp rootdir/tmp/testsuccess.output aptupdate.output +testfailure grep '^Get.* all Packages ' 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 +testequal 'foo-2' aptcache pkgnames foo- + +rm -rf rootdir/var/lib/apt/lists +msgmsg 'Releasefile without Architectures field' +getarchitecturesfromreleasefile() { echo -n ''; } +generatereleasefiles +signreleasefiles +testsuccess apt update +cp rootdir/tmp/testsuccess.output aptupdate.output +testsuccess grep '^Get.* all Packages ' 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 -q=0 +testequal 'foo-1 +foo-2' aptcache pkgnames foo- + +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- diff --git a/test/integration/test-acquire-same-repository-multiple-times b/test/integration/test-acquire-same-repository-multiple-times index b99496e35..eea81fd69 100755 --- a/test/integration/test-acquire-same-repository-multiple-times +++ b/test/integration/test-acquire-same-repository-multiple-times @@ -55,17 +55,17 @@ tworepos() { Candidate: 1.0 Version table: 1.0 500 - 500 $1:$2 jessie/main amd64 Packages - 500 $1:$2 stable/main amd64 Packages" aptcache policy foo + 500 $1:$2 jessie/main all Packages + 500 $1:$2 stable/main all Packages" aptcache policy foo testfailure aptcache show foo/unstable testsuccess aptcache show foo/stable testsuccess aptcache show foo/jessie } tworepos 'file' "$APTARCHIVE" 'no partial' -testequal '12' grep -c '200%20URI%20Start' ./download.log -testequal '12' grep -c '201%20URI%20Done' ./download.log -testequal '6' grep -c '^ @ Queue: Action combined' ./download.log +testequal '14' grep -c '200%20URI%20Start' ./download.log +testequal '14' grep -c '201%20URI%20Done' ./download.log +testequal '8' grep -c '^ @ Queue: Action combined' ./download.log tworepos 'file' "$APTARCHIVE" 'hit' testequal '6' grep -c '200%20URI%20Start' ./download.log testequal '6' grep -c '201%20URI%20Done' ./download.log @@ -75,9 +75,9 @@ rm -rf rootdir/var/lib/apt/lists changetowebserver tworepos 'http' "//localhost:${APTHTTPPORT}" 'no partial' -testequal '10' grep -c '200%20URI%20Start' ./download.log -testequal '10' grep -c '201%20URI%20Done' ./download.log -testequal '6' grep -c '^ @ Queue: Action combined' ./download.log +testequal '12' grep -c '200%20URI%20Start' ./download.log +testequal '12' grep -c '201%20URI%20Done' ./download.log +testequal '8' grep -c '^ @ Queue: Action combined' ./download.log tworepos 'http' "//localhost:${APTHTTPPORT}" 'hit' testequal '2' grep -c '200%20URI%20Start' ./download.log testequal '4' grep -c '201%20URI%20Done' ./download.log diff --git a/test/integration/test-apt-acquire-additional-files b/test/integration/test-apt-acquire-additional-files index 4ba3c5bd9..552499ea2 100755 --- a/test/integration/test-apt-acquire-additional-files +++ b/test/integration/test-apt-acquire-additional-files @@ -19,12 +19,14 @@ changetowebserver testequal "'http://localhost:${APTHTTPPORT}/dists/unstable/InRelease' localhost:${APTHTTPPORT}_dists_unstable_InRelease 0 'http://localhost:${APTHTTPPORT}/dists/unstable/main/source/Sources.xz' localhost:${APTHTTPPORT}_dists_unstable_main_source_Sources 0 'http://localhost:${APTHTTPPORT}/dists/unstable/main/binary-amd64/Packages.xz' localhost:${APTHTTPPORT}_dists_unstable_main_binary-amd64_Packages 0 +'http://localhost:${APTHTTPPORT}/dists/unstable/main/binary-all/Packages.xz' localhost:${APTHTTPPORT}_dists_unstable_main_binary-all_Packages 0 'http://localhost:${APTHTTPPORT}/dists/unstable/main/i18n/Translation-en.xz' localhost:${APTHTTPPORT}_dists_unstable_main_i18n_Translation-en 0 " aptget update --print-uris testsuccessequal "Get:1 http://localhost:${APTHTTPPORT} unstable InRelease [$(stat -c%s aptarchive/dists/unstable/InRelease) B] Get:2 http://localhost:${APTHTTPPORT} unstable/main Sources [$(stat -c%s aptarchive/dists/unstable/main/source/Sources.gz) B] Get:3 http://localhost:${APTHTTPPORT} unstable/main amd64 Packages [$(stat -c%s aptarchive/dists/unstable/main/binary-amd64/Packages.gz) B] -Get:4 http://localhost:${APTHTTPPORT} unstable/main Translation-en [$(stat -c%s aptarchive/dists/unstable/main/i18n/Translation-en.gz) B] +Get:4 http://localhost:${APTHTTPPORT} unstable/main all Packages [$(stat -c%s aptarchive/dists/unstable/main/binary-all/Packages.gz) B] +Get:5 http://localhost:${APTHTTPPORT} unstable/main Translation-en [$(stat -c%s aptarchive/dists/unstable/main/i18n/Translation-en.gz) B] Reading package lists..." aptget update testempty find rootdir/var/lib/apt/lists -name '*Contents*' @@ -37,40 +39,59 @@ Acquire::IndexTargets::deb::Contents { }; EOF -testequal "$(readlink -f ./rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64)" aptget indextargets --no-release-info --format '$(FILENAME)' 'Created-By: Contents' +readfile() { + while [ -n "$1" ]; do + readlink -f "./rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_${1}" + shift + done +} + +testequal "$(readfile Contents-amd64 Contents-all)" aptget indextargets --no-release-info --format '$(FILENAME)' 'Created-By: Contents' testempty aptget indextargets --format '$(FILENAME)' 'Created-By: Contents' # lets fake the existence of a compressed Contents file -touch ./rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64.gz -testequal "$(readlink -f ./rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64.gz)" aptget indextargets --format '$(FILENAME)' 'Created-By: Contents' +touch "./rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64.gz" +testequal "$(readfile Contents-amd64.gz)" aptget indextargets --format '$(FILENAME)' 'Created-By: Contents' +touch "./rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-all.gz" +testequal "$(readfile Contents-amd64.gz Contents-all.gz)" aptget indextargets --format '$(FILENAME)' 'Created-By: Contents' testequal "'http://localhost:${APTHTTPPORT}/dists/unstable/InRelease' localhost:${APTHTTPPORT}_dists_unstable_InRelease 0 'http://localhost:${APTHTTPPORT}/dists/unstable/main/source/Sources.xz' localhost:${APTHTTPPORT}_dists_unstable_main_source_Sources 0 'http://localhost:${APTHTTPPORT}/dists/unstable/main/binary-amd64/Packages.xz' localhost:${APTHTTPPORT}_dists_unstable_main_binary-amd64_Packages 0 +'http://localhost:${APTHTTPPORT}/dists/unstable/main/binary-all/Packages.xz' localhost:${APTHTTPPORT}_dists_unstable_main_binary-all_Packages 0 'http://localhost:${APTHTTPPORT}/dists/unstable/main/i18n/Translation-en.xz' localhost:${APTHTTPPORT}_dists_unstable_main_i18n_Translation-en 0 -'http://localhost:${APTHTTPPORT}/dists/unstable/main/Contents-amd64.xz' localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64 0 " aptget update --print-uris +'http://localhost:${APTHTTPPORT}/dists/unstable/main/Contents-amd64.xz' localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64 0 +'http://localhost:${APTHTTPPORT}/dists/unstable/main/Contents-all.xz' localhost:${APTHTTPPORT}_dists_unstable_main_Contents-all 0 " aptget update --print-uris testsuccessequal "Hit:1 http://localhost:${APTHTTPPORT} unstable InRelease Get:2 http://localhost:${APTHTTPPORT} unstable/main amd64 Contents [$(stat -c%s aptarchive/dists/unstable/main/Contents-amd64.gz) B] +Get:3 http://localhost:${APTHTTPPORT} unstable/main all Contents [$(stat -c%s aptarchive/dists/unstable/main/Contents-all.gz) B] Reading package lists..." aptget update -testequal "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64" find rootdir/var/lib/apt/lists -name '*Contents*' -testequal "$(readlink -f ./rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64)" aptget indextargets --format '$(FILENAME)' 'Created-By: Contents' +testequal "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64" find rootdir/var/lib/apt/lists -name '*Contents-amd64*' +testequal "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-all" find rootdir/var/lib/apt/lists -name '*Contents-all*' +testequal "$(readfile Contents-amd64 Contents-all)" aptget indextargets --format '$(FILENAME)' 'Created-By: Contents' testsuccess cmp "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64" 'aptarchive/dists/unstable/main/Contents-amd64' +testsuccess cmp "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-all" 'aptarchive/dists/unstable/main/Contents-all' -rm ./rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64 +rm ./rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64 \ + ./rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-all testempty aptget indextargets --format '$(FILENAME)' 'Created-By: Contents' # if we asked for keeping it compressed, keep it echo 'Acquire::IndexTargets::deb::Contents::KeepCompressed "true";' >> rootdir/etc/apt/apt.conf.d/content-target.conf testsuccessequal "Hit:1 http://localhost:${APTHTTPPORT} unstable InRelease Get:2 http://localhost:${APTHTTPPORT} unstable/main amd64 Contents [$(stat -c%s aptarchive/dists/unstable/main/Contents-amd64.gz) B] +Get:3 http://localhost:${APTHTTPPORT} unstable/main all Contents [$(stat -c%s aptarchive/dists/unstable/main/Contents-all.gz) B] Reading package lists..." aptget update -testequal "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64.gz" find rootdir/var/lib/apt/lists -name '*Contents*' -testequal "$(readlink -f ./rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64.gz)" aptget indextargets --format '$(FILENAME)' 'Created-By: Contents' +testequal "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64.gz" find rootdir/var/lib/apt/lists -name '*Contents-amd64*' +testequal "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-all.gz" find rootdir/var/lib/apt/lists -name '*Contents-all*' +testequal "$(readfile Contents-amd64.gz Contents-all.gz)" aptget indextargets --format '$(FILENAME)' 'Created-By: Contents' testsuccess cmp "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64.gz" 'aptarchive/dists/unstable/main/Contents-amd64.gz' +testsuccess cmp "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-all.gz" 'aptarchive/dists/unstable/main/Contents-all.gz' rm ./rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64.gz +rm ./rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-all.gz testempty aptget indextargets --format '$(FILENAME)' 'Created-By: Contents' # and no automatic uncompress based on the name please, @@ -87,22 +108,28 @@ EOF testequal "'http://localhost:${APTHTTPPORT}/dists/unstable/InRelease' localhost:${APTHTTPPORT}_dists_unstable_InRelease 0 'http://localhost:${APTHTTPPORT}/dists/unstable/main/source/Sources.xz' localhost:${APTHTTPPORT}_dists_unstable_main_source_Sources 0 'http://localhost:${APTHTTPPORT}/dists/unstable/main/binary-amd64/Packages.xz' localhost:${APTHTTPPORT}_dists_unstable_main_binary-amd64_Packages 0 +'http://localhost:${APTHTTPPORT}/dists/unstable/main/binary-all/Packages.xz' localhost:${APTHTTPPORT}_dists_unstable_main_binary-all_Packages 0 'http://localhost:${APTHTTPPORT}/dists/unstable/main/i18n/Translation-en.xz' localhost:${APTHTTPPORT}_dists_unstable_main_i18n_Translation-en 0 -'http://localhost:${APTHTTPPORT}/dists/unstable/main/Contents-amd64.gz.xz' localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64.gz 0 " aptget update --print-uris +'http://localhost:${APTHTTPPORT}/dists/unstable/main/Contents-amd64.gz.xz' localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64.gz 0 +'http://localhost:${APTHTTPPORT}/dists/unstable/main/Contents-all.gz.xz' localhost:${APTHTTPPORT}_dists_unstable_main_Contents-all.gz 0 " aptget update --print-uris testsuccessequal "Hit:1 http://localhost:${APTHTTPPORT} unstable InRelease Get:2 http://localhost:${APTHTTPPORT} unstable/main amd64 Contents.gz [$(stat -c%s aptarchive/dists/unstable/main/Contents-amd64.gz) B] +Get:3 http://localhost:${APTHTTPPORT} unstable/main all Contents.gz [$(stat -c%s aptarchive/dists/unstable/main/Contents-all.gz) B] Reading package lists..." aptget update -testequal "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64.gz" find rootdir/var/lib/apt/lists -name '*Contents*' -testequal "$(readlink -f ./rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64.gz)" aptget indextargets --format '$(FILENAME)' 'Created-By: Contents' +testequal "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64.gz" find rootdir/var/lib/apt/lists -name '*Contents-amd64*' +testequal "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-all.gz" find rootdir/var/lib/apt/lists -name '*Contents-all*' +testequal "$(readfile Contents-amd64.gz Contents-all.gz)" aptget indextargets --format '$(FILENAME)' 'Created-By: Contents' testsuccess cmp "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64.gz" 'aptarchive/dists/unstable/main/Contents-amd64.gz' +testsuccess cmp "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-all.gz" 'aptarchive/dists/unstable/main/Contents-all.gz' rm -f rootdir/etc/apt/apt.conf.d/content-target.conf testequal "'http://localhost:${APTHTTPPORT}/dists/unstable/InRelease' localhost:${APTHTTPPORT}_dists_unstable_InRelease 0 'http://localhost:${APTHTTPPORT}/dists/unstable/main/source/Sources.xz' localhost:${APTHTTPPORT}_dists_unstable_main_source_Sources 0 'http://localhost:${APTHTTPPORT}/dists/unstable/main/binary-amd64/Packages.xz' localhost:${APTHTTPPORT}_dists_unstable_main_binary-amd64_Packages 0 +'http://localhost:${APTHTTPPORT}/dists/unstable/main/binary-all/Packages.xz' localhost:${APTHTTPPORT}_dists_unstable_main_binary-all_Packages 0 'http://localhost:${APTHTTPPORT}/dists/unstable/main/i18n/Translation-en.xz' localhost:${APTHTTPPORT}_dists_unstable_main_i18n_Translation-en 0 " aptget update --print-uris testsuccessequal "Hit:1 http://localhost:${APTHTTPPORT} unstable InRelease diff --git a/test/integration/test-apt-acquire-additional-files-duplicates b/test/integration/test-apt-acquire-additional-files-duplicates index dbfc0eb74..c8d386cbe 100755 --- a/test/integration/test-apt-acquire-additional-files-duplicates +++ b/test/integration/test-apt-acquire-additional-files-duplicates @@ -38,9 +38,11 @@ testsuccessequal "${APTLISTS}/example.org_debian_dists_stable_main_source_Source ${APTLISTS}/example.org_debian_dists_stable_rocks_source_Sources ${APTLISTS}/example.org_debian_dists_stable_main_binary-amd64_Packages ${APTLISTS}/example.org_debian_dists_stable_main_binary-i386_Packages +${APTLISTS}/example.org_debian_dists_stable_main_binary-all_Packages ${APTLISTS}/example.org_debian_dists_stable_main_i18n_Translation-en ${APTLISTS}/example.org_debian_dists_stable_rocks_binary-amd64_Packages ${APTLISTS}/example.org_debian_dists_stable_rocks_binary-i386_Packages +${APTLISTS}/example.org_debian_dists_stable_rocks_binary-all_Packages ${APTLISTS}/example.org_debian_dists_stable_rocks_i18n_Translation-en" aptget indextargets --no-release-info --format '$(FILENAME)' cat >> rootdir/etc/apt/sources.list <<EOF @@ -50,15 +52,19 @@ testwarningequal "${APTLISTS}/example.org_debian_dists_stable_main_source_Source ${APTLISTS}/example.org_debian_dists_stable_rocks_source_Sources ${APTLISTS}/example.org_debian_dists_stable_main_binary-amd64_Packages ${APTLISTS}/example.org_debian_dists_stable_main_binary-i386_Packages +${APTLISTS}/example.org_debian_dists_stable_main_binary-all_Packages ${APTLISTS}/example.org_debian_dists_stable_main_i18n_Translation-en ${APTLISTS}/example.org_debian_dists_stable_rocks_binary-amd64_Packages ${APTLISTS}/example.org_debian_dists_stable_rocks_binary-i386_Packages +${APTLISTS}/example.org_debian_dists_stable_rocks_binary-all_Packages ${APTLISTS}/example.org_debian_dists_stable_rocks_i18n_Translation-en W: Target Packages (main/binary-amd64/Packages) is configured multiple times in ${APTETC}/sources.list:1 and ${APTETC}/sources.list:3 W: Target Packages (main/binary-i386/Packages) is configured multiple times in ${APTETC}/sources.list:1 and ${APTETC}/sources.list:3 +W: Target Packages (main/binary-all/Packages) is configured multiple times in ${APTETC}/sources.list:1 and ${APTETC}/sources.list:3 W: Target Translations (main/i18n/Translation-en) is configured multiple times in ${APTETC}/sources.list:1 and ${APTETC}/sources.list:3 W: Target Packages (rocks/binary-amd64/Packages) is configured multiple times in ${APTETC}/sources.list:1 and ${APTETC}/sources.list:3 W: Target Packages (rocks/binary-i386/Packages) is configured multiple times in ${APTETC}/sources.list:1 and ${APTETC}/sources.list:3 +W: Target Packages (rocks/binary-all/Packages) is configured multiple times in ${APTETC}/sources.list:1 and ${APTETC}/sources.list:3 W: Target Translations (rocks/i18n/Translation-en) is configured multiple times in ${APTETC}/sources.list:1 and ${APTETC}/sources.list:3" aptget indextargets --no-release-info --format '$(FILENAME)' cat >> rootdir/etc/apt/sources.list <<EOF @@ -69,18 +75,27 @@ testwarningequal "${APTLISTS}/example.org_debian_dists_stable_main_source_Source ${APTLISTS}/example.org_debian_dists_stable_rocks_source_Sources ${APTLISTS}/example.org_debian_dists_stable_main_binary-amd64_Packages ${APTLISTS}/example.org_debian_dists_stable_main_binary-i386_Packages +${APTLISTS}/example.org_debian_dists_stable_main_binary-all_Packages ${APTLISTS}/example.org_debian_dists_stable_main_i18n_Translation-en ${APTLISTS}/example.org_debian_dists_stable_rocks_binary-amd64_Packages ${APTLISTS}/example.org_debian_dists_stable_rocks_binary-i386_Packages +${APTLISTS}/example.org_debian_dists_stable_rocks_binary-all_Packages ${APTLISTS}/example.org_debian_dists_stable_rocks_i18n_Translation-en ${APTLISTS}/example.org_debian_dists_stable_main_Contents-amd64 +${APTLISTS}/example.org_debian_dists_stable_main_Contents-all ${APTLISTS}/example.org_debian_dists_stable_Contents-amd64 +${APTLISTS}/example.org_debian_dists_stable_Contents-all ${APTLISTS}/example.org_debian_dists_stable_rocks_Contents-amd64 +${APTLISTS}/example.org_debian_dists_stable_rocks_Contents-all W: Target Packages (main/binary-amd64/Packages) is configured multiple times in ${APTETC}/sources.list:1 and ${APTETC}/sources.list:3 W: Target Packages (main/binary-i386/Packages) is configured multiple times in ${APTETC}/sources.list:1 and ${APTETC}/sources.list:3 +W: Target Packages (main/binary-all/Packages) is configured multiple times in ${APTETC}/sources.list:1 and ${APTETC}/sources.list:3 W: Target Translations (main/i18n/Translation-en) is configured multiple times in ${APTETC}/sources.list:1 and ${APTETC}/sources.list:3 W: Target Packages (rocks/binary-amd64/Packages) is configured multiple times in ${APTETC}/sources.list:1 and ${APTETC}/sources.list:3 W: Target Packages (rocks/binary-i386/Packages) is configured multiple times in ${APTETC}/sources.list:1 and ${APTETC}/sources.list:3 +W: Target Packages (rocks/binary-all/Packages) is configured multiple times in ${APTETC}/sources.list:1 and ${APTETC}/sources.list:3 W: Target Translations (rocks/i18n/Translation-en) is configured multiple times in ${APTETC}/sources.list:1 and ${APTETC}/sources.list:3 W: Target Contents2 wants to acquire the same file (main/Contents-amd64) as Contents1 from source ${APTETC}/sources.list:4 -W: Target Contents2 wants to acquire the same file (rocks/Contents-amd64) as Contents1 from source ${APTETC}/sources.list:4" aptget indextargets --no-release-info --format '$(FILENAME)' +W: Target Contents2 wants to acquire the same file (main/Contents-all) as Contents1 from source ${APTETC}/sources.list:4 +W: Target Contents2 wants to acquire the same file (rocks/Contents-amd64) as Contents1 from source ${APTETC}/sources.list:4 +W: Target Contents2 wants to acquire the same file (rocks/Contents-all) as Contents1 from source ${APTETC}/sources.list:4" aptget indextargets --no-release-info --format '$(FILENAME)' diff --git a/test/integration/test-apt-by-hash-update b/test/integration/test-apt-by-hash-update index 9b97bdeba..67ece60d2 100755 --- a/test/integration/test-apt-by-hash-update +++ b/test/integration/test-apt-by-hash-update @@ -10,6 +10,7 @@ confighashes 'SHA512' configcompression '.' 'gz' insertpackage 'unstable' 'foo' 'all' '1.0' +insertpackage 'unstable' 'bar' 'i386' '1.0' setupaptarchive --no-update @@ -22,6 +23,7 @@ makebyhashonly() { ln -s "${BYHASH}/${2}.gz" "${BYHASH}/$(sha512sum "${BYHASH}/${2}.gz" | cut -f1 -d' ')" } makebyhashonly 'binary-i386' 'Packages' +makebyhashonly 'binary-all' 'Packages' makebyhashonly 'source' 'Sources' ensureitsbroken() { @@ -46,6 +48,8 @@ ensureitworks() { testsuccess grep '^Ign' rootdir/tmp/aptupdate.output testsuccessequal "Inst foo (1.0 unstable [all]) Conf foo (1.0 unstable [all])" aptget install -qq -s foo + testsuccessequal "Inst bar (1.0 unstable [i386]) +Conf bar (1.0 unstable [i386])" aptget install -qq -s bar } msgmsg 'Test by-hash via' 'config option' ensureitworks -o Acquire::By-Hash=force diff --git a/test/integration/test-apt-cache b/test/integration/test-apt-cache index c254aa602..daa5974a1 100755 --- a/test/integration/test-apt-cache +++ b/test/integration/test-apt-cache @@ -55,8 +55,7 @@ testsuccessequal 'bar' aptcache pkgnames bar testsuccessequal 'fancy foo' aptcache pkgnames f -testsuccessequal " foo | 1 | file:$(readlink -f .)/aptarchive unstable/main amd64 Packages - foo | 1 | file:$(readlink -f .)/aptarchive unstable/main i386 Packages" aptcache madison foo +testsuccessequal " foo | 1 | file:$(readlink -f .)/aptarchive unstable/main all Packages" aptcache madison foo ### depends diff --git a/test/integration/test-apt-cdrom b/test/integration/test-apt-cdrom index ce31b5934..c5da17db2 100755 --- a/test/integration/test-apt-cdrom +++ b/test/integration/test-apt-cdrom @@ -51,7 +51,7 @@ Unmounting CD-ROM... Repeat this process for the rest of the CDs in your set." testsuccessequal "$CDROM_PRE -Found 2 package indexes, 1 source indexes, 1 translation indexes and 1 signatures +Found 3 package indexes, 1 source indexes, 1 translation indexes and 1 signatures Found label 'Debian APT Testdisk 0.8.15' $CDROM_POST" aptcdromlog add @@ -116,18 +116,18 @@ testcdromusage # check Idempotence of apt-cdrom (and disabling of Translation dropping) testsuccessequal "$CDROM_PRE -Found 2 package indexes, 1 source indexes, 2 translation indexes and 1 signatures +Found 3 package indexes, 1 source indexes, 2 translation indexes and 1 signatures $CDROM_POST" aptcdromlog add -o APT::CDROM::DropTranslation=0 # take Translations from previous runs as needed testsuccessequal "$CDROM_PRE -Found 2 package indexes, 1 source indexes, 2 translation indexes and 1 signatures +Found 3 package indexes, 1 source indexes, 2 translation indexes and 1 signatures $CDROM_POST" aptcdromlog add msgtest 'Test for the german description translation of' 'testing' aptcache show testing -o Acquire::Languages=de | grep -q '^Description-de: ' && msgpass || msgfail rm -rf rootdir/var/lib/apt/lists testsuccessequal "$CDROM_PRE -Found 2 package indexes, 1 source indexes, 1 translation indexes and 1 signatures +Found 3 package indexes, 1 source indexes, 1 translation indexes and 1 signatures $CDROM_POST" aptcdromlog add msgtest 'Test for the english description translation of' 'testing' aptcache show testing -o Acquire::Languages=en | grep -q '^Description-en: ' && msgpass || msgfail diff --git a/test/integration/test-apt-cli-show b/test/integration/test-apt-cli-show index 5f4ef1b48..59dd6ba25 100755 --- a/test/integration/test-apt-cli-show +++ b/test/integration/test-apt-cli-show @@ -32,7 +32,7 @@ Maintainer: Joe Sixpack <joe@example.org> Installed-Size: 43.0 kB Download-Size: unknown APT-Manual-Installed: yes -APT-Sources: file:$APTARCHIVE unstable/main i386 Packages +APT-Sources: file:$APTARCHIVE unstable/main all Packages Description: Some description That has multiple lines " apt show foo diff --git a/test/integration/test-apt-get-update-unauth-warning b/test/integration/test-apt-get-update-unauth-warning index f1515a9c8..435828292 100755 --- a/test/integration/test-apt-get-update-unauth-warning +++ b/test/integration/test-apt-get-update-unauth-warning @@ -37,7 +37,9 @@ testequal 'lock partial' ls rootdir/var/lib/apt/lists filesize() { - stat -c%s "$(aptget indextargets --no-release-info --format '$(URI)' "Created-By: $1" | cut -d'/' -f 3- ).gz" + local CREATEDBY="$1" + shift + stat -c%s "$(aptget indextargets --no-release-info --format '$(URI)' "Created-By: $CREATEDBY" "$@" | cut -d'/' -f 3- ).gz" } # allow override #aptget update --allow-insecure-repositories -o Debug::pkgAcquire::worker=1 @@ -54,8 +56,11 @@ Ign:3 file:$APTARCHIVE unstable/main Sources Get:4 file:$APTARCHIVE unstable/main i386 Packages Ign:4 file:$APTARCHIVE unstable/main i386 Packages File not found -Get:5 file:$APTARCHIVE unstable/main Translation-en -Ign:5 file:$APTARCHIVE unstable/main Translation-en +Get:5 file:$APTARCHIVE unstable/main all Packages +Ign:5 file:$APTARCHIVE unstable/main all Packages + File not found +Get:6 file:$APTARCHIVE unstable/main Translation-en +Ign:6 file:$APTARCHIVE unstable/main Translation-en File not found Get:3 file:$APTARCHIVE unstable/main Sources Ign:3 file:$APTARCHIVE unstable/main Sources @@ -63,8 +68,11 @@ Ign:3 file:$APTARCHIVE unstable/main Sources Get:4 file:$APTARCHIVE unstable/main i386 Packages Ign:4 file:$APTARCHIVE unstable/main i386 Packages File not found -Get:5 file:$APTARCHIVE unstable/main Translation-en -Ign:5 file:$APTARCHIVE unstable/main Translation-en +Get:5 file:$APTARCHIVE unstable/main all Packages +Ign:5 file:$APTARCHIVE unstable/main all Packages + File not found +Get:6 file:$APTARCHIVE unstable/main Translation-en +Ign:6 file:$APTARCHIVE unstable/main Translation-en File not found Get:3 file:$APTARCHIVE unstable/main Sources Ign:3 file:$APTARCHIVE unstable/main Sources @@ -72,12 +80,16 @@ Ign:3 file:$APTARCHIVE unstable/main Sources Get:4 file:$APTARCHIVE unstable/main i386 Packages Ign:4 file:$APTARCHIVE unstable/main i386 Packages File not found -Get:5 file:$APTARCHIVE unstable/main Translation-en -Ign:5 file:$APTARCHIVE unstable/main Translation-en +Get:5 file:$APTARCHIVE unstable/main all Packages +Ign:5 file:$APTARCHIVE unstable/main all Packages + File not found +Get:6 file:$APTARCHIVE unstable/main Translation-en +Ign:6 file:$APTARCHIVE unstable/main Translation-en File not found Get:3 file:$APTARCHIVE unstable/main Sources [$(filesize 'Sources') B] -Get:4 file:$APTARCHIVE unstable/main i386 Packages [$(filesize 'Packages') B] -Get:5 file:$APTARCHIVE unstable/main Translation-en [$(filesize 'Translations') B] +Get:4 file:$APTARCHIVE unstable/main i386 Packages [$(filesize 'Packages' 'Architecture: i386') B] +Get:5 file:$APTARCHIVE unstable/main all Packages [$(filesize 'Packages' 'Architecture: all') B] +Get:6 file:$APTARCHIVE unstable/main Translation-en [$(filesize 'Translations') B] Reading package lists... W: The repository 'file:$APTARCHIVE unstable Release' does not have a Release file. N: Data from such a repository can not be authenticated and is therefore potentially dangerous to use. diff --git a/test/integration/test-apt-sources-deb822 b/test/integration/test-apt-sources-deb822 index 662a866aa..c29fde0c4 100755 --- a/test/integration/test-apt-sources-deb822 +++ b/test/integration/test-apt-sources-deb822 @@ -30,38 +30,41 @@ msgcleantest 'Test sources.list' 'old style' echo "deb http://ftp.debian.org/debian stable main" > $LISTS testsuccessequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0 'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0 +'http://ftp.debian.org/debian/dists/stable/main/binary-all/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-all_Packages 0 'http://ftp.debian.org/debian/dists/stable/main/i18n/Translation-en.xz' ftp.debian.org_debian_dists_stable_main_i18n_Translation-en 0 " aptget update --print-uris msgcleantest 'Test sources.list' 'old style with tabs' echo "deb http://ftp.debian.org/debian stable main" > $LISTS testsuccessequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0 'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0 +'http://ftp.debian.org/debian/dists/stable/main/binary-all/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-all_Packages 0 'http://ftp.debian.org/debian/dists/stable/main/i18n/Translation-en.xz' ftp.debian.org_debian_dists_stable_main_i18n_Translation-en 0 " aptget update --print-uris msgcleantest 'Test sources.list' 'old style with forgotten end for options' echo "deb [trusted=yes arch+=armel,powerpc http://ftp.debian.org/debian stable main" > $LISTS -testfailureequal "E: Malformed entry 1 in list file $ABSLISTS ([option] not assignment) +testfailureequal --nomsg "E: Malformed entry 1 in list file $ABSLISTS ([option] not assignment) E: The list of sources could not be read." aptget update --print-uris msgcleantest 'Test sources.list' 'old style with stray ] instead of options' echo "deb ] http://ftp.debian.org/debian stable main" > $LISTS -testfailureequal "E: Malformed entry 1 in list file $ABSLISTS (URI parse) +testfailureequal --nomsg "E: Malformed entry 1 in list file $ABSLISTS (URI parse) E: The list of sources could not be read." aptget update --print-uris msgcleantest 'Test sources.list' 'old style options no key' echo "deb [=test] http://ftp.debian.org/debian stable main" > $LISTS -testfailureequal "E: Malformed entry 1 in list file $ABSLISTS ([option] no key) +testfailureequal --nomsg "E: Malformed entry 1 in list file $ABSLISTS ([option] no key) E: The list of sources could not be read." aptget update --print-uris msgcleantest 'Test sources.list' 'old style options no value' echo "deb [test=] http://ftp.debian.org/debian stable main" > $LISTS -testfailureequal "E: Malformed entry 1 in list file $ABSLISTS ([option] no value) +testfailureequal --nomsg "E: Malformed entry 1 in list file $ABSLISTS ([option] no value) E: The list of sources could not be read." aptget update --print-uris msgcleantest 'Test sources.list' 'old style with options' echo "deb [trusted=yes arch+=armel,powerpc] http://ftp.debian.org/debian stable main" > $LISTS testsuccessequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0 'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0 +'http://ftp.debian.org/debian/dists/stable/main/binary-all/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-all_Packages 0 'http://ftp.debian.org/debian/dists/stable/main/binary-armel/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-armel_Packages 0 'http://ftp.debian.org/debian/dists/stable/main/binary-powerpc/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-powerpc_Packages 0 'http://ftp.debian.org/debian/dists/stable/main/i18n/Translation-en.xz' ftp.debian.org_debian_dists_stable_main_i18n_Translation-en 0 " aptget update --print-uris @@ -70,18 +73,21 @@ msgcleantest 'Test sources.list' 'old style with comments' echo "deb http://ftp.debian.org/debian stable main # non-free" > $LISTS testsuccessequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0 'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0 +'http://ftp.debian.org/debian/dists/stable/main/binary-all/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-all_Packages 0 'http://ftp.debian.org/debian/dists/stable/main/i18n/Translation-en.xz' ftp.debian.org_debian_dists_stable_main_i18n_Translation-en 0 " aptget update --print-uris msgcleantest 'Test sources.list' 'old style with option comments' echo "deb [trusted=yes#yeahreally] http://ftp.debian.org/debian stable main # non-free" > $LISTS testsuccessequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0 'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0 +'http://ftp.debian.org/debian/dists/stable/main/binary-all/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-all_Packages 0 'http://ftp.debian.org/debian/dists/stable/main/i18n/Translation-en.xz' ftp.debian.org_debian_dists_stable_main_i18n_Translation-en 0 " aptget update --print-uris msgcleantest 'Test sources.list' 'simple deb822' echo "$BASE" > $SOURCES testsuccessequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0 'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0 +'http://ftp.debian.org/debian/dists/stable/main/binary-all/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-all_Packages 0 'http://ftp.debian.org/debian/dists/stable/main/i18n/Translation-en.xz' ftp.debian.org_debian_dists_stable_main_i18n_Translation-en 0 " aptget update --print-uris msgcleantest 'Test deb822 with' 'two entries' @@ -91,9 +97,11 @@ echo "" >> $SOURCES echo "$BASE" | sed s/stable/unstable/ >> $SOURCES testsuccessequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0 'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0 +'http://ftp.debian.org/debian/dists/stable/main/binary-all/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-all_Packages 0 'http://ftp.debian.org/debian/dists/stable/main/i18n/Translation-en.xz' ftp.debian.org_debian_dists_stable_main_i18n_Translation-en 0 'http://ftp.debian.org/debian/dists/unstable/InRelease' ftp.debian.org_debian_dists_unstable_InRelease 0 'http://ftp.debian.org/debian/dists/unstable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_unstable_main_binary-i386_Packages 0 +'http://ftp.debian.org/debian/dists/unstable/main/binary-all/Packages.xz' ftp.debian.org_debian_dists_unstable_main_binary-all_Packages 0 'http://ftp.debian.org/debian/dists/unstable/main/i18n/Translation-en.xz' ftp.debian.org_debian_dists_unstable_main_i18n_Translation-en 0 " aptget update --print-uris # two suite entries @@ -101,9 +109,11 @@ msgcleantest 'Test deb822 with' 'two Suite entries' echo "$BASE" | sed -e "s/stable/stable unstable/" > $SOURCES testsuccessequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0 'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0 +'http://ftp.debian.org/debian/dists/stable/main/binary-all/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-all_Packages 0 'http://ftp.debian.org/debian/dists/stable/main/i18n/Translation-en.xz' ftp.debian.org_debian_dists_stable_main_i18n_Translation-en 0 'http://ftp.debian.org/debian/dists/unstable/InRelease' ftp.debian.org_debian_dists_unstable_InRelease 0 'http://ftp.debian.org/debian/dists/unstable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_unstable_main_binary-i386_Packages 0 +'http://ftp.debian.org/debian/dists/unstable/main/binary-all/Packages.xz' ftp.debian.org_debian_dists_unstable_main_binary-all_Packages 0 'http://ftp.debian.org/debian/dists/unstable/main/i18n/Translation-en.xz' ftp.debian.org_debian_dists_unstable_main_i18n_Translation-en 0 " aptget update --print-uris msgcleantest 'Test deb822' 'architecture option' @@ -112,6 +122,7 @@ echo "Architectures: amd64 armel" >> $SOURCES testsuccessequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0 'http://ftp.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-amd64_Packages 0 'http://ftp.debian.org/debian/dists/stable/main/binary-armel/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-armel_Packages 0 +'http://ftp.debian.org/debian/dists/stable/main/binary-all/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-all_Packages 0 'http://ftp.debian.org/debian/dists/stable/main/i18n/Translation-en.xz' ftp.debian.org_debian_dists_stable_main_i18n_Translation-en 0 " aptget update --print-uris msgcleantest 'Test old-style' 'suite arch variable' @@ -150,9 +161,11 @@ msgcleantest 'Test deb822 sources.list file which has' 'Multiple URIs work' echo "$BASE" | sed -e 's#http://ftp.debian.org/debian#http://ftp.debian.org/debian http://ftp.de.debian.org/debian#' > $SOURCES testsuccessequal --nomsg "'http://ftp.de.debian.org/debian/dists/stable/InRelease' ftp.de.debian.org_debian_dists_stable_InRelease 0 'http://ftp.de.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.de.debian.org_debian_dists_stable_main_binary-i386_Packages 0 +'http://ftp.de.debian.org/debian/dists/stable/main/binary-all/Packages.xz' ftp.de.debian.org_debian_dists_stable_main_binary-all_Packages 0 'http://ftp.de.debian.org/debian/dists/stable/main/i18n/Translation-en.xz' ftp.de.debian.org_debian_dists_stable_main_i18n_Translation-en 0 'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0 'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0 +'http://ftp.debian.org/debian/dists/stable/main/binary-all/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-all_Packages 0 'http://ftp.debian.org/debian/dists/stable/main/i18n/Translation-en.xz' ftp.debian.org_debian_dists_stable_main_i18n_Translation-en 0 " aptget update --print-uris # multiple Type in one field @@ -161,6 +174,7 @@ echo "$BASE" | sed -e 's#Types: deb#Types: deb deb-src#' > $SOURCES testsuccessequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0 'http://ftp.debian.org/debian/dists/stable/main/source/Sources.xz' ftp.debian.org_debian_dists_stable_main_source_Sources 0 'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0 +'http://ftp.debian.org/debian/dists/stable/main/binary-all/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-all_Packages 0 'http://ftp.debian.org/debian/dists/stable/main/i18n/Translation-en.xz' ftp.debian.org_debian_dists_stable_main_i18n_Translation-en 0 " aptget update --print-uris # a Suite diff --git a/test/integration/test-apt-translation-has-no-packages b/test/integration/test-apt-translation-has-no-packages index 4c57623b1..329e529ce 100755 --- a/test/integration/test-apt-translation-has-no-packages +++ b/test/integration/test-apt-translation-has-no-packages @@ -38,4 +38,4 @@ testsuccessequal "foo: Candidate: 1.0 Version table: 1.0 500 - 500 file:$APTARCHIVE unstable/main amd64 Packages" aptcache policy foo + 500 file:$APTARCHIVE unstable/main all Packages" aptcache policy foo diff --git a/test/integration/test-apt-update-expected-size b/test/integration/test-apt-update-expected-size index 21568e9c2..825500b8e 100755 --- a/test/integration/test-apt-update-expected-size +++ b/test/integration/test-apt-update-expected-size @@ -7,7 +7,7 @@ TESTDIR=$(readlink -f $(dirname $0)) setupenvironment configarchitecture "i386" -insertpackage 'unstable' 'apt' 'all' '1.0' +insertpackage 'unstable' 'apt' 'i386' '1.0' setupaptarchive --no-update cp -a aptarchive/dists aptarchive/dists.good @@ -26,7 +26,7 @@ test_inreleasetoobig() { } test_packagestoobig() { - insertpackage 'unstable' 'foo' 'all' '1.0' + insertpackage 'unstable' 'foo' 'i386' '1.0' buildaptarchivefromfiles '+1 hour' signreleasefiles # append junk at the end of the Packages.gz/Packages diff --git a/test/integration/test-apt-update-failure-propagation b/test/integration/test-apt-update-failure-propagation index e4ce5f968..eda9cff99 100755 --- a/test/integration/test-apt-update-failure-propagation +++ b/test/integration/test-apt-update-failure-propagation @@ -37,14 +37,15 @@ testsuccessequal "foo: Candidate: 2 Version table: 2 500 - 500 http://localhost:${APTHTTPPORT} sid/main amd64 Packages + 500 http://localhost:${APTHTTPPORT} sid/main all Packages 1 500 - 500 https://localhost:${APTHTTPSPORT} stable/main amd64 Packages" aptcache policy foo + 500 https://localhost:${APTHTTPSPORT} stable/main all Packages" aptcache policy foo pretest mv aptarchive/dists/stable aptarchive/dists/stable.good testfailuremsg "E: The repository 'https://localhost:${APTHTTPSPORT} stable Release' does not have a Release file." apt update -testfailureequal "Hit:1 http://localhost:${APTHTTPPORT} sid InRelease +testfailure aptget update -q=0 --no-allow-insecure-repositories +testequalor2 "Hit:1 http://localhost:${APTHTTPPORT} sid InRelease Ign:2 https://localhost:${APTHTTPSPORT} stable InRelease 404 Not Found Err:3 https://localhost:${APTHTTPSPORT} stable Release @@ -52,7 +53,16 @@ Err:3 https://localhost:${APTHTTPSPORT} stable Release Reading package lists... E: The repository 'https://localhost:${APTHTTPSPORT} stable Release' does not have a Release file. N: Updating such a repository securily is impossible and therefore disabled by default. -N: See apt-secure(8) manpage for repository creation and user configuration details." aptget update -q=0 --no-allow-insecure-repositories +N: See apt-secure(8) manpage for repository creation and user configuration details." "Ign:1 https://localhost:${APTHTTPSPORT} stable InRelease + 404 Not Found +Err:2 https://localhost:${APTHTTPSPORT} stable Release + 404 Not Found +Hit:3 http://localhost:${APTHTTPPORT} sid InRelease +Reading package lists... +E: The repository 'https://localhost:${APTHTTPSPORT} stable Release' does not have a Release file. +N: Updating such a repository securily is impossible and therefore disabled by default. +N: See apt-secure(8) manpage for repository creation and user configuration details." cat rootdir/tmp/testfailure.output + mv aptarchive/dists/stable.good aptarchive/dists/stable posttest() { testsuccessequal "foo: @@ -60,7 +70,7 @@ posttest() { Candidate: 2 Version table: 2 500 - 500 http://localhost:${APTHTTPPORT} sid/main amd64 Packages" aptcache policy foo + 500 http://localhost:${APTHTTPPORT} sid/main all Packages" aptcache policy foo } posttest diff --git a/test/integration/test-apt-update-file b/test/integration/test-apt-update-file index f976993ca..c6e07f8b6 100755 --- a/test/integration/test-apt-update-file +++ b/test/integration/test-apt-update-file @@ -19,8 +19,8 @@ insertsource 'unstable' 'foo' 'all' '1' setupaptarchive --no-update # ensure the archive is not writable -addtrap 'prefix' 'chmod 750 aptarchive/dists/unstable/main/binary-amd64;' -chmod 550 aptarchive/dists/unstable/main/binary-amd64 +addtrap 'prefix' 'chmod 750 aptarchive/dists/unstable/main/binary-all;' +chmod 550 aptarchive/dists/unstable/main/binary-all testsuccess aptget update @@ -31,7 +31,7 @@ redatereleasefiles '+1 hour' testsuccess aptget update -o Debug::pkgAcquire::Auth=1 # file:/ isn't shown in the log, so see if it was downloaded anyhow cp -a rootdir/tmp/testsuccess.output rootdir/tmp/update.output -canary="SHA512:$(bzcat aptarchive/dists/unstable/main/binary-amd64/Packages.bz2 | sha512sum |cut -f1 -d' ')" +canary="SHA512:$(bzcat aptarchive/dists/unstable/main/binary-all/Packages.bz2 | sha512sum |cut -f1 -d' ')" testfailure grep -- "$canary" rootdir/tmp/update.output testfoo() { @@ -49,7 +49,7 @@ find rootdir/var/lib/apt/lists -name '*_Packages*' -delete testsuccess aptget update -o Debug::pkgAcquire::Auth=1 # file:/ isn't shown in the log, so see if it was downloaded anyhow cp -a rootdir/tmp/testsuccess.output rootdir/tmp/update.output -canary="SHA512:$(bzcat aptarchive/dists/unstable/main/binary-amd64/Packages.bz2 | sha512sum |cut -f1 -d' ')" +canary="SHA512:$(bzcat aptarchive/dists/unstable/main/binary-all/Packages.bz2 | sha512sum |cut -f1 -d' ')" testsuccess grep -- "$canary" rootdir/tmp/update.output testfoo diff --git a/test/integration/test-apt-update-ims b/test/integration/test-apt-update-ims index 623c3d380..8b29fdbb9 100755 --- a/test/integration/test-apt-update-ims +++ b/test/integration/test-apt-update-ims @@ -7,6 +7,7 @@ setupenvironment configarchitecture 'amd64' insertpackage 'unstable' 'unrelated' 'all' '0.5~squeeze1' +insertpackage 'unstable' 'unrelated2' 'amd64' '0.5~squeeze1' insertsource 'unstable' 'unrelated' 'all' '0.5~squeeze1' setupaptarchive --no-update @@ -146,23 +147,30 @@ Ign:3 http://localhost:${APTHTTPPORT} unstable/main Sources 404 Not Found Ign:4 http://localhost:${APTHTTPPORT} unstable/main amd64 Packages 404 Not Found -Ign:5 http://localhost:${APTHTTPPORT} unstable/main Translation-en +Ign:5 http://localhost:${APTHTTPPORT} unstable/main all Packages + 404 Not Found +Ign:6 http://localhost:${APTHTTPPORT} unstable/main Translation-en 404 Not Found Ign:3 http://localhost:${APTHTTPPORT} unstable/main Sources 404 Not Found Ign:4 http://localhost:${APTHTTPPORT} unstable/main amd64 Packages 404 Not Found -Ign:5 http://localhost:${APTHTTPPORT} unstable/main Translation-en +Ign:5 http://localhost:${APTHTTPPORT} unstable/main all Packages + 404 Not Found +Ign:6 http://localhost:${APTHTTPPORT} unstable/main Translation-en 404 Not Found Ign:3 http://localhost:${APTHTTPPORT} unstable/main Sources 404 Not Found Ign:4 http://localhost:${APTHTTPPORT} unstable/main amd64 Packages 404 Not Found -Ign:5 http://localhost:${APTHTTPPORT} unstable/main Translation-en +Ign:5 http://localhost:${APTHTTPPORT} unstable/main all Packages + 404 Not Found +Ign:6 http://localhost:${APTHTTPPORT} unstable/main Translation-en 404 Not Found Hit:3 http://localhost:${APTHTTPPORT} unstable/main Sources Hit:4 http://localhost:${APTHTTPPORT} unstable/main amd64 Packages -Hit:5 http://localhost:${APTHTTPPORT} unstable/main Translation-en +Hit:5 http://localhost:${APTHTTPPORT} unstable/main all Packages +Hit:6 http://localhost:${APTHTTPPORT} unstable/main Translation-en Reading package lists... W: The repository 'http://localhost:${APTHTTPPORT} unstable Release' does not have a Release file. N: Data from such a repository can not be authenticated and is therefore potentially dangerous to use. diff --git a/test/integration/test-apt-update-not-modified b/test/integration/test-apt-update-not-modified index 8cfc766d3..f6dea81e2 100755 --- a/test/integration/test-apt-update-not-modified +++ b/test/integration/test-apt-update-not-modified @@ -7,7 +7,7 @@ TESTDIR=$(readlink -f $(dirname $0)) setupenvironment configarchitecture 'amd64' 'i386' -insertpackage 'unstable' 'apt' 'all' '1.0' +insertpackage 'unstable' 'apt' 'amd64,i386' '1.0' setupaptarchive --no-update diff --git a/test/integration/test-apt-update-stale b/test/integration/test-apt-update-stale index dd4799d95..fd5ec8214 100755 --- a/test/integration/test-apt-update-stale +++ b/test/integration/test-apt-update-stale @@ -12,7 +12,7 @@ TESTDIR=$(readlink -f $(dirname $0)) setupenvironment configarchitecture "i386" -insertpackage 'unstable' 'foo' 'all' '1.0' +insertpackage 'unstable' 'foo' 'i386' '1.0' setupaptarchive --no-update changetowebserver @@ -25,7 +25,7 @@ listcurrentlistsdirectory > lists.before mkdir aptarchive/dists/unstable/main/binary-i386/saved cp -p aptarchive/dists/unstable/main/binary-i386/Packages* \ aptarchive/dists/unstable/main/binary-i386/saved -insertpackage 'unstable' 'foo' 'all' '2.0' +insertpackage 'unstable' 'foo' 'i386' '2.0' touch -d '+1 hour' aptarchive/dists/unstable/main/binary-i386/Packages compressfile aptarchive/dists/unstable/main/binary-i386/Packages # ensure that we do not get a I-M-S hit for the Release file diff --git a/test/integration/test-apt-update-transactions b/test/integration/test-apt-update-transactions index a5dac1737..8651d3a15 100755 --- a/test/integration/test-apt-update-transactions +++ b/test/integration/test-apt-update-transactions @@ -10,8 +10,8 @@ setupenvironment configarchitecture 'i386' configcompression '.' 'gz' -insertpackage 'unstable' 'foo' 'all' '1.0' -insertsource 'unstable' 'foo' 'all' '1.0' +insertpackage 'unstable' 'foo' 'i386' '1.0' +insertsource 'unstable' 'foo' 'i386' '1.0' setupaptarchive --no-update @@ -31,8 +31,8 @@ restorefile() { testrun() { rm -rf aptarchive/dists.good cp -a aptarchive/dists aptarchive/dists.good - insertpackage 'unstable' 'bar' 'all' '1.0' - insertsource 'unstable' 'bar' 'all' '1.0' + insertpackage 'unstable' 'bar' 'i386' '1.0' + insertsource 'unstable' 'bar' 'i386' '1.0' buildaptarchivefromfiles '+1 hour' # produce an unsigned repository diff --git a/test/integration/test-apt-update-unauth b/test/integration/test-apt-update-unauth index 7347f7d10..17e62db22 100755 --- a/test/integration/test-apt-update-unauth +++ b/test/integration/test-apt-update-unauth @@ -13,8 +13,8 @@ umask 022 setupenvironment configarchitecture "i386" -insertpackage 'unstable' 'foo' 'all' '1.0' -insertsource 'unstable' 'foo' 'all' '1.0' +insertpackage 'unstable' 'foo' 'i386' '1.0' +insertsource 'unstable' 'foo' 'any' '1.0' setupaptarchive --no-update changetowebserver diff --git a/test/integration/test-bug-543966-downgrade-below-1000-pin b/test/integration/test-bug-543966-downgrade-below-1000-pin index 435b6876e..1aa37740b 100755 --- a/test/integration/test-bug-543966-downgrade-below-1000-pin +++ b/test/integration/test-bug-543966-downgrade-below-1000-pin @@ -22,7 +22,7 @@ testsuccessequal "base-files: *** 5.0.0-1 100 100 $STATUS 5.0.0 500 - 500 file:${APTARCHIVE} unstable/main i386 Packages" aptcache policy base-files -o apt::pin=0 + 500 file:${APTARCHIVE} unstable/main all Packages" aptcache policy base-files -o apt::pin=0 writepin() { echo "Package: $1 @@ -47,7 +47,7 @@ testpinning() { *** 5.0.0-1 100 100 $STATUS 5.0.0 ${PKGPINPRIO:-99} - ${REPPINPRIO:- 99} file:${APTARCHIVE} unstable/main i386 Packages" aptcache policy base-files -o apt::pin=99 + ${REPPINPRIO:- 99} file:${APTARCHIVE} unstable/main all Packages" aptcache policy base-files -o apt::pin=99 writepin "$1" '100' testsuccessequal "base-files: @@ -57,7 +57,7 @@ testpinning() { *** 5.0.0-1 100 100 $STATUS 5.0.0 ${PKGPINPRIO:-100} - ${REPPINPRIO:- 100} file:${APTARCHIVE} unstable/main i386 Packages" aptcache policy base-files -o apt::pin=100 + ${REPPINPRIO:- 100} file:${APTARCHIVE} unstable/main all Packages" aptcache policy base-files -o apt::pin=100 writepin "$1" '999' testsuccessequal "base-files: @@ -67,7 +67,7 @@ testpinning() { *** 5.0.0-1 100 100 $STATUS 5.0.0 ${PKGPINPRIO:-999} - ${REPPINPRIO:- 999} file:${APTARCHIVE} unstable/main i386 Packages" aptcache policy base-files -o apt::pin=999 + ${REPPINPRIO:- 999} file:${APTARCHIVE} unstable/main all Packages" aptcache policy base-files -o apt::pin=999 writepin "$1" '1000' testsuccessequal "base-files: @@ -77,7 +77,7 @@ testpinning() { *** 5.0.0-1 100 100 $STATUS 5.0.0 ${PKGPINPRIO:-1000} - ${REPPINPRIO:-1000} file:${APTARCHIVE} unstable/main i386 Packages" aptcache policy base-files -o apt::pin=1000 + ${REPPINPRIO:-1000} file:${APTARCHIVE} unstable/main all Packages" aptcache policy base-files -o apt::pin=1000 } msgmsg 'Tests with generic-form pin' diff --git a/test/integration/test-bug-683786-build-dep-on-virtual-packages b/test/integration/test-bug-683786-build-dep-on-virtual-packages index 4a7c516d4..0ee76ea03 100755 --- a/test/integration/test-bug-683786-build-dep-on-virtual-packages +++ b/test/integration/test-bug-683786-build-dep-on-virtual-packages @@ -12,7 +12,6 @@ insertpackage 'unstable' 'po-debconf' 'all' '1' insertsource 'unstable' 'dash' 'any' '1' 'Build-Depends: po-debconf' insertpackage 'unstable' 'make-po-debconf-pure-virtual' 'armel' '1' 'Depends: po-debconf' -insertpackage 'unstable' 'po-debconf' 'amd64' '1' insertsource 'unstable' 'diffutils' 'any' '1' 'Build-Depends: texi2html' insertpackage 'unstable' 'libselinux1-dev' 'amd64' '1' 'Provides: libselinux-dev' diff --git a/test/integration/test-compressed-indexes b/test/integration/test-compressed-indexes index d163a98ef..510166099 100755 --- a/test/integration/test-compressed-indexes +++ b/test/integration/test-compressed-indexes @@ -31,10 +31,12 @@ testrun() { local F msgtest 'Check if all index files are' "${1:-uncompressed}" if [ "$1" = 'compressed' ]; then - ! test -e rootdir/var/lib/apt/lists/*_Packages || F=1 + ! test -e rootdir/var/lib/apt/lists/*i386_Packages || F=1 + ! test -e rootdir/var/lib/apt/lists/*all_Packages || F=1 ! test -e rootdir/var/lib/apt/lists/*_Sources || F=1 ! test -e rootdir/var/lib/apt/lists/*_Translation-en || F=1 - test -e rootdir/var/lib/apt/lists/*_Packages.${COMPRESS} || F=1 + test -e rootdir/var/lib/apt/lists/*i386_Packages.${COMPRESS} || F=1 + test -e rootdir/var/lib/apt/lists/*all_Packages.${COMPRESS} || F=1 test -e rootdir/var/lib/apt/lists/*_Sources.${COMPRESS} || F=1 test -e rootdir/var/lib/apt/lists/*_Translation-en.${COMPRESS} || F=1 # there is no point in trying pdiff if we have compressed indexes @@ -43,10 +45,12 @@ testrun() { else # clear the faked pdiff indexes so the glob below works rm -f rootdir/var/lib/apt/lists/*diff_Index - test -e rootdir/var/lib/apt/lists/*_Packages || F=1 + test -e rootdir/var/lib/apt/lists/*i386_Packages || F=1 + test -e rootdir/var/lib/apt/lists/*all_Packages || F=1 test -e rootdir/var/lib/apt/lists/*_Sources || F=1 test -e rootdir/var/lib/apt/lists/*_Translation-en || F=1 - ! test -e rootdir/var/lib/apt/lists/*_Packages.* || F=1 + ! test -e rootdir/var/lib/apt/lists/*i386_Packages.* || F=1 + ! test -e rootdir/var/lib/apt/lists/*all_Packages.* || F=1 ! test -e rootdir/var/lib/apt/lists/*_Sources.* || F=1 ! test -e rootdir/var/lib/apt/lists/*_Translation-en.* || F=1 fi diff --git a/test/integration/test-cve-2013-1051-InRelease-parsing b/test/integration/test-cve-2013-1051-InRelease-parsing index 7a3e5f156..83e0db968 100755 --- a/test/integration/test-cve-2013-1051-InRelease-parsing +++ b/test/integration/test-cve-2013-1051-InRelease-parsing @@ -22,7 +22,7 @@ testsuccessequal "good-pkg: Candidate: 1.0 Version table: 1.0 500 - 500 ${ARCHIVE} stable/main i386 Packages" aptcache policy good-pkg + 500 ${ARCHIVE} stable/main all Packages" aptcache policy good-pkg # now exchange to the Packages file, note that this could be # done via MITM too @@ -63,4 +63,4 @@ testsuccessequal "good-pkg: Candidate: 1.0 Version table: 1.0 500 - 500 ${ARCHIVE} stable/main i386 Packages" aptcache policy good-pkg + 500 ${ARCHIVE} stable/main all Packages" aptcache policy good-pkg diff --git a/test/integration/test-external-dependency-solver-protocol b/test/integration/test-external-dependency-solver-protocol index cc8b5f1c4..2657e2f42 100755 --- a/test/integration/test-external-dependency-solver-protocol +++ b/test/integration/test-external-dependency-solver-protocol @@ -159,12 +159,38 @@ testsuccess aptinternalsolver scenario testsuccessequal 'Package: stuff Source: stuff Architecture: all +Version: 3 +Source-Version: 3 +APT-ID: 1 +Priority: optional +Section: other +Multi-Arch: foreign +APT-Release: + a=experimental,n=experimental,c=main,b=all +APT-Pin: 1 + +Package: stuff +Source: stuff +Architecture: all +Version: 2 +Source-Version: 2 +APT-ID: 3 +Priority: optional +Section: other +Multi-Arch: foreign +APT-Release: + a=unstable,n=sid,c=main,b=all +APT-Pin: 500 +APT-Candidate: yes + +Package: stuff +Source: stuff +Architecture: all Version: 1 Source-Version: 1 Installed: yes -APT-ID: 2 +APT-ID: 8 Priority: optional Section: other APT-Pin: 100 -APT-Candidate: yes ' aptinternalsolver scenario stuff diff --git a/test/integration/test-handle-redirect-as-used-mirror-change b/test/integration/test-handle-redirect-as-used-mirror-change index a1842462a..737df97f6 100755 --- a/test/integration/test-handle-redirect-as-used-mirror-change +++ b/test/integration/test-handle-redirect-as-used-mirror-change @@ -17,7 +17,8 @@ rewritesourceslist "http://localhost:${APTHTTPPORT}/redirectme" testsuccessequal "Get:1 http://0.0.0.0:${APTHTTPPORT} unstable InRelease [$(stat -c %s aptarchive/dists/unstable/InRelease) B] Get:2 http://0.0.0.0:${APTHTTPPORT} unstable/main Sources [$(stat -c %s aptarchive/dists/unstable/main/source/Sources.gz) B] Get:3 http://0.0.0.0:${APTHTTPPORT} unstable/main amd64 Packages [$(stat -c %s aptarchive/dists/unstable/main/binary-amd64/Packages.gz) B] -Get:4 http://0.0.0.0:${APTHTTPPORT} unstable/main Translation-en [$(stat -c %s aptarchive/dists/unstable/main/i18n/Translation-en.gz) B] +Get:4 http://0.0.0.0:${APTHTTPPORT} unstable/main all Packages [$(stat -c %s aptarchive/dists/unstable/main/binary-all/Packages.gz) B] +Get:5 http://0.0.0.0:${APTHTTPPORT} unstable/main Translation-en [$(stat -c %s aptarchive/dists/unstable/main/i18n/Translation-en.gz) B] Reading package lists..." aptget update testsuccessequal "Hit:1 http://0.0.0.0:${APTHTTPPORT} unstable InRelease diff --git a/test/integration/test-policy-pinning b/test/integration/test-policy-pinning index ea266e934..dba873656 100755 --- a/test/integration/test-policy-pinning +++ b/test/integration/test-policy-pinning @@ -101,11 +101,11 @@ testequalpolicycoolstuff() { local BPO2ARCHIVE="" if [ ! "$7" = "2.0~bpo2" ]; then BPO1PIN="$AB" - BPO1ARCHIVE=" $(echo "$AB" | awk '{ printf("%3s\n",$0) }') file:${APTARCHIVE} backports/main i386 Packages" + BPO1ARCHIVE=" $(echo "$AB" | awk '{ printf("%3s\n",$0) }') file:${APTARCHIVE} backports/main all Packages" else BPO2ARCHIVE=" 2.0~bpo2 $AB - $(echo "$AB" | awk '{ printf("%3s\n",$0) }') file:${APTARCHIVE} backports/main i386 Packages" + $(echo "$AB" | awk '{ printf("%3s\n",$0) }') file:${APTARCHIVE} backports/main all Packages" SB="$(echo "$SB" | tail -n 1)" shift fi @@ -117,7 +117,7 @@ testequalpolicycoolstuff() { $IB 2.0~bpo1 $PB ${BPO1ARCHIVE}$SB $IS 1.0 $AS - $(echo "$AS" | awk '{ printf("%3s\n",$0) }') file:${APTARCHIVE} stable/main i386 Packages$SS" \ + $(echo "$AS" | awk '{ printf("%3s\n",$0) }') file:${APTARCHIVE} stable/main all Packages$SS" \ aptcache policy coolstuff -o Policy=${INSTALLED}-${CANDIDATE}-${AB}-${AS}-${PB} $* } diff --git a/test/integration/test-security-no-remote-status b/test/integration/test-security-no-remote-status index af4940982..2badb30a4 100755 --- a/test/integration/test-security-no-remote-status +++ b/test/integration/test-security-no-remote-status @@ -20,7 +20,7 @@ testequal "pretends-installed: Candidate: 1 Version table: 1 500 - 500 file:${TMPDIR}/aptarchive unstable/main amd64 Packages" aptcache policy pretends-installed + 500 file:${TMPDIR}/aptarchive unstable/main all Packages" aptcache policy pretends-installed testequal "really-installed: Installed: 1 diff --git a/test/integration/test-sourceslist-arch-plusminus-options b/test/integration/test-sourceslist-arch-plusminus-options index 0091964e6..d487cce60 100755 --- a/test/integration/test-sourceslist-arch-plusminus-options +++ b/test/integration/test-sourceslist-arch-plusminus-options @@ -18,68 +18,74 @@ testbinaries() { } echo 'deb http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testbinaries 'default & native' 'amd64' +testbinaries 'default & native' 'amd64' 'all' configarchitecture 'amd64' 'i386' -testbinaries 'default & native + foreign' 'amd64' 'i386' +testbinaries 'default & native + foreign' 'amd64' 'i386' 'all' configarchitecture 'amd64' 'i386' 'armel' 'armhf' 'mips' 'mipsel' -testbinaries 'default & native + many foreigns' 'amd64' 'i386' 'armel' 'armhf' 'mips' 'mipsel' +testbinaries 'default & native + many foreigns' 'amd64' 'i386' 'armel' 'armhf' 'mips' 'mipsel' 'all' echo 'deb [arch=amd64] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testbinaries 'arch=native' 'amd64' +testbinaries 'arch=native' 'amd64' 'all' echo 'deb [arch=mips] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testbinaries 'arch=foreign' 'mips' +testbinaries 'arch=foreign' 'mips' 'all' echo 'deb [arch=kfreebsd-armel] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testbinaries 'arch=unknown' 'kfreebsd-armel' +testbinaries 'arch=unknown' 'kfreebsd-armel' 'all' echo 'deb [arch=amd64,i386] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testbinaries 'arch=native,foreign' 'amd64' 'i386' +testbinaries 'arch=native,foreign' 'amd64' 'i386' 'all' echo 'deb [arch=mips,armhf] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testbinaries 'arch=foreign,foreign' 'mips' 'armhf' +testbinaries 'arch=foreign,foreign' 'mips' 'armhf' 'all' echo 'deb [arch=kfreebsd-armel,hurd-powerpc,mipsel,armel] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testbinaries 'arch=unknown,unknown,foreign,foreign' 'kfreebsd-armel' 'hurd-powerpc' 'mipsel' 'armel' +testbinaries 'arch=unknown,unknown,foreign,foreign' 'kfreebsd-armel' 'hurd-powerpc' 'mipsel' 'armel' 'all' echo 'deb [arch+=amd64] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testbinaries 'arch+=native' 'amd64' 'i386' 'armel' 'armhf' 'mips' 'mipsel' +testbinaries 'arch+=native' 'amd64' 'i386' 'armel' 'armhf' 'mips' 'mipsel' 'all' echo 'deb [arch+=mips] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testbinaries 'arch+=foreign' 'amd64' 'i386' 'armel' 'armhf' 'mips' 'mipsel' +testbinaries 'arch+=foreign' 'amd64' 'i386' 'armel' 'armhf' 'mips' 'mipsel' 'all' echo 'deb [arch+=mips,armhf,i386] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testbinaries 'arch+=foreign,foreign,foreign' 'amd64' 'i386' 'armel' 'armhf' 'mips' 'mipsel' +testbinaries 'arch+=foreign,foreign,foreign' 'amd64' 'i386' 'armel' 'armhf' 'mips' 'mipsel' 'all' echo 'deb [arch+=hurd-powerpc] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testbinaries 'arch+=unknown' 'amd64' 'i386' 'armel' 'armhf' 'mips' 'mipsel' 'hurd-powerpc' +testbinaries 'arch+=unknown' 'amd64' 'i386' 'armel' 'armhf' 'mips' 'mipsel' 'hurd-powerpc' 'all' echo 'deb [arch+=mips,hurd-powerpc,i386] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testbinaries 'arch+=foreign,unknown,foreign' 'amd64' 'i386' 'armel' 'armhf' 'mips' 'mipsel' 'hurd-powerpc' +testbinaries 'arch+=foreign,unknown,foreign' 'amd64' 'i386' 'armel' 'armhf' 'mips' 'mipsel' 'hurd-powerpc' 'all' echo 'deb [arch-=amd64] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testbinaries 'arch-=native' 'i386' 'armel' 'armhf' 'mips' 'mipsel' +testbinaries 'arch-=native' 'i386' 'armel' 'armhf' 'mips' 'mipsel' 'all' echo 'deb [arch-=mips] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testbinaries 'arch-=foreign' 'amd64' 'i386' 'armel' 'armhf' 'mipsel' +testbinaries 'arch-=foreign' 'amd64' 'i386' 'armel' 'armhf' 'mipsel' 'all' echo 'deb [arch-=mips,armhf,i386] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testbinaries 'arch-=foreign,foreign,foreign' 'amd64' 'armel' 'mipsel' +testbinaries 'arch-=foreign,foreign,foreign' 'amd64' 'armel' 'mipsel' 'all' echo 'deb [arch-=hurd-powerpc] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testbinaries 'arch-=unknown' 'amd64' 'i386' 'armel' 'armhf' 'mips' 'mipsel' +testbinaries 'arch-=unknown' 'amd64' 'i386' 'armel' 'armhf' 'mips' 'mipsel' 'all' echo 'deb [arch-=mips,hurd-powerpc,i386] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testbinaries 'arch-=foreign,unknown,foreign' 'amd64' 'armel' 'armhf' 'mipsel' +testbinaries 'arch-=foreign,unknown,foreign' 'amd64' 'armel' 'armhf' 'mipsel' 'all' echo 'deb [arch=mips,i386 arch-=mips] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testbinaries 'substract from a arch-set' 'i386' +testbinaries 'substract from a arch-set' 'i386' 'all' echo 'deb [arch=mips,i386 arch-=mips] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testbinaries 'useless subtract from a arch-set' 'i386' +testbinaries 'useless subtract from a arch-set' 'i386' 'all' echo 'deb [arch=mips,i386 arch+=armhf] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testbinaries 'addition to a arch-set' 'i386' 'mips' 'armhf' +testbinaries 'addition to a arch-set' 'i386' 'mips' 'armhf' 'all' echo 'deb [arch=mips,i386 arch+=mips] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testbinaries 'useless addition to a arch-set' 'i386' 'mips' +testbinaries 'useless addition to a arch-set' 'i386' 'mips' 'all' + +echo 'deb [arch=i386 arch-=all] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list +testbinaries 'substract all from arch-set' 'i386' + +echo 'deb [arch=i386 arch+=all] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list +testbinaries 'useless addition of all' 'i386' 'all' diff --git a/test/integration/test-sourceslist-lang-plusminus-options b/test/integration/test-sourceslist-lang-plusminus-options index c61d5a4ca..660018358 100755 --- a/test/integration/test-sourceslist-lang-plusminus-options +++ b/test/integration/test-sourceslist-lang-plusminus-options @@ -44,7 +44,8 @@ testlangs 'lang=de_DE' 'de_DE' echo 'deb [lang=none] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list testlangs 'lang=none' '' -testequal 'amd64' aptget indextargets --no-release-info 'Created-By: Packages' --format '$(ARCHITECTURE)' +testequal 'amd64 +all' aptget indextargets --no-release-info 'Created-By: Packages' --format '$(ARCHITECTURE)' echo 'deb [lang+=pt] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list testlangs 'lang+=pt' 'en,de,de_DE,pt' |