From a9eadc9b91b451b9a2326c86aad0d504e158cf3f Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 11 Jun 2025 20:59:34 +0200 Subject: [PATCH 1/6] filter ParMETIS dependency, since ParMETIS license doesn't allow redistribution --- EESSI-extend-easybuild.eb | 2 +- configure_easybuild | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/EESSI-extend-easybuild.eb b/EESSI-extend-easybuild.eb index f74f36ac..3d4f399e 100644 --- a/EESSI-extend-easybuild.eb +++ b/EESSI-extend-easybuild.eb @@ -40,7 +40,7 @@ description = """ toolchain = SYSTEM # All the dependencies we filter in EESSI -local_deps_to_filter = "Autoconf,Automake,Autotools,binutils,bzip2,DBus,flex,gettext,gperf,help2man,intltool,libreadline,libtool,M4,makeinfo,ncurses,util-linux,XZ,zlib" +local_deps_to_filter ="Autoconf,Automake,Autotools,binutils,bzip2,DBus,flex,gettext,gperf,help2man,intltool,libreadline,libtool,M4,makeinfo,ncurses,ParMETIS,util-linux,XZ,zlib" local_arch_specific_deps_to_filter = {'aarch64': ',Yasm', 'riscv64': ',Yasm', 'x86_64': ''} local_deps_to_filter += local_arch_specific_deps_to_filter[ARCH] diff --git a/configure_easybuild b/configure_easybuild index 3b6d40cd..5c4958cf 100644 --- a/configure_easybuild +++ b/configure_easybuild @@ -44,7 +44,7 @@ fi # note: filtering Bison may break some installations, like Qt5 (see https://github.com/EESSI/software-layer/issues/49) # filtering pkg-config breaks R-bundle-Bioconductor installation (see also https://github.com/easybuilders/easybuild-easyconfigs/pull/11104) -DEPS_TO_FILTER=Autoconf,Automake,Autotools,binutils,bzip2,DBus,flex,gettext,gperf,help2man,intltool,libreadline,libtool,M4,makeinfo,ncurses,util-linux,XZ,zlib +DEPS_TO_FILTER=Autoconf,Automake,Autotools,binutils,bzip2,DBus,flex,gettext,gperf,help2man,intltool,libreadline,libtool,M4,makeinfo,ncurses,ParMETIS,util-linux,XZ,zlib # For aarch64 we need to also filter out Yasm. # See https://github.com/easybuilders/easybuild-easyconfigs/issues/11190 if [[ "$EESSI_CPU_FAMILY" == "aarch64" ]]; then From 52f568fc8d7dd8bbd003821de2d0802781692806 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 12 Jun 2025 09:33:35 +0200 Subject: [PATCH 2/6] add easystack file to rebuild EESSI-extend module --- .../20250612-eb-5.1.0-EESSI-extend-filter-ParMETIS.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 easystacks/software.eessi.io/2023.06/rebuilds/20250612-eb-5.1.0-EESSI-extend-filter-ParMETIS.yml diff --git a/easystacks/software.eessi.io/2023.06/rebuilds/20250612-eb-5.1.0-EESSI-extend-filter-ParMETIS.yml b/easystacks/software.eessi.io/2023.06/rebuilds/20250612-eb-5.1.0-EESSI-extend-filter-ParMETIS.yml new file mode 100644 index 00000000..857c34d7 --- /dev/null +++ b/easystacks/software.eessi.io/2023.06/rebuilds/20250612-eb-5.1.0-EESSI-extend-filter-ParMETIS.yml @@ -0,0 +1,5 @@ +# 2024.06.12 +# Rebuild required because EasyBuild configuration was updated to filter ParMETIS dependency +# see https://github.com/EESSI/software-layer-scripts/pull/2 +easyconfigs: + - EESSI-extend-easybuild.eb From fa5f21178b7c6044400fbe6b01c6e00bc9b4a3f0 Mon Sep 17 00:00:00 2001 From: ocaisa Date: Thu, 12 Jun 2025 09:42:54 +0200 Subject: [PATCH 3/6] Update EESSI-extend-easybuild.eb --- EESSI-extend-easybuild.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EESSI-extend-easybuild.eb b/EESSI-extend-easybuild.eb index 3d4f399e..36881252 100644 --- a/EESSI-extend-easybuild.eb +++ b/EESSI-extend-easybuild.eb @@ -40,7 +40,7 @@ description = """ toolchain = SYSTEM # All the dependencies we filter in EESSI -local_deps_to_filter ="Autoconf,Automake,Autotools,binutils,bzip2,DBus,flex,gettext,gperf,help2man,intltool,libreadline,libtool,M4,makeinfo,ncurses,ParMETIS,util-linux,XZ,zlib" +local_deps_to_filter = "Autoconf,Automake,Autotools,binutils,bzip2,DBus,flex,gettext,gperf,help2man,intltool,libreadline,libtool,M4,makeinfo,ncurses,ParMETIS,util-linux,XZ,zlib" local_arch_specific_deps_to_filter = {'aarch64': ',Yasm', 'riscv64': ',Yasm', 'x86_64': ''} local_deps_to_filter += local_arch_specific_deps_to_filter[ARCH] From 8a949fead7c6bac0e80657b63bf713c7dbbc4fac Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 12 Jun 2025 09:55:48 +0200 Subject: [PATCH 4/6] update load_eessi_extend_module.sh to rebuild EESSI-extend module if the easyconfig file used to create it was changed --- load_eessi_extend_module.sh | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/load_eessi_extend_module.sh b/load_eessi_extend_module.sh index b5ad47de..35aa971b 100755 --- a/load_eessi_extend_module.sh +++ b/load_eessi_extend_module.sh @@ -24,6 +24,8 @@ # set -o pipefail +EESSI_EXTEND_EASYCONFIG="EESSI-extend-easybuild.eb" + # this script is *sourced*, not executed, so can't rely on $0 to determine path to self or script name # $BASH_SOURCE points to correct path or script name, see also http://mywiki.wooledge.org/BashFAQ/028 if [ $# -ne 1 ]; then @@ -65,11 +67,25 @@ ml_av_eessi_extend_out=${TMPDIR}/ml_av_eessi_extend.out # need to use --ignore_cache to avoid the case that the module was removed (to be # rebuilt) but it is still in the cache module --ignore_cache avail 2>&1 | grep -i EESSI-extend/${EESSI_EXTEND_VERSION} &> ${ml_av_eessi_extend_out} - if [[ $? -eq 0 ]]; then echo_green ">> Module for EESSI-extend/${EESSI_EXTEND_VERSION} found!" + install_eessi_extend=false + rebuild_eessi_extend=false + # $PR_DIFF should be set by the calling script (EESSI-install-software.sh) + if [[ ! -z ${PR_DIFF} ]] && [[ -f "$PR_DIFF" ]]; then + # check if EESSI-extend easyconfig was modified; if so, we need to rebuild it + grep -q "^\+\+\+ b/${EESSI_EXTEND_EASYCONFIG}" "${PR_DIFF}" + if [[ $? -eq 0 ]]; then + rebuild_eessi_extend=true + fi + fi else echo_yellow ">> No module yet for EESSI-extend/${EESSI_EXTEND_VERSION}, installing it..." + install_eessi_extend=true + rebuild_eessi_extend=false +fi + +if [ "${install_eessi_extend}" = true ] || [ "${rebuild_eessi_extend}" = true ]; then EB_TMPDIR=${TMPDIR}/ebtmp echo ">> Using temporary installation of EasyBuild (in ${EB_TMPDIR})..." @@ -98,9 +114,15 @@ else eessi_install_out=${TMPDIR}/eessi_install.out ok_msg="EESSI-extend/${EESSI_EXTEND_VERSION} installed, let's go!" fail_msg="Installing EESSI-extend/${EESSI_EXTEND_VERSION} failed, that's not good... (output: ${eessi_install_out})" + # while always adding --try-amend=keep... may do no harm, we could make # an attempt to figure out if it is needed, e.g., when we are rebuilding - ${EB} "EESSI-extend-easybuild.eb" --try-amend=keeppreviousinstall=True 2>&1 | tee ${eessi_install_out} + eb_args="--try-amend=keeppreviousinstall=True " + if [ "${rebuild_eessi_extend}" = true ]; then + eb_args+="--rebuild" + fi + echo ">> Installing EESSI-extend with '${EB} ${eb_args} ${EESSI_EXTEND_EASYCONFIG}'..." + ${EB} ${eb_args} "${EESSI_EXTEND_EASYCONFIG}" 2>&1 | tee ${eessi_install_out} check_exit_code $? "${ok_msg}" "${fail_msg}" ) From 270cb8f62112bf5c2098a17117b46086d4ee87fb Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 12 Jun 2025 09:58:41 +0200 Subject: [PATCH 5/6] remove easystack file again, should not be needed to trigger rebuild of EESSI-extend --- .../20250612-eb-5.1.0-EESSI-extend-filter-ParMETIS.yml | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 easystacks/software.eessi.io/2023.06/rebuilds/20250612-eb-5.1.0-EESSI-extend-filter-ParMETIS.yml diff --git a/easystacks/software.eessi.io/2023.06/rebuilds/20250612-eb-5.1.0-EESSI-extend-filter-ParMETIS.yml b/easystacks/software.eessi.io/2023.06/rebuilds/20250612-eb-5.1.0-EESSI-extend-filter-ParMETIS.yml deleted file mode 100644 index 857c34d7..00000000 --- a/easystacks/software.eessi.io/2023.06/rebuilds/20250612-eb-5.1.0-EESSI-extend-filter-ParMETIS.yml +++ /dev/null @@ -1,5 +0,0 @@ -# 2024.06.12 -# Rebuild required because EasyBuild configuration was updated to filter ParMETIS dependency -# see https://github.com/EESSI/software-layer-scripts/pull/2 -easyconfigs: - - EESSI-extend-easybuild.eb From d8cd8df83461e3b6ef7fd47de4000cebcf7c86e7 Mon Sep 17 00:00:00 2001 From: ocaisa Date: Fri, 4 Jul 2025 12:35:34 +0200 Subject: [PATCH 6/6] Update load_eessi_extend_module.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Bob Dröge --- load_eessi_extend_module.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/load_eessi_extend_module.sh b/load_eessi_extend_module.sh index 35aa971b..89442649 100755 --- a/load_eessi_extend_module.sh +++ b/load_eessi_extend_module.sh @@ -117,7 +117,7 @@ if [ "${install_eessi_extend}" = true ] || [ "${rebuild_eessi_extend}" = true ]; # while always adding --try-amend=keep... may do no harm, we could make # an attempt to figure out if it is needed, e.g., when we are rebuilding - eb_args="--try-amend=keeppreviousinstall=True " + eb_args="" if [ "${rebuild_eessi_extend}" = true ]; then eb_args+="--rebuild" fi