diff options
author | Zac Medico <zmedico@gentoo.org> | 2011-05-07 22:02:38 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2011-05-07 22:02:38 -0700 |
commit | 6d916753c07ccad4fcc596b155d776f297aeeb68 (patch) | |
tree | eb4d94fa75a9b196facf7c90dbf616903eb0b451 | |
parent | 36ad74b36d6d70a21d24ef7cb180ab09a6a327f0 (diff) | |
download | portage-6d916753c07ccad4fcc596b155d776f297aeeb68.tar.gz portage-6d916753c07ccad4fcc596b155d776f297aeeb68.tar.bz2 portage-6d916753c07ccad4fcc596b155d776f297aeeb68.zip |
linkmap: check for access before locking vardbapi
-rw-r--r-- | pym/portage/util/_dyn_libs/LinkageMapELF.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/pym/portage/util/_dyn_libs/LinkageMapELF.py b/pym/portage/util/_dyn_libs/LinkageMapELF.py index 31aacbbf2..11e32b6b9 100644 --- a/pym/portage/util/_dyn_libs/LinkageMapELF.py +++ b/pym/portage/util/_dyn_libs/LinkageMapELF.py @@ -183,7 +183,9 @@ class LinkageMapELF(object): lines.append((include_file, line)) aux_keys = [self._needed_aux_key] - self._dbapi.lock() + can_lock = os.access(os.path.dirname(self._dbapi._dbroot), os.W_OK) + if can_lock: + self._dbapi.lock() try: for cpv in self._dbapi.cpv_all(): if exclude_pkgs is not None and cpv in exclude_pkgs: @@ -193,7 +195,8 @@ class LinkageMapELF(object): for line in self._dbapi.aux_get(cpv, aux_keys)[0].splitlines(): lines.append((needed_file, line)) finally: - self._dbapi.unlock() + if can_lock: + self._dbapi.unlock() # have to call scanelf for preserved libs here as they aren't # registered in NEEDED.ELF.2 files |