From 2199170690cb310ac061e95ba6ac46a993fcaf46 Mon Sep 17 00:00:00 2001 From: Ake Sandgren Date: Fri, 8 Dec 2017 15:50:01 +0100 Subject: [PATCH 01/73] Update wps.py for newer versions. Fix openmp support and a regex problem. --- easybuild/easyblocks/w/wps.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/easybuild/easyblocks/w/wps.py b/easybuild/easyblocks/w/wps.py index 46e9d69afa..6b3f4ef513 100644 --- a/easybuild/easyblocks/w/wps.py +++ b/easybuild/easyblocks/w/wps.py @@ -162,7 +162,10 @@ def configure_step(self): build_type_option = " Linux x86_64, Intel compiler" elif self.comp_fam == toolchain.GCC: #@UndefinedVariable - build_type_option = "Linux x86_64 g95 compiler" + if LooseVersion(self.version) >= LooseVersion("3.6"): + build_type_option = "Linux x86_64, gfortran" + else: + build_type_option = "Linux x86_64 g95" else: raise EasyBuildError("Don't know how to figure out build type to select.") @@ -212,10 +215,13 @@ def configure_step(self): 'FC': os.getenv('MPIF90'), 'CC': os.getenv('MPICC'), } + if self.toolchain.options.get('openmp', None): + comps.update({'LDFLAGS': '%s %s' % (os.environ['FCFLAGS'], os.environ['LDFLAGS'])}) + fn = 'configure.wps' for line in fileinput.input(fn, inplace=1, backup='.orig.comps'): for (k, v) in comps.items(): - line = re.sub(r"^(%s\s*=\s*).*$" % k, r"\1 %s" % v, line) + line = re.sub(r"^(%s\s*=).*$" % k, r"\1 %s" % v, line) sys.stdout.write(line) def build_step(self): From 68bf73eb41f00ccc5491be84f757433efa9c3893 Mon Sep 17 00:00:00 2001 From: Ake Sandgren Date: Fri, 28 Sep 2018 09:18:53 +0200 Subject: [PATCH 02/73] Update copyright to 2018 --- easybuild/easyblocks/w/wps.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyblocks/w/wps.py b/easybuild/easyblocks/w/wps.py index 6b3f4ef513..8dbfce5326 100644 --- a/easybuild/easyblocks/w/wps.py +++ b/easybuild/easyblocks/w/wps.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2017 Ghent University +# Copyright 2009-2018 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), From a949bd6c8b468fdf02f8ab1ea55814fb33588542 Mon Sep 17 00:00:00 2001 From: Jillian Rowe Date: Tue, 22 Oct 2019 08:33:34 +0300 Subject: [PATCH 03/73] fix for conda packages that rely on particular versions of python --- easybuild/easyblocks/generic/conda.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/easybuild/easyblocks/generic/conda.py b/easybuild/easyblocks/generic/conda.py index 5cd3b376f1..efd02780b3 100644 --- a/easybuild/easyblocks/generic/conda.py +++ b/easybuild/easyblocks/generic/conda.py @@ -84,25 +84,24 @@ def install_step(self): run_cmd(cmd, log_all=True, simple=True) else: - cmd = "%s conda create --force -y -p %s" % (self.cfg['preinstallopts'], self.installdir) - run_cmd(cmd, log_all=True, simple=True) + self.set_conda_env() if self.cfg['requirements']: - self.set_conda_env() install_args = "-y %s " % self.cfg['requirements'] if self.cfg['channels']: install_args += ' '.join('-c ' + chan for chan in self.cfg['channels']) - cmd = "conda install %s" % (install_args) - run_cmd(cmd, log_all=True, simple=True) - self.log.info("Installed conda requirements") + cmd = "%s conda create --force -y -p %s %s" % (self.cfg['preinstallopts'], self.installdir, install_args) + run_cmd(cmd, log_all=True, simple=True) + def make_module_extra(self): """Add the install directory to the PATH.""" txt = super(Conda, self).make_module_extra() txt += self.module_generator.set_environment('CONDA_ENV', self.installdir) + txt += self.module_generator.set_environment('CONDA_PREFIX', self.installdir) txt += self.module_generator.set_environment('CONDA_DEFAULT_ENV', self.installdir) self.log.debug("make_module_extra added this: %s", txt) return txt From 18d58139afb2c9c65e3815cd495504dbc7637b8c Mon Sep 17 00:00:00 2001 From: Jillian Rowe Date: Tue, 22 Oct 2019 08:52:24 +0300 Subject: [PATCH 04/73] cleaning up the set_conda_env no longer necessary --- easybuild/easyblocks/generic/conda.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/easybuild/easyblocks/generic/conda.py b/easybuild/easyblocks/generic/conda.py index efd02780b3..1b1bffea12 100644 --- a/easybuild/easyblocks/generic/conda.py +++ b/easybuild/easyblocks/generic/conda.py @@ -57,11 +57,6 @@ def extract_step(self): if self.src: super(Conda, self).extract_step() - def set_conda_env(self): - """Set up environment for using 'conda'.""" - env.setvar('CONDA_ENV', self.installdir) - env.setvar('CONDA_DEFAULT_ENV', self.installdir) - def install_step(self): """Install software using 'conda env create' or 'conda create' & 'conda install'.""" @@ -77,15 +72,12 @@ def install_step(self): else: env_spec = self.cfg['remote_environment'] - self.set_conda_env() - # use --force to ignore existing installation directory cmd = "%s conda env create --force %s -p %s" % (self.cfg['preinstallopts'], env_spec, self.installdir) run_cmd(cmd, log_all=True, simple=True) else: - self.set_conda_env() if self.cfg['requirements']: install_args = "-y %s " % self.cfg['requirements'] From 096bbfb28d29b17eeb695e4db81f4e0960fc52a9 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Mon, 25 Nov 2019 18:01:49 +0100 Subject: [PATCH 05/73] Fixed https://github.com/easybuilders/easybuild-easyblocks/issues/1858 and also defined CxxCompiler for goot measure... --- easybuild/easyblocks/n/ncl.py | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/easybuild/easyblocks/n/ncl.py b/easybuild/easyblocks/n/ncl.py index c35220ab13..7dfdb3a16d 100644 --- a/easybuild/easyblocks/n/ncl.py +++ b/easybuild/easyblocks/n/ncl.py @@ -81,12 +81,13 @@ def configure_step(self): if LooseVersion(get_software_version('ifort')) < LooseVersion('2011.4'): ctof_libs = '-lm -L%s/lib/intel64 -lifcore -lifport' % ifort else: - ctof_libs = '-lm -L%s/compiler/lib/intel64 -lifcore -lifport' % ifort + ctof_libs = '-lm -L%s/compilers_and_libraries/linux/lib/intel64/ -lifcore -lifport' % ifort elif get_software_root('GCC'): ctof_libs = '-lgfortran -lm' macrodict = { 'CCompiler': os.getenv('CC'), + 'CxxCompiler': os.getenv('CXX'), 'FCompiler': os.getenv('F90'), 'CcOptions': '-ansi %s' % os.getenv('CFLAGS'), 'FcOptions': os.getenv('FFLAGS'), @@ -135,8 +136,19 @@ def configure_step(self): root = get_software_root(dep) if not root: raise EasyBuildError("%s not available", dep) - libs += ' -L%s/lib ' % root - includes += ' -I%s/include ' % root + + # try %s/lib, if it doesn't exist, try %s/lib64 + if os.path.exists('%s/lib' % root) and os.access('%s/lib' % root, os.R_OK): + libs += ' -L%s/lib ' % root + elif os.path.exists('%s/lib64' % root) and os.access('%s/lib64' % root, os.R_OK): + libs += ' -L%s/lib64 ' % root + else: + self.log.warning("Can't find a libdir for dependency %s: %s/lib and %s/lib64 don't exist." % (dep, root, root)) + + if os.path.exists('%s/include' % root) and os.access('%s/include' % root, os.R_OK): + includes += ' -I%s/include ' % root + else: + self.log.warning("Can't find an include dir for dependency %s: %s/include doesn't exist." % (dep, root)) opt_deps = ["netCDF-Fortran", "GDAL"] libs_map = { @@ -146,8 +158,17 @@ def configure_step(self): for dep in opt_deps: root = get_software_root(dep) if root: - libs += ' -L%s/lib %s ' % (root, libs_map[dep]) - includes += ' -I%s/include ' % root + # try %s/lib, if it doesn't exist, try %s/lib64 + if os.path.exists('%s/lib' % root) and os.access('%s/lib' % root, os.R_OK): + libs += ' -L%s/lib %s ' % (root, libs_map[dep]) + elif os.path.exists('%s/lib64' % root) and os.access('%s/lib64' % root, os.R_OK): + libs += ' -L%s/lib64 %s ' % (root, libs_map[dep]) + else: + self.log.warning("Can't find a libdir for dependency %s: %s/lib and %s/lib64 don't exist." % (dep, root, root)) + + if os.path.exists('%s/include' % root) and os.access('%s/include' % root, os.R_OK): + includes += ' -I%s/include ' % root + self.log.warning("Can't find an include dir for dependency %s: %s/include doesn't exist." % (dep, root)) cfgtxt="""#ifdef FirstSite #endif /* FirstSite */ From 1b8f96b293758241944a8b30156c7b7210c7b2f8 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Mon, 25 Nov 2019 18:21:21 +0100 Subject: [PATCH 06/73] Solving https://github.com/easybuilders/easybuild-easyblocks/issues/1859 by skipping the configure part that looks for a template makefile --- easybuild/easyblocks/f/fsl.py | 84 +++++++++++++++++++---------------- 1 file changed, 45 insertions(+), 39 deletions(-) diff --git a/easybuild/easyblocks/f/fsl.py b/easybuild/easyblocks/f/fsl.py index b2aece7010..1c79b9add0 100644 --- a/easybuild/easyblocks/f/fsl.py +++ b/easybuild/easyblocks/f/fsl.py @@ -67,46 +67,52 @@ def configure_step(self): best_cfg = None - # Patch files for ver. < 5.0.10 patch multiple config directories - if LooseVersion(self.version) >= LooseVersion('5.0.10'): - # Check if a specific machine type directory is patched - systype_regex = re.compile("^diff.*config\/(.*(apple|gnu|i686|linux|spark)(?:(?!\/).)*)", re.M) - - patched_cfgs = [] - - for patch in self.patches: - patchfile = read_file(patch['path']) - res = systype_regex.findall(patchfile) - patched_cfgs.extend([i[0] for i in res]) - - # Check that at least one config has been found - if patched_cfgs: - # Check that a single config has been patched - if len(nub(patched_cfgs)) == 1: - best_cfg = patched_cfgs[0] - self.log.debug("Found patched config dir: %s", best_cfg) + # Predefined configs have disappeared in v6.0.2. The next part of the EasyBlock has thereby become obsolete. + # At this time, most of the 'configuration' is done by applying FSL-6.0.2_Makefile_fixes.patch, which essentially takes care of + # injecting the right EBVARCFLAGS, EBROOTXXX variables for deps, etc. + # Thus, for v6.0.2 (and probably all upcoming versions) the EasyBlock shouldn't do any additional configuration + if LooseVersion(self.version) < LooseVersion('6.0.2'): + + # Patch files for ver. < 5.0.10 patch multiple config directories + if LooseVersion(self.version) >= LooseVersion('5.0.10'): + # Check if a specific machine type directory is patched + systype_regex = re.compile("^diff.*config\/(.*(apple|gnu|i686|linux|spark)(?:(?!\/).)*)", re.M) + + patched_cfgs = [] + + for patch in self.patches: + patchfile = read_file(patch['path']) + res = systype_regex.findall(patchfile) + patched_cfgs.extend([i[0] for i in res]) + + # Check that at least one config has been found + if patched_cfgs: + # Check that a single config has been patched + if len(nub(patched_cfgs)) == 1: + best_cfg = patched_cfgs[0] + self.log.debug("Found patched config dir: %s", best_cfg) + else: + raise EasyBuildError("Patch files are editing multiple config dirs: %s", patched_cfgs) else: - raise EasyBuildError("Patch files are editing multiple config dirs: %s", patched_cfgs) - else: - self.log.debug("No config dir found in patch files") - - # If no patched config is found, pick best guess - cfgdir = os.path.join(self.fsldir, "config") - try: - if not best_cfg: - cfgs = os.listdir(cfgdir) - best_cfg = difflib.get_close_matches(fslmachtype, cfgs)[0] - self.log.debug("Best matching config dir for %s is %s" % (fslmachtype, best_cfg)) - except OSError as err: - raise EasyBuildError("Unable to access configuration directory: %s", cfgdir, err) - - # Prepare config - # Either use patched config or copy closest match - if fslmachtype != best_cfg: - srcdir = os.path.join(cfgdir, best_cfg) - tgtdir = os.path.join(cfgdir, fslmachtype) - copy_dir(srcdir, tgtdir) - self.log.debug("Copied %s to %s" % (srcdir, tgtdir)) + self.log.debug("No config dir found in patch files") + + # If no patched config is found, pick best guess + cfgdir = os.path.join(self.fsldir, "config") + try: + if not best_cfg: + cfgs = os.listdir(cfgdir) + best_cfg = difflib.get_close_matches(fslmachtype, cfgs)[0] + self.log.debug("Best matching config dir for %s is %s" % (fslmachtype, best_cfg)) + except OSError as err: + raise EasyBuildError("Unable to access configuration directory: %s", cfgdir, err) + + # Prepare config + # Either use patched config or copy closest match + if fslmachtype != best_cfg: + srcdir = os.path.join(cfgdir, best_cfg) + tgtdir = os.path.join(cfgdir, fslmachtype) + copy_dir(srcdir, tgtdir) + self.log.debug("Copied %s to %s" % (srcdir, tgtdir)) def build_step(self): """Build FSL using supplied script.""" From 79335a0ad5fb805eaea9dd619a351162fa9f56f5 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Mon, 25 Nov 2019 18:33:27 +0100 Subject: [PATCH 07/73] Made comments a bit more compact --- easybuild/easyblocks/f/fsl.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/easybuild/easyblocks/f/fsl.py b/easybuild/easyblocks/f/fsl.py index 1c79b9add0..f97890d149 100644 --- a/easybuild/easyblocks/f/fsl.py +++ b/easybuild/easyblocks/f/fsl.py @@ -67,10 +67,8 @@ def configure_step(self): best_cfg = None - # Predefined configs have disappeared in v6.0.2. The next part of the EasyBlock has thereby become obsolete. - # At this time, most of the 'configuration' is done by applying FSL-6.0.2_Makefile_fixes.patch, which essentially takes care of - # injecting the right EBVARCFLAGS, EBROOTXXX variables for deps, etc. - # Thus, for v6.0.2 (and probably all upcoming versions) the EasyBlock shouldn't do any additional configuration + # Predefined makefiles for various configs have disappeared in v6.0.2. The next part of the EasyBlock has thereby become obsolete. + # See https://github.com/easybuilders/easybuild-easyblocks/issues/1859 if LooseVersion(self.version) < LooseVersion('6.0.2'): # Patch files for ver. < 5.0.10 patch multiple config directories From c81d1bea80c07f31b356da827200daf425c5f1b8 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Mon, 25 Nov 2019 18:49:17 +0100 Subject: [PATCH 08/73] Resolved too long line... (style) --- easybuild/easyblocks/f/fsl.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/easybuild/easyblocks/f/fsl.py b/easybuild/easyblocks/f/fsl.py index f97890d149..360bac10a6 100644 --- a/easybuild/easyblocks/f/fsl.py +++ b/easybuild/easyblocks/f/fsl.py @@ -67,7 +67,8 @@ def configure_step(self): best_cfg = None - # Predefined makefiles for various configs have disappeared in v6.0.2. The next part of the EasyBlock has thereby become obsolete. + # Predefined makefiles for various configs have disappeared in v6.0.2. + # The next part of the EasyBlock has thereby become obsolete. # See https://github.com/easybuilders/easybuild-easyblocks/issues/1859 if LooseVersion(self.version) < LooseVersion('6.0.2'): From e8bf4aa9988696189db6ac9e3152ff7a48b60a2b Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Wed, 27 Nov 2019 14:38:27 +0100 Subject: [PATCH 09/73] Used IFORTROOT/lib/intel_64 for intel libs --- easybuild/easyblocks/n/ncl.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/easybuild/easyblocks/n/ncl.py b/easybuild/easyblocks/n/ncl.py index 7dfdb3a16d..cb72a31ef2 100644 --- a/easybuild/easyblocks/n/ncl.py +++ b/easybuild/easyblocks/n/ncl.py @@ -78,10 +78,10 @@ def configure_step(self): ctof_libs = '' ifort = get_software_root('ifort') if ifort: - if LooseVersion(get_software_version('ifort')) < LooseVersion('2011.4'): - ctof_libs = '-lm -L%s/lib/intel64 -lifcore -lifport' % ifort + if os.path.exists('%s/lib/intel64/' % ifort) and os.access('%s/lib/intel64/' % ifort, os.R_OK): + ctof_libs += '-lm -L%s/lib/intel64/ -lifcore -lifport' % ifort else: - ctof_libs = '-lm -L%s/compilers_and_libraries/linux/lib/intel64/ -lifcore -lifport' % ifort + self.log.warning("Can't find a libdir for ifortran libraries -lifcore -lifport: %s/lib/intel64 doesn't exist or is not accessible." % (ifort, ifort)) elif get_software_root('GCC'): ctof_libs = '-lgfortran -lm' From c2de3863d7674d109fab5b4749092fa5c8985da6 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Wed, 27 Nov 2019 14:47:49 +0100 Subject: [PATCH 10/73] Fixing too long lines that the houndci-bot sniffed out... --- easybuild/easyblocks/n/ncl.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/easybuild/easyblocks/n/ncl.py b/easybuild/easyblocks/n/ncl.py index cb72a31ef2..35dc1f7573 100644 --- a/easybuild/easyblocks/n/ncl.py +++ b/easybuild/easyblocks/n/ncl.py @@ -81,7 +81,8 @@ def configure_step(self): if os.path.exists('%s/lib/intel64/' % ifort) and os.access('%s/lib/intel64/' % ifort, os.R_OK): ctof_libs += '-lm -L%s/lib/intel64/ -lifcore -lifport' % ifort else: - self.log.warning("Can't find a libdir for ifortran libraries -lifcore -lifport: %s/lib/intel64 doesn't exist or is not accessible." % (ifort, ifort)) + self.log.warning("Can't find a libdir for ifortran libraries -lifcore -lifport: " + "%s/lib/intel64 doesn't exist or is not accessible." % (ifort, ifort)) elif get_software_root('GCC'): ctof_libs = '-lgfortran -lm' @@ -143,7 +144,8 @@ def configure_step(self): elif os.path.exists('%s/lib64' % root) and os.access('%s/lib64' % root, os.R_OK): libs += ' -L%s/lib64 ' % root else: - self.log.warning("Can't find a libdir for dependency %s: %s/lib and %s/lib64 don't exist." % (dep, root, root)) + self.log.warning("Can't find a libdir for dependency %s: " + "%s/lib and %s/lib64 don't exist." % (dep, root, root)) if os.path.exists('%s/include' % root) and os.access('%s/include' % root, os.R_OK): includes += ' -I%s/include ' % root @@ -164,11 +166,13 @@ def configure_step(self): elif os.path.exists('%s/lib64' % root) and os.access('%s/lib64' % root, os.R_OK): libs += ' -L%s/lib64 %s ' % (root, libs_map[dep]) else: - self.log.warning("Can't find a libdir for dependency %s: %s/lib and %s/lib64 don't exist." % (dep, root, root)) + self.log.warning("Can't find a libdir for dependency %s: " + "%s/lib and %s/lib64 don't exist." % (dep, root, root)) if os.path.exists('%s/include' % root) and os.access('%s/include' % root, os.R_OK): includes += ' -I%s/include ' % root - self.log.warning("Can't find an include dir for dependency %s: %s/include doesn't exist." % (dep, root)) + self.log.warning("Can't find an include dir for dependency %s: " + "%s/include doesn't exist." % (dep, root)) cfgtxt="""#ifdef FirstSite #endif /* FirstSite */ From 29cb50fbd06ff3d3c4302943efe1be743214e6e8 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Wed, 27 Nov 2019 14:53:53 +0100 Subject: [PATCH 11/73] Fixing too long lines that the houndci-bot sniffed out... --- easybuild/easyblocks/n/ncl.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/easybuild/easyblocks/n/ncl.py b/easybuild/easyblocks/n/ncl.py index 35dc1f7573..63f95eea92 100644 --- a/easybuild/easyblocks/n/ncl.py +++ b/easybuild/easyblocks/n/ncl.py @@ -81,8 +81,10 @@ def configure_step(self): if os.path.exists('%s/lib/intel64/' % ifort) and os.access('%s/lib/intel64/' % ifort, os.R_OK): ctof_libs += '-lm -L%s/lib/intel64/ -lifcore -lifport' % ifort else: - self.log.warning("Can't find a libdir for ifortran libraries -lifcore -lifport: " - "%s/lib/intel64 doesn't exist or is not accessible." % (ifort, ifort)) + self.log.warning( + "Can't find a libdir for ifortran libraries -lifcore -lifport: " + "%s/lib/intel64 doesn't exist or is not accessible." % (ifort, ifort) + ) elif get_software_root('GCC'): ctof_libs = '-lgfortran -lm' @@ -144,8 +146,9 @@ def configure_step(self): elif os.path.exists('%s/lib64' % root) and os.access('%s/lib64' % root, os.R_OK): libs += ' -L%s/lib64 ' % root else: - self.log.warning("Can't find a libdir for dependency %s: " - "%s/lib and %s/lib64 don't exist." % (dep, root, root)) + self.log.warning( + "Can't find a libdir for dependency %s: %s/lib and %s/lib64 don't exist." % (dep, root, root) + ) if os.path.exists('%s/include' % root) and os.access('%s/include' % root, os.R_OK): includes += ' -I%s/include ' % root @@ -166,13 +169,15 @@ def configure_step(self): elif os.path.exists('%s/lib64' % root) and os.access('%s/lib64' % root, os.R_OK): libs += ' -L%s/lib64 %s ' % (root, libs_map[dep]) else: - self.log.warning("Can't find a libdir for dependency %s: " - "%s/lib and %s/lib64 don't exist." % (dep, root, root)) + self.log.warning( + "Can't find a libdir for dependency %s: %s/lib and %s/lib64 don't exist." % (dep, root, root) + ) if os.path.exists('%s/include' % root) and os.access('%s/include' % root, os.R_OK): includes += ' -I%s/include ' % root - self.log.warning("Can't find an include dir for dependency %s: " - "%s/include doesn't exist." % (dep, root)) + self.log.warning( + "Can't find an include dir for dependency %s: %s/include doesn't exist." % (dep, root) + ) cfgtxt="""#ifdef FirstSite #endif /* FirstSite */ From 6e9ab44c95728bc457b91349e105cb17780a6d9f Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Thu, 28 Nov 2019 18:58:33 +0100 Subject: [PATCH 12/73] made regexp a raw string, as suggested by @boegel --- easybuild/easyblocks/f/fsl.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyblocks/f/fsl.py b/easybuild/easyblocks/f/fsl.py index 360bac10a6..c643ad5eb6 100644 --- a/easybuild/easyblocks/f/fsl.py +++ b/easybuild/easyblocks/f/fsl.py @@ -75,7 +75,7 @@ def configure_step(self): # Patch files for ver. < 5.0.10 patch multiple config directories if LooseVersion(self.version) >= LooseVersion('5.0.10'): # Check if a specific machine type directory is patched - systype_regex = re.compile("^diff.*config\/(.*(apple|gnu|i686|linux|spark)(?:(?!\/).)*)", re.M) + systype_regex = re.compile(r"^diff.*config\/(.*(apple|gnu|i686|linux|spark)(?:(?!\/).)*)", re.M) patched_cfgs = [] From 20a6bfed7413d2cc5393c17f84552e3e323dbeaf Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Fri, 29 Nov 2019 14:29:39 +0100 Subject: [PATCH 13/73] Fixed duplicate ifort in the list of args for string replacements --- easybuild/easyblocks/n/ncl.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyblocks/n/ncl.py b/easybuild/easyblocks/n/ncl.py index 63f95eea92..d1fc707a40 100644 --- a/easybuild/easyblocks/n/ncl.py +++ b/easybuild/easyblocks/n/ncl.py @@ -83,7 +83,7 @@ def configure_step(self): else: self.log.warning( "Can't find a libdir for ifortran libraries -lifcore -lifport: " - "%s/lib/intel64 doesn't exist or is not accessible." % (ifort, ifort) + "%s/lib/intel64 doesn't exist or is not accessible." % ifort ) elif get_software_root('GCC'): ctof_libs = '-lgfortran -lm' From 498c46a5687fa2c03391189a05abdd4377375701 Mon Sep 17 00:00:00 2001 From: Ake Sandgren Date: Wed, 4 Dec 2019 09:25:29 +0100 Subject: [PATCH 14/73] Setting up CMake environment need to be callable from other easyblocks. Specifically OpenFOAM uses CMake internally without being based on CMakeMake. --- easybuild/easyblocks/generic/cmakemake.py | 23 ++++++++++++++--------- easybuild/easyblocks/o/openfoam.py | 5 +++++ 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/easybuild/easyblocks/generic/cmakemake.py b/easybuild/easyblocks/generic/cmakemake.py index 8e414feba3..9afb39ef90 100644 --- a/easybuild/easyblocks/generic/cmakemake.py +++ b/easybuild/easyblocks/generic/cmakemake.py @@ -47,6 +47,19 @@ DEFAULT_CONFIGURE_CMD = 'cmake' +def setup_cmake_env(self): + """Setup env variables that cmake needs in an EasyBuild context.""" + + # Set the search paths for CMake + tc_ipaths = self.toolchain.get_variable("CPPFLAGS", list) + tc_lpaths = self.toolchain.get_variable("LDFLAGS", list) + cpaths = os.getenv('CPATH', '').split(os.pathsep) + lpaths = os.getenv('LD_LIBRARY_PATH', '').split(os.pathsep) + include_paths = os.pathsep.join(nub(tc_ipaths + cpaths)) + library_paths = os.pathsep.join(nub(tc_lpaths + lpaths)) + setvar("CMAKE_INCLUDE_PATH", include_paths) + setvar("CMAKE_LIBRARY_PATH", library_paths) + class CMakeMake(ConfigureMake): """Support for configuring build with CMake instead of traditional configure script""" @@ -68,15 +81,7 @@ def extra_options(extra_vars=None): def configure_step(self, srcdir=None, builddir=None): """Configure build using cmake""" - # Set the search paths for CMake - tc_ipaths = self.toolchain.get_variable("CPPFLAGS", list) - tc_lpaths = self.toolchain.get_variable("LDFLAGS", list) - cpaths = os.getenv('CPATH', '').split(os.pathsep) - lpaths = os.getenv('LD_LIBRARY_PATH', '').split(os.pathsep) - include_paths = os.pathsep.join(nub(tc_ipaths + cpaths)) - library_paths = os.pathsep.join(nub(tc_lpaths + lpaths)) - setvar("CMAKE_INCLUDE_PATH", include_paths) - setvar("CMAKE_LIBRARY_PATH", library_paths) + setup_cmake_env(self) if builddir is None and self.cfg.get('separate_build_dir', False): builddir = os.path.join(self.builddir, 'easybuild_obj') diff --git a/easybuild/easyblocks/o/openfoam.py b/easybuild/easyblocks/o/openfoam.py index 70182bbd77..28528d6fd6 100644 --- a/easybuild/easyblocks/o/openfoam.py +++ b/easybuild/easyblocks/o/openfoam.py @@ -44,6 +44,7 @@ import easybuild.tools.environment as env import easybuild.tools.toolchain as toolchain +from easybuild.easyblocks.generic.cmakemake import setup_cmake_env from easybuild.framework.easyblock import EasyBlock from easybuild.tools.build_log import EasyBuildError from easybuild.tools.filetools import adjust_permissions, apply_regex_substitutions, mkdir @@ -285,6 +286,10 @@ def configure_step(self): def build_step(self): """Build OpenFOAM using make after sourcing script to set environment.""" + # Some parts of OpenFOAM uses CMake to build + # make sure the basic environment is correct + setup_cmake_env(self) + precmd = "source %s" % os.path.join(self.builddir, self.openfoamdir, "etc", "bashrc") if 'extend' not in self.name.lower() and self.looseversion >= LooseVersion('4.0'): cleancmd = "cd $WM_PROJECT_DIR && wcleanPlatform -all && cd -" From af962c04e3f3b9d42817be0397fd6bc163f7ada5 Mon Sep 17 00:00:00 2001 From: Ake Sandgren Date: Wed, 4 Dec 2019 10:28:31 +0100 Subject: [PATCH 15/73] Use self.toolchain as argument to setup_cmake_env instead of self. --- easybuild/easyblocks/generic/cmakemake.py | 8 ++++---- easybuild/easyblocks/o/openfoam.py | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/easybuild/easyblocks/generic/cmakemake.py b/easybuild/easyblocks/generic/cmakemake.py index 9afb39ef90..6a21e50faa 100644 --- a/easybuild/easyblocks/generic/cmakemake.py +++ b/easybuild/easyblocks/generic/cmakemake.py @@ -47,12 +47,12 @@ DEFAULT_CONFIGURE_CMD = 'cmake' -def setup_cmake_env(self): +def setup_cmake_env(tc): """Setup env variables that cmake needs in an EasyBuild context.""" # Set the search paths for CMake - tc_ipaths = self.toolchain.get_variable("CPPFLAGS", list) - tc_lpaths = self.toolchain.get_variable("LDFLAGS", list) + tc_ipaths = tc.get_variable("CPPFLAGS", list) + tc_lpaths = tc.get_variable("LDFLAGS", list) cpaths = os.getenv('CPATH', '').split(os.pathsep) lpaths = os.getenv('LD_LIBRARY_PATH', '').split(os.pathsep) include_paths = os.pathsep.join(nub(tc_ipaths + cpaths)) @@ -81,7 +81,7 @@ def extra_options(extra_vars=None): def configure_step(self, srcdir=None, builddir=None): """Configure build using cmake""" - setup_cmake_env(self) + setup_cmake_env(self.toolchain) if builddir is None and self.cfg.get('separate_build_dir', False): builddir = os.path.join(self.builddir, 'easybuild_obj') diff --git a/easybuild/easyblocks/o/openfoam.py b/easybuild/easyblocks/o/openfoam.py index 28528d6fd6..88b26ac702 100644 --- a/easybuild/easyblocks/o/openfoam.py +++ b/easybuild/easyblocks/o/openfoam.py @@ -288,7 +288,7 @@ def build_step(self): # Some parts of OpenFOAM uses CMake to build # make sure the basic environment is correct - setup_cmake_env(self) + setup_cmake_env(self.toolchain) precmd = "source %s" % os.path.join(self.builddir, self.openfoamdir, "etc", "bashrc") if 'extend' not in self.name.lower() and self.looseversion >= LooseVersion('4.0'): From 035397d15badce8bd310fcf7578479f41a36385c Mon Sep 17 00:00:00 2001 From: Ake Sandgren Date: Wed, 4 Dec 2019 11:07:46 +0100 Subject: [PATCH 16/73] Appease hound. --- easybuild/easyblocks/generic/cmakemake.py | 1 + 1 file changed, 1 insertion(+) diff --git a/easybuild/easyblocks/generic/cmakemake.py b/easybuild/easyblocks/generic/cmakemake.py index 6a21e50faa..bd6d0f1a00 100644 --- a/easybuild/easyblocks/generic/cmakemake.py +++ b/easybuild/easyblocks/generic/cmakemake.py @@ -47,6 +47,7 @@ DEFAULT_CONFIGURE_CMD = 'cmake' + def setup_cmake_env(tc): """Setup env variables that cmake needs in an EasyBuild context.""" From 32a81f32d2640f72dbafb518f78cd1a0c866822b Mon Sep 17 00:00:00 2001 From: Miguel Dias Costa Date: Thu, 5 Dec 2019 10:29:53 +0800 Subject: [PATCH 17/73] bump version to 4.1.1dev --- easybuild/easyblocks/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyblocks/__init__.py b/easybuild/easyblocks/__init__.py index bb3bde7afd..f93885c088 100644 --- a/easybuild/easyblocks/__init__.py +++ b/easybuild/easyblocks/__init__.py @@ -43,7 +43,7 @@ # recent setuptools versions will *TRANSFORM* something like 'X.Y.Zdev' into 'X.Y.Z.dev0', with a warning like # UserWarning: Normalizing '2.4.0dev' to '2.4.0.dev0' # This causes problems further up the dependency chain... -VERSION = LooseVersion('4.1.0') +VERSION = LooseVersion('4.1.1.dev0') UNKNOWN = 'UNKNOWN' From e8b92b826d5b6f3bbe03056f397cb0b0f273bf18 Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Wed, 4 Dec 2019 17:51:08 +0100 Subject: [PATCH 18/73] Fix CUDA EB for CUDA 10.1 On Power9 installation fails due to some missing files/folders which is fixed in CUDA 10.2 Additionally using non-default locale (LANG env var) crashes some installations with an out-of-bounds exception --- easybuild/easyblocks/c/cuda.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/easybuild/easyblocks/c/cuda.py b/easybuild/easyblocks/c/cuda.py index 5f47e9c21c..51532e78c6 100644 --- a/easybuild/easyblocks/c/cuda.py +++ b/easybuild/easyblocks/c/cuda.py @@ -101,6 +101,22 @@ def install_step(self): self.cfg.update('installopts', "--silent --toolkit --toolkitpath=%s --defaultroot=%s" % ( self.installdir, self.installdir)) + if LooseVersion("10.0") < LooseVersion(self.version) < LooseVersion("10.2") and get_cpu_architecture() == POWER: + # Workaround for + # https://devtalk.nvidia.com/default/topic/1063995/cuda-setup-and-installation/cuda-10-1-243-10-1-update-2-ppc64le-run-file-installation-issue/ + install_script = " && ".join([ + "mkdir -p %(installdir)s/targets/ppc64le-linux/include", + "([ -e %(installdir)s/include ] || ln -s targets/ppc64le-linux/include %(installdir)s/include)", + "cp -r %(builddir)s/builds/cublas/src %(installdir)s/.", + install_script + ]) % { + 'installdir': self.installdir, + 'builddir': self.builddir + } + + # Use C locale to avoid localized questions and crash on CUDA 10.1 + install_script = "export LANG=C && " + install_script + cmd = "%(preinstallopts)s %(interpreter)s %(script)s %(installopts)s" % { 'preinstallopts': self.cfg['preinstallopts'], 'interpreter': install_interpreter, From e6398f5f937f4f81cb1bc5036a3f585f43284260 Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Fri, 6 Dec 2019 09:18:16 +0100 Subject: [PATCH 19/73] Add EasyBlock for cryptography to fix missing -pthread for all versions --- easybuild/easyblocks/c/cryptography.py | 43 ++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 easybuild/easyblocks/c/cryptography.py diff --git a/easybuild/easyblocks/c/cryptography.py b/easybuild/easyblocks/c/cryptography.py new file mode 100644 index 0000000000..a803667967 --- /dev/null +++ b/easybuild/easyblocks/c/cryptography.py @@ -0,0 +1,43 @@ +## +# Copyright 2017-2019 Ghent University +# +# This file is part of EasyBuild, +# originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), +# with support of Ghent University (http://ugent.be/hpc), +# the Flemish Supercomputer Centre (VSC) (https://www.vscentrum.be), +# Flemish Research Foundation (FWO) (http://www.fwo.be/en) +# and the Department of Economy, Science and Innovation (EWI) (http://www.ewi-vlaanderen.be/en). +# +# https://github.com/easybuilders/easybuild +# +# EasyBuild is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation v2. +# +# EasyBuild is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with EasyBuild. If not, see . +## +""" +EasyBuild support for building and installing cryptography, implemented as an easyblock + +@author: Alexander Grund +""" +from easybuild.easyblocks.generic.pythonpackage import PythonPackage + + +class EB_cryptography(PythonPackage): + """Support for building/installing cryptography.""" + + def __init__(self, *args, **kwargs): + """Initialize cryptography easyblock.""" + super(EB_cryptography, self).__init__(*args, **kwargs) + + # cryptography compiles a library using pthreads but does not link against it + # which causes 'undefined symbol: pthread_atfork', see issue #9446 + self.cfg['preinstallopts'] += 'CFLAGS="$CFLAGS -pthread"' + self.log.info("Adding -pthread to preinstallopts of cryptography. Final value: %s", self.cfg['preinstallopts']) From ec494e09353a97474485d26c762a6081aac1fa8a Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Tue, 10 Dec 2019 14:10:38 +0100 Subject: [PATCH 20/73] [Python] Remove obsolete configure arguments --- easybuild/easyblocks/p/python.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/easybuild/easyblocks/p/python.py b/easybuild/easyblocks/p/python.py index cfb28cf1d1..ef9cccf275 100644 --- a/easybuild/easyblocks/p/python.py +++ b/easybuild/easyblocks/p/python.py @@ -141,15 +141,21 @@ def prepare_for_extensions(self): def configure_step(self): """Set extra configure options.""" - self.cfg.update('configopts', "--with-threads --enable-shared") + self.cfg.update('configopts', "--enable-shared") + # Explicitely enable thread support on < 3.7 (always on 3.7+) + if LooseVersion(self.version) < LooseVersion('3.7'): + self.cfg.update('configopts', "--with-threads") + + # Explicitely enable unicode on Python 2, always on for Python 3 # Need to be careful to match the unicode settings to the underlying python - if sys.maxunicode == 1114111: - self.cfg.update('configopts', "--enable-unicode=ucs4") - elif sys.maxunicode == 65535: - self.cfg.update('configopts', "--enable-unicode=ucs2") - else: - raise EasyBuildError("Unknown maxunicode value for your python: %d" % sys.maxunicode) + if LooseVersion(self.version) < LooseVersion('3.0'): + if sys.maxunicode == 1114111: + self.cfg.update('configopts', "--enable-unicode=ucs4") + elif sys.maxunicode == 65535: + self.cfg.update('configopts', "--enable-unicode=ucs2") + else: + raise EasyBuildError("Unknown maxunicode value for your python: %d" % sys.maxunicode) modules_setup_dist = os.path.join(self.cfg['start_dir'], 'Modules', 'Setup.dist') From ec1ce26350273410cc6cb6bc1913de903accb8cf Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Tue, 10 Dec 2019 14:11:21 +0100 Subject: [PATCH 21/73] [Python] Enable optimizations with option to disable --- easybuild/easyblocks/p/python.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/easybuild/easyblocks/p/python.py b/easybuild/easyblocks/p/python.py index ef9cccf275..88c62e6917 100644 --- a/easybuild/easyblocks/p/python.py +++ b/easybuild/easyblocks/p/python.py @@ -109,6 +109,7 @@ def extra_options(): extra_vars = { 'ulimit_unlimited': [False, "Ensure stack size limit is set to '%s' during build" % UNLIMITED, CUSTOM], 'ebpythonprefixes': [True, "Create sitecustomize.py and allow use of $EBPYTHONPREFIXES", CUSTOM], + 'optimized': [True, "Enable expensive, stable optimizations (PGO, etc)", CUSTOM], } return ConfigureMake.extra_options(extra_vars) @@ -157,6 +158,10 @@ def configure_step(self): else: raise EasyBuildError("Unknown maxunicode value for your python: %d" % sys.maxunicode) + # Enable further optimizations at the cost of a longer build + if self.cfg['optimized'] and LooseVersion(self.version) >= LooseVersion('3.5.3'): + self.cfg.update('configopts', "--enable-optimizations") + modules_setup_dist = os.path.join(self.cfg['start_dir'], 'Modules', 'Setup.dist') libreadline = get_software_root('libreadline') From d31a4ce8742eed710c1fcd1bb9b540e15302a2ac Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Tue, 10 Dec 2019 14:40:47 +0100 Subject: [PATCH 22/73] [Python] Add option to enable LTO --- easybuild/easyblocks/p/python.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/easybuild/easyblocks/p/python.py b/easybuild/easyblocks/p/python.py index 88c62e6917..804cc76366 100644 --- a/easybuild/easyblocks/p/python.py +++ b/easybuild/easyblocks/p/python.py @@ -109,6 +109,7 @@ def extra_options(): extra_vars = { 'ulimit_unlimited': [False, "Ensure stack size limit is set to '%s' during build" % UNLIMITED, CUSTOM], 'ebpythonprefixes': [True, "Create sitecustomize.py and allow use of $EBPYTHONPREFIXES", CUSTOM], + 'use_lto': [False, "Build with Link Time Optimization. Potentially unstable on some toolchains", CUSTOM], 'optimized': [True, "Enable expensive, stable optimizations (PGO, etc)", CUSTOM], } return ConfigureMake.extra_options(extra_vars) @@ -158,6 +159,9 @@ def configure_step(self): else: raise EasyBuildError("Unknown maxunicode value for your python: %d" % sys.maxunicode) + if self.cfg['use_lto'] and LooseVersion(self.version) >= LooseVersion('3.7.0'): + self.cfg.update('configopts', "--with-lto") + # Enable further optimizations at the cost of a longer build if self.cfg['optimized'] and LooseVersion(self.version) >= LooseVersion('3.5.3'): self.cfg.update('configopts', "--enable-optimizations") From 11a123bc4da5e8d1e0cd5dac2296cdaaf89eabfb Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Wed, 11 Dec 2019 11:12:09 +0100 Subject: [PATCH 23/73] Add link to issue and sanity check --- easybuild/easyblocks/c/cryptography.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/easybuild/easyblocks/c/cryptography.py b/easybuild/easyblocks/c/cryptography.py index a803667967..6138d998a7 100644 --- a/easybuild/easyblocks/c/cryptography.py +++ b/easybuild/easyblocks/c/cryptography.py @@ -27,7 +27,10 @@ @author: Alexander Grund """ +from distutils.version import LooseVersion + from easybuild.easyblocks.generic.pythonpackage import PythonPackage +from easybuild.tools.run import run_cmd class EB_cryptography(PythonPackage): @@ -38,6 +41,17 @@ def __init__(self, *args, **kwargs): super(EB_cryptography, self).__init__(*args, **kwargs) # cryptography compiles a library using pthreads but does not link against it - # which causes 'undefined symbol: pthread_atfork', see issue #9446 + # which causes 'undefined symbol: pthread_atfork' + # see https://github.com/easybuilders/easybuild-easyconfigs/issues/9446 + # and upstream: https://github.com/pyca/cryptography/issues/5084 self.cfg['preinstallopts'] += 'CFLAGS="$CFLAGS -pthread"' self.log.info("Adding -pthread to preinstallopts of cryptography. Final value: %s", self.cfg['preinstallopts']) + + def sanity_check_step(self, *args, **kwargs): + """Custom sanity check""" + success, fail_msg = super(EB_cryptography, self).sanity_check_step(*args, **kwargs) + if success: + # Check module added in v0.7 leading to issue #9446 (see above) + if LooseVersion(self.version) >= LooseVersion("0.7"): + run_cmd("python -c 'from cryptography.hazmat.bindings.openssl import binding'") + return success, fail_msg From 2b11438f4b58b9ed45713775c1fda91c8046dded Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Wed, 11 Dec 2019 12:41:40 +0100 Subject: [PATCH 24/73] [CUDA] Increase timeout to 1000s Closes #1870 --- easybuild/easyblocks/c/cuda.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/easybuild/easyblocks/c/cuda.py b/easybuild/easyblocks/c/cuda.py index 51532e78c6..fc0de0f39c 100644 --- a/easybuild/easyblocks/c/cuda.py +++ b/easybuild/easyblocks/c/cuda.py @@ -153,9 +153,9 @@ def install_step(self): # instead of segfaulting in the cuda-installer. remove_file('/tmp/cuda-installer.log') - # overriding maxhits default value to 300 (300s wait for nothing to change in the output without seeing a known - # question) - run_cmd_qa(cmd, qanda, std_qa=stdqa, no_qa=noqanda, log_all=True, simple=True, maxhits=300) + # overriding maxhits default value to 1000 (seconds to wait for nothing to change in the output + # without seeing a known question) + run_cmd_qa(cmd, qanda, std_qa=stdqa, no_qa=noqanda, log_all=True, simple=True, maxhits=1000) # Remove the cuda-installer log file remove_file('/tmp/cuda-installer.log') From 0e7fbebb116189c7dad09e0c18cdef41b0f72125 Mon Sep 17 00:00:00 2001 From: Victor Holanda Date: Wed, 11 Dec 2019 17:14:01 +0100 Subject: [PATCH 25/73] Remove optarch warning in GORMACS @ CRAY Users were getting confused about the warning "No target architecture specified based on optarch configuration option 'HASWELL'" So, I am proposing to remove it and let GROMACS auto detect for the Cray. We would also make the mapping for all Cray supported archs, but this is not a trivial quest... --- easybuild/easyblocks/g/gromacs.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/easybuild/easyblocks/g/gromacs.py b/easybuild/easyblocks/g/gromacs.py index cfe39f394b..9ad3d5bc9e 100644 --- a/easybuild/easyblocks/g/gromacs.py +++ b/easybuild/easyblocks/g/gromacs.py @@ -238,12 +238,14 @@ def configure_step(self): self.cfg.update('configopts', "-DGMX_X11=OFF") # convince to build for an older architecture than present on the build node by setting GMX_SIMD CMake flag - gmx_simd = self.get_gromacs_arch() - if gmx_simd: - if LooseVersion(self.version) < LooseVersion('5.0'): - self.cfg.update('configopts', "-DGMX_CPU_ACCELERATION=%s" % gmx_simd) - else: - self.cfg.update('configopts', "-DGMX_SIMD=%s" % gmx_simd) + # it does not make sense for Cray, because OPTARCH is defined by the Cray Toolchain + if self.toolchain.toolchain_family() != toolchain.CRAYPE: + gmx_simd = self.get_gromacs_arch() + if gmx_simd: + if LooseVersion(self.version) < LooseVersion('5.0'): + self.cfg.update('configopts', "-DGMX_CPU_ACCELERATION=%s" % gmx_simd) + else: + self.cfg.update('configopts', "-DGMX_SIMD=%s" % gmx_simd) # set regression test path prefix = 'regressiontests' From d9b00daddad162bfb55da7367bb690862599cc92 Mon Sep 17 00:00:00 2001 From: Ake Sandgren Date: Wed, 11 Dec 2019 18:42:39 +0100 Subject: [PATCH 26/73] openfoam: Small change to make Debug builds work correctly. --- easybuild/easyblocks/o/openfoam.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyblocks/o/openfoam.py b/easybuild/easyblocks/o/openfoam.py index 88b26ac702..7e3ef2a3f1 100644 --- a/easybuild/easyblocks/o/openfoam.py +++ b/easybuild/easyblocks/o/openfoam.py @@ -175,7 +175,7 @@ def configure_step(self): key = "WM_PROJECT_VERSION" regex_subs += [(r"^(setenv|export) %s=.*$" % key, r"export %s=%s #\g<0>" % (key, self.version))] - WM_env_var = ['WM_COMPILER', 'WM_MPLIB', 'WM_THIRD_PARTY_DIR'] + WM_env_var = ['WM_COMPILER', 'WM_COMPILE_OPTION', 'WM_MPLIB', 'WM_THIRD_PARTY_DIR'] # OpenFOAM >= 3.0.0 can use 64 bit integers if 'extend' not in self.name.lower() and self.looseversion >= LooseVersion('3.0'): WM_env_var.append('WM_LABEL_SIZE') From a99f8f371dd6b07a401bd3fbdd42a0784e1f2e31 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 13 Dec 2019 11:19:19 +0100 Subject: [PATCH 27/73] disable running of 'sudo apt-get update' in GitHub CI config, since it's failing (and we don't really need it) --- .github/workflows/unit_tests.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index ca4ad396c8..c1dd763545 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -42,7 +42,10 @@ jobs: - name: install OS & Python packages run: | - sudo apt-get update + # apt-get update is disabled for now, because it was failing in GitHub since Fri Dec 13th 2019, + # due to 'Conflicting distribution' issue + # sudo apt-get update + # for modules tool sudo apt-get install lua5.2 liblua5.2-dev lua-filesystem lua-posix tcl tcl-dev # fix for lua-posix packaging issue, see https://bugs.launchpad.net/ubuntu/+source/lua-posix/+bug/1752082 From 0db1306a8abe409c4b47775b4a527a75b7b5241a Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 13 Dec 2019 16:55:30 +0100 Subject: [PATCH 28/73] limit MPI ranks used for running WRF test cases to max. 4 + include contents of rsl.error.0000 output file in case test failed --- easybuild/easyblocks/w/wrf.py | 36 +++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/easybuild/easyblocks/w/wrf.py b/easybuild/easyblocks/w/wrf.py index e15dc0aa69..56cece56b2 100644 --- a/easybuild/easyblocks/w/wrf.py +++ b/easybuild/easyblocks/w/wrf.py @@ -295,34 +295,46 @@ def test_step(self): if test in self.testcases: self.testcases.remove(test) - # determine parallel setting (1/2 of available processors + 1) - n = self.cfg['parallel'] / 2 + 1 + # determine number of MPI ranks to use in tests (1/2 of available processors + 1); + # we need to limit max number of MPI ranks (8 is too high for some tests, 4 is OK), + # since otherwise run may fail because domain size is too small + n_mpi_ranks = min(self.cfg['parallel'] / 2 + 1, 4) # prepare run command # stack limit needs to be set to unlimited for WRF to work well if self.cfg['buildtype'] in self.parallel_build_types: test_cmd = "ulimit -s unlimited && %s && %s" % (self.toolchain.mpi_cmd_for("./ideal.exe", 1), - self.toolchain.mpi_cmd_for("./wrf.exe", n)) + self.toolchain.mpi_cmd_for("./wrf.exe", n_mpi_ranks)) else: test_cmd = "ulimit -s unlimited && ./ideal.exe && ./wrf.exe >rsl.error.0000 2>&1" + # regex to check for successful test run + re_success = re.compile("SUCCESS COMPLETE WRF") + def run_test(): """Run a single test and check for success.""" - # regex to check for successful test run - re_success = re.compile("SUCCESS COMPLETE WRF") - # run test - run_cmd(test_cmd, log_all=True, simple=True) + (_, ec) = run_cmd(test_cmd, log_all=False, log_ok=False, simple=False) - # check for success - txt = read_file('rsl.error.0000') - if re_success.search(txt): - self.log.info("Test %s ran successfully." % test) + # read output file + out_fn = 'rsl.error.0000' + if os.path.exists(out_fn): + out_txt = read_file(out_fn) + else: + out_txt = 'FILE NOT FOUND' + if ec == 0: + # exit code zero suggests success, but let's make sure... + if re_success.search(out_txt): + self.log.info("Test %s ran successfully (found '%s' in %s)", test, re_success.pattern, out_fn) + else: + raise EasyBuildError("Test %s failed, pattern '%s' not found in %s: %s", + test, re_success.pattern, out_fn, out_txt) else: - raise EasyBuildError("Test %s failed, pattern '%s' not found.", test, re_success.pattern) + # non-zero exit code means trouble, show command output + raise EasyBuildError("Test %s failed with exit code %s, output: %s", test, ec, out_txt) # clean up stuff that gets in the way fn_prefs = ["wrfinput_", "namelist.output", "wrfout_", "rsl.out.", "rsl.error."] From e84586501be87e2f8f8e043f5831ea01cb8ccb11 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sat, 14 Dec 2019 15:46:08 +0100 Subject: [PATCH 29/73] update WPS easyblock for recent versions: set $WRF_DIR to point to location of WRF installation --- easybuild/easyblocks/w/wps.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/easybuild/easyblocks/w/wps.py b/easybuild/easyblocks/w/wps.py index 34835d552c..bf212bc811 100644 --- a/easybuild/easyblocks/w/wps.py +++ b/easybuild/easyblocks/w/wps.py @@ -107,10 +107,16 @@ def configure_step(self): else: raise EasyBuildError("WRF module not loaded?") - # patch compile script so that WRF is found - self.compile_script = "compile" - regex_subs = [(r"^(\s*set\s*WRF_DIR_PRE\s*=\s*)\${DEV_TOP}(.*)$", r"\1%s\2" % wrfdir)] - apply_regex_substitutions(self.compile_script, regex_subs) + self.compile_script = 'compile' + + if LooseVersion(self.version) >= LooseVersion('4.0.3'): + # specify install location of WRF via $WRF_DIR (supported since WPS 4.0.3) + # see https://github.com/wrf-model/WPS/pull/102 + env.setvar('WRF_DIR', wrfdir) + else: + # patch compile script so that WRF is found + regex_subs = [(r"^(\s*set\s*WRF_DIR_PRE\s*=\s*)\${DEV_TOP}(.*)$", r"\1%s\2" % wrfdir)] + apply_regex_substitutions(self.compile_script, regex_subs) # libpng dependency check libpng = get_software_root('libpng') From 70b14fd463ecd958fb3d531a323fa02df43c2c12 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sat, 14 Dec 2019 19:13:22 +0100 Subject: [PATCH 30/73] make sure $LIBLAPACK_MT is set before using it in ESMF easyblock --- easybuild/easyblocks/e/esmf.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/easybuild/easyblocks/e/esmf.py b/easybuild/easyblocks/e/esmf.py index abad25edad..961ce961a6 100644 --- a/easybuild/easyblocks/e/esmf.py +++ b/easybuild/easyblocks/e/esmf.py @@ -29,13 +29,12 @@ @author: Damian Alvarez (Forschungszentrum Juelich GmbH) """ import os +from distutils.version import LooseVersion import easybuild.tools.environment as env import easybuild.tools.toolchain as toolchain -from distutils.version import LooseVersion from easybuild.easyblocks.generic.configuremake import ConfigureMake -from easybuild.framework.easyblock import EasyBlock -from easybuild.framework.easyconfig import BUILD +from easybuild.tools.build_log import EasyBuildError from easybuild.tools.modules import get_software_root from easybuild.tools.run import run_cmd from easybuild.tools.systemtools import get_shared_lib_ext @@ -73,7 +72,12 @@ def configure_step(self): # specify decent LAPACK lib env.setvar('ESMF_LAPACK', 'user') - env.setvar('ESMF_LAPACK_LIBS', '%s %s' % (os.getenv('LDFLAGS'), os.getenv('LIBLAPACK_MT'))) + ldflags = os.getenv('LDFLAGS') + liblapack_mt = os.getenv('LIBLAPACK_MT') + if liblapack_mt is None: + raise EasyBuildError("$LIBLAPACK_MT not defined, no BLAS/LAPACK in %s toolchain?", self.toolchain.name) + else: + env.setvar('ESMF_LAPACK_LIBS', ldflags + ' ' + liblapack_mt) # specify netCDF netcdf = get_software_root('netCDF') @@ -109,12 +113,11 @@ def configure_step(self): def sanity_check_step(self): """Custom sanity check for ESMF.""" - shlib_ext = get_shared_lib_ext() + binaries = ['ESMF_Info', 'ESMF_InfoC', 'ESMF_RegridWeightGen', 'ESMF_WebServController'] + libs = ['libesmf.a', 'libesmf.%s' % get_shared_lib_ext()] custom_paths = { - 'files': - [os.path.join('bin', x) for x in ['ESMF_Info', 'ESMF_InfoC', 'ESMF_RegridWeightGen', 'ESMF_WebServController']] + - [os.path.join('lib', x) for x in ['libesmf.a', 'libesmf.%s' % shlib_ext]], + 'files': [os.path.join('bin', x) for x in binaries] + [os.path.join('lib', x) for x in libs], 'dirs': ['include', 'mod'], } From dbd31ea2f89dfbcc40f406c12912d87704cd4460 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sun, 15 Dec 2019 19:11:34 +0100 Subject: [PATCH 31/73] consider both $LIBLAPACK_MT and $LIBLAPACK in ESMF easyblock --- easybuild/easyblocks/e/esmf.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/easybuild/easyblocks/e/esmf.py b/easybuild/easyblocks/e/esmf.py index 961ce961a6..08599a3d7a 100644 --- a/easybuild/easyblocks/e/esmf.py +++ b/easybuild/easyblocks/e/esmf.py @@ -73,11 +73,11 @@ def configure_step(self): # specify decent LAPACK lib env.setvar('ESMF_LAPACK', 'user') ldflags = os.getenv('LDFLAGS') - liblapack_mt = os.getenv('LIBLAPACK_MT') - if liblapack_mt is None: - raise EasyBuildError("$LIBLAPACK_MT not defined, no BLAS/LAPACK in %s toolchain?", self.toolchain.name) + liblapack = os.getenv('LIBLAPACK_MT') or os.getenv('LIBLAPACK') + if liblapack is None: + raise EasyBuildError("$LIBLAPACK(_MT) not defined, no BLAS/LAPACK in %s toolchain?", self.toolchain.name) else: - env.setvar('ESMF_LAPACK_LIBS', ldflags + ' ' + liblapack_mt) + env.setvar('ESMF_LAPACK_LIBS', ldflags + ' ' + liblapack) # specify netCDF netcdf = get_software_root('netCDF') From ca5bf761d0f18820ce2c02e76516ed0032a5c100 Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Mon, 16 Dec 2019 11:12:12 +0100 Subject: [PATCH 32/73] [Python] Auto detect LTO support if not set --- easybuild/easyblocks/p/python.py | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/easybuild/easyblocks/p/python.py b/easybuild/easyblocks/p/python.py index 804cc76366..624fe67b9d 100644 --- a/easybuild/easyblocks/p/python.py +++ b/easybuild/easyblocks/p/python.py @@ -49,6 +49,7 @@ from easybuild.tools.filetools import symlink, write_file from easybuild.tools.run import run_cmd from easybuild.tools.systemtools import get_shared_lib_ext +import easybuild.tools.toolchain as toolchain EXTS_FILTER_PYTHON_PACKAGES = ('python -c "import %(ext_name)s"', "") @@ -109,7 +110,11 @@ def extra_options(): extra_vars = { 'ulimit_unlimited': [False, "Ensure stack size limit is set to '%s' during build" % UNLIMITED, CUSTOM], 'ebpythonprefixes': [True, "Create sitecustomize.py and allow use of $EBPYTHONPREFIXES", CUSTOM], - 'use_lto': [False, "Build with Link Time Optimization. Potentially unstable on some toolchains", CUSTOM], + 'use_lto': [ + None, + "Build with Link Time Optimization. Potentially unstable on some toolchains. Default: Auto-detect", + CUSTOM + ], 'optimized': [True, "Enable expensive, stable optimizations (PGO, etc)", CUSTOM], } return ConfigureMake.extra_options(extra_vars) @@ -141,6 +146,17 @@ def prepare_for_extensions(self): self.log.debug(msg, param, self.cfg[param]) self.cfg[param] = '' + def auto_detect_lto_support(self): + """Return True, if LTO should be enabled for current toolchain""" + result = False + # GCC >= 8 should be stable enough for LTO + if self.toolchain.comp_family() == toolchain.GCC: + gcc_ver = get_software_version('GCCcore') or get_software_version('GCC') + if gcc_ver and LooseVersion(gcc_ver) >= LooseVersion('8.0'): + self.log.info("Auto-enabling LTO since GCC >= v8.0 is used as toolchain compiler") + result = True + return result + def configure_step(self): """Set extra configure options.""" self.cfg.update('configopts', "--enable-shared") @@ -159,11 +175,17 @@ def configure_step(self): else: raise EasyBuildError("Unknown maxunicode value for your python: %d" % sys.maxunicode) - if self.cfg['use_lto'] and LooseVersion(self.version) >= LooseVersion('3.7.0'): - self.cfg.update('configopts', "--with-lto") + # LTO introduced in 3.7.0 + if LooseVersion(self.version) >= LooseVersion('3.7.0'): + use_lto = self.cfg['use_lto'] + if use_lto is None: + use_lto = self.auto_detect_lto_support() + if use_lto: + self.cfg.update('configopts', "--with-lto") # Enable further optimizations at the cost of a longer build - if self.cfg['optimized'] and LooseVersion(self.version) >= LooseVersion('3.5.3'): + # Introduced in 3.5.3, fixed in 3.5.4: https://docs.python.org/3.5/whatsnew/changelog.html + if self.cfg['optimized'] and LooseVersion(self.version) >= LooseVersion('3.5.4'): self.cfg.update('configopts', "--enable-optimizations") modules_setup_dist = os.path.join(self.cfg['start_dir'], 'Modules', 'Setup.dist') From 6406f5a4bc4053f72e349167d4ab373ec6c13c04 Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Fri, 6 Dec 2019 16:35:47 +0100 Subject: [PATCH 33/73] [Bazel] Use local Java SDK Fixes bazel build on Power9 --- easybuild/easyblocks/b/bazel.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/easybuild/easyblocks/b/bazel.py b/easybuild/easyblocks/b/bazel.py index e7dca4afc1..4dfc4dd860 100644 --- a/easybuild/easyblocks/b/bazel.py +++ b/easybuild/easyblocks/b/bazel.py @@ -96,7 +96,15 @@ def configure_step(self): self.log.info("Not patching Bazel build scripts, installation prefix for binutils/GCC not found") # enable building in parallel - env.setvar('EXTRA_BAZEL_ARGS', '--jobs=%d' % self.cfg['parallel']) + bazel_args = '--jobs=%d' % self.cfg['parallel'] + + # Bazel provides a JDK by itself for some architectures + # We want to enforce it using the JDK we provided via modules + # This is required for Power where Bazel does not have a JDK, but requires it for building itself + # See https://github.com/bazelbuild/bazel/issues/10377 + bazel_args += ' --host_javabase=@local_jdk//:jdk' + + env.setvar('EXTRA_BAZEL_ARGS', bazel_args) def build_step(self): """Custom build procedure for Bazel.""" From 82394fba3680241288197eb485049dffc73bac4a Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 17 Dec 2019 20:10:25 +0100 Subject: [PATCH 34/73] update $PYTHONPATH + add "python -c 'import mrtrix3'" as sanity check command for recent MRtrix versions --- easybuild/easyblocks/m/mrtrix.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/easybuild/easyblocks/m/mrtrix.py b/easybuild/easyblocks/m/mrtrix.py index 1fd47c8c83..455cf87c18 100644 --- a/easybuild/easyblocks/m/mrtrix.py +++ b/easybuild/easyblocks/m/mrtrix.py @@ -93,7 +93,12 @@ def make_module_req_guess(self): also consider 'scripts' subdirectory for $PATH """ guesses = super(EB_MRtrix, self).make_module_req_guess() + guesses['PATH'].append('scripts') + + if LooseVersion(self.version) >= LooseVersion('3.0'): + guesses.setdefault('PYTHONPATH', []).append('lib') + return guesses def sanity_check_step(self): @@ -108,4 +113,9 @@ def sanity_check_step(self): 'files': [os.path.join('lib', libso)], 'dirs': ['bin'], } - super(EB_MRtrix, self).sanity_check_step(custom_paths=custom_paths) + + custom_commands = [] + if LooseVersion(self.version) >= LooseVersion('3.0'): + custom_commands.append("python -c 'import mrtrix3'") + + super(EB_MRtrix, self).sanity_check_step(custom_paths=custom_paths, custom_commands=custom_commands) From 746ac9b16fec456f2ef19b188b825602f30cbff2 Mon Sep 17 00:00:00 2001 From: fizwit Date: Tue, 17 Dec 2019 11:25:55 -0800 Subject: [PATCH 35/73] support SAMtools 1.10 --- easybuild/easyblocks/s/samtools.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/easybuild/easyblocks/s/samtools.py b/easybuild/easyblocks/s/samtools.py index e0a8590660..9cf4e4dfa3 100644 --- a/easybuild/easyblocks/s/samtools.py +++ b/easybuild/easyblocks/s/samtools.py @@ -39,12 +39,11 @@ def __init__(self, *args, **kwargs): self.bin_files = ["misc/blast2sam.pl", "misc/bowtie2sam.pl", "misc/export2sam.pl", "misc/interpolate_sam.pl", "misc/novo2sam.pl", "misc/psl2sam.pl", "misc/sam2vcf.pl", "misc/samtools.pl", - "misc/soap2sam.pl", "misc/varfilter.py", "misc/wgsim_eval.pl", + "misc/soap2sam.pl", "misc/wgsim_eval.pl", "misc/zoom2sam.pl", "misc/md5sum-lite", "misc/md5fa", "misc/maq2sam-short", "misc/maq2sam-long", "misc/wgsim", "samtools"] - self.include_files = ["bam.h", "bam2bcf.h", "bam_endian.h", - "sam.h", "sam_header.h", "sample.h"] + self.include_files = ["bam.h", "bam2bcf.h", "bam_endian.h", "sam.h", "sample.h"] self.include_dirs = [] if LooseVersion(self.version) == LooseVersion('0.1.18'): @@ -73,6 +72,10 @@ def __init__(self, *args, **kwargs): # errmod.h and kprobaln.h removed from 1.4 self.include_files += ["errmod.h", "kprobaln.h"] + if LooseVersion(self.version) < LooseVersion('1.10'): + self.include_files += ["sam_header.h"] + self.bin_files += ["misc/varfilter.py"] + self.lib_files = ["libbam.a"] def configure_step(self): From ccff4547a43b0167164d464aa70733357020bdb9 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 17 Dec 2019 22:12:02 +0100 Subject: [PATCH 36/73] make sure $PYTHONNOUSERSITE it set when performing sanity check for (bundles of) Python package(s) --- easybuild/easyblocks/generic/pythonpackage.py | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/easybuild/easyblocks/generic/pythonpackage.py b/easybuild/easyblocks/generic/pythonpackage.py index 4331623ccc..d4c0935f43 100644 --- a/easybuild/easyblocks/generic/pythonpackage.py +++ b/easybuild/easyblocks/generic/pythonpackage.py @@ -615,6 +615,18 @@ def run(self, *args, **kwargs): self.test_step() self.install_step() + def load_module(self, *args, **kwargs): + """ + Make sure that $PYTHONNOUSERSITE is defined after loading module file for this software.""" + + super(PythonPackage, self).load_module(*args, **kwargs) + + # don't add user site directory to sys.path (equivalent to python -s), + # to avoid that any Python packages installed in $HOME/.local/lib affect the sanity check; + # required here to ensure that it is defined for stand-alone installations, + # because the environment is reset to the initial environment right before loading the module + env.setvar('PYTHONNOUSERSITE', '1', verbose=False) + def sanity_check_step(self, *args, **kwargs): """ Custom sanity check for Python packages @@ -622,6 +634,14 @@ def sanity_check_step(self, *args, **kwargs): success, fail_msg = True, '' + # don't add user site directory to sys.path (equivalent to python -s) + # see https://www.python.org/dev/peps/pep-0370/; + # must be set here to ensure that it is defined when running sanity check for extensions, + # since load_module is not called for every extension, + # to avoid that any Python packages installed in $HOME/.local/lib affect the sanity check; + # see also https://github.com/easybuilders/easybuild-easyblocks/issues/1877 + env.setvar('PYTHONNOUSERSITE', '1', verbose=False) + if self.cfg.get('download_dep_fail', False): self.log.info("Detection of downloaded depenencies enabled, checking output of installation command...") patterns = [ From cb876bd5387db4d92245c31d5b08fac75680252e Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 20 Dec 2019 13:48:57 +0100 Subject: [PATCH 37/73] stop requiring Python dep for SWIG, just configure with --without-python if Python is not a dependency --- easybuild/easyblocks/s/swig.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/easybuild/easyblocks/s/swig.py b/easybuild/easyblocks/s/swig.py index 50dae2005b..b8a9a53ea1 100644 --- a/easybuild/easyblocks/s/swig.py +++ b/easybuild/easyblocks/s/swig.py @@ -28,7 +28,6 @@ @author: Kenneth Hoste (Ghent University) """ from easybuild.easyblocks.generic.configuremake import ConfigureMake -from easybuild.tools.build_log import EasyBuildError from easybuild.tools.modules import get_software_root @@ -40,7 +39,7 @@ def configure_step(self): # disable everything by default for x in ["r", "clisp", "allegrocl", "lua", "csharp", "chicken", "go", "pike ", - "ocaml","php", "ruby", "mzscheme", "guile", "gcj", "java", + "ocaml", "php", "ruby", "mzscheme", "guile", "gcj", "java", "octave", "perl5", "python3", "tcl"]: self.cfg.update('configopts', "--without-%s" % x) @@ -48,7 +47,7 @@ def configure_step(self): if python: self.cfg.update('configopts', "--with-python=%s/bin/python" % python) else: - raise EasyBuildError("Python module not loaded?") + self.cfg.update('configopts', '--without-python') super(EB_SWIG, self).configure_step() @@ -56,8 +55,7 @@ def sanity_check_step(self): """Custom sanity check for SWIG.""" custom_paths = { - 'files':["bin/ccache-swig","bin/swig"], - 'dirs':[] - } - + 'files': ['bin/ccache-swig', 'bin/swig'], + 'dirs': [], + } super(EB_SWIG, self).sanity_check_step(custom_paths=custom_paths) From 32e7d0f7a25088ec03983c7c33ec43b8536f43cf Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 20 Dec 2019 14:01:16 +0100 Subject: [PATCH 38/73] fix install dir subdir for WPS v4.0+ that is considered for $PATH and $LD_LIBRARY_PATH --- easybuild/easyblocks/w/wps.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyblocks/w/wps.py b/easybuild/easyblocks/w/wps.py index bf212bc811..64dc96b788 100644 --- a/easybuild/easyblocks/w/wps.py +++ b/easybuild/easyblocks/w/wps.py @@ -380,8 +380,8 @@ def sanity_check_step(self): def make_module_req_guess(self): """Make sure PATH and LD_LIBRARY_PATH are set correctly.""" return { - 'PATH': [self.name], - 'LD_LIBRARY_PATH': [self.name], + 'PATH': [self.wps_subdir], + 'LD_LIBRARY_PATH': [self.wps_subdir], 'MANPATH': [], } From ed88891e698b4afbe03f3443b0be26a3d4db6d00 Mon Sep 17 00:00:00 2001 From: Bart Oldeman Date: Sat, 21 Dec 2019 12:49:01 +0000 Subject: [PATCH 39/73] impi: don't rebuild libfabric if the source code is not present. libfabric source is no longer included with Intel MPI 2019.6 --- easybuild/easyblocks/i/impi.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/easybuild/easyblocks/i/impi.py b/easybuild/easyblocks/i/impi.py index 70e6078ab3..be436cd796 100644 --- a/easybuild/easyblocks/i/impi.py +++ b/easybuild/easyblocks/i/impi.py @@ -51,7 +51,7 @@ class EB_impi(IntelBase): def extra_options(): extra_vars = { 'libfabric_configopts': ['', 'Configure options for the provided libfabric', CUSTOM], - 'libfabric_rebuild': [True, 'Rebuild the internal libfabric instead of using the provided binary', CUSTOM], + 'libfabric_rebuild': [True, 'Try to rebuild the internal libfabric instead of using the provided binary', CUSTOM], 'ofi_internal': [True, 'Use internal shipped libfabric instead of external libfabric', CUSTOM], 'set_mpi_wrappers_compiler': [False, 'Override default compiler used by MPI wrapper commands', CUSTOM], 'set_mpi_wrapper_aliases_gcc': [False, 'Set compiler for mpigcc/mpigxx via aliases', CUSTOM], @@ -126,7 +126,8 @@ def install_step(self): run_cmd(cmd, log_all=True, simple=True) # recompile libfabric (if requested) - if impiver >= LooseVersion('2019') and self.cfg['libfabric_rebuild']: + if (impiver >= LooseVersion('2019') and self.cfg['libfabric_rebuild'] and + os.path.exists(os.path.join(self.installdir, 'libfabric'))): if self.cfg['ofi_internal']: change_dir(os.path.join(self.installdir, 'libfabric')) extract_file('src.tgz', os.getcwd()) From 596fb852980f1a978605717e4c71ab4c39e282f5 Mon Sep 17 00:00:00 2001 From: Bart Oldeman Date: Sat, 21 Dec 2019 13:48:58 +0000 Subject: [PATCH 40/73] Appease the Hound. --- easybuild/easyblocks/i/impi.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyblocks/i/impi.py b/easybuild/easyblocks/i/impi.py index be436cd796..ee723728b9 100644 --- a/easybuild/easyblocks/i/impi.py +++ b/easybuild/easyblocks/i/impi.py @@ -51,7 +51,7 @@ class EB_impi(IntelBase): def extra_options(): extra_vars = { 'libfabric_configopts': ['', 'Configure options for the provided libfabric', CUSTOM], - 'libfabric_rebuild': [True, 'Try to rebuild the internal libfabric instead of using the provided binary', CUSTOM], + 'libfabric_rebuild': [True, 'Try to rebuild internal libfabric instead of using provided binary', CUSTOM], 'ofi_internal': [True, 'Use internal shipped libfabric instead of external libfabric', CUSTOM], 'set_mpi_wrappers_compiler': [False, 'Override default compiler used by MPI wrapper commands', CUSTOM], 'set_mpi_wrapper_aliases_gcc': [False, 'Set compiler for mpigcc/mpigxx via aliases', CUSTOM], @@ -127,7 +127,7 @@ def install_step(self): # recompile libfabric (if requested) if (impiver >= LooseVersion('2019') and self.cfg['libfabric_rebuild'] and - os.path.exists(os.path.join(self.installdir, 'libfabric'))): + os.path.exists(os.path.join(self.installdir, 'libfabric'))): if self.cfg['ofi_internal']: change_dir(os.path.join(self.installdir, 'libfabric')) extract_file('src.tgz', os.getcwd()) From 86a3afb03823fd516238fde72d57d595c4ffda57 Mon Sep 17 00:00:00 2001 From: Bart Oldeman Date: Sun, 22 Dec 2019 00:18:22 +0000 Subject: [PATCH 41/73] Use an additional variable for the libfabric path. --- easybuild/easyblocks/i/impi.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/easybuild/easyblocks/i/impi.py b/easybuild/easyblocks/i/impi.py index ee723728b9..06d9b6dc84 100644 --- a/easybuild/easyblocks/i/impi.py +++ b/easybuild/easyblocks/i/impi.py @@ -126,10 +126,12 @@ def install_step(self): run_cmd(cmd, log_all=True, simple=True) # recompile libfabric (if requested) + # some Intel MPI versions (like 2019 update 6) no longer ship libfabric sources + libfabric_path = os.path.join(self.installdir, 'libfabric') if (impiver >= LooseVersion('2019') and self.cfg['libfabric_rebuild'] and - os.path.exists(os.path.join(self.installdir, 'libfabric'))): + os.path.exists(os.path.join(libfabric_path, 'src.tgz'))): if self.cfg['ofi_internal']: - change_dir(os.path.join(self.installdir, 'libfabric')) + change_dir(libfabric_path) extract_file('src.tgz', os.getcwd()) libfabric_installpath = os.path.join(self.installdir, 'intel64', 'libfabric') From cb0e6107fbb3e30b15af629f80d67a2583384346 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 23 Dec 2019 14:51:40 +0100 Subject: [PATCH 42/73] clean up check for libfabric source tarball in impi easyblock --- easybuild/easyblocks/i/impi.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/easybuild/easyblocks/i/impi.py b/easybuild/easyblocks/i/impi.py index 06d9b6dc84..6a5e96967c 100644 --- a/easybuild/easyblocks/i/impi.py +++ b/easybuild/easyblocks/i/impi.py @@ -128,11 +128,11 @@ def install_step(self): # recompile libfabric (if requested) # some Intel MPI versions (like 2019 update 6) no longer ship libfabric sources libfabric_path = os.path.join(self.installdir, 'libfabric') - if (impiver >= LooseVersion('2019') and self.cfg['libfabric_rebuild'] and - os.path.exists(os.path.join(libfabric_path, 'src.tgz'))): - if self.cfg['ofi_internal']: + if impiver >= LooseVersion('2019') and self.cfg['libfabric_rebuild']: + libfabric_src_tgz_fn = 'src.tgz' + if self.cfg['ofi_internal'] and os.path.exists(os.path.join(libfabric_path, libfabric_src_tgz_fn)): change_dir(libfabric_path) - extract_file('src.tgz', os.getcwd()) + extract_file(libfabric_src_tgz_fn, os.getcwd()) libfabric_installpath = os.path.join(self.installdir, 'intel64', 'libfabric') make = 'make' From 7049095d555775f297f51a6bd6451cb7abb31abe Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 23 Dec 2019 14:57:19 +0100 Subject: [PATCH 43/73] log skipping of libfabric rebuild if source tarball is missing --- easybuild/easyblocks/i/impi.py | 36 +++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/easybuild/easyblocks/i/impi.py b/easybuild/easyblocks/i/impi.py index 6a5e96967c..48ad813a09 100644 --- a/easybuild/easyblocks/i/impi.py +++ b/easybuild/easyblocks/i/impi.py @@ -130,22 +130,26 @@ def install_step(self): libfabric_path = os.path.join(self.installdir, 'libfabric') if impiver >= LooseVersion('2019') and self.cfg['libfabric_rebuild']: libfabric_src_tgz_fn = 'src.tgz' - if self.cfg['ofi_internal'] and os.path.exists(os.path.join(libfabric_path, libfabric_src_tgz_fn)): - change_dir(libfabric_path) - extract_file(libfabric_src_tgz_fn, os.getcwd()) - libfabric_installpath = os.path.join(self.installdir, 'intel64', 'libfabric') - - make = 'make' - if self.cfg['parallel']: - make += ' -j %d' % self.cfg['parallel'] - - cmds = [ - './configure --prefix=%s %s' % (libfabric_installpath, self.cfg['libfabric_configopts']), - make, - 'make install' - ] - for cmd in cmds: - run_cmd(cmd, log_all=True, simple=True) + if self.cfg['ofi_internal']: + if os.path.exists(os.path.join(libfabric_path, libfabric_src_tgz_fn)): + change_dir(libfabric_path) + extract_file(libfabric_src_tgz_fn, os.getcwd()) + libfabric_installpath = os.path.join(self.installdir, 'intel64', 'libfabric') + + make = 'make' + if self.cfg['parallel']: + make += ' -j %d' % self.cfg['parallel'] + + cmds = [ + './configure --prefix=%s %s' % (libfabric_installpath, self.cfg['libfabric_configopts']), + make, + 'make install' + ] + for cmd in cmds: + run_cmd(cmd, log_all=True, simple=True) + else: + self.log.info("Rebuild of libfabric is requested, but %s does not exist, so skipping...", + libfabric_src_tgz_fn) else: raise EasyBuildError("Rebuild of libfabric is requested, but ofi_internal is set to False.") From b17688cc1a60acefca7af046a0b847854273e06e Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 23 Dec 2019 15:11:48 +0100 Subject: [PATCH 44/73] move down definition of libfabric_src_tgz_fn --- easybuild/easyblocks/i/impi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyblocks/i/impi.py b/easybuild/easyblocks/i/impi.py index 48ad813a09..13d4b25f69 100644 --- a/easybuild/easyblocks/i/impi.py +++ b/easybuild/easyblocks/i/impi.py @@ -129,8 +129,8 @@ def install_step(self): # some Intel MPI versions (like 2019 update 6) no longer ship libfabric sources libfabric_path = os.path.join(self.installdir, 'libfabric') if impiver >= LooseVersion('2019') and self.cfg['libfabric_rebuild']: - libfabric_src_tgz_fn = 'src.tgz' if self.cfg['ofi_internal']: + libfabric_src_tgz_fn = 'src.tgz' if os.path.exists(os.path.join(libfabric_path, libfabric_src_tgz_fn)): change_dir(libfabric_path) extract_file(libfabric_src_tgz_fn, os.getcwd()) From b25fad46cea99ba969784de15950500639e75471 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 24 Dec 2019 10:28:58 +0100 Subject: [PATCH 45/73] also copy component patches to self.cfg in Bundle generic easyblock (fixes #1893) --- easybuild/easyblocks/generic/bundle.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/easybuild/easyblocks/generic/bundle.py b/easybuild/easyblocks/generic/bundle.py index c2617c9baa..eea8039b7a 100644 --- a/easybuild/easyblocks/generic/bundle.py +++ b/easybuild/easyblocks/generic/bundle.py @@ -74,6 +74,8 @@ def __init__(self, *args, **kwargs): # list of sources for bundle itself *must* be empty if self.cfg['sources']: raise EasyBuildError("List of sources for bundle itself must be empty, found %s", self.cfg['sources']) + if self.cfg['patches']: + raise EasyBuildError("List of patches for bundle itself must be empty, found %s", self.cfg['patches']) # disable templating to avoid premature resolving of template values self.cfg.enable_templating = False @@ -109,7 +111,7 @@ def __init__(self, *args, **kwargs): comp_cfg['easyblock'] = None # reset list of sources/source_urls/checksums - comp_cfg['sources'] = comp_cfg['source_urls'] = comp_cfg['checksums'] = [] + comp_cfg['sources'] = comp_cfg['source_urls'] = comp_cfg['checksums'] = comp_cfg['patches'] = [] for key in self.cfg['default_component_specs']: comp_cfg[key] = self.cfg['default_component_specs'][key] @@ -151,6 +153,9 @@ def __init__(self, *args, **kwargs): # add per-component checksums for patches to list of checksums for patches checksums_patches.extend(comp_cfg['checksums'][src_cnt:]) + if comp_cfg['patches']: + self.cfg.update('patches', comp_cfg['patches']) + self.comp_cfgs.append(comp_cfg) self.cfg.update('checksums', checksums_patches) From 46a8206b3de450a03b02bfb5e1dcb491eae8e679 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 24 Dec 2019 12:19:26 +0100 Subject: [PATCH 46/73] skip patch step in Bundle generic easyblock (per-component patches are still applied) --- easybuild/easyblocks/generic/bundle.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/easybuild/easyblocks/generic/bundle.py b/easybuild/easyblocks/generic/bundle.py index eea8039b7a..7b7725dbd3 100644 --- a/easybuild/easyblocks/generic/bundle.py +++ b/easybuild/easyblocks/generic/bundle.py @@ -175,6 +175,10 @@ def check_checksums(self): return checksum_issues + def patch_step(self): + """Patch step must be a no-op for bundle, since there are no top-level sources/patches.""" + pass + def configure_step(self): """Collect altroot/altversion info.""" # pick up altroot/altversion, if they are defined From 55194db04a4854fda31e100731cc36dd8c9d4521 Mon Sep 17 00:00:00 2001 From: Bart Oldeman Date: Sun, 29 Dec 2019 02:13:41 +0000 Subject: [PATCH 47/73] Derive EB_iccifort from EB_icc only. EB_ifort is problematic since the module guesses include $EBROOTICCIFORT/include which should not be added to CPATH for a joint icc/ifort installation. --- easybuild/easyblocks/i/iccifort.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/easybuild/easyblocks/i/iccifort.py b/easybuild/easyblocks/i/iccifort.py index 157203695d..ea01a31cab 100644 --- a/easybuild/easyblocks/i/iccifort.py +++ b/easybuild/easyblocks/i/iccifort.py @@ -35,7 +35,11 @@ from easybuild.easyblocks.ifort import EB_ifort -class EB_iccifort(EB_ifort, EB_icc): +# EB_icc is derived from because its make_module_req_guess deliberately omits 'include' for CPATH: +# including it causes problems, e.g. with complex.h and std::complex +# cfr. https://software.intel.com/en-us/forums/intel-c-compiler/topic/338378 +# EB_ifort adds 'include' there but only needed if icc and ifort are separate +class EB_iccifort(EB_icc): """ Class that can be used to install iccifort """ From 37a86997d689afd1a48e41c628178329f0530b5c Mon Sep 17 00:00:00 2001 From: Bart Oldeman Date: Sun, 29 Dec 2019 02:25:07 +0000 Subject: [PATCH 48/73] imkl: remove useless PATH entries, add PKG_CONFIG_PATH MKL has no binaries, just useless (in easybuild context) scripts. On the other hand it does have pkg-config entries that could be useful: https://software.intel.com/en-us/articles/intel-math-kernel-library-intel-mkl-and-pkg-config-tool --- easybuild/easyblocks/i/imkl.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/easybuild/easyblocks/i/imkl.py b/easybuild/easyblocks/i/imkl.py index d8c146cae7..b57f1b308a 100644 --- a/easybuild/easyblocks/i/imkl.py +++ b/easybuild/easyblocks/i/imkl.py @@ -144,11 +144,12 @@ def make_module_req_guess(self): raise EasyBuildError("32-bit not supported yet for IMKL v%s (>= 10.3)", self.version) else: retdict = { - 'PATH': ['bin', 'mkl/bin', 'mkl/bin/intel64', 'composerxe-2011/bin'], + 'PATH': [], 'LD_LIBRARY_PATH': ['lib/intel64', 'mkl/lib/intel64'], 'LIBRARY_PATH': ['lib/intel64', 'mkl/lib/intel64'], 'MANPATH': ['man', 'man/en_US'], 'CPATH': ['mkl/include', 'mkl/include/fftw'], + 'PKG_CONFIG_PATH': ['mkl/bin/pkgconfig'], } if LooseVersion(self.version) >= LooseVersion('11.0'): if LooseVersion(self.version) >= LooseVersion('11.3'): From cfb861e37fb9eccc9d3238d516ddedf1a7e3cb58 Mon Sep 17 00:00:00 2001 From: Bart Oldeman Date: Mon, 30 Dec 2019 15:39:59 +0000 Subject: [PATCH 49/73] Use EB_icc.make_module_req_guess instead of EB_ifort's in EB_iccifort. It's necessary to derive from EB_ifort to stay compatible with Python 2.x. --- easybuild/easyblocks/i/iccifort.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/easybuild/easyblocks/i/iccifort.py b/easybuild/easyblocks/i/iccifort.py index ea01a31cab..0714d4d736 100644 --- a/easybuild/easyblocks/i/iccifort.py +++ b/easybuild/easyblocks/i/iccifort.py @@ -35,11 +35,7 @@ from easybuild.easyblocks.ifort import EB_ifort -# EB_icc is derived from because its make_module_req_guess deliberately omits 'include' for CPATH: -# including it causes problems, e.g. with complex.h and std::complex -# cfr. https://software.intel.com/en-us/forums/intel-c-compiler/topic/338378 -# EB_ifort adds 'include' there but only needed if icc and ifort are separate -class EB_iccifort(EB_icc): +class EB_iccifort(EB_ifort, EB_icc): """ Class that can be used to install iccifort """ @@ -59,3 +55,10 @@ def make_module_extra(self): txt += self.module_generator.set_environment('EBVERSIONIFORT', self.version) return txt + + def make_module_req_guess(self): + # Use EB_icc because its make_module_req_guess deliberately omits 'include' for CPATH: + # including it causes problems, e.g. with complex.h and std::complex + # cfr. https://software.intel.com/en-us/forums/intel-c-compiler/topic/338378 + # whereas EB_ifort adds 'include' but that's only needed if icc and ifort are separate + return EB_icc.make_module_req_guess(self) From 6e7a2ab9fd2842041c99b0913fdcde31d27c2a41 Mon Sep 17 00:00:00 2001 From: Miguel Dias Costa Date: Thu, 2 Jan 2020 04:01:38 +0100 Subject: [PATCH 50/73] add export to preinstallopts instead of install_script path --- easybuild/easyblocks/c/cuda.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyblocks/c/cuda.py b/easybuild/easyblocks/c/cuda.py index fc0de0f39c..1655403466 100644 --- a/easybuild/easyblocks/c/cuda.py +++ b/easybuild/easyblocks/c/cuda.py @@ -115,7 +115,7 @@ def install_step(self): } # Use C locale to avoid localized questions and crash on CUDA 10.1 - install_script = "export LANG=C && " + install_script + self.cfg.update('preinstallopts', "export LANG=C && ") cmd = "%(preinstallopts)s %(interpreter)s %(script)s %(installopts)s" % { 'preinstallopts': self.cfg['preinstallopts'], From 046e01463c6c1d6486904c780c234a4c174a7b5d Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 2 Jan 2020 14:13:05 +0100 Subject: [PATCH 51/73] improve doc for 'optimized' and 'use_lto' custom easyconfig parameter for Python --- easybuild/easyblocks/p/python.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/easybuild/easyblocks/p/python.py b/easybuild/easyblocks/p/python.py index 624fe67b9d..f0f2849eb7 100644 --- a/easybuild/easyblocks/p/python.py +++ b/easybuild/easyblocks/p/python.py @@ -108,14 +108,11 @@ class EB_Python(ConfigureMake): def extra_options(): """Add extra config options specific to Python.""" extra_vars = { - 'ulimit_unlimited': [False, "Ensure stack size limit is set to '%s' during build" % UNLIMITED, CUSTOM], 'ebpythonprefixes': [True, "Create sitecustomize.py and allow use of $EBPYTHONPREFIXES", CUSTOM], - 'use_lto': [ - None, - "Build with Link Time Optimization. Potentially unstable on some toolchains. Default: Auto-detect", - CUSTOM - ], - 'optimized': [True, "Enable expensive, stable optimizations (PGO, etc)", CUSTOM], + 'optimized': [True, "Build with expensive, stable optimizations (PGO, etc.) (version >= 3.5.4)", CUSTOM], + 'ulimit_unlimited': [False, "Ensure stack size limit is set to '%s' during build" % UNLIMITED, CUSTOM], + 'use_lto': [None, "Build with Link Time Optimization (>= v3.7.0, potentially unstable on some toolchains). " + "If None: auto-detect based on toolchain compiler (version)", CUSTOM], } return ConfigureMake.extra_options(extra_vars) From 60f36c8948e3c1667c684acb0644e31bd22d0540 Mon Sep 17 00:00:00 2001 From: Bart Oldeman Date: Fri, 3 Jan 2020 12:18:01 +0000 Subject: [PATCH 52/73] Don't set CPATH and LIBRARY_PATH any more for GCC and GCCcore. GCC can find its own headers and libraries: only the .so's need to be in LD_LIBRARY_PATH, which are only under lib (32bit) and lib64 (64bit). Intel calls gcc -E and gcc -print-search-dirs to find them. PGI stores the locations at installation time in configuration files (localrc etc). --- easybuild/easyblocks/g/gcc.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/easybuild/easyblocks/g/gcc.py b/easybuild/easyblocks/g/gcc.py index ed04faae3a..f569355125 100644 --- a/easybuild/easyblocks/g/gcc.py +++ b/easybuild/easyblocks/g/gcc.py @@ -691,13 +691,14 @@ def sanity_check_step(self): def make_module_req_guess(self): """ - Make sure all GCC libs are in LD_LIBRARY_PATH + GCC can find its own headers and libraries but the .so's need to be in LD_LIBRARY_PATH """ guesses = super(EB_GCC, self).make_module_req_guess() guesses.update({ 'PATH': ['bin'], - 'LD_LIBRARY_PATH': ['lib', 'lib64', - 'lib/gcc/%s/%s' % (self.platform_lib, self.cfg['version'])], + 'CPATH': [], + 'LIBRARY_PATH': [], + 'LD_LIBRARY_PATH': ['lib', 'lib64'], 'MANPATH': ['man', 'share/man'] }) return guesses From 83bf4d7550cb26e8c56fcd23ba56ab235db93f7d Mon Sep 17 00:00:00 2001 From: Bart Oldeman Date: Fri, 3 Jan 2020 12:24:24 +0000 Subject: [PATCH 53/73] iccifort: remove LIBRARY_PATH entries already known to icc et al This makes it consistent with Intel's own script that don't set LIBRARY_PATH either (except for aux components such as TBB) But only do this for iccifort (single installation) so that in a split installation icc can still find ifort's libraries and vice versa. --- easybuild/easyblocks/i/iccifort.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/easybuild/easyblocks/i/iccifort.py b/easybuild/easyblocks/i/iccifort.py index 0714d4d736..53878573af 100644 --- a/easybuild/easyblocks/i/iccifort.py +++ b/easybuild/easyblocks/i/iccifort.py @@ -61,4 +61,12 @@ def make_module_req_guess(self): # including it causes problems, e.g. with complex.h and std::complex # cfr. https://software.intel.com/en-us/forums/intel-c-compiler/topic/338378 # whereas EB_ifort adds 'include' but that's only needed if icc and ifort are separate - return EB_icc.make_module_req_guess(self) + guesses = EB_icc.make_module_req_guess(self) + + # remove entries from LIBRARY_PATH that icc and co already know about at compile time + # only do this for iccifort merged installations so that icc can still find ifort + # libraries and vice versa for split installations + compiler_library_paths = [os.path.join(self.comp_libs_subdir, p) + for p in ('lib', 'compiler/lib/intel64', 'lib/ia32', 'lib/intel64')] + guesses['LIBRARY_PATH'] = [p for p in guesses['LIBRARY_PATH'] if p not in compiler_library_paths] + return guesses From 43317ae9bc6d715f4b220f4271daf2392a09d1b7 Mon Sep 17 00:00:00 2001 From: Bart Oldeman Date: Sat, 4 Jan 2020 01:45:20 +0000 Subject: [PATCH 54/73] Add needed import os. --- easybuild/easyblocks/i/iccifort.py | 1 + 1 file changed, 1 insertion(+) diff --git a/easybuild/easyblocks/i/iccifort.py b/easybuild/easyblocks/i/iccifort.py index 53878573af..ffb2ec9ab8 100644 --- a/easybuild/easyblocks/i/iccifort.py +++ b/easybuild/easyblocks/i/iccifort.py @@ -31,6 +31,7 @@ @author: Bart Oldeman (McGill University, Compute Canada) """ +import os from easybuild.easyblocks.icc import EB_icc from easybuild.easyblocks.ifort import EB_ifort From 24aaab919593bc9f82329e92c75b5c26e12d8a0a Mon Sep 17 00:00:00 2001 From: Bart Oldeman Date: Sat, 4 Jan 2020 02:03:33 +0000 Subject: [PATCH 55/73] Test if self.comp_libs_subdir is not None --- easybuild/easyblocks/i/iccifort.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/easybuild/easyblocks/i/iccifort.py b/easybuild/easyblocks/i/iccifort.py index ffb2ec9ab8..4e3b47eb82 100644 --- a/easybuild/easyblocks/i/iccifort.py +++ b/easybuild/easyblocks/i/iccifort.py @@ -67,7 +67,8 @@ def make_module_req_guess(self): # remove entries from LIBRARY_PATH that icc and co already know about at compile time # only do this for iccifort merged installations so that icc can still find ifort # libraries and vice versa for split installations - compiler_library_paths = [os.path.join(self.comp_libs_subdir, p) - for p in ('lib', 'compiler/lib/intel64', 'lib/ia32', 'lib/intel64')] - guesses['LIBRARY_PATH'] = [p for p in guesses['LIBRARY_PATH'] if p not in compiler_library_paths] + if self.comp_libs_subdir is not None: + compiler_library_paths = [os.path.join(self.comp_libs_subdir, p) + for p in ('lib', 'compiler/lib/intel64', 'lib/ia32', 'lib/intel64')] + guesses['LIBRARY_PATH'] = [p for p in guesses['LIBRARY_PATH'] if p not in compiler_library_paths] return guesses From 47ca5e0ea6e0823f1b30ccd32a18b891a1c68a5d Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sat, 4 Jan 2020 14:54:52 +0100 Subject: [PATCH 56/73] update copyright statements for 2020 --- easybuild/__init__.py | 2 +- easybuild/easyblocks/__init__.py | 2 +- easybuild/easyblocks/a/abaqus.py | 2 +- easybuild/easyblocks/a/acml.py | 2 +- easybuild/easyblocks/a/adf.py | 2 +- easybuild/easyblocks/a/advisor.py | 2 +- easybuild/easyblocks/a/aladin.py | 2 +- easybuild/easyblocks/a/allinea.py | 2 +- easybuild/easyblocks/a/amber.py | 4 ++-- easybuild/easyblocks/a/anaconda.py | 2 +- easybuild/easyblocks/a/ansys.py | 2 +- easybuild/easyblocks/a/ant.py | 2 +- easybuild/easyblocks/a/arb.py | 2 +- easybuild/easyblocks/a/armadillo.py | 2 +- easybuild/easyblocks/a/atlas.py | 2 +- easybuild/easyblocks/b/bamtools.py | 2 +- easybuild/easyblocks/b/bazel.py | 2 +- easybuild/easyblocks/b/binutils.py | 2 +- easybuild/easyblocks/b/bioconductor.py | 2 +- easybuild/easyblocks/b/bisearch.py | 2 +- easybuild/easyblocks/b/blacs.py | 2 +- easybuild/easyblocks/b/blat.py | 2 +- easybuild/easyblocks/b/blender.py | 2 +- easybuild/easyblocks/b/boost.py | 2 +- easybuild/easyblocks/b/bowtie.py | 2 +- easybuild/easyblocks/b/bzip2.py | 2 +- easybuild/easyblocks/c/cblas.py | 2 +- easybuild/easyblocks/c/cgal.py | 2 +- easybuild/easyblocks/c/charmm.py | 2 +- easybuild/easyblocks/c/clang.py | 2 +- easybuild/easyblocks/c/comsol.py | 2 +- easybuild/easyblocks/c/cp2k.py | 2 +- easybuild/easyblocks/c/cplex.py | 2 +- easybuild/easyblocks/d/db.py | 2 +- easybuild/easyblocks/d/dirac.py | 2 +- easybuild/easyblocks/d/dl_poly_classic.py | 2 +- easybuild/easyblocks/d/dolfin.py | 2 +- easybuild/easyblocks/d/doris.py | 2 +- easybuild/easyblocks/d/doxygen.py | 2 +- easybuild/easyblocks/e/easybuildmeta.py | 2 +- easybuild/easyblocks/e/egglib.py | 2 +- easybuild/easyblocks/e/elpa.py | 2 +- easybuild/easyblocks/e/epd.py | 2 +- easybuild/easyblocks/e/esmf.py | 2 +- easybuild/easyblocks/e/extrae.py | 2 +- easybuild/easyblocks/f/faststructure.py | 2 +- easybuild/easyblocks/f/fdtd_solutions.py | 2 +- easybuild/easyblocks/f/ferret.py | 2 +- easybuild/easyblocks/f/fftw.py | 2 +- easybuild/easyblocks/f/flex.py | 2 +- easybuild/easyblocks/f/fluent.py | 2 +- easybuild/easyblocks/f/foldx.py | 2 +- easybuild/easyblocks/f/freesurfer.py | 2 +- easybuild/easyblocks/f/freetype.py | 2 +- easybuild/easyblocks/f/fsl.py | 2 +- easybuild/easyblocks/g/g2clib.py | 2 +- easybuild/easyblocks/g/g2lib.py | 2 +- easybuild/easyblocks/g/gamess_us.py | 2 +- easybuild/easyblocks/g/gate.py | 2 +- easybuild/easyblocks/g/gcc.py | 2 +- easybuild/easyblocks/g/gctf.py | 2 +- easybuild/easyblocks/g/geant4.py | 2 +- easybuild/easyblocks/g/ghc.py | 2 +- easybuild/easyblocks/g/go.py | 2 +- easybuild/easyblocks/g/gromacs.py | 2 +- easybuild/easyblocks/g/gurobi.py | 2 +- easybuild/easyblocks/generic/__init__.py | 2 +- easybuild/easyblocks/generic/binariestarball.py | 2 +- easybuild/easyblocks/generic/binary.py | 2 +- easybuild/easyblocks/generic/buildenv.py | 2 +- easybuild/easyblocks/generic/bundle.py | 2 +- easybuild/easyblocks/generic/cmakemake.py | 2 +- easybuild/easyblocks/generic/cmakemakecp.py | 2 +- easybuild/easyblocks/generic/cmakeninja.py | 2 +- easybuild/easyblocks/generic/cmakepythonpackage.py | 2 +- easybuild/easyblocks/generic/cmdcp.py | 2 +- easybuild/easyblocks/generic/conda.py | 2 +- easybuild/easyblocks/generic/configuremake.py | 2 +- easybuild/easyblocks/generic/configuremakepythonpackage.py | 2 +- easybuild/easyblocks/generic/craytoolchain.py | 2 +- easybuild/easyblocks/generic/fortranpythonpackage.py | 2 +- easybuild/easyblocks/generic/intelbase.py | 2 +- easybuild/easyblocks/generic/jar.py | 2 +- easybuild/easyblocks/generic/mesonninja.py | 2 +- easybuild/easyblocks/generic/modulerc.py | 2 +- easybuild/easyblocks/generic/ocamlpackage.py | 2 +- easybuild/easyblocks/generic/octavepackage.py | 2 +- easybuild/easyblocks/generic/packedbinary.py | 2 +- easybuild/easyblocks/generic/perlmodule.py | 2 +- easybuild/easyblocks/generic/pythonbundle.py | 2 +- easybuild/easyblocks/generic/pythonpackage.py | 2 +- easybuild/easyblocks/generic/rpackage.py | 2 +- easybuild/easyblocks/generic/rpm.py | 2 +- easybuild/easyblocks/generic/rubygem.py | 2 +- easybuild/easyblocks/generic/scons.py | 2 +- easybuild/easyblocks/generic/systemcompiler.py | 2 +- easybuild/easyblocks/generic/systemmpi.py | 2 +- easybuild/easyblocks/generic/tarball.py | 2 +- easybuild/easyblocks/generic/toolchain.py | 2 +- .../easyblocks/generic/versionindependentpythonpackage.py | 2 +- easybuild/easyblocks/generic/vscpythonpackage.py | 2 +- easybuild/easyblocks/generic/waf.py | 2 +- easybuild/easyblocks/h/hadoop.py | 2 +- easybuild/easyblocks/h/hdf5.py | 2 +- easybuild/easyblocks/h/healpix.py | 2 +- easybuild/easyblocks/h/hpcg.py | 2 +- easybuild/easyblocks/h/hpl.py | 2 +- easybuild/easyblocks/h/hypre.py | 2 +- easybuild/easyblocks/i/icc.py | 2 +- easybuild/easyblocks/i/iccifort.py | 2 +- easybuild/easyblocks/i/ifort.py | 2 +- easybuild/easyblocks/i/imkl.py | 2 +- easybuild/easyblocks/i/imod.py | 2 +- easybuild/easyblocks/i/impi.py | 2 +- easybuild/easyblocks/i/inspector.py | 2 +- easybuild/easyblocks/i/ipp.py | 2 +- easybuild/easyblocks/i/ironpython.py | 2 +- easybuild/easyblocks/i/itac.py | 2 +- easybuild/easyblocks/j/java.py | 2 +- easybuild/easyblocks/l/lapack.py | 2 +- easybuild/easyblocks/l/libint.py | 2 +- easybuild/easyblocks/l/libqglviewer.py | 2 +- easybuild/easyblocks/l/libsmm.py | 2 +- easybuild/easyblocks/l/libxml2.py | 2 +- easybuild/easyblocks/l/lua.py | 2 +- easybuild/easyblocks/m/maple.py | 2 +- easybuild/easyblocks/m/mathematica.py | 2 +- easybuild/easyblocks/m/matlab.py | 2 +- easybuild/easyblocks/m/mcr.py | 2 +- easybuild/easyblocks/m/metis.py | 2 +- easybuild/easyblocks/m/modeller.py | 2 +- easybuild/easyblocks/m/molpro.py | 2 +- easybuild/easyblocks/m/mono.py | 2 +- easybuild/easyblocks/m/mothur.py | 2 +- easybuild/easyblocks/m/motioncor2.py | 2 +- easybuild/easyblocks/m/mpich.py | 2 +- easybuild/easyblocks/m/mrbayes.py | 2 +- easybuild/easyblocks/m/mrtrix.py | 2 +- easybuild/easyblocks/m/msm.py | 2 +- easybuild/easyblocks/m/mtl4.py | 2 +- easybuild/easyblocks/m/mummer.py | 2 +- easybuild/easyblocks/m/mumps.py | 2 +- easybuild/easyblocks/m/mutil.py | 2 +- easybuild/easyblocks/m/mvapich2.py | 2 +- easybuild/easyblocks/m/mymedialite.py | 2 +- easybuild/easyblocks/n/ncl.py | 2 +- easybuild/easyblocks/n/nemo.py | 2 +- easybuild/easyblocks/n/netcdf.py | 2 +- easybuild/easyblocks/n/netcdf4_python.py | 2 +- easybuild/easyblocks/n/netcdf_fortran.py | 2 +- easybuild/easyblocks/n/neuron.py | 2 +- easybuild/easyblocks/n/nim.py | 2 +- easybuild/easyblocks/n/nose.py | 2 +- easybuild/easyblocks/n/numexpr.py | 2 +- easybuild/easyblocks/n/numpy.py | 2 +- easybuild/easyblocks/n/nwchem.py | 2 +- easybuild/easyblocks/o/ocaml.py | 2 +- easybuild/easyblocks/o/octave.py | 2 +- easybuild/easyblocks/o/openbabel.py | 2 +- easybuild/easyblocks/o/opencv.py | 2 +- easybuild/easyblocks/o/openfoam.py | 2 +- easybuild/easyblocks/o/openifs.py | 2 +- easybuild/easyblocks/o/openmpi.py | 2 +- easybuild/easyblocks/o/openssl.py | 2 +- easybuild/easyblocks/p/paraver.py | 2 +- easybuild/easyblocks/p/parmetis.py | 2 +- easybuild/easyblocks/p/pasha.py | 2 +- easybuild/easyblocks/p/pbdmpi.py | 2 +- easybuild/easyblocks/p/pbdslap.py | 2 +- easybuild/easyblocks/p/perl.py | 2 +- easybuild/easyblocks/p/petsc.py | 2 +- easybuild/easyblocks/p/pgi.py | 4 ++-- easybuild/easyblocks/p/picard.py | 2 +- easybuild/easyblocks/p/pplacer.py | 2 +- easybuild/easyblocks/p/primer3.py | 2 +- easybuild/easyblocks/p/psi.py | 2 +- easybuild/easyblocks/p/psmpi.py | 2 +- easybuild/easyblocks/p/pyquante.py | 2 +- easybuild/easyblocks/p/python.py | 2 +- easybuild/easyblocks/p/python_meep.py | 2 +- easybuild/easyblocks/p/pyzmq.py | 2 +- easybuild/easyblocks/q/qscintilla.py | 2 +- easybuild/easyblocks/q/qt.py | 2 +- easybuild/easyblocks/q/quantumespresso.py | 2 +- easybuild/easyblocks/r/__init__.py | 2 +- easybuild/easyblocks/r/r.py | 2 +- easybuild/easyblocks/r/repeatmasker.py | 2 +- easybuild/easyblocks/r/rmpi.py | 2 +- easybuild/easyblocks/r/root.py | 2 +- easybuild/easyblocks/r/rosetta.py | 2 +- easybuild/easyblocks/r/rserve.py | 2 +- easybuild/easyblocks/r/ruby.py | 2 +- easybuild/easyblocks/s/samcef.py | 2 +- easybuild/easyblocks/s/sas.py | 2 +- easybuild/easyblocks/s/scalapack.py | 2 +- easybuild/easyblocks/s/scalasca1.py | 2 +- easybuild/easyblocks/s/scipy.py | 2 +- easybuild/easyblocks/s/score_p.py | 2 +- easybuild/easyblocks/s/scotch.py | 2 +- easybuild/easyblocks/s/shrimp.py | 2 +- easybuild/easyblocks/s/siesta.py | 2 +- easybuild/easyblocks/s/slepc.py | 2 +- easybuild/easyblocks/s/snphylo.py | 2 +- easybuild/easyblocks/s/stata.py | 2 +- easybuild/easyblocks/s/suitesparse.py | 2 +- easybuild/easyblocks/s/superlu.py | 2 +- easybuild/easyblocks/s/swig.py | 2 +- easybuild/easyblocks/t/tau.py | 2 +- easybuild/easyblocks/t/tbb.py | 2 +- easybuild/easyblocks/t/tensorflow.py | 2 +- easybuild/easyblocks/t/tensorrt.py | 2 +- easybuild/easyblocks/t/tinker.py | 2 +- easybuild/easyblocks/t/tkinter.py | 2 +- easybuild/easyblocks/t/tornado.py | 2 +- easybuild/easyblocks/t/trilinos.py | 2 +- easybuild/easyblocks/t/trinity.py | 2 +- easybuild/easyblocks/u/ufc.py | 2 +- easybuild/easyblocks/v/vep.py | 2 +- easybuild/easyblocks/v/vmd.py | 4 ++-- easybuild/easyblocks/v/vsc_tools.py | 2 +- easybuild/easyblocks/v/vtune.py | 2 +- easybuild/easyblocks/w/wien2k.py | 2 +- easybuild/easyblocks/w/wps.py | 2 +- easybuild/easyblocks/w/wrf.py | 2 +- easybuild/easyblocks/w/wrf_fire.py | 2 +- easybuild/easyblocks/w/wxpython.py | 2 +- easybuild/easyblocks/x/xcrysden.py | 2 +- easybuild/easyblocks/x/xmipp.py | 2 +- easybuild/easyblocks/x/xml.py | 2 +- setup.py | 2 +- test/__init__.py | 2 +- test/easyblocks/easyblock_specific.py | 2 +- test/easyblocks/general.py | 2 +- test/easyblocks/init_easyblocks.py | 2 +- test/easyblocks/module.py | 2 +- test/easyblocks/suite.py | 2 +- 236 files changed, 239 insertions(+), 239 deletions(-) diff --git a/easybuild/__init__.py b/easybuild/__init__.py index 723422869b..72e1f2d366 100644 --- a/easybuild/__init__.py +++ b/easybuild/__init__.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/__init__.py b/easybuild/easyblocks/__init__.py index f93885c088..8328738059 100644 --- a/easybuild/easyblocks/__init__.py +++ b/easybuild/easyblocks/__init__.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/a/abaqus.py b/easybuild/easyblocks/a/abaqus.py index 2e7e0d712c..2a966f555f 100644 --- a/easybuild/easyblocks/a/abaqus.py +++ b/easybuild/easyblocks/a/abaqus.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/a/acml.py b/easybuild/easyblocks/a/acml.py index b5ef7c0357..af8e9bab5e 100644 --- a/easybuild/easyblocks/a/acml.py +++ b/easybuild/easyblocks/a/acml.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/a/adf.py b/easybuild/easyblocks/a/adf.py index 8fa115718b..1b8c3e39f2 100644 --- a/easybuild/easyblocks/a/adf.py +++ b/easybuild/easyblocks/a/adf.py @@ -1,5 +1,5 @@ ## -# Copyright 2016-2019 Ghent University +# Copyright 2016-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/a/advisor.py b/easybuild/easyblocks/a/advisor.py index 838b71a1f1..9034adc830 100644 --- a/easybuild/easyblocks/a/advisor.py +++ b/easybuild/easyblocks/a/advisor.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/a/aladin.py b/easybuild/easyblocks/a/aladin.py index 73cb48cb6c..e7b9bc37d6 100644 --- a/easybuild/easyblocks/a/aladin.py +++ b/easybuild/easyblocks/a/aladin.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/a/allinea.py b/easybuild/easyblocks/a/allinea.py index a49d9d83c1..629bb464b5 100644 --- a/easybuild/easyblocks/a/allinea.py +++ b/easybuild/easyblocks/a/allinea.py @@ -1,5 +1,5 @@ ## -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/a/amber.py b/easybuild/easyblocks/a/amber.py index ea0e735638..2a731500e9 100644 --- a/easybuild/easyblocks/a/amber.py +++ b/easybuild/easyblocks/a/amber.py @@ -1,6 +1,6 @@ ## -# Copyright 2009-2019 Ghent University -# Copyright 2015-2019 Stanford University +# Copyright 2009-2020 Ghent University +# Copyright 2015-2020 Stanford University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/a/anaconda.py b/easybuild/easyblocks/a/anaconda.py index da087c8483..698f6d51d6 100644 --- a/easybuild/easyblocks/a/anaconda.py +++ b/easybuild/easyblocks/a/anaconda.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/a/ansys.py b/easybuild/easyblocks/a/ansys.py index 1d40cce6d6..31b26bc3e7 100644 --- a/easybuild/easyblocks/a/ansys.py +++ b/easybuild/easyblocks/a/ansys.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/a/ant.py b/easybuild/easyblocks/a/ant.py index bf07755043..f31a71d0a1 100644 --- a/easybuild/easyblocks/a/ant.py +++ b/easybuild/easyblocks/a/ant.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/a/arb.py b/easybuild/easyblocks/a/arb.py index 1f9ca303e3..a1a6ef6fc8 100644 --- a/easybuild/easyblocks/a/arb.py +++ b/easybuild/easyblocks/a/arb.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/a/armadillo.py b/easybuild/easyblocks/a/armadillo.py index 4f9f0f401a..571494aa6f 100644 --- a/easybuild/easyblocks/a/armadillo.py +++ b/easybuild/easyblocks/a/armadillo.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/a/atlas.py b/easybuild/easyblocks/a/atlas.py index 15eabf6cf6..78fe203020 100644 --- a/easybuild/easyblocks/a/atlas.py +++ b/easybuild/easyblocks/a/atlas.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/b/bamtools.py b/easybuild/easyblocks/b/bamtools.py index 786bdf6403..341b4f4b16 100644 --- a/easybuild/easyblocks/b/bamtools.py +++ b/easybuild/easyblocks/b/bamtools.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 The Cyprus Institute +# Copyright 2009-2020 The Cyprus Institute # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/b/bazel.py b/easybuild/easyblocks/b/bazel.py index 4dfc4dd860..9d6fb32291 100644 --- a/easybuild/easyblocks/b/bazel.py +++ b/easybuild/easyblocks/b/bazel.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/b/binutils.py b/easybuild/easyblocks/b/binutils.py index e6c459e2b9..84ab4858d3 100644 --- a/easybuild/easyblocks/b/binutils.py +++ b/easybuild/easyblocks/b/binutils.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/b/bioconductor.py b/easybuild/easyblocks/b/bioconductor.py index 49af54d33f..b63fafba22 100644 --- a/easybuild/easyblocks/b/bioconductor.py +++ b/easybuild/easyblocks/b/bioconductor.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/b/bisearch.py b/easybuild/easyblocks/b/bisearch.py index e0a44b2dc7..db140adcfa 100644 --- a/easybuild/easyblocks/b/bisearch.py +++ b/easybuild/easyblocks/b/bisearch.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/b/blacs.py b/easybuild/easyblocks/b/blacs.py index ec8b201532..50734ccc54 100644 --- a/easybuild/easyblocks/b/blacs.py +++ b/easybuild/easyblocks/b/blacs.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/b/blat.py b/easybuild/easyblocks/b/blat.py index f9fe45aeab..6865d25bb6 100755 --- a/easybuild/easyblocks/b/blat.py +++ b/easybuild/easyblocks/b/blat.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 the Cyprus Institute +# Copyright 2009-2020 the Cyprus Institute # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/b/blender.py b/easybuild/easyblocks/b/blender.py index 92d4607100..ed17aff49c 100644 --- a/easybuild/easyblocks/b/blender.py +++ b/easybuild/easyblocks/b/blender.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/b/boost.py b/easybuild/easyblocks/b/boost.py index cb526629e2..8729d88c9a 100644 --- a/easybuild/easyblocks/b/boost.py +++ b/easybuild/easyblocks/b/boost.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/b/bowtie.py b/easybuild/easyblocks/b/bowtie.py index ecd06cf7e3..319b104860 100644 --- a/easybuild/easyblocks/b/bowtie.py +++ b/easybuild/easyblocks/b/bowtie.py @@ -1,5 +1,5 @@ ## -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/b/bzip2.py b/easybuild/easyblocks/b/bzip2.py index f08452a36c..d955c30411 100644 --- a/easybuild/easyblocks/b/bzip2.py +++ b/easybuild/easyblocks/b/bzip2.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/c/cblas.py b/easybuild/easyblocks/c/cblas.py index c8a841f63c..64728e2004 100644 --- a/easybuild/easyblocks/c/cblas.py +++ b/easybuild/easyblocks/c/cblas.py @@ -1,5 +1,5 @@ ## -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/c/cgal.py b/easybuild/easyblocks/c/cgal.py index 41eb441750..f36db7c039 100644 --- a/easybuild/easyblocks/c/cgal.py +++ b/easybuild/easyblocks/c/cgal.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/c/charmm.py b/easybuild/easyblocks/c/charmm.py index deb4dbe472..7c7d44461d 100644 --- a/easybuild/easyblocks/c/charmm.py +++ b/easybuild/easyblocks/c/charmm.py @@ -1,5 +1,5 @@ ## -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/c/clang.py b/easybuild/easyblocks/c/clang.py index 7232aee244..8bb4d051d5 100644 --- a/easybuild/easyblocks/c/clang.py +++ b/easybuild/easyblocks/c/clang.py @@ -1,6 +1,6 @@ ## # Copyright 2013 Dmitri Gribenko -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is triple-licensed under GPLv2 (see below), MIT, and # BSD three-clause licenses. diff --git a/easybuild/easyblocks/c/comsol.py b/easybuild/easyblocks/c/comsol.py index 0c0ea7d158..9dc3dcb574 100644 --- a/easybuild/easyblocks/c/comsol.py +++ b/easybuild/easyblocks/c/comsol.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/c/cp2k.py b/easybuild/easyblocks/c/cp2k.py index fff471b688..5f09860f47 100644 --- a/easybuild/easyblocks/c/cp2k.py +++ b/easybuild/easyblocks/c/cp2k.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/c/cplex.py b/easybuild/easyblocks/c/cplex.py index ddb236721b..3ab8053e3e 100644 --- a/easybuild/easyblocks/c/cplex.py +++ b/easybuild/easyblocks/c/cplex.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/d/db.py b/easybuild/easyblocks/d/db.py index 5d4d84c98d..6e2a07c0e6 100644 --- a/easybuild/easyblocks/d/db.py +++ b/easybuild/easyblocks/d/db.py @@ -1,5 +1,5 @@ ## -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/d/dirac.py b/easybuild/easyblocks/d/dirac.py index 0360133a2b..3ebb5bd88f 100644 --- a/easybuild/easyblocks/d/dirac.py +++ b/easybuild/easyblocks/d/dirac.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/d/dl_poly_classic.py b/easybuild/easyblocks/d/dl_poly_classic.py index f3072e153f..6f0e3c8712 100644 --- a/easybuild/easyblocks/d/dl_poly_classic.py +++ b/easybuild/easyblocks/d/dl_poly_classic.py @@ -1,5 +1,5 @@ ## -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/d/dolfin.py b/easybuild/easyblocks/d/dolfin.py index dd9e09ab55..84b08ce3ac 100644 --- a/easybuild/easyblocks/d/dolfin.py +++ b/easybuild/easyblocks/d/dolfin.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/d/doris.py b/easybuild/easyblocks/d/doris.py index fea37b8cd8..5b4af222a9 100644 --- a/easybuild/easyblocks/d/doris.py +++ b/easybuild/easyblocks/d/doris.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/d/doxygen.py b/easybuild/easyblocks/d/doxygen.py index eaaec56e98..3f9b507c14 100644 --- a/easybuild/easyblocks/d/doxygen.py +++ b/easybuild/easyblocks/d/doxygen.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/e/easybuildmeta.py b/easybuild/easyblocks/e/easybuildmeta.py index 8630de220f..78f0c47416 100644 --- a/easybuild/easyblocks/e/easybuildmeta.py +++ b/easybuild/easyblocks/e/easybuildmeta.py @@ -1,5 +1,5 @@ # # -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/e/egglib.py b/easybuild/easyblocks/e/egglib.py index cddf6c8ec5..2f0c85594b 100644 --- a/easybuild/easyblocks/e/egglib.py +++ b/easybuild/easyblocks/e/egglib.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/e/elpa.py b/easybuild/easyblocks/e/elpa.py index 399712a073..4354485d64 100644 --- a/easybuild/easyblocks/e/elpa.py +++ b/easybuild/easyblocks/e/elpa.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # Copyright 2019 Micael Oliveira # # This file is part of EasyBuild, diff --git a/easybuild/easyblocks/e/epd.py b/easybuild/easyblocks/e/epd.py index ca429d25c4..aa38dcc2cc 100644 --- a/easybuild/easyblocks/e/epd.py +++ b/easybuild/easyblocks/e/epd.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/e/esmf.py b/easybuild/easyblocks/e/esmf.py index 08599a3d7a..8e28406101 100644 --- a/easybuild/easyblocks/e/esmf.py +++ b/easybuild/easyblocks/e/esmf.py @@ -1,5 +1,5 @@ ## -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/e/extrae.py b/easybuild/easyblocks/e/extrae.py index 8d0cbea349..4faade0dd5 100644 --- a/easybuild/easyblocks/e/extrae.py +++ b/easybuild/easyblocks/e/extrae.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/f/faststructure.py b/easybuild/easyblocks/f/faststructure.py index 418d887ea7..d2a1e24beb 100644 --- a/easybuild/easyblocks/f/faststructure.py +++ b/easybuild/easyblocks/f/faststructure.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/f/fdtd_solutions.py b/easybuild/easyblocks/f/fdtd_solutions.py index 398b2756a2..17890b09e6 100644 --- a/easybuild/easyblocks/f/fdtd_solutions.py +++ b/easybuild/easyblocks/f/fdtd_solutions.py @@ -1,5 +1,5 @@ ## -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/f/ferret.py b/easybuild/easyblocks/f/ferret.py index c67a3af0fe..847a78b693 100644 --- a/easybuild/easyblocks/f/ferret.py +++ b/easybuild/easyblocks/f/ferret.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/f/fftw.py b/easybuild/easyblocks/f/fftw.py index a95f09f448..bc46678c00 100644 --- a/easybuild/easyblocks/f/fftw.py +++ b/easybuild/easyblocks/f/fftw.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/f/flex.py b/easybuild/easyblocks/f/flex.py index ca76029e2e..1e3e02e52e 100644 --- a/easybuild/easyblocks/f/flex.py +++ b/easybuild/easyblocks/f/flex.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/f/fluent.py b/easybuild/easyblocks/f/fluent.py index 6b5a2fc66e..1b34ca7c39 100644 --- a/easybuild/easyblocks/f/fluent.py +++ b/easybuild/easyblocks/f/fluent.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/f/foldx.py b/easybuild/easyblocks/f/foldx.py index bb00740ef7..20be6b7f99 100644 --- a/easybuild/easyblocks/f/foldx.py +++ b/easybuild/easyblocks/f/foldx.py @@ -1,5 +1,5 @@ ## -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/f/freesurfer.py b/easybuild/easyblocks/f/freesurfer.py index 9bf24485d8..66ff1b1ddd 100644 --- a/easybuild/easyblocks/f/freesurfer.py +++ b/easybuild/easyblocks/f/freesurfer.py @@ -1,5 +1,5 @@ ## -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/f/freetype.py b/easybuild/easyblocks/f/freetype.py index bb9068e557..fee9b84f3b 100644 --- a/easybuild/easyblocks/f/freetype.py +++ b/easybuild/easyblocks/f/freetype.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/f/fsl.py b/easybuild/easyblocks/f/fsl.py index c643ad5eb6..dd5ab5194f 100644 --- a/easybuild/easyblocks/f/fsl.py +++ b/easybuild/easyblocks/f/fsl.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/g/g2clib.py b/easybuild/easyblocks/g/g2clib.py index f49641999d..4c0b0d1ec8 100644 --- a/easybuild/easyblocks/g/g2clib.py +++ b/easybuild/easyblocks/g/g2clib.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/g/g2lib.py b/easybuild/easyblocks/g/g2lib.py index 99afd2234c..74a93e3c23 100644 --- a/easybuild/easyblocks/g/g2lib.py +++ b/easybuild/easyblocks/g/g2lib.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/g/gamess_us.py b/easybuild/easyblocks/g/gamess_us.py index e0d5e1ec78..edd67f9893 100644 --- a/easybuild/easyblocks/g/gamess_us.py +++ b/easybuild/easyblocks/g/gamess_us.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/g/gate.py b/easybuild/easyblocks/g/gate.py index b1fa3cb84a..3eee4fffd5 100644 --- a/easybuild/easyblocks/g/gate.py +++ b/easybuild/easyblocks/g/gate.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/g/gcc.py b/easybuild/easyblocks/g/gcc.py index ed04faae3a..5d86a2b56c 100644 --- a/easybuild/easyblocks/g/gcc.py +++ b/easybuild/easyblocks/g/gcc.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/g/gctf.py b/easybuild/easyblocks/g/gctf.py index 522ead8035..fd6ac8d1bc 100644 --- a/easybuild/easyblocks/g/gctf.py +++ b/easybuild/easyblocks/g/gctf.py @@ -1,5 +1,5 @@ ## -# Copyright 2019-2019 Ghent University +# Copyright 2019-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (https://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/g/geant4.py b/easybuild/easyblocks/g/geant4.py index 9684b93079..705be24db8 100644 --- a/easybuild/easyblocks/g/geant4.py +++ b/easybuild/easyblocks/g/geant4.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/g/ghc.py b/easybuild/easyblocks/g/ghc.py index c123539be0..9042b278cd 100644 --- a/easybuild/easyblocks/g/ghc.py +++ b/easybuild/easyblocks/g/ghc.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/g/go.py b/easybuild/easyblocks/g/go.py index ad6324dd7a..3dd45e323a 100644 --- a/easybuild/easyblocks/g/go.py +++ b/easybuild/easyblocks/g/go.py @@ -1,5 +1,5 @@ ## -# Copyright 2014-2019 Ghent University +# Copyright 2014-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/g/gromacs.py b/easybuild/easyblocks/g/gromacs.py index 9ad3d5bc9e..138d18fd54 100644 --- a/easybuild/easyblocks/g/gromacs.py +++ b/easybuild/easyblocks/g/gromacs.py @@ -1,5 +1,5 @@ ## -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/g/gurobi.py b/easybuild/easyblocks/g/gurobi.py index 5ce9fbedb0..583a0696e2 100644 --- a/easybuild/easyblocks/g/gurobi.py +++ b/easybuild/easyblocks/g/gurobi.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/__init__.py b/easybuild/easyblocks/generic/__init__.py index 723422869b..72e1f2d366 100644 --- a/easybuild/easyblocks/generic/__init__.py +++ b/easybuild/easyblocks/generic/__init__.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/binariestarball.py b/easybuild/easyblocks/generic/binariestarball.py index a50e8c16f8..9737c89224 100644 --- a/easybuild/easyblocks/generic/binariestarball.py +++ b/easybuild/easyblocks/generic/binariestarball.py @@ -1,5 +1,5 @@ ## -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/binary.py b/easybuild/easyblocks/generic/binary.py index 59e288fcb5..15ddacc0d4 100644 --- a/easybuild/easyblocks/generic/binary.py +++ b/easybuild/easyblocks/generic/binary.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/buildenv.py b/easybuild/easyblocks/generic/buildenv.py index 7b57d6e51c..a1a3e0112e 100644 --- a/easybuild/easyblocks/generic/buildenv.py +++ b/easybuild/easyblocks/generic/buildenv.py @@ -1,5 +1,5 @@ ## -# Copyright 2015-2019 Ghent University +# Copyright 2015-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/bundle.py b/easybuild/easyblocks/generic/bundle.py index 7b7725dbd3..4e492362e4 100644 --- a/easybuild/easyblocks/generic/bundle.py +++ b/easybuild/easyblocks/generic/bundle.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/cmakemake.py b/easybuild/easyblocks/generic/cmakemake.py index bd6d0f1a00..fb6ce81559 100644 --- a/easybuild/easyblocks/generic/cmakemake.py +++ b/easybuild/easyblocks/generic/cmakemake.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/cmakemakecp.py b/easybuild/easyblocks/generic/cmakemakecp.py index e5ee87ba43..70bad57256 100644 --- a/easybuild/easyblocks/generic/cmakemakecp.py +++ b/easybuild/easyblocks/generic/cmakemakecp.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/cmakeninja.py b/easybuild/easyblocks/generic/cmakeninja.py index a4f83345c9..2b8c08620a 100644 --- a/easybuild/easyblocks/generic/cmakeninja.py +++ b/easybuild/easyblocks/generic/cmakeninja.py @@ -1,5 +1,5 @@ ## -# Copyright 2019-2019 Ghent University +# Copyright 2019-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/cmakepythonpackage.py b/easybuild/easyblocks/generic/cmakepythonpackage.py index 79b09a55eb..a527e88fd5 100644 --- a/easybuild/easyblocks/generic/cmakepythonpackage.py +++ b/easybuild/easyblocks/generic/cmakepythonpackage.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/cmdcp.py b/easybuild/easyblocks/generic/cmdcp.py index a5c0bd73e1..24db7a2d05 100644 --- a/easybuild/easyblocks/generic/cmdcp.py +++ b/easybuild/easyblocks/generic/cmdcp.py @@ -1,5 +1,5 @@ ## -# Copyright 2014-2019 Ghent University +# Copyright 2014-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/conda.py b/easybuild/easyblocks/generic/conda.py index 5cd3b376f1..28071e5d38 100644 --- a/easybuild/easyblocks/generic/conda.py +++ b/easybuild/easyblocks/generic/conda.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/configuremake.py b/easybuild/easyblocks/generic/configuremake.py index c5f641c5f8..00fd7973ec 100644 --- a/easybuild/easyblocks/generic/configuremake.py +++ b/easybuild/easyblocks/generic/configuremake.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/configuremakepythonpackage.py b/easybuild/easyblocks/generic/configuremakepythonpackage.py index 2e29c229a8..5f8abb0c71 100644 --- a/easybuild/easyblocks/generic/configuremakepythonpackage.py +++ b/easybuild/easyblocks/generic/configuremakepythonpackage.py @@ -1,5 +1,5 @@ ## -# Copyright 2015-2019 Ghent University +# Copyright 2015-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/craytoolchain.py b/easybuild/easyblocks/generic/craytoolchain.py index 0a167b2f3b..a57f5ed74f 100644 --- a/easybuild/easyblocks/generic/craytoolchain.py +++ b/easybuild/easyblocks/generic/craytoolchain.py @@ -1,5 +1,5 @@ ## -# Copyright 2015-2019 Ghent University +# Copyright 2015-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/fortranpythonpackage.py b/easybuild/easyblocks/generic/fortranpythonpackage.py index ba894aca86..dc954c79fa 100644 --- a/easybuild/easyblocks/generic/fortranpythonpackage.py +++ b/easybuild/easyblocks/generic/fortranpythonpackage.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/intelbase.py b/easybuild/easyblocks/generic/intelbase.py index e29784b36c..146e7870b0 100644 --- a/easybuild/easyblocks/generic/intelbase.py +++ b/easybuild/easyblocks/generic/intelbase.py @@ -1,5 +1,5 @@ # # -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/jar.py b/easybuild/easyblocks/generic/jar.py index bedab8eb38..814cfc9dd6 100644 --- a/easybuild/easyblocks/generic/jar.py +++ b/easybuild/easyblocks/generic/jar.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/mesonninja.py b/easybuild/easyblocks/generic/mesonninja.py index 0e8c480636..954b21e3f7 100644 --- a/easybuild/easyblocks/generic/mesonninja.py +++ b/easybuild/easyblocks/generic/mesonninja.py @@ -1,5 +1,5 @@ ## -# Copyright 2018-2019 Ghent University +# Copyright 2018-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/modulerc.py b/easybuild/easyblocks/generic/modulerc.py index aeab831c90..222f1fc567 100644 --- a/easybuild/easyblocks/generic/modulerc.py +++ b/easybuild/easyblocks/generic/modulerc.py @@ -1,5 +1,5 @@ ## -# Copyright 2018-2019 Ghent University +# Copyright 2018-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/ocamlpackage.py b/easybuild/easyblocks/generic/ocamlpackage.py index e6e954b6ce..a925ebc6bf 100644 --- a/easybuild/easyblocks/generic/ocamlpackage.py +++ b/easybuild/easyblocks/generic/ocamlpackage.py @@ -1,5 +1,5 @@ ## -# Copyright 2015-2019 Ghent University +# Copyright 2015-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/octavepackage.py b/easybuild/easyblocks/generic/octavepackage.py index 21f93c410f..a3835a6240 100644 --- a/easybuild/easyblocks/generic/octavepackage.py +++ b/easybuild/easyblocks/generic/octavepackage.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/packedbinary.py b/easybuild/easyblocks/generic/packedbinary.py index 3631a910c6..6eaa0f8e52 100644 --- a/easybuild/easyblocks/generic/packedbinary.py +++ b/easybuild/easyblocks/generic/packedbinary.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/perlmodule.py b/easybuild/easyblocks/generic/perlmodule.py index af24e43f90..cd81e4c3b7 100644 --- a/easybuild/easyblocks/generic/perlmodule.py +++ b/easybuild/easyblocks/generic/perlmodule.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/pythonbundle.py b/easybuild/easyblocks/generic/pythonbundle.py index 656005a8fe..01f0c26af1 100644 --- a/easybuild/easyblocks/generic/pythonbundle.py +++ b/easybuild/easyblocks/generic/pythonbundle.py @@ -1,5 +1,5 @@ ## -# Copyright 2018-2019 Ghent University +# Copyright 2018-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/pythonpackage.py b/easybuild/easyblocks/generic/pythonpackage.py index d4c0935f43..ed48957933 100644 --- a/easybuild/easyblocks/generic/pythonpackage.py +++ b/easybuild/easyblocks/generic/pythonpackage.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/rpackage.py b/easybuild/easyblocks/generic/rpackage.py index c4f94a9982..1b9775084c 100644 --- a/easybuild/easyblocks/generic/rpackage.py +++ b/easybuild/easyblocks/generic/rpackage.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/rpm.py b/easybuild/easyblocks/generic/rpm.py index 0da7f08b21..39762d99a2 100644 --- a/easybuild/easyblocks/generic/rpm.py +++ b/easybuild/easyblocks/generic/rpm.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/rubygem.py b/easybuild/easyblocks/generic/rubygem.py index 0e9bfdc133..1bc0c53c0d 100644 --- a/easybuild/easyblocks/generic/rubygem.py +++ b/easybuild/easyblocks/generic/rubygem.py @@ -1,5 +1,5 @@ ## -# Copyright 2015-2019 Ghent University +# Copyright 2015-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/scons.py b/easybuild/easyblocks/generic/scons.py index f6b95a5c8a..244c45489c 100644 --- a/easybuild/easyblocks/generic/scons.py +++ b/easybuild/easyblocks/generic/scons.py @@ -1,5 +1,5 @@ ## -# Copyright 2015-2019 Ghent University +# Copyright 2015-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/systemcompiler.py b/easybuild/easyblocks/generic/systemcompiler.py index 68b11c757c..c3fc60995f 100644 --- a/easybuild/easyblocks/generic/systemcompiler.py +++ b/easybuild/easyblocks/generic/systemcompiler.py @@ -1,5 +1,5 @@ ## -# Copyright 2015-2019 Ghent University +# Copyright 2015-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/systemmpi.py b/easybuild/easyblocks/generic/systemmpi.py index f56d9a9074..12c0ba343a 100644 --- a/easybuild/easyblocks/generic/systemmpi.py +++ b/easybuild/easyblocks/generic/systemmpi.py @@ -1,5 +1,5 @@ ## -# Copyright 2015-2019 Ghent University +# Copyright 2015-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/tarball.py b/easybuild/easyblocks/generic/tarball.py index d06dda22e8..002839f143 100644 --- a/easybuild/easyblocks/generic/tarball.py +++ b/easybuild/easyblocks/generic/tarball.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/toolchain.py b/easybuild/easyblocks/generic/toolchain.py index 48cc14e2d3..c2d7b10a8e 100644 --- a/easybuild/easyblocks/generic/toolchain.py +++ b/easybuild/easyblocks/generic/toolchain.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/versionindependentpythonpackage.py b/easybuild/easyblocks/generic/versionindependentpythonpackage.py index 67fc00f9f4..8681cc18a0 100644 --- a/easybuild/easyblocks/generic/versionindependentpythonpackage.py +++ b/easybuild/easyblocks/generic/versionindependentpythonpackage.py @@ -1,5 +1,5 @@ ## -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/vscpythonpackage.py b/easybuild/easyblocks/generic/vscpythonpackage.py index aac9fd77ab..e57486b24a 100644 --- a/easybuild/easyblocks/generic/vscpythonpackage.py +++ b/easybuild/easyblocks/generic/vscpythonpackage.py @@ -1,5 +1,5 @@ ## -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/generic/waf.py b/easybuild/easyblocks/generic/waf.py index 9334a02663..8cff867f57 100644 --- a/easybuild/easyblocks/generic/waf.py +++ b/easybuild/easyblocks/generic/waf.py @@ -1,5 +1,5 @@ ## -# Copyright 2015-2019 Ghent University +# Copyright 2015-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/h/hadoop.py b/easybuild/easyblocks/h/hadoop.py index e7dd44bc99..d73facce9b 100644 --- a/easybuild/easyblocks/h/hadoop.py +++ b/easybuild/easyblocks/h/hadoop.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/h/hdf5.py b/easybuild/easyblocks/h/hdf5.py index f7073e64e3..8045320fbc 100644 --- a/easybuild/easyblocks/h/hdf5.py +++ b/easybuild/easyblocks/h/hdf5.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/h/healpix.py b/easybuild/easyblocks/h/healpix.py index 95855b638d..3003440065 100644 --- a/easybuild/easyblocks/h/healpix.py +++ b/easybuild/easyblocks/h/healpix.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/h/hpcg.py b/easybuild/easyblocks/h/hpcg.py index 7cb46b6cdf..d0d8b3e032 100644 --- a/easybuild/easyblocks/h/hpcg.py +++ b/easybuild/easyblocks/h/hpcg.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/h/hpl.py b/easybuild/easyblocks/h/hpl.py index eca99be66d..7223ca7c71 100644 --- a/easybuild/easyblocks/h/hpl.py +++ b/easybuild/easyblocks/h/hpl.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/h/hypre.py b/easybuild/easyblocks/h/hypre.py index 7364b391b7..5c37c6a57b 100644 --- a/easybuild/easyblocks/h/hypre.py +++ b/easybuild/easyblocks/h/hypre.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/i/icc.py b/easybuild/easyblocks/i/icc.py index 14b3a32b83..9a5c2f6f53 100644 --- a/easybuild/easyblocks/i/icc.py +++ b/easybuild/easyblocks/i/icc.py @@ -1,5 +1,5 @@ # # -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/i/iccifort.py b/easybuild/easyblocks/i/iccifort.py index 157203695d..55f33a06ec 100644 --- a/easybuild/easyblocks/i/iccifort.py +++ b/easybuild/easyblocks/i/iccifort.py @@ -1,5 +1,5 @@ ## -# Copyright 2019-2019 Bart Oldeman, McGill University, Compute Canada +# Copyright 2019-2020 Bart Oldeman, McGill University, Compute Canada # # This file is triple-licensed under GPLv2 (see below), MIT, and # BSD three-clause licenses. diff --git a/easybuild/easyblocks/i/ifort.py b/easybuild/easyblocks/i/ifort.py index 0e269e860c..3ea7d574f7 100644 --- a/easybuild/easyblocks/i/ifort.py +++ b/easybuild/easyblocks/i/ifort.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/i/imkl.py b/easybuild/easyblocks/i/imkl.py index d8c146cae7..c0304f1540 100644 --- a/easybuild/easyblocks/i/imkl.py +++ b/easybuild/easyblocks/i/imkl.py @@ -1,5 +1,5 @@ # # -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/i/imod.py b/easybuild/easyblocks/i/imod.py index 73d816db16..d3055c9f34 100644 --- a/easybuild/easyblocks/i/imod.py +++ b/easybuild/easyblocks/i/imod.py @@ -1,5 +1,5 @@ ## -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/i/impi.py b/easybuild/easyblocks/i/impi.py index 13d4b25f69..c0d16508f8 100644 --- a/easybuild/easyblocks/i/impi.py +++ b/easybuild/easyblocks/i/impi.py @@ -1,5 +1,5 @@ # # -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/i/inspector.py b/easybuild/easyblocks/i/inspector.py index 64986d8702..7f93d6ac15 100644 --- a/easybuild/easyblocks/i/inspector.py +++ b/easybuild/easyblocks/i/inspector.py @@ -1,5 +1,5 @@ # # -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/i/ipp.py b/easybuild/easyblocks/i/ipp.py index 690124a4a9..f7e559ad57 100644 --- a/easybuild/easyblocks/i/ipp.py +++ b/easybuild/easyblocks/i/ipp.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/i/ironpython.py b/easybuild/easyblocks/i/ironpython.py index a38e83a1b1..d1112fb1d8 100644 --- a/easybuild/easyblocks/i/ironpython.py +++ b/easybuild/easyblocks/i/ironpython.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/i/itac.py b/easybuild/easyblocks/i/itac.py index 55b435f8e8..3a2d66171a 100644 --- a/easybuild/easyblocks/i/itac.py +++ b/easybuild/easyblocks/i/itac.py @@ -1,5 +1,5 @@ # # -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/j/java.py b/easybuild/easyblocks/j/java.py index 82dbd406ca..67bbab0b4e 100644 --- a/easybuild/easyblocks/j/java.py +++ b/easybuild/easyblocks/j/java.py @@ -1,5 +1,5 @@ ## -# Copyright 2012-2019 Ghent University +# Copyright 2012-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/l/lapack.py b/easybuild/easyblocks/l/lapack.py index b345e762b5..917401513c 100644 --- a/easybuild/easyblocks/l/lapack.py +++ b/easybuild/easyblocks/l/lapack.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/l/libint.py b/easybuild/easyblocks/l/libint.py index fc977cf183..51f01ce5e0 100644 --- a/easybuild/easyblocks/l/libint.py +++ b/easybuild/easyblocks/l/libint.py @@ -1,5 +1,5 @@ ## -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/l/libqglviewer.py b/easybuild/easyblocks/l/libqglviewer.py index 641d2a48ac..035466e38d 100644 --- a/easybuild/easyblocks/l/libqglviewer.py +++ b/easybuild/easyblocks/l/libqglviewer.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/l/libsmm.py b/easybuild/easyblocks/l/libsmm.py index 464365bc19..071398dde8 100644 --- a/easybuild/easyblocks/l/libsmm.py +++ b/easybuild/easyblocks/l/libsmm.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/l/libxml2.py b/easybuild/easyblocks/l/libxml2.py index 8be26ce87a..18c7d23a1e 100644 --- a/easybuild/easyblocks/l/libxml2.py +++ b/easybuild/easyblocks/l/libxml2.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/l/lua.py b/easybuild/easyblocks/l/lua.py index 0a907dbd03..07b596157b 100644 --- a/easybuild/easyblocks/l/lua.py +++ b/easybuild/easyblocks/l/lua.py @@ -1,5 +1,5 @@ ## -# Copyright 2018-2019 Ghent University +# Copyright 2018-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/m/maple.py b/easybuild/easyblocks/m/maple.py index 2d99bea72c..60cd6d4fa8 100644 --- a/easybuild/easyblocks/m/maple.py +++ b/easybuild/easyblocks/m/maple.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/m/mathematica.py b/easybuild/easyblocks/m/mathematica.py index 654c52d0be..67422ef8ff 100644 --- a/easybuild/easyblocks/m/mathematica.py +++ b/easybuild/easyblocks/m/mathematica.py @@ -1,5 +1,5 @@ ## -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/m/matlab.py b/easybuild/easyblocks/m/matlab.py index 49a7e06a33..729ae9542d 100644 --- a/easybuild/easyblocks/m/matlab.py +++ b/easybuild/easyblocks/m/matlab.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/m/mcr.py b/easybuild/easyblocks/m/mcr.py index f49bff5c48..bee21366a0 100644 --- a/easybuild/easyblocks/m/mcr.py +++ b/easybuild/easyblocks/m/mcr.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/m/metis.py b/easybuild/easyblocks/m/metis.py index a77d4122cc..c55a0900b8 100644 --- a/easybuild/easyblocks/m/metis.py +++ b/easybuild/easyblocks/m/metis.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/m/modeller.py b/easybuild/easyblocks/m/modeller.py index e6cf919fe5..e09c895432 100755 --- a/easybuild/easyblocks/m/modeller.py +++ b/easybuild/easyblocks/m/modeller.py @@ -1,5 +1,5 @@ ## -# Copyright 2014-2019 Ghent University +# Copyright 2014-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of the University of Ghent (http://ugent.be/hpc). diff --git a/easybuild/easyblocks/m/molpro.py b/easybuild/easyblocks/m/molpro.py index fe94e81a65..b3aa82369e 100644 --- a/easybuild/easyblocks/m/molpro.py +++ b/easybuild/easyblocks/m/molpro.py @@ -1,5 +1,5 @@ ## -# Copyright 2015-2019 Ghent University +# Copyright 2015-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/m/mono.py b/easybuild/easyblocks/m/mono.py index ca9621e8f0..e0a15bc2c1 100644 --- a/easybuild/easyblocks/m/mono.py +++ b/easybuild/easyblocks/m/mono.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/m/mothur.py b/easybuild/easyblocks/m/mothur.py index 73b9232b90..8656bb7c88 100644 --- a/easybuild/easyblocks/m/mothur.py +++ b/easybuild/easyblocks/m/mothur.py @@ -1,5 +1,5 @@ ## -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/m/motioncor2.py b/easybuild/easyblocks/m/motioncor2.py index c8f8a70ff0..82ed8fcfec 100644 --- a/easybuild/easyblocks/m/motioncor2.py +++ b/easybuild/easyblocks/m/motioncor2.py @@ -1,5 +1,5 @@ ## -# Copyright 2019-2019 Ghent University +# Copyright 2019-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/m/mpich.py b/easybuild/easyblocks/m/mpich.py index 7a56480645..b3e4680f64 100644 --- a/easybuild/easyblocks/m/mpich.py +++ b/easybuild/easyblocks/m/mpich.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University, Forschungszentrum Juelich +# Copyright 2009-2020 Ghent University, Forschungszentrum Juelich # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/m/mrbayes.py b/easybuild/easyblocks/m/mrbayes.py index 64f6f52156..f69fb303d3 100644 --- a/easybuild/easyblocks/m/mrbayes.py +++ b/easybuild/easyblocks/m/mrbayes.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/m/mrtrix.py b/easybuild/easyblocks/m/mrtrix.py index 455cf87c18..4ae3f05047 100644 --- a/easybuild/easyblocks/m/mrtrix.py +++ b/easybuild/easyblocks/m/mrtrix.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/m/msm.py b/easybuild/easyblocks/m/msm.py index 5f05ab9a1f..47e2ac3eea 100644 --- a/easybuild/easyblocks/m/msm.py +++ b/easybuild/easyblocks/m/msm.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/m/mtl4.py b/easybuild/easyblocks/m/mtl4.py index 73252243b1..cf71714346 100644 --- a/easybuild/easyblocks/m/mtl4.py +++ b/easybuild/easyblocks/m/mtl4.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/m/mummer.py b/easybuild/easyblocks/m/mummer.py index 455d60d698..14c035c02a 100644 --- a/easybuild/easyblocks/m/mummer.py +++ b/easybuild/easyblocks/m/mummer.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of the University of Ghent (http://ugent.be/hpc). diff --git a/easybuild/easyblocks/m/mumps.py b/easybuild/easyblocks/m/mumps.py index 663f7028e0..28de48ca10 100644 --- a/easybuild/easyblocks/m/mumps.py +++ b/easybuild/easyblocks/m/mumps.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/m/mutil.py b/easybuild/easyblocks/m/mutil.py index f1bab598ee..f91ac7f7b4 100644 --- a/easybuild/easyblocks/m/mutil.py +++ b/easybuild/easyblocks/m/mutil.py @@ -1,5 +1,5 @@ ## -# Copyright 2016-2019 Ghent University +# Copyright 2016-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/m/mvapich2.py b/easybuild/easyblocks/m/mvapich2.py index 45b8bc5a5b..c74f96a842 100644 --- a/easybuild/easyblocks/m/mvapich2.py +++ b/easybuild/easyblocks/m/mvapich2.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University, Forschungszentrum Juelich +# Copyright 2009-2020 Ghent University, Forschungszentrum Juelich # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/m/mymedialite.py b/easybuild/easyblocks/m/mymedialite.py index bb2905dfae..846d650639 100644 --- a/easybuild/easyblocks/m/mymedialite.py +++ b/easybuild/easyblocks/m/mymedialite.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/n/ncl.py b/easybuild/easyblocks/n/ncl.py index d1fc707a40..cb3f405bac 100644 --- a/easybuild/easyblocks/n/ncl.py +++ b/easybuild/easyblocks/n/ncl.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/n/nemo.py b/easybuild/easyblocks/n/nemo.py index b34dab417e..e6dc21c297 100644 --- a/easybuild/easyblocks/n/nemo.py +++ b/easybuild/easyblocks/n/nemo.py @@ -1,5 +1,5 @@ ## -# Copyright 2015-2019 Ghent University +# Copyright 2015-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/n/netcdf.py b/easybuild/easyblocks/n/netcdf.py index cbbd4922dc..4695a4fcf2 100644 --- a/easybuild/easyblocks/n/netcdf.py +++ b/easybuild/easyblocks/n/netcdf.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/n/netcdf4_python.py b/easybuild/easyblocks/n/netcdf4_python.py index f20c34fcdf..7fb48acbc9 100644 --- a/easybuild/easyblocks/n/netcdf4_python.py +++ b/easybuild/easyblocks/n/netcdf4_python.py @@ -1,5 +1,5 @@ ## -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/n/netcdf_fortran.py b/easybuild/easyblocks/n/netcdf_fortran.py index 49eed84aea..d48a8938dc 100644 --- a/easybuild/easyblocks/n/netcdf_fortran.py +++ b/easybuild/easyblocks/n/netcdf_fortran.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/n/neuron.py b/easybuild/easyblocks/n/neuron.py index a0af87dd03..fee4a1682b 100644 --- a/easybuild/easyblocks/n/neuron.py +++ b/easybuild/easyblocks/n/neuron.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/n/nim.py b/easybuild/easyblocks/n/nim.py index c8c591b8cf..31dcd170f3 100644 --- a/easybuild/easyblocks/n/nim.py +++ b/easybuild/easyblocks/n/nim.py @@ -1,5 +1,5 @@ ## -# Copyright 2018-2019 Ghent University +# Copyright 2018-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/n/nose.py b/easybuild/easyblocks/n/nose.py index d1536b4690..e6b48ae217 100644 --- a/easybuild/easyblocks/n/nose.py +++ b/easybuild/easyblocks/n/nose.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/n/numexpr.py b/easybuild/easyblocks/n/numexpr.py index d5638f1b11..079d27fcbd 100644 --- a/easybuild/easyblocks/n/numexpr.py +++ b/easybuild/easyblocks/n/numexpr.py @@ -1,5 +1,5 @@ ## -# Copyright 2019-2019 Ghent University +# Copyright 2019-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/n/numpy.py b/easybuild/easyblocks/n/numpy.py index f2f5df6c89..45d102c0c3 100644 --- a/easybuild/easyblocks/n/numpy.py +++ b/easybuild/easyblocks/n/numpy.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/n/nwchem.py b/easybuild/easyblocks/n/nwchem.py index 7ef056d0c8..9d4d136155 100644 --- a/easybuild/easyblocks/n/nwchem.py +++ b/easybuild/easyblocks/n/nwchem.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/o/ocaml.py b/easybuild/easyblocks/o/ocaml.py index a45062592e..d4f2b69c51 100644 --- a/easybuild/easyblocks/o/ocaml.py +++ b/easybuild/easyblocks/o/ocaml.py @@ -1,5 +1,5 @@ ## -# Copyright 2015-2019 Ghent University +# Copyright 2015-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/o/octave.py b/easybuild/easyblocks/o/octave.py index 6c8295e6c6..8d193af422 100644 --- a/easybuild/easyblocks/o/octave.py +++ b/easybuild/easyblocks/o/octave.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/o/openbabel.py b/easybuild/easyblocks/o/openbabel.py index 19ea59cb91..84d96beb25 100644 --- a/easybuild/easyblocks/o/openbabel.py +++ b/easybuild/easyblocks/o/openbabel.py @@ -1,5 +1,5 @@ ## -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/o/opencv.py b/easybuild/easyblocks/o/opencv.py index 316813478a..7ac4739ba1 100644 --- a/easybuild/easyblocks/o/opencv.py +++ b/easybuild/easyblocks/o/opencv.py @@ -1,5 +1,5 @@ ## -# Copyright 2018-2019 Ghent University +# Copyright 2018-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/o/openfoam.py b/easybuild/easyblocks/o/openfoam.py index 88b26ac702..73d65691a4 100644 --- a/easybuild/easyblocks/o/openfoam.py +++ b/easybuild/easyblocks/o/openfoam.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/o/openifs.py b/easybuild/easyblocks/o/openifs.py index 241b2d799c..2531a337ec 100644 --- a/easybuild/easyblocks/o/openifs.py +++ b/easybuild/easyblocks/o/openifs.py @@ -1,5 +1,5 @@ ## -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/o/openmpi.py b/easybuild/easyblocks/o/openmpi.py index b8efe62a31..c53c24414a 100644 --- a/easybuild/easyblocks/o/openmpi.py +++ b/easybuild/easyblocks/o/openmpi.py @@ -1,5 +1,5 @@ ## -# Copyright 2019-2019 Ghent University +# Copyright 2019-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/o/openssl.py b/easybuild/easyblocks/o/openssl.py index abaeb59e84..96f66ff826 100644 --- a/easybuild/easyblocks/o/openssl.py +++ b/easybuild/easyblocks/o/openssl.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/p/paraver.py b/easybuild/easyblocks/p/paraver.py index fc244ac91e..9f3d807df8 100644 --- a/easybuild/easyblocks/p/paraver.py +++ b/easybuild/easyblocks/p/paraver.py @@ -1,5 +1,5 @@ ## -# Copyright 2015-2019 Ghent University +# Copyright 2015-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/p/parmetis.py b/easybuild/easyblocks/p/parmetis.py index 4618a31447..0c74abbb75 100644 --- a/easybuild/easyblocks/p/parmetis.py +++ b/easybuild/easyblocks/p/parmetis.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/p/pasha.py b/easybuild/easyblocks/p/pasha.py index f31f700942..8d8044b95e 100644 --- a/easybuild/easyblocks/p/pasha.py +++ b/easybuild/easyblocks/p/pasha.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/p/pbdmpi.py b/easybuild/easyblocks/p/pbdmpi.py index e42439a15c..3a15873dac 100644 --- a/easybuild/easyblocks/p/pbdmpi.py +++ b/easybuild/easyblocks/p/pbdmpi.py @@ -1,5 +1,5 @@ ## -# Copyright 2015-2019 Ghent University +# Copyright 2015-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/p/pbdslap.py b/easybuild/easyblocks/p/pbdslap.py index 2dca496ed2..d15db0a8fc 100644 --- a/easybuild/easyblocks/p/pbdslap.py +++ b/easybuild/easyblocks/p/pbdslap.py @@ -1,5 +1,5 @@ ## -# Copyright 2015-2019 Ghent University +# Copyright 2015-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/p/perl.py b/easybuild/easyblocks/p/perl.py index 9b394001f5..122ff02b34 100644 --- a/easybuild/easyblocks/p/perl.py +++ b/easybuild/easyblocks/p/perl.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/p/petsc.py b/easybuild/easyblocks/p/petsc.py index 2f48d052c8..d3a8f919a6 100644 --- a/easybuild/easyblocks/p/petsc.py +++ b/easybuild/easyblocks/p/petsc.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/p/pgi.py b/easybuild/easyblocks/p/pgi.py index 7213aaf07b..d420a6f861 100644 --- a/easybuild/easyblocks/p/pgi.py +++ b/easybuild/easyblocks/p/pgi.py @@ -1,6 +1,6 @@ ## -# Copyright 2015-2019 Bart Oldeman -# Copyright 2016-2019 Forschungszentrum Juelich +# Copyright 2015-2020 Bart Oldeman +# Copyright 2016-2020 Forschungszentrum Juelich # # This file is triple-licensed under GPLv2 (see below), MIT, and # BSD three-clause licenses. diff --git a/easybuild/easyblocks/p/picard.py b/easybuild/easyblocks/p/picard.py index 6f62809426..9b43a29402 100644 --- a/easybuild/easyblocks/p/picard.py +++ b/easybuild/easyblocks/p/picard.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/p/pplacer.py b/easybuild/easyblocks/p/pplacer.py index 45ccd5d040..1f119c49ba 100644 --- a/easybuild/easyblocks/p/pplacer.py +++ b/easybuild/easyblocks/p/pplacer.py @@ -1,5 +1,5 @@ ## -# Copyright 2016-2019 Ghent University +# Copyright 2016-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/p/primer3.py b/easybuild/easyblocks/p/primer3.py index d85de53deb..14012aca8e 100644 --- a/easybuild/easyblocks/p/primer3.py +++ b/easybuild/easyblocks/p/primer3.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/p/psi.py b/easybuild/easyblocks/p/psi.py index 5cf3f0f4b4..0ec24640bd 100644 --- a/easybuild/easyblocks/p/psi.py +++ b/easybuild/easyblocks/p/psi.py @@ -1,5 +1,5 @@ ## -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/p/psmpi.py b/easybuild/easyblocks/p/psmpi.py index da74950f4c..bf7e0b7e1d 100644 --- a/easybuild/easyblocks/p/psmpi.py +++ b/easybuild/easyblocks/p/psmpi.py @@ -1,5 +1,5 @@ ## -# Copyright 2016-2019 Ghent University, Forschungszentrum Juelich +# Copyright 2016-2020 Ghent University, Forschungszentrum Juelich # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/p/pyquante.py b/easybuild/easyblocks/p/pyquante.py index e60c1d4535..5491578ddf 100644 --- a/easybuild/easyblocks/p/pyquante.py +++ b/easybuild/easyblocks/p/pyquante.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/p/python.py b/easybuild/easyblocks/p/python.py index cfb28cf1d1..fe92a82f1e 100644 --- a/easybuild/easyblocks/p/python.py +++ b/easybuild/easyblocks/p/python.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/p/python_meep.py b/easybuild/easyblocks/p/python_meep.py index 05df62a123..3f08449d87 100644 --- a/easybuild/easyblocks/p/python_meep.py +++ b/easybuild/easyblocks/p/python_meep.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/p/pyzmq.py b/easybuild/easyblocks/p/pyzmq.py index 76e69e8178..b302b791a7 100644 --- a/easybuild/easyblocks/p/pyzmq.py +++ b/easybuild/easyblocks/p/pyzmq.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/q/qscintilla.py b/easybuild/easyblocks/q/qscintilla.py index dcc6d2a2aa..03e2d68e5a 100644 --- a/easybuild/easyblocks/q/qscintilla.py +++ b/easybuild/easyblocks/q/qscintilla.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/q/qt.py b/easybuild/easyblocks/q/qt.py index 596f5a9477..f9de7608ad 100644 --- a/easybuild/easyblocks/q/qt.py +++ b/easybuild/easyblocks/q/qt.py @@ -1,5 +1,5 @@ ## -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/q/quantumespresso.py b/easybuild/easyblocks/q/quantumespresso.py index d77c1806c6..82ebc6fa7d 100644 --- a/easybuild/easyblocks/q/quantumespresso.py +++ b/easybuild/easyblocks/q/quantumespresso.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/r/__init__.py b/easybuild/easyblocks/r/__init__.py index 5cae556df0..73567e3646 100644 --- a/easybuild/easyblocks/r/__init__.py +++ b/easybuild/easyblocks/r/__init__.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/r/r.py b/easybuild/easyblocks/r/r.py index d5e88e7e0e..93d632c285 100644 --- a/easybuild/easyblocks/r/r.py +++ b/easybuild/easyblocks/r/r.py @@ -1,5 +1,5 @@ ## -# Copyright 2012-2019 Ghent University +# Copyright 2012-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/r/repeatmasker.py b/easybuild/easyblocks/r/repeatmasker.py index 90c5f48415..c54022bb4b 100644 --- a/easybuild/easyblocks/r/repeatmasker.py +++ b/easybuild/easyblocks/r/repeatmasker.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/r/rmpi.py b/easybuild/easyblocks/r/rmpi.py index ef014057ee..b5d3754aa3 100644 --- a/easybuild/easyblocks/r/rmpi.py +++ b/easybuild/easyblocks/r/rmpi.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/r/root.py b/easybuild/easyblocks/r/root.py index 1d73a1ddf6..3c2b78d9ba 100644 --- a/easybuild/easyblocks/r/root.py +++ b/easybuild/easyblocks/r/root.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/r/rosetta.py b/easybuild/easyblocks/r/rosetta.py index 700f5cc413..c947ae03bf 100644 --- a/easybuild/easyblocks/r/rosetta.py +++ b/easybuild/easyblocks/r/rosetta.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/r/rserve.py b/easybuild/easyblocks/r/rserve.py index ab0f3ec3e4..31c509836b 100644 --- a/easybuild/easyblocks/r/rserve.py +++ b/easybuild/easyblocks/r/rserve.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/r/ruby.py b/easybuild/easyblocks/r/ruby.py index c41d115f54..995830518a 100644 --- a/easybuild/easyblocks/r/ruby.py +++ b/easybuild/easyblocks/r/ruby.py @@ -1,5 +1,5 @@ ## -# Copyright 2015-2019 Ghent University +# Copyright 2015-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/s/samcef.py b/easybuild/easyblocks/s/samcef.py index 7b4cb854e3..efc74a6388 100644 --- a/easybuild/easyblocks/s/samcef.py +++ b/easybuild/easyblocks/s/samcef.py @@ -1,5 +1,5 @@ ## -# Copyright 2015-2019 Ghent University +# Copyright 2015-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/s/sas.py b/easybuild/easyblocks/s/sas.py index e7d3723108..a14f000432 100644 --- a/easybuild/easyblocks/s/sas.py +++ b/easybuild/easyblocks/s/sas.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/s/scalapack.py b/easybuild/easyblocks/s/scalapack.py index ea79e389ef..d7a0c0e5d7 100644 --- a/easybuild/easyblocks/s/scalapack.py +++ b/easybuild/easyblocks/s/scalapack.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/s/scalasca1.py b/easybuild/easyblocks/s/scalasca1.py index 4ac57a0d70..68eca0b879 100644 --- a/easybuild/easyblocks/s/scalasca1.py +++ b/easybuild/easyblocks/s/scalasca1.py @@ -1,5 +1,5 @@ ## -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/s/scipy.py b/easybuild/easyblocks/s/scipy.py index 5c2703f224..e5c1cf2a49 100644 --- a/easybuild/easyblocks/s/scipy.py +++ b/easybuild/easyblocks/s/scipy.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/s/score_p.py b/easybuild/easyblocks/s/score_p.py index 7502e14957..8762f37363 100644 --- a/easybuild/easyblocks/s/score_p.py +++ b/easybuild/easyblocks/s/score_p.py @@ -1,5 +1,5 @@ ## -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/s/scotch.py b/easybuild/easyblocks/s/scotch.py index 9d8e4eba9e..dec34d255b 100644 --- a/easybuild/easyblocks/s/scotch.py +++ b/easybuild/easyblocks/s/scotch.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/s/shrimp.py b/easybuild/easyblocks/s/shrimp.py index 0ecd7b1c1f..96b34ab090 100644 --- a/easybuild/easyblocks/s/shrimp.py +++ b/easybuild/easyblocks/s/shrimp.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/s/siesta.py b/easybuild/easyblocks/s/siesta.py index aac30eec1f..0adb5b7196 100644 --- a/easybuild/easyblocks/s/siesta.py +++ b/easybuild/easyblocks/s/siesta.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/s/slepc.py b/easybuild/easyblocks/s/slepc.py index 7eea757f8c..cef17603c1 100644 --- a/easybuild/easyblocks/s/slepc.py +++ b/easybuild/easyblocks/s/slepc.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/s/snphylo.py b/easybuild/easyblocks/s/snphylo.py index 0cd2d6658e..9b4cce1e78 100644 --- a/easybuild/easyblocks/s/snphylo.py +++ b/easybuild/easyblocks/s/snphylo.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/s/stata.py b/easybuild/easyblocks/s/stata.py index 24d1cc9171..8c1c13cfc7 100644 --- a/easybuild/easyblocks/s/stata.py +++ b/easybuild/easyblocks/s/stata.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/s/suitesparse.py b/easybuild/easyblocks/s/suitesparse.py index dc45f8cf0e..5afbd39dc1 100644 --- a/easybuild/easyblocks/s/suitesparse.py +++ b/easybuild/easyblocks/s/suitesparse.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/s/superlu.py b/easybuild/easyblocks/s/superlu.py index e18f6a4366..f5ce7d6868 100644 --- a/easybuild/easyblocks/s/superlu.py +++ b/easybuild/easyblocks/s/superlu.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University, University of Luxembourg +# Copyright 2009-2020 Ghent University, University of Luxembourg # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/s/swig.py b/easybuild/easyblocks/s/swig.py index b8a9a53ea1..290f2df80b 100644 --- a/easybuild/easyblocks/s/swig.py +++ b/easybuild/easyblocks/s/swig.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/t/tau.py b/easybuild/easyblocks/t/tau.py index ea01d33c3f..b24793229c 100644 --- a/easybuild/easyblocks/t/tau.py +++ b/easybuild/easyblocks/t/tau.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/t/tbb.py b/easybuild/easyblocks/t/tbb.py index e294099468..b3a6bdb565 100644 --- a/easybuild/easyblocks/t/tbb.py +++ b/easybuild/easyblocks/t/tbb.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/t/tensorflow.py b/easybuild/easyblocks/t/tensorflow.py index 10fddea38d..8ad2728593 100644 --- a/easybuild/easyblocks/t/tensorflow.py +++ b/easybuild/easyblocks/t/tensorflow.py @@ -1,5 +1,5 @@ ## -# Copyright 2017-2019 Ghent University +# Copyright 2017-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/t/tensorrt.py b/easybuild/easyblocks/t/tensorrt.py index 1cd92ac48b..45a6f63760 100644 --- a/easybuild/easyblocks/t/tensorrt.py +++ b/easybuild/easyblocks/t/tensorrt.py @@ -1,5 +1,5 @@ ## -# Copyright 2017-2019 Ghent University +# Copyright 2017-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/t/tinker.py b/easybuild/easyblocks/t/tinker.py index e54e46c8b5..42fa0b39bd 100644 --- a/easybuild/easyblocks/t/tinker.py +++ b/easybuild/easyblocks/t/tinker.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/t/tkinter.py b/easybuild/easyblocks/t/tkinter.py index 2d5dcf2570..a7500db39f 100644 --- a/easybuild/easyblocks/t/tkinter.py +++ b/easybuild/easyblocks/t/tkinter.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/t/tornado.py b/easybuild/easyblocks/t/tornado.py index 3174050b05..9a9e701229 100644 --- a/easybuild/easyblocks/t/tornado.py +++ b/easybuild/easyblocks/t/tornado.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/t/trilinos.py b/easybuild/easyblocks/t/trilinos.py index 8dfc36f552..df76da71c3 100644 --- a/easybuild/easyblocks/t/trilinos.py +++ b/easybuild/easyblocks/t/trilinos.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/t/trinity.py b/easybuild/easyblocks/t/trinity.py index 5e47544947..abc51c4815 100644 --- a/easybuild/easyblocks/t/trinity.py +++ b/easybuild/easyblocks/t/trinity.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/u/ufc.py b/easybuild/easyblocks/u/ufc.py index e58aee984c..8897058faf 100644 --- a/easybuild/easyblocks/u/ufc.py +++ b/easybuild/easyblocks/u/ufc.py @@ -1,5 +1,5 @@ ## -# Copyright 2012-2019 Ghent University +# Copyright 2012-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/v/vep.py b/easybuild/easyblocks/v/vep.py index 9f4fe7c2f1..7dda0a8167 100644 --- a/easybuild/easyblocks/v/vep.py +++ b/easybuild/easyblocks/v/vep.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/v/vmd.py b/easybuild/easyblocks/v/vmd.py index 7ed26379ad..2cce105b29 100644 --- a/easybuild/easyblocks/v/vmd.py +++ b/easybuild/easyblocks/v/vmd.py @@ -1,6 +1,6 @@ ## -# Copyright 2009-2019 Ghent University -# Copyright 2015-2016 Stanford University +# Copyright 2009-2020 Ghent University +# Copyright 2015-2020 Stanford University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/v/vsc_tools.py b/easybuild/easyblocks/v/vsc_tools.py index 3bce48b2e9..b76cc143b4 100644 --- a/easybuild/easyblocks/v/vsc_tools.py +++ b/easybuild/easyblocks/v/vsc_tools.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/v/vtune.py b/easybuild/easyblocks/v/vtune.py index 11bd3f63f9..3513de666a 100644 --- a/easybuild/easyblocks/v/vtune.py +++ b/easybuild/easyblocks/v/vtune.py @@ -1,5 +1,5 @@ # # -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/w/wien2k.py b/easybuild/easyblocks/w/wien2k.py index dd45a47026..f2d7b52025 100644 --- a/easybuild/easyblocks/w/wien2k.py +++ b/easybuild/easyblocks/w/wien2k.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/w/wps.py b/easybuild/easyblocks/w/wps.py index 64dc96b788..ea1991cbe2 100644 --- a/easybuild/easyblocks/w/wps.py +++ b/easybuild/easyblocks/w/wps.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/w/wrf.py b/easybuild/easyblocks/w/wrf.py index 56cece56b2..e41685531b 100644 --- a/easybuild/easyblocks/w/wrf.py +++ b/easybuild/easyblocks/w/wrf.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/w/wrf_fire.py b/easybuild/easyblocks/w/wrf_fire.py index 20744efdbf..3d0c994786 100644 --- a/easybuild/easyblocks/w/wrf_fire.py +++ b/easybuild/easyblocks/w/wrf_fire.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/w/wxpython.py b/easybuild/easyblocks/w/wxpython.py index 27bdc628e0..45ae329239 100644 --- a/easybuild/easyblocks/w/wxpython.py +++ b/easybuild/easyblocks/w/wxpython.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/x/xcrysden.py b/easybuild/easyblocks/x/xcrysden.py index e2c6a7edc6..bb8461174d 100644 --- a/easybuild/easyblocks/x/xcrysden.py +++ b/easybuild/easyblocks/x/xcrysden.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/x/xmipp.py b/easybuild/easyblocks/x/xmipp.py index c076e8ff2e..037e3a108d 100644 --- a/easybuild/easyblocks/x/xmipp.py +++ b/easybuild/easyblocks/x/xmipp.py @@ -1,5 +1,5 @@ ## -# Copyright 2015-2019 Ghent University +# Copyright 2015-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/easybuild/easyblocks/x/xml.py b/easybuild/easyblocks/x/xml.py index 20624e66ae..8924240d01 100644 --- a/easybuild/easyblocks/x/xml.py +++ b/easybuild/easyblocks/x/xml.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/setup.py b/setup.py index e67f7c1ba8..33e196ed98 100644 --- a/setup.py +++ b/setup.py @@ -1,5 +1,5 @@ ## -# Copyright 2012-2019 Ghent University +# Copyright 2012-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/test/__init__.py b/test/__init__.py index 9cc48bae9b..d90fcf4771 100644 --- a/test/__init__.py +++ b/test/__init__.py @@ -1,5 +1,5 @@ ## -# Copyright 2009-2019 Ghent University +# Copyright 2009-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/test/easyblocks/easyblock_specific.py b/test/easyblocks/easyblock_specific.py index ce411072ea..4f28dc1915 100644 --- a/test/easyblocks/easyblock_specific.py +++ b/test/easyblocks/easyblock_specific.py @@ -1,5 +1,5 @@ ## -# Copyright 2019-2019 Ghent University +# Copyright 2019-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/test/easyblocks/general.py b/test/easyblocks/general.py index fd5e3dd12e..407ed7dd23 100644 --- a/test/easyblocks/general.py +++ b/test/easyblocks/general.py @@ -1,5 +1,5 @@ ## -# Copyright 2015-2019 Ghent University +# Copyright 2015-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/test/easyblocks/init_easyblocks.py b/test/easyblocks/init_easyblocks.py index 92733e5390..76a812f599 100644 --- a/test/easyblocks/init_easyblocks.py +++ b/test/easyblocks/init_easyblocks.py @@ -1,5 +1,5 @@ ## -# Copyright 2013-2019 Ghent University +# Copyright 2013-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/test/easyblocks/module.py b/test/easyblocks/module.py index 9ded2bda67..52e1a351d1 100644 --- a/test/easyblocks/module.py +++ b/test/easyblocks/module.py @@ -1,5 +1,5 @@ ## -# Copyright 2015-2019 Ghent University +# Copyright 2015-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), diff --git a/test/easyblocks/suite.py b/test/easyblocks/suite.py index a4cae20708..ffef513f0b 100644 --- a/test/easyblocks/suite.py +++ b/test/easyblocks/suite.py @@ -1,6 +1,6 @@ #!/usr/bin/python ## -# Copyright 2012-2019 Ghent University +# Copyright 2012-2020 Ghent University # # This file is part of EasyBuild, # originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), From b97d3293730e4d8be8cd6d476aaa0afa783cb2cf Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 6 Jan 2020 18:48:36 +0100 Subject: [PATCH 57/73] use major/minor version of Python command being used if req_py_majver/req_py_minver are not specified --- easybuild/easyblocks/generic/pythonpackage.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/easybuild/easyblocks/generic/pythonpackage.py b/easybuild/easyblocks/generic/pythonpackage.py index ed48957933..813d94a7df 100644 --- a/easybuild/easyblocks/generic/pythonpackage.py +++ b/easybuild/easyblocks/generic/pythonpackage.py @@ -211,8 +211,8 @@ def extra_options(extra_vars=None): 'download_dep_fail': [None, "Fail if downloaded dependencies are detected", CUSTOM], 'install_target': ['install', "Option to pass to setup.py", CUSTOM], 'pip_ignore_installed': [True, "Let pip ignore installed Python packages (i.e. don't remove them)", CUSTOM], - 'req_py_majver': [2, "Required major Python version (only relevant when using system Python)", CUSTOM], - 'req_py_minver': [6, "Required minor Python version (only relevant when using system Python)", CUSTOM], + 'req_py_majver': [None, "Required major Python version (only relevant when using system Python)", CUSTOM], + 'req_py_minver': [None, "Required minor Python version (only relevant when using system Python)", CUSTOM], 'sanity_pip_check': [False, "Run 'pip check' to ensure all required Python packages are installed", CUSTOM], 'runtest': [True, "Run unit tests.", CUSTOM], # overrides default 'unpack_sources': [True, "Unpack sources prior to build/install", CUSTOM], @@ -347,9 +347,9 @@ def set_pylibdirs(self): def prepare_python(self): """Python-specific preperations.""" + # pick 'python' command to use python = None - python_root = get_software_root('Python') # keep in mind that Python may be listed as an allowed system dependency, # so just checking Python root is not sufficient @@ -361,8 +361,17 @@ def prepare_python(self): self.log.debug("Retaining 'python' command for Python dependency: %s", python) if python is None: + # if no Python version requirements are specified, + # use major/minor version of Python being used in this EasyBuild session + req_py_majver = self.cfg['req_py_majver'] + if req_py_majver is None: + req_py_majver = sys.version_info[0] + req_py_minver = self.cfg['req_py_minver'] + if req_py_minver is None: + req_py_minver = sys.version_info[1] + # if using system Python, go hunting for a 'python' command that satisfies the requirements - python = pick_python_cmd(req_maj_ver=self.cfg['req_py_majver'], req_min_ver=self.cfg['req_py_minver']) + python = pick_python_cmd(req_maj_ver=req_py_majver, req_min_ver=req_py_minver) if python: self.python_cmd = python From 40b76bef5a1f4f149e0c13cce913c051b54da5a3 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 6 Jan 2020 18:49:31 +0100 Subject: [PATCH 58/73] define $EB_PYTHON in module for EasyBuild installation, to make sure correct Python version is used at runtime --- easybuild/easyblocks/e/easybuildmeta.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/easybuild/easyblocks/e/easybuildmeta.py b/easybuild/easyblocks/e/easybuildmeta.py index 78f0c47416..95f9403869 100644 --- a/easybuild/easyblocks/e/easybuildmeta.py +++ b/easybuild/easyblocks/e/easybuildmeta.py @@ -217,6 +217,14 @@ def sanity_check_step(self): super(EB_EasyBuildMeta, self).sanity_check_step(custom_paths=custom_paths, custom_commands=custom_commands) + def make_module_extra(self): + """ + Set $EB_PYTHON to ensure that this EasyBuild installation uses the same Python executable it was installed with. + """ + txt = super(EB_EasyBuildMeta, self).make_module_extra() + txt += self.module_generator.set_environment('EB_PYTHON', self.python_cmd) + return txt + def make_module_step(self, fake=False): """Create module file, before copy of original environment that was tampered with is restored.""" modpath = super(EB_EasyBuildMeta, self).make_module_step(fake=fake) From af151ddd200adddf877dd825d9e59e414ad88f2d Mon Sep 17 00:00:00 2001 From: Peter Maxwell Date: Thu, 9 Jan 2020 11:38:39 +1300 Subject: [PATCH 59/73] Allow Python 3.8 to be configured Easybuilding Python 3.8 failed due to the renaming of Modules/Setup.dist as described in https://bugs.python.org/issue32430 --- easybuild/easyblocks/p/python.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/easybuild/easyblocks/p/python.py b/easybuild/easyblocks/p/python.py index 9e8d64d68f..217b09e49b 100644 --- a/easybuild/easyblocks/p/python.py +++ b/easybuild/easyblocks/p/python.py @@ -185,7 +185,9 @@ def configure_step(self): if self.cfg['optimized'] and LooseVersion(self.version) >= LooseVersion('3.5.4'): self.cfg.update('configopts', "--enable-optimizations") - modules_setup_dist = os.path.join(self.cfg['start_dir'], 'Modules', 'Setup.dist') + modules_setup = os.path.join(self.cfg['start_dir'], 'Modules', 'Setup') + if LooseVersion(self.version) < LooseVersion('3.8.0'): + modules_setup += '.dist' libreadline = get_software_root('libreadline') if libreadline: @@ -196,7 +198,7 @@ def configure_step(self): readline_static_lib = os.path.join(libreadline, readline_libdir, 'libreadline.a') ncurses_static_lib = os.path.join(ncurses, ncurses_libdir, 'libncurses.a') readline = "readline readline.c %s %s" % (readline_static_lib, ncurses_static_lib) - for line in fileinput.input(modules_setup_dist, inplace='1', backup='.readline'): + for line in fileinput.input(modules_setup, inplace='1', backup='.readline'): line = re.sub(r"^#readline readline.c.*", readline, line) sys.stdout.write(line) else: @@ -204,7 +206,7 @@ def configure_step(self): openssl = get_software_root('OpenSSL') if openssl: - for line in fileinput.input(modules_setup_dist, inplace='1', backup='.ssl'): + for line in fileinput.input(modules_setup, inplace='1', backup='.ssl'): line = re.sub(r"^#SSL=.*", "SSL=%s" % openssl, line) line = re.sub(r"^#(\s*-DUSE_SSL -I)", r"\1", line) line = re.sub(r"^#(\s*-L\$\(SSL\)/lib )", r"\1 -L$(SSL)/lib64 ", line) From 736dd168db60b1ec619e222d5fa266f0a7931da9 Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Fri, 10 Jan 2020 14:41:17 +0100 Subject: [PATCH 60/73] [netCDF] Fix EB for 4.4.0 Upstream CMakeLists forgot to set _LIBRARIES variables --- easybuild/easyblocks/n/netcdf.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/easybuild/easyblocks/n/netcdf.py b/easybuild/easyblocks/n/netcdf.py index 4695a4fcf2..8240ec4c9f 100644 --- a/easybuild/easyblocks/n/netcdf.py +++ b/easybuild/easyblocks/n/netcdf.py @@ -99,6 +99,10 @@ def configure_step(self): cmvar = hdf5cmvars[libname][1] libhdf5 = os.path.join(dep_root, dep_libdir, 'lib%s.%s' % (libname, shlib_ext)) self.cfg.update('configopts', '-DHDF5_%s=%s ' % (cmvar, libhdf5)) + # 4.4 forgot to set HDF5__LIBRARIES + if LooseVersion(self.version) == LooseVersion("4.4.0"): + lang = 'HL' if cmvar[0] == 'H' else 'C' + self.cfg.update('configopts', '-DHDF5_%s_LIBRARIES=%s ' % (lang, libhdf5)) elif dep == 'PnetCDF': self.cfg.update('configopts', '-DENABLE_PNETCDF=ON') From 323f1af4d25829a16a474b954d728786cf4cae46 Mon Sep 17 00:00:00 2001 From: Simon Branford <4967+branfosj@users.noreply.github.com> Date: Fri, 10 Jan 2020 16:51:59 +0000 Subject: [PATCH 61/73] tbb: add POWER support --- easybuild/easyblocks/t/tbb.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/easybuild/easyblocks/t/tbb.py b/easybuild/easyblocks/t/tbb.py index b3a6bdb565..00731e63d0 100644 --- a/easybuild/easyblocks/t/tbb.py +++ b/easybuild/easyblocks/t/tbb.py @@ -31,6 +31,7 @@ @author: Pieter De Baets (Ghent University) @author: Jens Timmerman (Ghent University) @author: Lumir Jasiok (IT4Innovations) +@author: Simon Branford (University of Birmingham) """ import glob @@ -43,7 +44,7 @@ from easybuild.easyblocks.generic.intelbase import IntelBase, ACTIVATION_NAME_2012, LICENSE_FILE_NAME_2012 from easybuild.tools.build_log import EasyBuildError from easybuild.tools.modules import get_software_version -from easybuild.tools.systemtools import get_gcc_version, get_platform_name +from easybuild.tools.systemtools import POWER, get_cpu_architecture, get_gcc_version, get_platform_name def get_tbb_gccprefix(): @@ -76,10 +77,13 @@ def __init__(self, *args, **kwargs): self.libpath = 'UNKNOWN' platform_name = get_platform_name() + myarch = get_cpu_architecture() if platform_name.startswith('x86_64'): self.arch = "intel64" elif platform_name.startswith('i386') or platform_name.startswith('i686'): self.arch = 'ia32' + elif myarch == POWER: + self.arch = 'ppc64' else: raise EasyBuildError("Failed to determine system architecture based on %s", platform_name) From 80b4fd02c8d9090ef8fd78e546ee90c5b83c1409 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sat, 11 Jan 2020 20:43:27 +0100 Subject: [PATCH 62/73] enhance TensorFlow easyblock to pick up on --cuda-compute-capabilities configuration option (+ check minimal CUDA compute capability required by recent TensorFlow versions, i.e. >= 3.5) --- easybuild/easyblocks/t/tensorflow.py | 35 ++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/easybuild/easyblocks/t/tensorflow.py b/easybuild/easyblocks/t/tensorflow.py index 8ad2728593..4e43e40a53 100644 --- a/easybuild/easyblocks/t/tensorflow.py +++ b/easybuild/easyblocks/t/tensorflow.py @@ -41,7 +41,8 @@ from easybuild.easyblocks.generic.pythonpackage import PythonPackage, det_python_version from easybuild.easyblocks.python import EXTS_FILTER_PYTHON_PACKAGES from easybuild.framework.easyconfig import CUSTOM -from easybuild.tools.build_log import EasyBuildError +from easybuild.tools.build_log import EasyBuildError, print_warning +from easybuild.tools.config import build_option from easybuild.tools.filetools import adjust_permissions, apply_regex_substitutions, copy_file, mkdir, resolve_path from easybuild.tools.filetools import is_readable, read_file, which, write_file, remove_file from easybuild.tools.modules import get_software_root, get_software_version @@ -239,10 +240,40 @@ def configure_step(self): else: compiler_path = which(os.getenv('CC')) + # list of CUDA compute capabilities to use can be specifed in two ways (where (2) overrules (1)): + # (1) in the easyconfig file, via the custom cuda_compute_capabilities; + # (2) in the EasyBuild configuration, via --cuda-compute-capabilities configuration option; + ec_cuda_cc = self.cfg['cuda_compute_capabilities'] + cfg_cuda_cc = build_option('cuda_compute_capabilities') + cuda_cc = cfg_cuda_cc or ec_cuda_cc or [] + + if cfg_cuda_cc and ec_cuda_cc: + warning_msg = "cuda_compute_capabilities specified in easyconfig (%s) are overruled by " % ec_cuda_cc + warning_msg += "--cuda-compute-capabilities configuration option (%s)" % cfg_cuda_cc + print_warning(warning_msg) + elif not cuda_cc: + warning_msg = "No CUDA compute capabilities specified, so using TensorFlow default " + warning_msg += "(which may not optional for your system).\nYou should use " + warning_msg += "the --cuda-compute-capabilities configuration option or the cuda_compute_capabilities " + warning_msg += "easyconfig parameter to specify a list of CUDA compute capabilities to compile with." + print_warning(warning_msg) + + # TensorFlow 1.12.1 requires compute capability >= 3.5 + # see https://github.com/tensorflow/tensorflow/pull/25767 + if LooseVersion(self.version) >= LooseVersion('1.12.1'): + faulty_comp_caps = [x for x in cuda_cc if LooseVersion(x) < LooseVersion('3.5')] + if faulty_comp_caps: + error_msg = "TensorFlow >= 1.12.1 requires CUDA compute capabilities >= 3.5, " + error_msg += "found one or more older ones: %s" + raise EasyBuildError(error_msg, ', '.join(faulty_comp_caps)) + + if cuda_cc: + self.log.info("Compiling with specified list of CUDA compute capabilities: %s", ', '.join(cuda_cc)) + config_env_vars.update({ 'CUDA_TOOLKIT_PATH': cuda_root, 'GCC_HOST_COMPILER_PATH': compiler_path, - 'TF_CUDA_COMPUTE_CAPABILITIES': ','.join(self.cfg['cuda_compute_capabilities']), + 'TF_CUDA_COMPUTE_CAPABILITIES': ','.join(cuda_cc), 'TF_CUDA_VERSION': cuda_maj_min_ver, }) From 366cefc3792aecbef04755b291a808f3f7c68e79 Mon Sep 17 00:00:00 2001 From: Simon Branford <4967+branfosj@users.noreply.github.com> Date: Sun, 12 Jan 2020 08:58:17 +0000 Subject: [PATCH 63/73] clarify comment --- easybuild/easyblocks/h/hdf5.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyblocks/h/hdf5.py b/easybuild/easyblocks/h/hdf5.py index 8045320fbc..71f77202a6 100644 --- a/easybuild/easyblocks/h/hdf5.py +++ b/easybuild/easyblocks/h/hdf5.py @@ -90,7 +90,7 @@ def configure_step(self): # make options self.cfg.update('buildopts', fcomp) - # set RUNPARALLEL if MPI is not enabled (or not supported by this toolchain) + # set RUNPARALLEL if MPI is enabled in this toolchain if self.toolchain.options.get('usempi', None): env.setvar('RUNPARALLEL', 'mpirun -np \$\${NPROCS:=2}') From ddd3f43042b1f0041885936e0dc6b4d39824062e Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Mon, 13 Jan 2020 15:29:40 +0100 Subject: [PATCH 64/73] Add buildtype option to CMake EB Heavily based on code from Ward Poelmans --- easybuild/easyblocks/generic/cmakemake.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/easybuild/easyblocks/generic/cmakemake.py b/easybuild/easyblocks/generic/cmakemake.py index fb6ce81559..deec344308 100644 --- a/easybuild/easyblocks/generic/cmakemake.py +++ b/easybuild/easyblocks/generic/cmakemake.py @@ -73,6 +73,8 @@ def extra_options(extra_vars=None): 'abs_path_compilers': [False, "Specify compilers via absolute file path (not via command names)", CUSTOM], 'allow_system_boost': [False, "Always allow CMake to pick up on Boost installed in OS " "(even if Boost is included as a dependency)", CUSTOM], + 'buildtype': [None, "Build type for CMake, e.g. Release or Debug." + "Use None to not specify -DCMAKE_BUILD_TYPE", CUSTOM], 'configure_cmd': [DEFAULT_CONFIGURE_CMD, "Configure command to use", CUSTOM], 'srcdir': [None, "Source directory location to provide to cmake command", CUSTOM], 'separate_build_dir': [False, "Perform build in a separate directory", CUSTOM], @@ -101,6 +103,10 @@ def configure_step(self, srcdir=None, builddir=None): srcdir = default_srcdir options = ['-DCMAKE_INSTALL_PREFIX=%s' % self.installdir] + + if self.cfg['buildtype'] is not None: + options.append("-DCMAKE_BUILD_TYPE=%s" % self.cfg['buildtype']) + env_to_options = { 'CC': 'CMAKE_C_COMPILER', 'CFLAGS': 'CMAKE_C_FLAGS', From 9b4c505cae2cf0c8936d98201da22bc3c1b62cde Mon Sep 17 00:00:00 2001 From: crubb <1574005+crubb@users.noreply.github.com> Date: Mon, 13 Jan 2020 15:30:55 +0000 Subject: [PATCH 65/73] Do not sanity check on MATLAB compiler --- easybuild/easyblocks/m/matlab.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/easybuild/easyblocks/m/matlab.py b/easybuild/easyblocks/m/matlab.py index 729ae9542d..6088afd0c3 100644 --- a/easybuild/easyblocks/m/matlab.py +++ b/easybuild/easyblocks/m/matlab.py @@ -168,9 +168,8 @@ def install_step(self): def sanity_check_step(self): """Custom sanity check for MATLAB.""" custom_paths = { - 'files': ["bin/matlab", "bin/glnxa64/MATLAB", - "runtime/glnxa64/libmwmclmcrrt.%s" % get_shared_lib_ext(), "toolbox/local/classpath.txt"], - 'dirs': ["java/jar", "toolbox/compiler"], + 'files': ["bin/matlab", "bin/glnxa64/MATLAB", "toolbox/local/classpath.txt"], + 'dirs': ["java/jar"], } super(EB_MATLAB, self).sanity_check_step(custom_paths=custom_paths) From 689a026a41a5290672af1bbbee1ee65e63c4d679 Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Tue, 14 Jan 2020 13:34:15 +0100 Subject: [PATCH 66/73] Build HDF5 without MPI C++ extension This avoids the direct dependency for consumers even for C libraries --- easybuild/easyblocks/h/hdf5.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/easybuild/easyblocks/h/hdf5.py b/easybuild/easyblocks/h/hdf5.py index 71f77202a6..03c3845e7c 100644 --- a/easybuild/easyblocks/h/hdf5.py +++ b/easybuild/easyblocks/h/hdf5.py @@ -84,6 +84,9 @@ def configure_step(self): mpich_mpi_families = [toolchain.INTELMPI, toolchain.MPICH, toolchain.MPICH2, toolchain.MVAPICH2] if self.toolchain.mpi_family() in mpich_mpi_families: self.cfg.update('buildopts', 'CXXFLAGS="$CXXFLAGS -DMPICH_IGNORE_CXX_SEEK"') + # Skip MPI cxx extensions to avoid hard dependency + if self.toolchain.mpi_family() in toolchain.OPENMPI: + self.cfg.update('buildopts', 'CXXFLAGS="$CXXFLAGS -DOMPI_SKIP_MPICXX"') else: self.cfg.update('configopts', "--disable-parallel") From 252278d9582582378338c63bc8db9c506a12c669 Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Tue, 14 Jan 2020 15:35:19 +0100 Subject: [PATCH 67/73] [HDF5] Fix 'in' vs '==' confusion --- easybuild/easyblocks/h/hdf5.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyblocks/h/hdf5.py b/easybuild/easyblocks/h/hdf5.py index 03c3845e7c..9eea5a5d94 100644 --- a/easybuild/easyblocks/h/hdf5.py +++ b/easybuild/easyblocks/h/hdf5.py @@ -85,7 +85,7 @@ def configure_step(self): if self.toolchain.mpi_family() in mpich_mpi_families: self.cfg.update('buildopts', 'CXXFLAGS="$CXXFLAGS -DMPICH_IGNORE_CXX_SEEK"') # Skip MPI cxx extensions to avoid hard dependency - if self.toolchain.mpi_family() in toolchain.OPENMPI: + if self.toolchain.mpi_family() == toolchain.OPENMPI: self.cfg.update('buildopts', 'CXXFLAGS="$CXXFLAGS -DOMPI_SKIP_MPICXX"') else: self.cfg.update('configopts', "--disable-parallel") From ba189aac44400393db9b5bdd8943208326e172ce Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Tue, 14 Jan 2020 17:53:25 +0100 Subject: [PATCH 68/73] Use build_type to purposely overwrite the ConfigureMake option of the same name --- easybuild/easyblocks/generic/cmakemake.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/easybuild/easyblocks/generic/cmakemake.py b/easybuild/easyblocks/generic/cmakemake.py index deec344308..d030ed73be 100644 --- a/easybuild/easyblocks/generic/cmakemake.py +++ b/easybuild/easyblocks/generic/cmakemake.py @@ -73,7 +73,7 @@ def extra_options(extra_vars=None): 'abs_path_compilers': [False, "Specify compilers via absolute file path (not via command names)", CUSTOM], 'allow_system_boost': [False, "Always allow CMake to pick up on Boost installed in OS " "(even if Boost is included as a dependency)", CUSTOM], - 'buildtype': [None, "Build type for CMake, e.g. Release or Debug." + 'build_type': [None, "Build type for CMake, e.g. Release or Debug." "Use None to not specify -DCMAKE_BUILD_TYPE", CUSTOM], 'configure_cmd': [DEFAULT_CONFIGURE_CMD, "Configure command to use", CUSTOM], 'srcdir': [None, "Source directory location to provide to cmake command", CUSTOM], @@ -104,8 +104,8 @@ def configure_step(self, srcdir=None, builddir=None): options = ['-DCMAKE_INSTALL_PREFIX=%s' % self.installdir] - if self.cfg['buildtype'] is not None: - options.append("-DCMAKE_BUILD_TYPE=%s" % self.cfg['buildtype']) + if self.cfg['build_type'] is not None: + options.append("-DCMAKE_BUILD_TYPE=%s" % self.cfg['build_type']) env_to_options = { 'CC': 'CMAKE_C_COMPILER', From af81de3f09f6d8784a8194df71f2c0918f807248 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 14 Jan 2020 18:37:39 +0100 Subject: [PATCH 69/73] ignore "Black would make changes" produced by flake8-black --- setup.cfg | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/setup.cfg b/setup.cfg index 71ac54c003..92be3b96aa 100644 --- a/setup.cfg +++ b/setup.cfg @@ -12,3 +12,7 @@ max-line-length = 120 builtins = basestring, reduce + +# ignore "Black would make changes" produced by flake8-black +# see also https://github.com/houndci/hound/issues/1769 +ignore = BLK100 From 2400d2006061f0e54bde462012a6042f983e7c42 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 14 Jan 2020 20:28:05 +0100 Subject: [PATCH 70/73] override set_pylibdirs method in VersionIndependentPythonPackage to hard set self.pylibdir to 'lib' (fixes #1846) --- .../easyblocks/generic/versionindependentpythonpackage.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/easybuild/easyblocks/generic/versionindependentpythonpackage.py b/easybuild/easyblocks/generic/versionindependentpythonpackage.py index 8681cc18a0..f94fb2a0af 100644 --- a/easybuild/easyblocks/generic/versionindependentpythonpackage.py +++ b/easybuild/easyblocks/generic/versionindependentpythonpackage.py @@ -47,10 +47,11 @@ def build_step(self): """No build procedure.""" pass - def prepare_step(self, *args, **kwargs): - """Set pylibdir""" + def set_pylibdirs(self): + """Set pylibdir.""" + super(VersionIndependentPythonPackage, self).set_pylibdirs() self.pylibdir = 'lib' - super(VersionIndependentPythonPackage, self).prepare_step(*args, **kwargs) + self.all_pylibdirs = ['lib'] def install_step(self): """Custom install procedure to skip selection of python package versions.""" From ed8df9c631e68a61707364db64a09dcffa438724 Mon Sep 17 00:00:00 2001 From: Miguel Dias Costa Date: Wed, 15 Jan 2020 12:54:12 +0800 Subject: [PATCH 71/73] prepare release notes for eb411 --- RELEASE_NOTES | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/RELEASE_NOTES b/RELEASE_NOTES index fedc2f28cd..1992571ddd 100644 --- a/RELEASE_NOTES +++ b/RELEASE_NOTES @@ -5,6 +5,60 @@ These release notes can also be consulted at http://easybuild.readthedocs.org/en The latest version of easybuild-easyblocks provides 211 software-specific easyblocks and 36 generic easyblocks. +v4.1.1 (January 16th 2020) +-------------------------- + +update/bugfix release + +- minor enhancements, including: + - update WPS easyblock for v3.6 & newer (#1315) + - update FSL easyblock to support FSL v6.0.2 & newer (#1860) + - make setup of cmake env usable from outside (#1869) + - Python: remove obsolete configure args, build with optimizations + build with LTO for GCC >= 8.0 (#1876) + - update WPS easyblock for recent versions: set $WRF_DIR to point to location of WRF installation (#1886) + - make sure $LIBLAPACK_MT is set before using it in ESMF easyblock (#1887) + - imkl: remove useless PATH entries, add PKG_CONFIG_PATH (#1900) + - enhance tbb easyblock to support buuilding on POWER (#1912) + - enhance TensorFlow easyblock to pick up on --cuda-compute-capabilities, and issue a warning if no CUDA compute capabilities are specified (#1913) + - add custom easyconfig parameter 'buildtype' to generic CMakeMake easyblock (#1915) +- various bug fixes, including: + - fix for conda packages that rely on particular versions of Python (#1836) + - fix intel and netcdf libdirs in NCL easyblock (#1862) + - fix CUDA 10.1 installation on POWER (#1871) + - add EasyBlock for cryptography to fix missing -pthread for all versions (#1874) + - change Bazel easyblock to prefer using Java dependency rather than includued JDK (fix for POWER9) (#1875) + - remove optarch warning in GROMACS for Cray (#1879) + - also fix $WM_COMPILE_OPTION in OpenFOAM rc scripts to make debug builds work correctly (#1880) + - disable running of 'sudo apt-get update' in GitHub CI config, since it's failing (and we don't really need it) (#1882) + - limit MPI ranks used for running WRF test cases to max. 4 + include contents of rsl.error.0000 output file in case test failed (#1884) + - update $PYTHONPATH + add "python -c 'import mrtrix3'" as sanity check command for recent MRtrix versions (#1889) + - update sanity check in SAMtools easyblock for version 1.10 (#1890) + - make sure $PYTHONNOUSERSITE it set when performing sanity check for (bundles of) Python package(s) (#1891) + - fix install dir subdir for WPS v4.0+ that is considered for $PATH and $LD_LIBRARY_PATH (#1895) + - impi: don't rebuild libfabric if the source code is not present. (#1896) + - also copy component patches to self.cfg in Bundle generic easyblock (#1897) + - skip patch step in Bundle generic easyblock (per-component patches are still applied) (#1898) + - derive easyblock for iccifort only from icc easyblock (not ifort) (#1899) + - add export to preinstallopts instead of install_script path in CUDA easyblock (#1902) + - don't set CPATH and LIBRARY_PATH any more for GCC and GCCcore. (#1903) + - iccifort: remove LIBRARY_PATH entries already known to icc et al (#1904) + - use major/minor version of Python command being used if req_py_majver/req_py_minver are not specified (#1907) + - define $EB_PYTHON in module for EasyBuild installation, to make sure correct Python version is used at runtime (#1908) + - allow Python 3.8 to be configured (Setup.dist script was renamed to Setup) (#1909) + - fix netCDF easyblock for version 4.4.0 (#1911) + - correct comment about when we set RUNPARALLEL in HDF5 easyblock (#1914) + - build HDF5 without MPI C++ extension (#1918) + - HDF5: fix 'in' vs '==' confusion (#1919) + - override set_pylibdirs method in VersionIndependentPythonPackage to hard set self.pylibdir to 'lib' (#1924) +- other changes: + - increase timeout in CUDA easyblock to 1000s (#1878) + - stop requiring Python dep for SWIG, just configure with --without-python if Python is not a dependency (#1894) + - update copyright statements for 2020 (#1905) + - do not sanity check on MATLAB compiler (#1916) + - rename 'buildtype' to 'build_type' in CMakeMake to purposely overwrite the ConfigureMake option with the same name (#1922) + - ignore "Black would make changes" produced by flake8-black (#1923) + + v4.1.0 (December 4th 2019) -------------------------- @@ -28,7 +82,7 @@ update/bugfix release - fix CUDA header paths for TensorFlow versions < 1.14 (#1854) - handle incorrect regex better in generic CmdCp easyblock (#1861) - add missing docstrings in cmakeninja easyblock (#1867) -other changes: +- other changes: - add GitHub Actions workflow to run easybuild-easyblocks test suite (#1844) From 5638bf00f4a47ff9bcd60904b2cf889abde6a6db Mon Sep 17 00:00:00 2001 From: Miguel Dias Costa Date: Wed, 15 Jan 2020 12:55:05 +0800 Subject: [PATCH 72/73] bump version to 4.1.1 --- easybuild/easyblocks/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyblocks/__init__.py b/easybuild/easyblocks/__init__.py index 8328738059..54fc4f9153 100644 --- a/easybuild/easyblocks/__init__.py +++ b/easybuild/easyblocks/__init__.py @@ -43,7 +43,7 @@ # recent setuptools versions will *TRANSFORM* something like 'X.Y.Zdev' into 'X.Y.Z.dev0', with a warning like # UserWarning: Normalizing '2.4.0dev' to '2.4.0.dev0' # This causes problems further up the dependency chain... -VERSION = LooseVersion('4.1.1.dev0') +VERSION = LooseVersion('4.1.1') UNKNOWN = 'UNKNOWN' From be7d91c667460641952c7646671e61ba6dce4453 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 15 Jan 2020 09:54:17 +0100 Subject: [PATCH 73/73] minor tweak to v4.1.1 release notes --- RELEASE_NOTES | 44 +++++++++++++++++++++----------------------- 1 file changed, 21 insertions(+), 23 deletions(-) diff --git a/RELEASE_NOTES b/RELEASE_NOTES index 1992571ddd..2301df57a0 100644 --- a/RELEASE_NOTES +++ b/RELEASE_NOTES @@ -3,60 +3,58 @@ For more detailed information, please see the git log. These release notes can also be consulted at http://easybuild.readthedocs.org/en/latest/Release_notes.html. -The latest version of easybuild-easyblocks provides 211 software-specific easyblocks and 36 generic easyblocks. +The latest version of easybuild-easyblocks provides 212 software-specific easyblocks and 36 generic easyblocks. v4.1.1 (January 16th 2020) -------------------------- update/bugfix release +- new software-specific easyblock for cryptography (to fix missing -pthread for all versions) (#1874) - minor enhancements, including: - update WPS easyblock for v3.6 & newer (#1315) - update FSL easyblock to support FSL v6.0.2 & newer (#1860) - - make setup of cmake env usable from outside (#1869) - - Python: remove obsolete configure args, build with optimizations + build with LTO for GCC >= 8.0 (#1876) + - add setup_cmake_env function in CMakeMake easyblock which can be leveraged in other easyblocks, and use it for OpenFOAM (#1869) + - remove obsolete configure options for Python + build with optimizations/LTO enabled for recent Python versions (#1876) - update WPS easyblock for recent versions: set $WRF_DIR to point to location of WRF installation (#1886) - make sure $LIBLAPACK_MT is set before using it in ESMF easyblock (#1887) - - imkl: remove useless PATH entries, add PKG_CONFIG_PATH (#1900) - - enhance tbb easyblock to support buuilding on POWER (#1912) + - remove useless PATH entries + add PKG_CONFIG_PATH in imkl easyblock (#1900) + - enhance tbb easyblock to support building on POWER (#1912) - enhance TensorFlow easyblock to pick up on --cuda-compute-capabilities, and issue a warning if no CUDA compute capabilities are specified (#1913) - - add custom easyconfig parameter 'buildtype' to generic CMakeMake easyblock (#1915) + - add custom easyconfig parameter 'build_type' to generic CMakeMake easyblock (#1915, #1922) - various bug fixes, including: - fix for conda packages that rely on particular versions of Python (#1836) - - fix intel and netcdf libdirs in NCL easyblock (#1862) + - fix path for intel and netCDF lib directories in NCL easyblock (#1862) - fix CUDA 10.1 installation on POWER (#1871) - - add EasyBlock for cryptography to fix missing -pthread for all versions (#1874) - - change Bazel easyblock to prefer using Java dependency rather than includued JDK (fix for POWER9) (#1875) - - remove optarch warning in GROMACS for Cray (#1879) + - change Bazel easyblock to prefer using Java dependency rather than included JDK (fix for POWER9) (#1875) + - remove optarch warning in GROMACS for Cray toolchains (#1879) - also fix $WM_COMPILE_OPTION in OpenFOAM rc scripts to make debug builds work correctly (#1880) - - disable running of 'sudo apt-get update' in GitHub CI config, since it's failing (and we don't really need it) (#1882) - limit MPI ranks used for running WRF test cases to max. 4 + include contents of rsl.error.0000 output file in case test failed (#1884) - update $PYTHONPATH + add "python -c 'import mrtrix3'" as sanity check command for recent MRtrix versions (#1889) - update sanity check in SAMtools easyblock for version 1.10 (#1890) - make sure $PYTHONNOUSERSITE it set when performing sanity check for (bundles of) Python package(s) (#1891) - fix install dir subdir for WPS v4.0+ that is considered for $PATH and $LD_LIBRARY_PATH (#1895) - - impi: don't rebuild libfabric if the source code is not present. (#1896) + - impi: don't rebuild libfabric if the source code is not present (#1896) - also copy component patches to self.cfg in Bundle generic easyblock (#1897) - skip patch step in Bundle generic easyblock (per-component patches are still applied) (#1898) - - derive easyblock for iccifort only from icc easyblock (not ifort) (#1899) - - add export to preinstallopts instead of install_script path in CUDA easyblock (#1902) - - don't set CPATH and LIBRARY_PATH any more for GCC and GCCcore. (#1903) - - iccifort: remove LIBRARY_PATH entries already known to icc et al (#1904) + - derive easyblock for iccifort only from icc easyblock (not ifort), to avoid adding include subdir to $CPATH (#1899) + - add 'export LANG=C' to preinstallopts instead of install_script path in CUDA easyblock (#1902) + - stop setting updating $CPATH and $LIBRARY_PATH for GCC and GCCcore, not required (#1903) + - remove $LIBRARY_PATH entries in iccifort easyblock, already known to icc et al (#1904) - use major/minor version of Python command being used if req_py_majver/req_py_minver are not specified (#1907) - define $EB_PYTHON in module for EasyBuild installation, to make sure correct Python version is used at runtime (#1908) - - allow Python 3.8 to be configured (Setup.dist script was renamed to Setup) (#1909) + - fix Python easyblock to allow configuring build of Python v3.8 (Setup.dist script was renamed to Setup) (#1909) - fix netCDF easyblock for version 4.4.0 (#1911) - correct comment about when we set RUNPARALLEL in HDF5 easyblock (#1914) - - build HDF5 without MPI C++ extension (#1918) - - HDF5: fix 'in' vs '==' confusion (#1919) + - do not sanity check on MATLAB compiler, since it requires a separate license (#1916) + - build HDF5 without MPI C++ extension to avoid breaking linkage for C software that requires HDF5 (#1918, #1919) - override set_pylibdirs method in VersionIndependentPythonPackage to hard set self.pylibdir to 'lib' (#1924) - other changes: - - increase timeout in CUDA easyblock to 1000s (#1878) + - increase timeout for interactive installation command in CUDA easyblock to 1000 sec. (#1878) + - disable running of 'sudo apt-get update' in GitHub CI config, since it's failing (and we don't really need it) (#1882) - stop requiring Python dep for SWIG, just configure with --without-python if Python is not a dependency (#1894) - update copyright statements for 2020 (#1905) - - do not sanity check on MATLAB compiler (#1916) - - rename 'buildtype' to 'build_type' in CMakeMake to purposely overwrite the ConfigureMake option with the same name (#1922) - - ignore "Black would make changes" produced by flake8-black (#1923) + - make Hound CI code style checker ignore "Black would make changes" produced by flake8-black (#1923) v4.1.0 (December 4th 2019)