diff options
author | Michael Vogt <egon@bottom> | 2006-12-14 12:39:29 +0100 |
---|---|---|
committer | Michael Vogt <egon@bottom> | 2006-12-14 12:39:29 +0100 |
commit | 6ca714d55119e87a01bd475abd08e7212dcafbd0 (patch) | |
tree | 264c3a939b34f5daea19f45619686f060569f34d /cmdline/apt-get.cc | |
parent | 0660506d1916f6538359f238e860804441ba24f3 (diff) | |
parent | dc4002d8c3c687e6614d01b34e4b6aa929411ea9 (diff) |
* merged the apt-breaks-iwj branch
* pulled in the other remaining ubuntu changes
Diffstat (limited to 'cmdline/apt-get.cc')
-rw-r--r-- | cmdline/apt-get.cc | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 6949dc6eb..b47c2ec09 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -1372,20 +1372,29 @@ bool DoUpdate(CommandLine &CmdL) return false; bool Failed = false; + bool TransientNetworkFailure = false; for (pkgAcquire::ItemIterator I = Fetcher.ItemsBegin(); I != Fetcher.ItemsEnd(); I++) { if ((*I)->Status == pkgAcquire::Item::StatDone) continue; (*I)->Finished(); - + fprintf(stderr,_("Failed to fetch %s %s\n"),(*I)->DescURI().c_str(), (*I)->ErrorText.c_str()); + + if ((*I)->Status == pkgAcquire::Item::StatTransientNetworkError) + { + TransientNetworkFailure = true; + continue; + } + Failed = true; } // Clean out any old list files - if (!Failed && _config->FindB("APT::Get::List-Cleanup",true) == true) + if (!TransientNetworkFailure && + _config->FindB("APT::Get::List-Cleanup",true) == true) { if (Fetcher.Clean(_config->FindDir("Dir::State::lists")) == false || Fetcher.Clean(_config->FindDir("Dir::State::lists") + "partial/") == false) @@ -1397,9 +1406,11 @@ bool DoUpdate(CommandLine &CmdL) if (Cache.BuildCaches() == false) return false; - if (Failed == true) + if (TransientNetworkFailure == true) + _error->Warning(_("Some index files failed to download, they have been ignored, or old ones used instead.")); + else if (Failed == true) return _error->Error(_("Some index files failed to download, they have been ignored, or old ones used instead.")); - + return true; } /*}}}*/ @@ -1709,8 +1720,10 @@ bool DoInstall(CommandLine &CmdL) return _error->Error(_("Broken packages")); } } - if (!DoAutomaticRemove(Cache)) + if (_config->FindB("APT::Get::AutomaticRemove")) { + if (!DoAutomaticRemove(Cache)) return false; + } /* Print out a list of packages that are going to be installed extra to what the user asked */ @@ -2621,6 +2634,7 @@ void GetInitialize() _config->Set("APT::Get::Fix-Broken",false); _config->Set("APT::Get::Force-Yes",false); _config->Set("APT::Get::List-Cleanup",true); + _config->Set("APT::Get::AutomaticRemove",false); } /*}}}*/ // SigWinch - Window size change signal handler /*{{{*/ |