diff --git a/easystacks/software.eessi.io/2023.06/eessi-2023.06-eb-4.9.2-2022b.yml b/easystacks/software.eessi.io/2023.06/eessi-2023.06-eb-4.9.2-2022b.yml index 7a04eaa9d3..d0f9f66b06 100644 --- a/easystacks/software.eessi.io/2023.06/eessi-2023.06-eb-4.9.2-2022b.yml +++ b/easystacks/software.eessi.io/2023.06/eessi-2023.06-eb-4.9.2-2022b.yml @@ -1,2 +1,7 @@ easyconfigs: - BLAST+-2.14.0-gompi-2022b.eb + - BioPerl-1.7.8-GCCcore-12.2.0.eb: + options: + # see https://github.com/easybuilders/easybuild-easyconfigs/pull/21136 + from-commit: d8076ebaf8cb915762adebf88d385cc672b350dc + - gnuplot-5.4.6-GCCcore-12.2.0.eb diff --git a/easystacks/software.eessi.io/2023.06/eessi-2023.06-eb-4.9.2-2023a.yml b/easystacks/software.eessi.io/2023.06/eessi-2023.06-eb-4.9.2-2023a.yml index 5c65d8b2e8..51f6bfc8e6 100644 --- a/easystacks/software.eessi.io/2023.06/eessi-2023.06-eb-4.9.2-2023a.yml +++ b/easystacks/software.eessi.io/2023.06/eessi-2023.06-eb-4.9.2-2023a.yml @@ -27,4 +27,18 @@ easyconfigs: # see https://github.com/easybuilders/easybuild-easyconfigs/pull/20951 from-commit: a92667fe32396bbd4106243658625f7ff2adcd68 - amdahl-0.3.1-gompi-2023a.eb + - librosa-0.10.1-foss-2023a.eb + - xarray-2023.9.0-gfbf-2023a.eb + - SciTools-Iris-3.9.0-foss-2023a.eb + - OpenFOAM-v2312-foss-2023a.eb: + options: + # https://github.com/easybuilders/easybuild-easyblocks/pull/3388 + include-easyblocks-from-commit: c8256a36e7062bc09f5ce30552a9de9827054c9e + # https://github.com/easybuilders/easybuild-easyconfigs/pull/20841 + from-commit: f0e91e6e430ebf902f7788ebb47f0203dee60649 + - BioPerl-1.7.8-GCCcore-12.3.0.eb: + options: + # see https://github.com/easybuilders/easybuild-easyconfigs/pull/21136 + from-commit: d8076ebaf8cb915762adebf88d385cc672b350dc + - grpcio-1.57.0-GCCcore-12.3.0.eb - PyTorch-bundle-2.1.2-foss-2023a.eb diff --git a/easystacks/software.eessi.io/2023.06/rebuilds/20240729-eb-4.9.2-Python-ctypes.yml b/easystacks/software.eessi.io/2023.06/rebuilds/20240729-eb-4.9.2-Python-ctypes.yml new file mode 100644 index 0000000000..7554289c3b --- /dev/null +++ b/easystacks/software.eessi.io/2023.06/rebuilds/20240729-eb-4.9.2-Python-ctypes.yml @@ -0,0 +1,24 @@ +# 2024.07.29 +# Python ctypes relies on LD_LIBRARY_PATH and doesn't respect rpath linking. There is a workaround +# for the EasyBuild context in https://github.com/easybuilders/easybuild-easyblocks/pull/3352. +# +# This rebuild ensures this fix is available for all Python versions shipped with EESSI. +# +# See https://gitlab.com/eessi/support/-/issues/77 +easyconfigs: + - Python-3.10.8-GCCcore-12.2.0-bare: + options: + # See https://github.com/easybuilders/easybuild-easyblocks/pull/3352 + include-easyblocks-from-commit: 1ee17c0f7726c69e97442f53c65c5f041d65c94f + - Python-3.10.8-GCCcore-12.2.0: + options: + # See https://github.com/easybuilders/easybuild-easyblocks/pull/3352 + include-easyblocks-from-commit: 1ee17c0f7726c69e97442f53c65c5f041d65c94f + - Python-3.11.3-GCCcore-12.3.0: + options: + # See https://github.com/easybuilders/easybuild-easyblocks/pull/3352 + include-easyblocks-from-commit: 1ee17c0f7726c69e97442f53c65c5f041d65c94f + - Python-3.11.5-GCCcore-13.2.0: + options: + # See https://github.com/easybuilders/easybuild-easyblocks/pull/3352 + include-easyblocks-from-commit: 1ee17c0f7726c69e97442f53c65c5f041d65c94f diff --git a/easystacks/software.eessi.io/2023.06/rebuilds/20240801-eb-4.9.2-Python-ctypes-zen4.yml b/easystacks/software.eessi.io/2023.06/rebuilds/20240801-eb-4.9.2-Python-ctypes-zen4.yml new file mode 100644 index 0000000000..2104b4d836 --- /dev/null +++ b/easystacks/software.eessi.io/2023.06/rebuilds/20240801-eb-4.9.2-Python-ctypes-zen4.yml @@ -0,0 +1,17 @@ +# 2024.08.01 +# Python ctypes relies on LD_LIBRARY_PATH and doesn't respect rpath linking. There is a workaround +# for the EasyBuild context in https://github.com/easybuilders/easybuild-easyblocks/pull/3352. +# +# This rebuild ensures this fix is available for all Python versions shipped for +# zen4 with EESSI. +# +# See https://gitlab.com/eessi/support/-/issues/77 +easyconfigs: + - Python-3.11.3-GCCcore-12.3.0: + options: + # See https://github.com/easybuilders/easybuild-easyblocks/pull/3352 + include-easyblocks-from-commit: 1ee17c0f7726c69e97442f53c65c5f041d65c94f + - Python-3.11.5-GCCcore-13.2.0: + options: + # See https://github.com/easybuilders/easybuild-easyblocks/pull/3352 + include-easyblocks-from-commit: 1ee17c0f7726c69e97442f53c65c5f041d65c94f diff --git a/easystacks/software.eessi.io/2023.06/zen4/eessi-2023.06-eb-4.9.2-2023a.yml b/easystacks/software.eessi.io/2023.06/zen4/eessi-2023.06-eb-4.9.2-2023a.yml index 65a12695e4..9d13d5eb3a 100644 --- a/easystacks/software.eessi.io/2023.06/zen4/eessi-2023.06-eb-4.9.2-2023a.yml +++ b/easystacks/software.eessi.io/2023.06/zen4/eessi-2023.06-eb-4.9.2-2023a.yml @@ -11,3 +11,14 @@ easyconfigs: options: # see https://github.com/easybuilders/easybuild-easyconfigs/pull/20958 from-commit: dbadb2074464d816740ee0e95595c2cb31b6338f + - Highway-1.0.4-GCCcore-12.3.0.eb: + options: + # see https://github.com/easybuilders/easybuild-easyconfigs/pull/20942 + from-commit: 524da37b903585cea5a9eeb4156d1c8d57636bd8 + - librosa-0.10.1-foss-2023a.eb + - R-bundle-Bioconductor-3.18-foss-2023a-R-4.3.2.eb + - BioPerl-1.7.8-GCCcore-12.3.0.eb: + options: + # see https://github.com/easybuilders/easybuild-easyconfigs/pull/21136 + from-commit: d8076ebaf8cb915762adebf88d385cc672b350dc + - MODFLOW-6.4.4-foss-2023a.eb diff --git a/eb_hooks.py b/eb_hooks.py index 5570e2052b..fac344d1de 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -220,6 +220,19 @@ def parse_hook_fontconfig_add_fonts(ec, eprefix): raise EasyBuildError("fontconfig-specific hook triggered for non-fontconfig easyconfig?!") +def parse_hook_grpcio_zlib(ec, ecprefix): + """Adjust preinstallopts to use ZLIB from compat layer.""" + if ec.name == 'grpcio' and ec.version in ['1.57.0']: + exts_list = ec['exts_list'] + original_preinstallopts = (exts_list[0][2])['preinstallopts'] + original_option = "GRPC_PYTHON_BUILD_SYSTEM_ZLIB=True" + new_option = "GRPC_PYTHON_BUILD_SYSTEM_ZLIB=False" + (exts_list[0][2])['preinstallopts'] = original_preinstallopts.replace(original_option, new_option, 1) + print_msg("Modified the easyconfig to use compat ZLIB with GRPC_PYTHON_BUILD_SYSTEM_ZLIB=False") + else: + raise EasyBuildError("grpcio-specific hook triggered for a non-grpcio easyconfig?!") + + def parse_hook_openblas_relax_lapack_tests_num_errors(ec, eprefix): """Relax number of failing numerical LAPACK tests for aarch64/neoverse_v1 CPU target for OpenBLAS < 0.3.23""" cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR') @@ -767,6 +780,7 @@ def inject_gpu_property(ec): 'casacore': parse_hook_casacore_disable_vectorize, 'CGAL': parse_hook_cgal_toolchainopts_precise, 'fontconfig': parse_hook_fontconfig_add_fonts, + 'grpcio': parse_hook_grpcio_zlib, 'LAMMPS': parse_hook_lammps_remove_deps_for_CI_aarch64, 'CP2K': parse_hook_CP2K_remove_deps_for_aarch64, 'OpenBLAS': parse_hook_openblas_relax_lapack_tests_num_errors, diff --git a/init/eessi_archdetect.sh b/init/eessi_archdetect.sh index ddfed1bfae..ad6dce6f9a 100755 --- a/init/eessi_archdetect.sh +++ b/init/eessi_archdetect.sh @@ -1,4 +1,22 @@ #!/usr/bin/env bash + +# Confirm the current shell is Bash >= 4 +# (works for sh, bash, dash, zsh, ksh, but not fish, tcsh, elvish) +if [ -n "$BASH_VERSION" ]; then + # Extract the major version numbers + bash_version=$(echo "$BASH_VERSION" | grep -oP '^\d+\.\d+') + major_version=$(echo "$bash_version" | cut -d. -f1) + + # Check if the major version is 4 or higher + if [ "$major_version" -lt 4 ]; then + echo "Error: This script must be run with Bash >= 4, you have $BASH_VERSION." >&2 + exit 1 + fi +else + echo "Error: This script must be run with Bash." >&2 + exit 1 +fi + VERSION="1.1.0" # default log level: only emit warnings or errors