aboutsummaryrefslogtreecommitdiff
path: root/pym
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2012-01-03 22:28:47 +0100
committerZac Medico <zmedico@gentoo.org>2012-01-03 13:34:18 -0800
commitbce4fd1520fed9f35c8004f98ef3ed489efaa5db (patch)
tree819202a7c0b41ca09b03bd5261942ddd9319ed4c /pym
parentebuild.5: fix REQUIRED_USE sample for bug #397415 (diff)
downloadportage-bce4fd1520fed9f35c8004f98ef3ed489efaa5db.tar.gz
portage-bce4fd1520fed9f35c8004f98ef3ed489efaa5db.tar.bz2
portage-bce4fd1520fed9f35c8004f98ef3ed489efaa5db.zip
Support include directives in ld.so.conf.
Diffstat (limited to 'pym')
-rw-r--r--pym/portage/util/__init__.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/pym/portage/util/__init__.py b/pym/portage/util/__init__.py
index 54e683985..db8eb94b1 100644
--- a/pym/portage/util/__init__.py
+++ b/pym/portage/util/__init__.py
@@ -25,6 +25,7 @@ import stat
import string
import sys
import traceback
+import glob
import portage
portage.proxy.lazyimport.lazyimport(globals(),
@@ -1596,12 +1597,22 @@ def find_updated_config_files(target_root, config_protect):
yield (x, None)
def getlibpaths(root, env=None):
+ def read_ld_so_conf(path):
+ for l in grabfile(path):
+ if l.startswith('include '):
+ subpath = os.path.join(os.path.dirname(path), l[8:].strip())
+ for p in glob.glob(subpath):
+ for r in read_ld_so_conf(p):
+ yield r
+ else:
+ yield l
+
""" Return a list of paths that are used for library lookups """
if env is None:
env = os.environ
# the following is based on the information from ld.so(8)
rval = env.get("LD_LIBRARY_PATH", "").split(":")
- rval.extend(grabfile(os.path.join(root, "etc", "ld.so.conf")))
+ rval.extend(read_ld_so_conf(os.path.join(root, "etc", "ld.so.conf")))
rval.append("/usr/lib")
rval.append("/lib")