From 777a0fe5df4682a7f04b0c63e5cb7697ed4055f8 Mon Sep 17 00:00:00 2001 From: Jon Rood Date: Sun, 22 Jul 2018 15:51:59 -0600 Subject: Make read only source file writeable in perl before patch to avoid failures on lustre filesystem. (#8764) --- var/spack/repos/builtin/packages/perl/package.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/perl/package.py b/var/spack/repos/builtin/packages/perl/package.py index 3e40c68349..ef69a88ad3 100644 --- a/var/spack/repos/builtin/packages/perl/package.py +++ b/var/spack/repos/builtin/packages/perl/package.py @@ -102,6 +102,18 @@ class Perl(Package): # Perl doesn't use Autotools, it should subclass Package phases = ['configure', 'build', 'install'] + # On a lustre filesystem, patch may fail when files + # aren't writeable so make pp.c user writeable + # before patching. This should probably walk the + # source and make everything writeable in the future. + def do_stage(self, mirror_only=False): + # Do Spack's regular stage + super(Perl, self).do_stage(mirror_only) + # Add write permissions on file to be patched + filename = join_path(self.stage.source_path, 'pp.c') + perm = os.stat(filename).st_mode + os.chmod(filename, perm | 0o200) + def configure_args(self): spec = self.spec prefix = self.prefix -- cgit v1.2.3-70-g09d2