From 224d0ab4f4020d8a27d011bdb97a3f4a61360017 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 7 Aug 2023 21:47:16 +0200 Subject: [PATCH 1/2] add support to PerlModule easyblock to customize prefix option used in installation command --- easybuild/easyblocks/generic/perlmodule.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/easybuild/easyblocks/generic/perlmodule.py b/easybuild/easyblocks/generic/perlmodule.py index f58163d6e8f..a62846d26fd 100644 --- a/easybuild/easyblocks/generic/perlmodule.py +++ b/easybuild/easyblocks/generic/perlmodule.py @@ -47,6 +47,7 @@ def extra_options(): """Easyconfig parameters specific to Perl modules.""" extra_vars = { 'runtest': ['test', "Run unit tests.", CUSTOM], # overrides default + 'prefix_opt': [None, "Option to use to specify installation prefix", CUSTOM], } return ExtensionEasyBlock.extra_options(extra_vars) @@ -62,14 +63,20 @@ def __init__(self, *args, **kwargs): def install_perl_module(self): """Install procedure for Perl modules: using either Makefile.Pl or Build.PL.""" + prefix_opt = self.cfg.get('prefix_opt') + # Perl modules have two possible installation procedures: using Makefile.PL and Build.PL # configure, build, test, install if os.path.exists('Makefile.PL'): + + if prefix_opt is None: + prefix_opt = 'PREFIX' + install_cmd = ' '.join([ self.cfg['preconfigopts'], 'perl', 'Makefile.PL', - 'PREFIX=%s' % self.installdir, + '%s=%s' % (prefix_opt, self.installdir), self.cfg['configopts'], ]) run_cmd(install_cmd) @@ -79,11 +86,15 @@ def install_perl_module(self): ConfigureMake.install_step(self) elif os.path.exists('Build.PL'): + + if prefix_opt is None: + prefix_opt = '--prefix' + install_cmd = ' '.join([ self.cfg['preconfigopts'], 'perl', 'Build.PL', - '--prefix', + prefix_opt, self.installdir, self.cfg['configopts'], ]) From e1b0605346501607d4d88eaebdd85d9eb8277e66 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 15 Aug 2023 18:50:56 +0200 Subject: [PATCH 2/2] improve help message for `prefix_opt` custom easyconfig parameter in `PerlModule` easyblock Co-authored-by: ocaisa --- easybuild/easyblocks/generic/perlmodule.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyblocks/generic/perlmodule.py b/easybuild/easyblocks/generic/perlmodule.py index a62846d26fd..e10b6d5b1c8 100644 --- a/easybuild/easyblocks/generic/perlmodule.py +++ b/easybuild/easyblocks/generic/perlmodule.py @@ -47,7 +47,7 @@ def extra_options(): """Easyconfig parameters specific to Perl modules.""" extra_vars = { 'runtest': ['test', "Run unit tests.", CUSTOM], # overrides default - 'prefix_opt': [None, "Option to use to specify installation prefix", CUSTOM], + 'prefix_opt': [None, "String to use for option to set installation prefix (default is 'PREFIX')", CUSTOM], } return ExtensionEasyBlock.extra_options(extra_vars)