[jhbuild/wip/path-env: 9/15] config: Add an 'extra_prefixes' variable
- From: Ryan Lortie <desrt src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [jhbuild/wip/path-env: 9/15] config: Add an 'extra_prefixes' variable
- Date: Thu, 13 Mar 2014 00:00:13 +0000 (UTC)
commit 19abb2bbda248659817aec2c80bc5220d4cd7bda
Author: Ryan Lortie <desrt desrt ca>
Date: Wed Mar 12 17:15:15 2014 -0400
config: Add an 'extra_prefixes' variable
Add an extra_prefixes variable that will instruct jhbuild to act as it
has been run inside of itself with two separate prefixes. This allows
setting up a 'cascading' environment where you could have multiple
layers of jhbuild on top of each other (for different sets of work).
It also allows for proper handling of /usr/local on systems that install
software there (and we set 'extra_prefixes' to contain '/usr/local' by
default on those systems).
The extra_prefixes list is traversed so that the first entry has highest
precedence.
doc/C/index.docbook | 19 +++++++++++++++++++
jhbuild/config.py | 5 ++++-
jhbuild/defaults.jhbuildrc | 2 ++
3 files changed, 25 insertions(+), 1 deletions(-)
---
diff --git a/doc/C/index.docbook b/doc/C/index.docbook
index d544936..35dd6b8 100644
--- a/doc/C/index.docbook
+++ b/doc/C/index.docbook
@@ -1733,6 +1733,25 @@ Optional packages: (JHBuild will build the missing packages)
supported by Git and Bazaar repositories.</simpara>
</listitem>
</varlistentry>
+ <varlistentry id="cfg-extra-prefixes">
+ <term>
+ <varname>extra_prefixes</varname>
+ </term>
+ <listitem>
+ <simpara>A list of strings specifying, in precedence order, the list
+ of extra prefixes. JHBuild sets many environment variables (such
+ as <envar>LD_LIBRARY_PATH</envar>, <envar>PKG_CONFIG_PATH</envar>
+ and <envar>XDG_DATA_DIRS</envar>) based on the
+ <varname>prefix</varname> variable. Adding directories to
+ <varname>extra_prefixes</varname> will cause these prefixes to be
+ included as well, at a lower precedence than the JHBuild
+ <varname>prefix</varname>, but at a higher precendence than system
+ directories. This variable is empty by default except on systems
+ that install software in <filename>/usr/local</filename>, in which
+ case it contains this directory.
+ </simpara>
+ </listitem>
+ </varlistentry>
<varlistentry id="cfg-help-website">
<term>
<varname>help_website</varname>
diff --git a/jhbuild/config.py b/jhbuild/config.py
index f41192e..0135a33 100644
--- a/jhbuild/config.py
+++ b/jhbuild/config.py
@@ -64,7 +64,7 @@ _known_keys = [ 'moduleset', 'modules', 'skip', 'tags', 'prefix',
'print_command_pattern', 'static_analyzer',
'module_static_analyzer', 'static_analyzer_template',
'static_analyzer_outputdir', 'check_sysdeps', 'system_prefix',
- 'help_website', 'conditions'
+ 'help_website', 'conditions', 'extra_prefixes'
]
env_prepends = {}
@@ -213,6 +213,9 @@ class Config:
self.create_directories()
setup_env_defaults(self.system_libdirs)
+
+ for prefix in reversed(self.extra_prefixes):
+ setup_env(prefix)
setup_env(self.prefix)
self.apply_env_prepends()
diff --git a/jhbuild/defaults.jhbuildrc b/jhbuild/defaults.jhbuildrc
index 188ae79..7ff3cd6 100644
--- a/jhbuild/defaults.jhbuildrc
+++ b/jhbuild/defaults.jhbuildrc
@@ -136,6 +136,7 @@ module_checkout_mode = {}
copy_dir = None
# attempt to detect the system library path
+extra_prefixes = []
try:
# Debian-style multiarch
system_libdirs = ['/usr/lib/' + sys._multiarch, '/usr/lib']
@@ -146,6 +147,7 @@ except AttributeError:
for path in sys.path:
if path.startswith('/usr/local/lib/') and not '/usr/local/lib' in system_libdirs:
system_libdirs.append('/usr/local/lib')
+ extra_prefixes = ['/usr/local']
elif path.startswith('/usr/lib64/') and not '/usr/lib64' in system_libdirs:
system_libdirs.append('/usr/lib64')
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]