diff --git a/.github/workflows/test_eessi.yml b/.github/workflows/test_eessi.yml index abade73d27..b9c719a85c 100644 --- a/.github/workflows/test_eessi.yml +++ b/.github/workflows/test_eessi.yml @@ -30,6 +30,7 @@ jobs: - eessi-2023.06-eb-4.8.0-system.yml - eessi-2023.06-eb-4.8.0-2021b.yml - eessi-2023.06-eb-4.8.1-system.yml + - eessi-2023.06-eb-4.8.1-2021a.yml - eessi-2023.06-eb-4.8.1-2021b.yml - eessi-2023.06-eb-4.8.1-2022a.yml steps: diff --git a/eb_hooks.py b/eb_hooks.py index 83bdca4cb5..c067de6ec2 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -274,6 +274,32 @@ def pre_test_hook_ignore_failing_tests_SciPybundle(self, *args, **kwargs): self.cfg['testopts'] = "|| echo ignoring failing tests" +def pre_single_extension_hook(ext, *args, **kwargs): + """Main pre-configure hook: trigger custom functions based on software name.""" + if ext.name in PRE_SINGLE_EXTENSION_HOOKS: + PRE_SINGLE_EXTENSION_HOOKS[ext.name](ext, *args, **kwargs) + + +def pre_single_extension_testthat(ext, *args, **kwargs): + """ + Pre-extension hook for testthat R package, to fix build on top of recent glibc. + """ + if ext.name == 'testthat' and LooseVersion(ext.version) < LooseVersion('3.1.0'): + # use constant value instead of SIGSTKSZ for stack size, + # cfr. https://github.com/r-lib/testthat/issues/1373 + https://github.com/r-lib/testthat/pull/1403 + ext.cfg['preinstallopts'] = "sed -i 's/SIGSTKSZ/32768/g' inst/include/testthat/vendor/catch.h && " + + +def pre_single_extension_isoband(ext, *args, **kwargs): + """ + Pre-extension hook for isoband R package, to fix build on top of recent glibc. + """ + if ext.name == 'isoband' and LooseVersion(ext.version) < LooseVersion('0.2.5'): + # use constant value instead of SIGSTKSZ for stack size in vendored testthat included in isoband sources, + # cfr. https://github.com/r-lib/isoband/commit/6984e6ce8d977f06e0b5ff73f5d88e5c9a44c027 + ext.cfg['preinstallopts'] = "sed -i 's/SIGSTKSZ/32768/g' src/testthat/vendor/catch.h && " + + def pre_test_hook_ignore_failing_tests_FFTWMPI(self, *args, **kwargs): """ Pre-test hook for FFTW.MPI: skip failing tests for FFTW.MPI 3.3.10 on neoverse_v1 @@ -283,6 +309,7 @@ def pre_test_hook_ignore_failing_tests_FFTWMPI(self, *args, **kwargs): if self.name == 'FFTW.MPI' and self.version == '3.3.10' and cpu_target == 'aarch64/neoverse_v1': self.cfg['testopts'] = "|| echo ignoring failing tests" + PARSE_HOOKS = { 'CGAL': parse_hook_cgal_toolchainopts_precise, 'fontconfig': parse_hook_fontconfig_add_fonts, @@ -306,3 +333,8 @@ def pre_test_hook_ignore_failing_tests_FFTWMPI(self, *args, **kwargs): 'SciPy-bundle': pre_test_hook_ignore_failing_tests_SciPybundle, 'FFTW.MPI': pre_test_hook_ignore_failing_tests_FFTWMPI, } + +PRE_SINGLE_EXTENSION_HOOKS = { + 'isoband': pre_single_extension_isoband, + 'testthat': pre_single_extension_testthat, +} diff --git a/eessi-2023.06-eb-4.8.1-2021a.yml b/eessi-2023.06-eb-4.8.1-2021a.yml new file mode 100644 index 0000000000..999eb09925 --- /dev/null +++ b/eessi-2023.06-eb-4.8.1-2021a.yml @@ -0,0 +1,7 @@ +easyconfigs: + - Xvfb-1.20.11-GCCcore-10.3.0.eb: + # fix permission issues for xvfb-run script, + # see https://github.com/easybuilders/easybuild-easyconfigs/pull/18834 + options: + from-pr: 18834 + - R-4.1.0-foss-2021a.eb