summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-10-28 09:25:56 +0000
committerZac Medico <zmedico@gentoo.org>2008-10-28 09:25:56 +0000
commit591d4a65713a5a5c38b1e536a8524f9474a35aa5 (patch)
tree35adefdcbd9a13b518c547bfbd00f772b1515483
parent3b9dad5506e62806cd3b0e46adf7f2b23276853b (diff)
downloadportage-591d4a65713a5a5c38b1e536a8524f9474a35aa5.tar.gz
portage-591d4a65713a5a5c38b1e536a8524f9474a35aa5.tar.bz2
portage-591d4a65713a5a5c38b1e536a8524f9474a35aa5.zip
Fix some incorrect $ROOT handling inside LinkageMap.
svn path=/main/trunk/; revision=11733
-rw-r--r--pym/portage/dbapi/vartree.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py
index 04cb7de25..a62c0520a 100644
--- a/pym/portage/dbapi/vartree.py
+++ b/pym/portage/dbapi/vartree.py
@@ -244,7 +244,8 @@ class LinkageMap(object):
obj = fields[1]
obj_key = self._ObjectKey(obj, root)
soname = fields[2]
- path = set([normalize_path(x)
+ path = set([
+ normalize_path(os.path.join(self._root, x.lstrip(os.path.sep)))
for x in filter(None, fields[3].replace(
"${ORIGIN}", os.path.dirname(obj)).replace(
"$ORIGIN", os.path.dirname(obj)).split(":"))])
@@ -519,7 +520,8 @@ class LinkageMap(object):
for provider_key in self._libs[soname][arch]["providers"]:
providers = self._obj_properties[provider_key][4]
for provider in providers:
- if os.path.dirname(provider) in path:
+ if os.path.join(self._root,
+ os.path.dirname(provider).lstrip(os.path.sep)) in path:
rValue[soname].add(provider)
return rValue
@@ -571,8 +573,8 @@ class LinkageMap(object):
# have any consumers.
if not isinstance(obj, self._ObjectKey):
soname = self._obj_properties[obj_key][3]
- obj_dir = os.path.dirname(obj)
- master_link = os.path.join(obj_dir, soname)
+ master_link = os.path.join(self._root,
+ os.path.dirname(obj).lstrip(os.path.sep), soname)
try:
master_st = os.stat(master_link)
obj_st = os.stat(obj)