summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2016-11-25 15:51:21 +0100
committerDavid Kalnischkies <david@kalnischkies.de>2016-12-16 13:50:00 +0100
commit58ebb3017baf46e33a9bb2c1779d6daede27d108 (patch)
treeaaba86ad8d941bdcffa2686f23034ddd89eb43c1
parent78db35195eddcd156130fff9ea3e895b30cbf9c3 (diff)
let {dsc,tar,diff}-only implicitly enable download-only
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…
-rw-r--r--apt-private/private-source.cc10
-rwxr-xr-xtest/integration/test-apt-cdrom2
-rwxr-xr-xtest/integration/test-sourceslist-trusted-options4
3 files changed, 6 insertions, 10 deletions
diff --git a/apt-private/private-source.cc b/apt-private/private-source.cc
index 1e819a668..fa9d36af3 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 212f0baa4..01680c461 100755
--- a/test/integration/test-apt-cdrom
+++ b/test/integration/test-apt-cdrom
@@ -112,7 +112,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