diff options
-rw-r--r-- | ftparchive/writer.cc | 8 | ||||
-rwxr-xr-x | test/integration/test-apt-update-weak-hashes | 2 | ||||
-rwxr-xr-x | test/integration/test-bug-872963-apt-ftparchive-disable-hashes | 40 | ||||
-rwxr-xr-x | test/integration/test-compressed-indexes | 2 |
4 files changed, 50 insertions, 2 deletions
diff --git a/ftparchive/writer.cc b/ftparchive/writer.cc index bdf9893c2..bb855d532 100644 --- a/ftparchive/writer.cc +++ b/ftparchive/writer.cc @@ -849,12 +849,20 @@ bool SourcesWriter::DoPackage(string FileName) Changes.push_back(pkgTagSection::Tag::Rewrite("Package", Package)); if (Files.empty() == false) Changes.push_back(pkgTagSection::Tag::Rewrite("Files", Files)); + else + Changes.push_back(pkgTagSection::Tag::Remove("Files")); if (ChecksumsSha1.empty() == false) Changes.push_back(pkgTagSection::Tag::Rewrite("Checksums-Sha1", ChecksumsSha1)); + else + Changes.push_back(pkgTagSection::Tag::Remove("Checksums-Sha1")); if (ChecksumsSha256.empty() == false) Changes.push_back(pkgTagSection::Tag::Rewrite("Checksums-Sha256", ChecksumsSha256)); + else + Changes.push_back(pkgTagSection::Tag::Remove("Checksums-Sha256")); if (ChecksumsSha512.empty() == false) Changes.push_back(pkgTagSection::Tag::Rewrite("Checksums-Sha512", ChecksumsSha512)); + else + Changes.push_back(pkgTagSection::Tag::Remove("Checksums-Sha512")); if (Directory != "./") Changes.push_back(pkgTagSection::Tag::Rewrite("Directory", Directory)); Changes.push_back(pkgTagSection::Tag::Rewrite("Priority", BestPrio)); diff --git a/test/integration/test-apt-update-weak-hashes b/test/integration/test-apt-update-weak-hashes index b07dba6a2..c44ab9ab0 100755 --- a/test/integration/test-apt-update-weak-hashes +++ b/test/integration/test-apt-update-weak-hashes @@ -198,5 +198,5 @@ testsuccess apt source foo4 cp ../rootdir/tmp/testsuccess.output source.output testsuccess grep 'Skipping download of file' source.output testfailure test -e foo4_1.dsc -testsuccess test -e foo4_1.tar.* +testfailure test -e foo4_1.tar.* cd .. diff --git a/test/integration/test-bug-872963-apt-ftparchive-disable-hashes b/test/integration/test-bug-872963-apt-ftparchive-disable-hashes new file mode 100755 index 000000000..ff0124684 --- /dev/null +++ b/test/integration/test-bug-872963-apt-ftparchive-disable-hashes @@ -0,0 +1,40 @@ +#!/bin/sh +set -e + +TESTDIR="$(readlink -f "$(dirname "$0")")" +. "$TESTDIR/framework" + +setupenvironment + +touch aptarchive/apt_1.5~rc1.tar.xz +cat >> aptarchive/apt_1.5~rc1.dsc << EOF +Format: 3.0 (native) +Source: apt +Binary: apt +Architecture: any all +Version: 1.5~rc1 +Build-Depends: foo +Package-List: + apt deb admin important arch=any +Checksums-Sha1: + 332b354b0c7cbd936a4a95f3ce149aa03677cabf 2095076 apt_1.5~rc1.tar.xz +Checksums-Sha256: + 14d09b2c1e13f9a70aac3322987ff26f36c53010639763573c9aa4987e52e47a 2095076 apt_1.5~rc1.tar.xz +Checksums-Sha512: + 4f570c10c3fd549b2e27db4481fbc1ebebed52bd06a8ba7c0716b3917a8452bb3d3cd4fbb02561e02af09b1973a65a4cc69a42c21e858b1d5c3caa970aea4fd4 2095076 apt_1.5~rc1.tar.xz +Files: + 7ea24e77b6203e08ca4158831df26825 2095076 apt_1.5~rc1.tar.xz +EOF + + +rm rootdir/etc/apt/apt.conf.d/* + +for HASH in MD5 SHA1 SHA256 SHA512; do + testsuccess aptftparchive -qq sources -o APT::FTPArchive::$HASH=false "aptarchive/" + cp rootdir/tmp/testsuccess.output aptarchive/Sources + if [ "$HASH" = "MD5" ]; then + testfailure grep "Files:" aptarchive/Sources + else + testfailure grep -i "$HASH:" aptarchive/Sources + fi +done diff --git a/test/integration/test-compressed-indexes b/test/integration/test-compressed-indexes index ef02b45f6..858bf1178 100755 --- a/test/integration/test-compressed-indexes +++ b/test/integration/test-compressed-indexes @@ -140,7 +140,7 @@ test $(echo "$GOODSHOW" | grep -e '^Package: testpkg' -e '^Version: 1.0' -e '^Ar testsuccessequal "$GOODSHOW" aptcache show testpkg GOODSHOWSRC="$(aptcache showsrc testpkg) " -test $(echo "$GOODSHOWSRC" | grep -e '^Package: testpkg' -e '^Format: 3.0 (native)' -e '^Files:' -e '^Checksums-Sha256:' | wc -l) -eq 4 || msgdie 'showsrc is broken' +test $(echo "$GOODSHOWSRC" | grep -e '^Package: testpkg' -e '^Format: 3.0 (native)' -e '^Checksums-Sha256:' | wc -l) -eq 3 || msgdie 'showsrc is broken' testsuccessequal "$GOODSHOWSRC" aptcache showsrc testpkg GOODPOLICY="$(aptcache policy testpkg)" test $(echo "$GOODPOLICY" | grep -e '^testpkg:' -e '^ Candidate:' -e '^ Installed: (none)' -e '500 file:/' | wc -l) -eq 4 || msgdie 'file policy is broken' |