_config->CndSet("Binary::apt::APT::Cmd::Show-Update-Stats", true);
_config->CndSet("Binary::apt::DPkg::Progress-Fancy", true);
_config->CndSet("Binary::apt::Acquire::AllowInsecureRepositories", false);
+ _config->CndSet("Binary::apt::APT::Keep-Downloaded-Packages", false);
}
_config->Set("Binary", binary);
c0out << _("Note: This is done automatically and on purpose by dpkg.") << std::endl;
}
+ // cleanup downloaded debs
+ if (_config->FindB("APT::Keep-Downloaded-Packages", true) == false)
+ {
+ std::string const archivedir = _config->FindDir("Dir::Cache::archives");
+ for (auto I = Fetcher.ItemsBegin(); I != Fetcher.ItemsEnd(); ++I)
+ {
+ if (flNotFile((*I)->DestFile) != archivedir || (*I)->Local)
+ continue;
+ RemoveFile("Keep-Downloaded-Packages=false", (*I)->DestFile);
+ }
+ }
+
return true;
}
/*}}}*/
--- /dev/null
+#!/bin/sh
+set -e
+
+TESTDIR="$(readlink -f "$(dirname "$0")")"
+. "$TESTDIR/framework"
+
+setupenvironment
+configarchitecture 'native'
+
+buildsimplenativepackage 'pkg1' 'all' '1.0' 'stable'
+buildsimplenativepackage 'pkg2' 'all' '1.0' 'stable'
+buildsimplenativepackage 'pkg3' 'all' '1.0' 'stable'
+buildsimplenativepackage 'pkg4' 'all' '1.0' 'stable'
+
+# local (file) installs
+setupaptarchive
+
+# ensure that install from local sources does not remove debs
+testsuccess aptget install pkg1 -o APT::Keep-Downloaded-Packages=false
+testsuccess test -f aptarchive/pool/pkg1_1.0_all.deb
+
+# now switch to http and downloading debs
+changetowebserver
+testsuccess aptget update
+
+# ensure that the downloaded pkg is kept with "keep=true"
+testsuccess aptget install pkg2 -o APT::Keep-Downloaded-Packages=true
+testsuccess test -f aptarchive/pool/pkg2_1.0_all.deb
+testsuccess test -f rootdir/var/cache/apt/archives/pkg2_1.0_all.deb
+
+# ensure that the downloaded pkg is removed when requested
+testsuccess aptget install pkg3 -o APT::Keep-Downloaded-Packages=false
+testsuccess test -f aptarchive/pool/pkg3_1.0_all.deb
+# this was there before, keep it
+testsuccess test -f rootdir/var/cache/apt/archives/pkg2_1.0_all.deb
+# this got installed so we can remove it now
+testfailure test -f rootdir/var/cache/apt/archives/pkg3_1.0_all.deb
+
+
+# ensure that install from the download dir does not delete packages
+mv aptarchive/pool/pkg4_1.0_all.deb rootdir/var/cache/apt/archives
+testsuccess aptget install $(pwd)/rootdir/var/cache/apt/archives/pkg4_1.0_all.deb -o APT::Keep-Downloaded-Packages=false
+testsuccess test -f $(pwd)/rootdir/var/cache/apt/archives/pkg4_1.0_all.deb
\ No newline at end of file