From e3a961869a89016a1e197312002b96325ecc5534 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 25 Nov 2016 15:51:21 +0100 Subject: let {dsc,tar,diff}-only implicitly enable download-only MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit That was the case already for tar-only and diff-only, but in a more confusing way and without a message while dsc "worked" before resulting in a dpkg-source error shortly after as tar/diff files aren't available… (cherry picked from commit 58ebb3017baf46e33a9bb2c1779d6daede27d108) (cherry picked from commit ab951bc3184d62d9bf9a94187468329e53ac0d0a) --- apt-private/private-source.cc | 10 +++------- test/integration/test-apt-cdrom | 2 +- test/integration/test-sourceslist-trusted-options | 4 ++-- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/apt-private/private-source.cc b/apt-private/private-source.cc index 220f1bd5a..e098d7577 100644 --- a/apt-private/private-source.cc +++ b/apt-private/private-source.cc @@ -495,7 +495,7 @@ bool DoSource(CommandLine &CmdL) return _error->Error(_("Failed to fetch some archives.")); } - if (_config->FindB("APT::Get::Download-only",false) == true) + if (diffOnly || tarOnly || dscOnly || _config->FindB("APT::Get::Download-only",false) == true) { c1out << _("Download complete and in download only mode") << std::endl; return true; @@ -509,13 +509,9 @@ bool DoSource(CommandLine &CmdL) bool const fixBroken = _config->FindB("APT::Get::Fix-Broken", false); for (unsigned I = 0; I != J; ++I) { - std::string Dir = Dsc[I].Package + '-' + Cache.GetPkgCache()->VS->UpstreamVersion(Dsc[I].Version.c_str()); - - // Diff only mode only fetches .diff files - if (_config->FindB("APT::Get::Diff-Only",false) == true || - _config->FindB("APT::Get::Tar-Only",false) == true || - Dsc[I].Dsc.empty() == true) + if (unlikely(Dsc[I].Dsc.empty() == true)) continue; + std::string const Dir = Dsc[I].Package + '-' + Cache.GetPkgCache()->VS->UpstreamVersion(Dsc[I].Version.c_str()); // See if the package is already unpacked struct stat Stat; diff --git a/test/integration/test-apt-cdrom b/test/integration/test-apt-cdrom index a3c3b5ba0..c60635443 100755 --- a/test/integration/test-apt-cdrom +++ b/test/integration/test-apt-cdrom @@ -107,7 +107,7 @@ Conf testing:i386 (0.8.15 stable [i386])' aptget install testing:i386 -s rm -f testing_0.8.15_amd64.deb rm -f testing_0.8.15.dsc - testsuccess aptget source testing --dsc-only -d + testsuccess aptget source testing --dsc-only testsuccess test -s testing_0.8.15.dsc rm -f testing_0.8.15.dsc cd - >/dev/null diff --git a/test/integration/test-sourceslist-trusted-options b/test/integration/test-sourceslist-trusted-options index 94de11ef7..1eee3b09a 100755 --- a/test/integration/test-sourceslist-trusted-options +++ b/test/integration/test-sourceslist-trusted-options @@ -26,7 +26,7 @@ foo/stable 1 amd64 testsuccess test -s foo_1_amd64.deb -o -s foo_2_amd64.deb rm -f foo_1.dsc foo_2.dsc - testsuccess aptget source foo --dsc-only -d "$@" + testsuccess aptget source foo --dsc-only "$@" testsuccess test -s foo_1.dsc -o -s foo_2.dsc cd - >/dev/null } @@ -48,7 +48,7 @@ E: Some packages could not be authenticated' testfailure test -s foo_1_amd64.deb -o -s foo_2_amd64.deb rm -f foo_1.dsc foo_2.dsc - testfailure aptget source foo --dsc-only -d "$@" + testfailure aptget source foo --dsc-only "$@" testequal "$WARNING" tail -n 3 ../rootdir/tmp/testfailure.output testfailure test -s foo_1.dsc -o -s foo_2.dsc cd - >/dev/null -- cgit v1.2.3