summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/php/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/php/package.py')
-rw-r--r--var/spack/repos/builtin/packages/php/package.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/php/package.py b/var/spack/repos/builtin/packages/php/package.py
index 714bfb0e8f..d5da45eb94 100644
--- a/var/spack/repos/builtin/packages/php/package.py
+++ b/var/spack/repos/builtin/packages/php/package.py
@@ -5,6 +5,8 @@
from spack import *
+import spack.hooks.sbang as sbang
+
class Php(AutotoolsPackage):
"""
@@ -36,6 +38,27 @@ class Php(AutotoolsPackage):
depends_on('libxml2')
depends_on('sqlite')
+ patch('sbang.patch')
+
+ def patch(self):
+ """
+ phar sbang is added before build phase.
+ Because phar is php script with binary data
+ (Not UTF-8 text file) And phar is embeded own sha1 checksum.
+ """
+ shebang_limit = 127
+
+ if len(self.prefix.bin.php) + 2 <= shebang_limit:
+ return
+
+ new_sbang_line = '#!/bin/bash %s' % sbang.sbang_install_path()
+ original_bang = '-b "$(PHP_PHARCMD_BANG)"'
+ makefile = join_path('ext', 'phar', 'Makefile.frag')
+ filter_file(
+ original_bang,
+ original_bang + ' -z "{0}"'.format(new_sbang_line),
+ makefile, string=True)
+
def autoreconf(self, spec, prefix):
bash = which('bash')
bash('./buildconf', '--force')