diff options
author | Daniel Hartwig <mandyke@gmail.com> | 2012-05-03 02:12:49 +0800 |
---|---|---|
committer | Daniel Hartwig <mandyke@gmail.com> | 2012-05-03 02:12:49 +0800 |
commit | b0d8029d09738cec47b1c7ca5aafbf329fbfa4ed (patch) | |
tree | 119c4146ed22545e5a9454b2e1228c463364d970 /src/generic | |
parent | 57bf208225d0b67267e6b3521d55a2d3eea62124 (diff) | |
download | aptitude-b0d8029d09738cec47b1c7ca5aafbf329fbfa4ed.tar.gz |
'install' actions lock /var/cache/apt/archives
Other tasks which access that directory (such as 'apt-get
clean') will now fail if aptitude is downloading or
installing packages. (Closes: #370381)
Diffstat (limited to 'src/generic')
-rw-r--r-- | src/generic/apt/download_install_manager.cc | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/src/generic/apt/download_install_manager.cc b/src/generic/apt/download_install_manager.cc index 6544e39a..9c779f86 100644 --- a/src/generic/apt/download_install_manager.cc +++ b/src/generic/apt/download_install_manager.cc @@ -70,28 +70,23 @@ bool download_install_manager::prepare(OpProgress &progress, if(_error->PendingError()) return false; - // Lock the archive directory.. - FileFd lock; - if(aptcfg->FindB("Debug::NoLocking", false) == false) + fetcher = new pkgAcquire; + if(fetcher->Setup(&acqlog, aptcfg->FindDir("Dir::Cache::archives")) == false) { - lock.Fd(GetLock(aptcfg->FindDir("Dir::State::Lists")+"lock")); - if(_error->PendingError() == true) - { - _error->Error(_("Couldn't lock list directory..are you root?")); - return false; - } + delete fetcher; + fetcher = NULL; + return false; } if(!src_list.ReadMainList()) { _error->Error(_("Couldn't read source list")); + delete fetcher; + fetcher = NULL; return false; } - fetcher = new pkgAcquire; - fetcher->Setup(&acqlog); - if(!pm->GetArchives(fetcher, &src_list, apt_package_records) || _error->PendingError()) { |