From 94b6302eae6206104da5e5e0c579773f09242d7c Mon Sep 17 00:00:00 2001 From: "martin.blapp@roche.com" Date: Wed, 25 Nov 2015 14:26:40 +0100 Subject: [PATCH 1/6] eb --module-only skips the PYTHONPATH define, resulting in a corrupt PYTHONPATH in the created module file. This happens independent of an installed EB software, so it even happens if the software was installed before and you recreate the modulefile. --- easybuild/easyblocks/generic/pythonpackage.py | 1 + 1 file changed, 1 insertion(+) diff --git a/easybuild/easyblocks/generic/pythonpackage.py b/easybuild/easyblocks/generic/pythonpackage.py index 44527066ee8..83b57129e00 100644 --- a/easybuild/easyblocks/generic/pythonpackage.py +++ b/easybuild/easyblocks/generic/pythonpackage.py @@ -297,6 +297,7 @@ def sanity_check_step(self, *args, **kwargs): def make_module_extra(self, *args, **kwargs): """Add install path to PYTHONPATH""" txt = '' + self.set_pylibdirs() for path in self.all_pylibdirs: fullpath = os.path.join(self.installdir, path) # only extend $PYTHONPATH with existing, non-empty directories From 4cf30973936de773ebf83644e0b3eac29949cd3e Mon Sep 17 00:00:00 2001 From: "martin.blapp@roche.com" Date: Wed, 25 Nov 2015 14:32:08 +0100 Subject: [PATCH 2/6] Change tab to spaces --- easybuild/easyblocks/generic/pythonpackage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyblocks/generic/pythonpackage.py b/easybuild/easyblocks/generic/pythonpackage.py index 83b57129e00..11e556b2c00 100644 --- a/easybuild/easyblocks/generic/pythonpackage.py +++ b/easybuild/easyblocks/generic/pythonpackage.py @@ -297,7 +297,7 @@ def sanity_check_step(self, *args, **kwargs): def make_module_extra(self, *args, **kwargs): """Add install path to PYTHONPATH""" txt = '' - self.set_pylibdirs() + self.set_pylibdirs() for path in self.all_pylibdirs: fullpath = os.path.join(self.installdir, path) # only extend $PYTHONPATH with existing, non-empty directories From 68a53985b1d4c97ddc2d7a5972c409eaa4ee1f95 Mon Sep 17 00:00:00 2001 From: Martin Blapp Date: Wed, 25 Nov 2015 14:41:21 +0100 Subject: [PATCH 3/6] Chmod a configure file to make it always executable. --- easybuild/easyblocks/generic/configuremake.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/easybuild/easyblocks/generic/configuremake.py b/easybuild/easyblocks/generic/configuremake.py index 23db7c0c750..143cd3e383b 100644 --- a/easybuild/easyblocks/generic/configuremake.py +++ b/easybuild/easyblocks/generic/configuremake.py @@ -79,6 +79,9 @@ def configure_step(self, cmd_prefix=''): for (key, val) in tar_vars.items(): self.cfg.update('preconfigopts', "%s='%s'" % (key, val)) + # Ensure that configure has the excutable bit set, needed if a patch created configure itself + import os + os.chmod('./configure', 0755) cmd = "%(preconfigopts)s %(cmd_prefix)s./configure %(prefix_opt)s%(installdir)s %(configopts)s" % { 'preconfigopts': self.cfg['preconfigopts'], 'cmd_prefix': cmd_prefix, From fa709d01b2fc3a0310dad3e59352d2a5ec1d8663 Mon Sep 17 00:00:00 2001 From: "martin.blapp@roche.com" Date: Wed, 25 Nov 2015 14:50:09 +0100 Subject: [PATCH 4/6] Revert changes from former pull request --- easybuild/easyblocks/generic/pythonpackage.py | 1 - 1 file changed, 1 deletion(-) diff --git a/easybuild/easyblocks/generic/pythonpackage.py b/easybuild/easyblocks/generic/pythonpackage.py index 11e556b2c00..44527066ee8 100644 --- a/easybuild/easyblocks/generic/pythonpackage.py +++ b/easybuild/easyblocks/generic/pythonpackage.py @@ -297,7 +297,6 @@ def sanity_check_step(self, *args, **kwargs): def make_module_extra(self, *args, **kwargs): """Add install path to PYTHONPATH""" txt = '' - self.set_pylibdirs() for path in self.all_pylibdirs: fullpath = os.path.join(self.installdir, path) # only extend $PYTHONPATH with existing, non-empty directories From 96fd1f5a5a28afb8ba3ebd68bea6e4528bebdfd2 Mon Sep 17 00:00:00 2001 From: "martin.blapp@roche.com" Date: Wed, 25 Nov 2015 16:09:02 +0100 Subject: [PATCH 5/6] Use adjust_permissions() instead of os.chmod() --- easybuild/easyblocks/generic/configuremake.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/easybuild/easyblocks/generic/configuremake.py b/easybuild/easyblocks/generic/configuremake.py index 143cd3e383b..fd1b86b3ec3 100644 --- a/easybuild/easyblocks/generic/configuremake.py +++ b/easybuild/easyblocks/generic/configuremake.py @@ -34,9 +34,11 @@ @author: Toon Willems (Ghent University) """ +import stat from easybuild.framework.easyblock import EasyBlock from easybuild.framework.easyconfig import CUSTOM from easybuild.tools.run import run_cmd +from easybuild.tools.filetools import adjust_permissions class ConfigureMake(EasyBlock): @@ -80,8 +82,7 @@ def configure_step(self, cmd_prefix=''): self.cfg.update('preconfigopts', "%s='%s'" % (key, val)) # Ensure that configure has the excutable bit set, needed if a patch created configure itself - import os - os.chmod('./configure', 0755) + adjust_permissions('configure', stat.S_IXUSR, add=True) cmd = "%(preconfigopts)s %(cmd_prefix)s./configure %(prefix_opt)s%(installdir)s %(configopts)s" % { 'preconfigopts': self.cfg['preconfigopts'], 'cmd_prefix': cmd_prefix, From ccdba02b46ffe9ed175391c4be106d52da3132f5 Mon Sep 17 00:00:00 2001 From: "martin.blapp@roche.com" Date: Thu, 26 Nov 2015 13:51:40 +0100 Subject: [PATCH 6/6] Check if configure exists --- easybuild/easyblocks/generic/configuremake.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/easybuild/easyblocks/generic/configuremake.py b/easybuild/easyblocks/generic/configuremake.py index fd1b86b3ec3..cc51349d695 100644 --- a/easybuild/easyblocks/generic/configuremake.py +++ b/easybuild/easyblocks/generic/configuremake.py @@ -35,6 +35,7 @@ """ import stat +import os from easybuild.framework.easyblock import EasyBlock from easybuild.framework.easyconfig import CUSTOM from easybuild.tools.run import run_cmd @@ -82,7 +83,8 @@ def configure_step(self, cmd_prefix=''): self.cfg.update('preconfigopts', "%s='%s'" % (key, val)) # Ensure that configure has the excutable bit set, needed if a patch created configure itself - adjust_permissions('configure', stat.S_IXUSR, add=True) + if os.path.exists('configure'): + adjust_permissions('configure', stat.S_IXUSR, add=True) cmd = "%(preconfigopts)s %(cmd_prefix)s./configure %(prefix_opt)s%(installdir)s %(configopts)s" % { 'preconfigopts': self.cfg['preconfigopts'], 'cmd_prefix': cmd_prefix,