Gentoo Archives: gentoo-commits

From: Zac Medico <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage:master commit in: pym/portage/util/_dyn_libs/
Date: Sun, 08 May 2011 05:02:58
Message-Id: 6d916753c07ccad4fcc596b155d776f297aeeb68.zmedico@gentoo
1 commit: 6d916753c07ccad4fcc596b155d776f297aeeb68
2 Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
3 AuthorDate: Sun May 8 05:02:38 2011 +0000
4 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
5 CommitDate: Sun May 8 05:02:38 2011 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=6d916753
7
8 linkmap: check for access before locking vardbapi
9
10 ---
11 pym/portage/util/_dyn_libs/LinkageMapELF.py | 7 +++++--
12 1 files changed, 5 insertions(+), 2 deletions(-)
13
14 diff --git a/pym/portage/util/_dyn_libs/LinkageMapELF.py b/pym/portage/util/_dyn_libs/LinkageMapELF.py
15 index 31aacbb..11e32b6 100644
16 --- a/pym/portage/util/_dyn_libs/LinkageMapELF.py
17 +++ b/pym/portage/util/_dyn_libs/LinkageMapELF.py
18 @@ -183,7 +183,9 @@ class LinkageMapELF(object):
19 lines.append((include_file, line))
20
21 aux_keys = [self._needed_aux_key]
22 - self._dbapi.lock()
23 + can_lock = os.access(os.path.dirname(self._dbapi._dbroot), os.W_OK)
24 + if can_lock:
25 + self._dbapi.lock()
26 try:
27 for cpv in self._dbapi.cpv_all():
28 if exclude_pkgs is not None and cpv in exclude_pkgs:
29 @@ -193,7 +195,8 @@ class LinkageMapELF(object):
30 for line in self._dbapi.aux_get(cpv, aux_keys)[0].splitlines():
31 lines.append((needed_file, line))
32 finally:
33 - self._dbapi.unlock()
34 + if can_lock:
35 + self._dbapi.unlock()
36
37 # have to call scanelf for preserved libs here as they aren't
38 # registered in NEEDED.ELF.2 files