summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorMichael Kuhn <suraia@ikkoku.de>2018-01-13 15:50:06 +0100
committerAdam J. Stewart <ajstewart426@gmail.com>2018-01-13 08:50:06 -0600
commitd8b03d1e379c259781995b861fad8aa12c6fbde7 (patch)
tree31ce5404de40f53fc50ece3c863b8728e63aec07 /var
parente8df0ddce45a3f83fe768303b9653b372136598e (diff)
downloadspack-d8b03d1e379c259781995b861fad8aa12c6fbde7.tar.gz
spack-d8b03d1e379c259781995b861fad8aa12c6fbde7.tar.bz2
spack-d8b03d1e379c259781995b861fad8aa12c6fbde7.tar.xz
spack-d8b03d1e379c259781995b861fad8aa12c6fbde7.zip
glib: Fix python handling (#6910)
Newer versions of glib require python. Fix up the python sbangs the same way we already fix up the perl ones. Fixes #6899
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/glib/package.py31
1 files changed, 26 insertions, 5 deletions
diff --git a/var/spack/repos/builtin/packages/glib/package.py b/var/spack/repos/builtin/packages/glib/package.py
index df73bd5eb3..c5e1ae4425 100644
--- a/var/spack/repos/builtin/packages/glib/package.py
+++ b/var/spack/repos/builtin/packages/glib/package.py
@@ -48,6 +48,7 @@ class Glib(AutotoolsPackage):
depends_on('zlib')
depends_on('gettext')
depends_on('perl', type=('build', 'run'))
+ depends_on('python', type=('build', 'run'), when='@2.53.4:')
depends_on('pcre+utf', when='@2.48:')
depends_on('util-linux', when='+libmount')
@@ -73,10 +74,30 @@ class Glib(AutotoolsPackage):
return args
- @run_before('install')
+ @run_before('configure')
+ def fix_python_path(self):
+ if not self.spec.satisfies('@2.53.4:'):
+ return
+
+ files = ['gobject/glib-genmarshal.in', 'gobject/glib-mkenums.in']
+
+ filter_file('^#!/usr/bin/env @PYTHON@',
+ '#!/usr/bin/env python',
+ *files)
+
+ @run_after('install')
def filter_sbang(self):
- # Filter sbang before install so Spack's sbang hook can fix it up
- perl = join_path(self.spec['perl'].prefix.bin, 'perl')
- files = ['gobject/glib-mkenums']
+ # Revert sbang, so Spack's sbang hook can fix it up (we have to do
+ # this after install because otherwise the install target will try
+ # to rebuild files as filter_file updates the timestamps)
+ if self.spec.satisfies('@2.53.4:'):
+ pattern = '^#!/usr/bin/env python'
+ repl = '#!{0}'.format(self.spec['python'].command.path)
+ files = ['glib-genmarshal', 'glib-mkenums']
+ else:
+ pattern = '^#! /usr/bin/perl'
+ repl = '#!{0}'.format(self.spec['perl'].command.path)
+ files = ['glib-mkenums']
- filter_file('^#! /usr/bin/perl', '#!{0}'.format(perl), *files)
+ files = [join_path(self.prefix.bin, file) for file in files]
+ filter_file(pattern, repl, *files, backup=False)