summaryrefslogtreecommitdiff
path: root/src/generic
diff options
context:
space:
mode:
authorDaniel Hartwig <mandyke@gmail.com>2012-05-03 02:12:49 +0800
committerDaniel Hartwig <mandyke@gmail.com>2012-05-03 02:12:49 +0800
commitb0d8029d09738cec47b1c7ca5aafbf329fbfa4ed (patch)
tree119c4146ed22545e5a9454b2e1228c463364d970 /src/generic
parent57bf208225d0b67267e6b3521d55a2d3eea62124 (diff)
downloadaptitude-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.cc19
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())
{