[PATCH modular 2/3 (v2)] jhbuildrc: Support skipping packages on a per-architecture basis.

Cyril Brulebois kibi at debian.org
Sun Nov 14 14:41:36 PST 2010


Thanks to an execfile() in jhbuildrc, allow managing packages to be
skipped on this or that architecture to be listed in an external file.

Signed-off-by: Cyril Brulebois <kibi at debian.org>
---
 arch.skip |   28 ++++++++++++++++++++++++++++
 jhbuildrc |   11 ++++++++++-
 2 files changed, 38 insertions(+), 1 deletions(-)
 create mode 100644 arch.skip

diff --git a/arch.skip b/arch.skip
new file mode 100644
index 0000000..86390ba
--- /dev/null
+++ b/arch.skip
@@ -0,0 +1,28 @@
+# This module is supposed to be execfile()'d from jhbuildrc. It sets the
+# 'skip' variable for use from that configuration file.
+#
+# For code clarity's sake, some variables are used in this file. To prevent
+# jhbuild from complaining about keys it doesn't know about, 'del' is called
+# at the end to pretend they never existed.
+#
+# To determine your architecture, run this:
+#     python -c 'import os; print os.uname()[4]'
+#
+# There might be better ways to detect the architecture. Patches welcome.
+
+import os
+current_arch = os.uname()[4]
+
+# Dictionary: arch => list of packages to skip
+arch_blacklist = {
+  'x86_64': ['xf86-video-geode',  # not on 64-bit   (#26341)
+             'xf86-video-impact', # not on non-MIPS (#26342)
+            ],
+}
+
+# No package to skip if the architecture isn't known:
+skip = arch_blacklist[current_arch] if arch_blacklist.has_key(current_arch) else []
+
+# Clean-up for jhbuild:
+del arch_blacklist
+del current_arch
diff --git a/jhbuildrc b/jhbuildrc
index e10c8bf..06158f9 100644
--- a/jhbuildrc
+++ b/jhbuildrc
@@ -10,7 +10,8 @@
 
 #moduleset = 'http://cgit.freedesktop.org/xorg/util/modular/blob/xorg.modules'
 # Requires the module set be in $HOME/xorg/util/modular/
-moduleset = os.path.join(os.environ['HOME'], 'xorg', 'util', 'modular', 'xorg.modules')
+modular_root = os.path.join(os.environ['HOME'], 'xorg', 'util', 'modular')
+moduleset = os.path.join(modular_root, 'xorg.modules')
 
 modules = [ 'xorg' ]
 
@@ -26,3 +27,11 @@ os.environ['PKG_CONFIG_PATH'] = os.path.join(prefix, 'lib', 'pkgconfig') \
 
 # Needed to configure libdrm for xf86-video-nouveau:
 module_autogenargs['libdrm'] = autogenargs + ' --enable-nouveau-experimental-api'
+
+# Skip some packages depending on the architecture: executing the file sets
+# 'skip', the variable used by jhbuild. It can be tweaked in several ways,
+# e.g.:  skip.append('xorg-drivers')  or  skip.extend(['xset', 'xvinfo'])
+execfile(os.path.join(modular_root, 'arch.skip'))
+
+# Hide this commodity variable from jhbuild:
+del modular_root
-- 
1.7.2.3



More information about the xorg-devel mailing list