summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Rood <jon.rood@nrel.gov>2018-07-22 15:51:59 -0600
committerAdam J. Stewart <ajstewart426@gmail.com>2018-07-22 16:51:59 -0500
commit777a0fe5df4682a7f04b0c63e5cb7697ed4055f8 (patch)
tree37c12946e0ba5154ed0d39158c7b37da6c683fdb
parentc9147aad80d89e6659265d18ffeaf41fea18daef (diff)
downloadspack-777a0fe5df4682a7f04b0c63e5cb7697ed4055f8.tar.gz
spack-777a0fe5df4682a7f04b0c63e5cb7697ed4055f8.tar.bz2
spack-777a0fe5df4682a7f04b0c63e5cb7697ed4055f8.tar.xz
spack-777a0fe5df4682a7f04b0c63e5cb7697ed4055f8.zip
Make read only source file writeable in perl before patch to avoid failures on lustre filesystem. (#8764)
-rw-r--r--var/spack/repos/builtin/packages/perl/package.py12
1 files changed, 12 insertions, 0 deletions
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