Browse Source

fix 'install --no-download' mode

The mode wasn't working at all if not used together with --fix-missing
which while likely to come in pairs its legal to use standalone.

Regression-in: eb1f04dda0
tags/debian/1.4_rc1
David Kalnischkies 4 years ago
parent
commit
3313eaf97c
2 changed files with 20 additions and 6 deletions
  1. +8
    -5
      apt-private/private-install.cc
  2. +12
    -1
      test/integration/test-apt-keep-downloaded-pkgs

+ 8
- 5
apt-private/private-install.cc View File

@@ -136,16 +136,19 @@ bool InstallPackages(CacheFile &Cache,bool ShwKept,bool Ask, bool Safety)
_error->PendingError() == true)
return false;

if (_config->FindB("APT::Get::Fix-Missing",false) == true &&
_config->FindB("APT::Get::Download",true) == false)
if (_config->FindB("APT::Get::Download",true) == false)
{
bool Missing = false;
RemoveDownloadNeedingItemsFromFetcher(Fetcher, Missing);
if (Missing)
PM->FixMissing();
{
if (_config->FindB("APT::Get::Fix-Missing",false))
PM->FixMissing();
else
return _error->Error(_("Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?"));
}
Fetcher.Shutdown();
if (PM->GetArchives(&Fetcher,List,&Recs) == false ||
_error->PendingError() == true)
if (_error->PendingError() == true)
return false;
}



+ 12
- 1
test/integration/test-apt-keep-downloaded-pkgs View File

@@ -15,14 +15,25 @@ buildsimplenativepackage 'pkg4' 'all' '1.0' 'stable'
# local (file) installs
setupaptarchive

# a file:// "download" is not a real download and hence passes
testsuccess aptget install pkg1 --no-download --download-only -y
testfailure test -f rootdir/var/cache/apt/archives/pkg1_1.0_all.deb
testsuccess test -f aptarchive/pool/pkg1_1.0_all.deb

# 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
testfailure test -f rootdir/var/cache/apt/archives/pkg1_1.0_all.deb

# now switch to http and downloading debs
changetowebserver
testsuccess aptget update

# see if no-download really doesn't download the package
testfailuremsg 'E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?' aptget install pkg2 --no-download -y
testsuccess test -f aptarchive/pool/pkg2_1.0_all.deb
testfailure test -f rootdir/var/cache/apt/archives/pkg2_1.0_all.deb

# 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
@@ -40,4 +51,4 @@ 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
testsuccess test -f $(pwd)/rootdir/var/cache/apt/archives/pkg4_1.0_all.deb

Loading…
Cancel
Save