From d7c62c31b4c08893148de3d49f1be2b0f474d0a4 Mon Sep 17 00:00:00 2001 From: Alan O'Cais Date: Thu, 23 Oct 2025 11:46:36 +0200 Subject: [PATCH 01/15] Fix issues for locale, lesspipe and LD_LIBRARY_PATH in EESSI module --- .github/workflows/tests_eessi_module.yml | 41 +++++++++++++++++++++++- init/modules/EESSI/2023.06.lua | 25 +++++++++++++++ 2 files changed, 65 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests_eessi_module.yml b/.github/workflows/tests_eessi_module.yml index e27494ba..33b1cb19 100644 --- a/.github/workflows/tests_eessi_module.yml +++ b/.github/workflows/tests_eessi_module.yml @@ -115,7 +115,7 @@ jobs: # EESSI_DEBUG_INIT/EESSI_ARCHDETECT_OPTIONS only relevant for Lmod init unset EESSI_DEBUG_INIT # Store all relevant environment variables - env | grep -E '(^EESSI_|^LMOD_RC|^LMOD_PACKAGE_PATH|^MODULEPATH)' | grep -v EESSI_ARCHDETECT_OPTIONS | sort > "${moduleoutfile}" + env | grep -E '(^EESSI_|^LMOD_RC|^LMOD_PACKAGE_PATH|^MODULEPATH)' | grep -v EESSI_ARCHDETECT_OPTIONS | grep -v EESSI_DEFAULT_HOST_LD_LIBRARY_PATH | sort > "${moduleoutfile}" module unload EESSI/${{matrix.EESSI_VERSION}} # We should only have two EESSI_* variables defined (which set the overrides) @@ -315,3 +315,42 @@ jobs: module load "EESSI/${{matrix.EESSI_VERSION}}" GREP_PATTERN="Lmod is automatically replacing \"EESSI/${{matrix.EESSI_VERSION}}\" with \"${LOCAL_STACK_NAME}/${LOCAL_STACK_VERSION}\"." module load "${LOCAL_STACK_NAME}/${LOCAL_STACK_VERSION}" |& grep "${GREP_PATTERN}" + + check_ld_library_path_eessi_module: + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + EESSI_VERSION: + - '2023.06' + - '2025.06' + + steps: + - name: Check out software-layer repository + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + + - name: Mount EESSI CernVM-FS repository + uses: cvmfs-contrib/github-action-cvmfs@55899ca74cf78ab874bdf47f5a804e47c198743c # v4.0 + with: + cvmfs_config_package: https://github.com/EESSI/filesystem-layer/releases/download/latest/cvmfs-config-eessi_latest_all.deb + cvmfs_http_proxy: DIRECT + cvmfs_repositories: software.eessi.io + + - name: Make sure we are filtering LD_LIBRARY_PATH if necessary + run: | + # Initialise Lmod + . /cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}/compat/linux/$(uname -m)/usr/share/Lmod/init/bash + + # Make sure we are using the EESSI module file from the repository + export MODULEPATH=init/modules + + # Create LD_LIBRARY_PATH to test with + export FAKE_PATH=/path/does/not/exist + export INITIAL_LD_LIBRARY_PATH="/usr/lib:$FAKE_PATH" + export LD_LIBRARY_PATH="$INITIAL_LD_LIBRARY_PATH" + module load "EESSI/${{matrix.EESSI_VERSION}}" + # Check we have a sanitised LD_LIBRARY_PATH + [ "$LD_LIBRARY_PATH" = "$FAKE_PATH" ] || (echo "LD_LIBRARY_PATH is not $FAKE_PATH but $LD_LIBRARY_PATH" && exit 1) + # Make sure things are back as we expect afterwards + module purge + [ "$LD_LIBRARY_PATH" = "$INITIAL_LD_LIBRARY__PATH" ] || (echo "LD_LIBRARY_PATH is not $INITIAL_LD_LIBRARY_PATH but $LD_LIBRARY_PATH" && exit 1) diff --git a/init/modules/EESSI/2023.06.lua b/init/modules/EESSI/2023.06.lua index 2ddcf194..ddee7b92 100644 --- a/init/modules/EESSI/2023.06.lua +++ b/init/modules/EESSI/2023.06.lua @@ -210,6 +210,31 @@ if os.getenv("EESSI_MODULE_STICKY") then load_message = load_message .. " (requires '--force' option to unload or purge)" end +-- make sure we are using a known locale +pushenv ("LANG", "C.utf8") +pushenv ("LC_ALL", "C.utf8") +pushenv ("LC_CTYPE", "C.utf8") +pushenv ("LC_MESSAGES", "C.utf8") + +-- avoid lesspipe problems on Debian system +pushenv ("LESSOPEN", "") + +-- Filter system paths from LD_LIBRARY_PATH +-- Needs to be reversible so first make a copy +append_path ("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH", os.getenv("LD_LIBRARY_PATH") or "") +-- on unload the variable will no longer exist +if mode() == "load" then + -- remove any standard paths + remove_path ("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH", "/lib") + remove_path ("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH", "/lib64") + remove_path ("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH", "/usr/lib") + remove_path ("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH", "/usr/lib64") + remove_path ("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH", "/usr/local/lib") + remove_path ("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH", "/usr/local/lib64") +end +-- now we can use pushenv to retain/restore the original value +pushenv ("LD_LIBRARY_PATH", os.getenv("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH") or "") + if mode() == "load" then LmodMessage(load_message) end From ff7192f3177731f990cf0baaa1a5a684eb06ce16 Mon Sep 17 00:00:00 2001 From: ocaisa Date: Thu, 23 Oct 2025 11:52:55 +0200 Subject: [PATCH 02/15] Update 2023.06.lua --- init/modules/EESSI/2023.06.lua | 3 --- 1 file changed, 3 deletions(-) diff --git a/init/modules/EESSI/2023.06.lua b/init/modules/EESSI/2023.06.lua index ddee7b92..7b415287 100644 --- a/init/modules/EESSI/2023.06.lua +++ b/init/modules/EESSI/2023.06.lua @@ -216,9 +216,6 @@ pushenv ("LC_ALL", "C.utf8") pushenv ("LC_CTYPE", "C.utf8") pushenv ("LC_MESSAGES", "C.utf8") --- avoid lesspipe problems on Debian system -pushenv ("LESSOPEN", "") - -- Filter system paths from LD_LIBRARY_PATH -- Needs to be reversible so first make a copy append_path ("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH", os.getenv("LD_LIBRARY_PATH") or "") From e09c480fa8d0087c4fba83302fde0be52d69426a Mon Sep 17 00:00:00 2001 From: Alan O'Cais Date: Thu, 23 Oct 2025 12:20:28 +0200 Subject: [PATCH 03/15] Print every character to see what is going wrong --- .github/workflows/tests_eessi_module.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests_eessi_module.yml b/.github/workflows/tests_eessi_module.yml index 33b1cb19..2189d1a3 100644 --- a/.github/workflows/tests_eessi_module.yml +++ b/.github/workflows/tests_eessi_module.yml @@ -353,4 +353,4 @@ jobs: [ "$LD_LIBRARY_PATH" = "$FAKE_PATH" ] || (echo "LD_LIBRARY_PATH is not $FAKE_PATH but $LD_LIBRARY_PATH" && exit 1) # Make sure things are back as we expect afterwards module purge - [ "$LD_LIBRARY_PATH" = "$INITIAL_LD_LIBRARY__PATH" ] || (echo "LD_LIBRARY_PATH is not $INITIAL_LD_LIBRARY_PATH but $LD_LIBRARY_PATH" && exit 1) + [ "$LD_LIBRARY_PATH" = "$INITIAL_LD_LIBRARY__PATH" ] || (echo "LD_LIBRARY_PATH is not" $(echo "$INITAL_LD_LIBRARY_PATH" | od -c) "but" $(echo "$LD_LIBRARY_PATH" | od -c) && exit 1) From b87ff129760066e59cebd26179ccf3aae4337f21 Mon Sep 17 00:00:00 2001 From: Alan O'Cais Date: Thu, 23 Oct 2025 12:27:26 +0200 Subject: [PATCH 04/15] Typo fix --- .github/workflows/tests_eessi_module.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests_eessi_module.yml b/.github/workflows/tests_eessi_module.yml index 2189d1a3..42407d9e 100644 --- a/.github/workflows/tests_eessi_module.yml +++ b/.github/workflows/tests_eessi_module.yml @@ -353,4 +353,4 @@ jobs: [ "$LD_LIBRARY_PATH" = "$FAKE_PATH" ] || (echo "LD_LIBRARY_PATH is not $FAKE_PATH but $LD_LIBRARY_PATH" && exit 1) # Make sure things are back as we expect afterwards module purge - [ "$LD_LIBRARY_PATH" = "$INITIAL_LD_LIBRARY__PATH" ] || (echo "LD_LIBRARY_PATH is not" $(echo "$INITAL_LD_LIBRARY_PATH" | od -c) "but" $(echo "$LD_LIBRARY_PATH" | od -c) && exit 1) + [ "$LD_LIBRARY_PATH" = "$INITIAL_LD_LIBRARY_PATH" ] || (echo "LD_LIBRARY_PATH is not $INITIAL_LD_LIBRARY_PATH but $LD_LIBRARY_PATH" && exit 1) From 627be089a08c086ad0de6c560f97813d79342b78 Mon Sep 17 00:00:00 2001 From: Alan O'Cais Date: Thu, 23 Oct 2025 12:38:30 +0200 Subject: [PATCH 05/15] Explicitly set a locale to avoid dealing with Lmod behaviour around LC_ALL --- .github/workflows/tests_eessi_module.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests_eessi_module.yml b/.github/workflows/tests_eessi_module.yml index 42407d9e..9709f6f7 100644 --- a/.github/workflows/tests_eessi_module.yml +++ b/.github/workflows/tests_eessi_module.yml @@ -212,14 +212,17 @@ jobs: module unuse .github/workflows/modules module avail - # Store the initial environment (ignoring Lmod tables) - env | grep -v _ModuleTable | sort > "${initial_env_file}" + # Set a (safe) locale + export LC_ALL=C + + # Store the initial environment (ignoring Lmod tables and internal stack varibles) + env | grep -v _ModuleTable | grep -v __LMOD_STACK | sort > "${initial_env_file}" # Do (and undo) loading the EESSI module CPU_ARCH=$(./init/eessi_archdetect.sh -a cpupath) module load EESSI/${{matrix.EESSI_VERSION}} module unload EESSI/${{matrix.EESSI_VERSION}} - env | grep -v _ModuleTable | sort > "${module_cycled_file}" + env | grep -v _ModuleTable | grep -v __LMOD_STACK |sort > "${module_cycled_file}" # Now compare the two results (do not expose the files, as they contain the full environment!) if (diff "${initial_env_file}" "${module_cycled_file}" > /dev/null); then From 8ebad087d172f820945170a509275f5b9ee56634 Mon Sep 17 00:00:00 2001 From: ocaisa Date: Thu, 23 Oct 2025 13:20:26 +0200 Subject: [PATCH 06/15] Don't fiddle with locale for now --- init/modules/EESSI/2023.06.lua | 6 ------ 1 file changed, 6 deletions(-) diff --git a/init/modules/EESSI/2023.06.lua b/init/modules/EESSI/2023.06.lua index 7b415287..eb6dd411 100644 --- a/init/modules/EESSI/2023.06.lua +++ b/init/modules/EESSI/2023.06.lua @@ -210,12 +210,6 @@ if os.getenv("EESSI_MODULE_STICKY") then load_message = load_message .. " (requires '--force' option to unload or purge)" end --- make sure we are using a known locale -pushenv ("LANG", "C.utf8") -pushenv ("LC_ALL", "C.utf8") -pushenv ("LC_CTYPE", "C.utf8") -pushenv ("LC_MESSAGES", "C.utf8") - -- Filter system paths from LD_LIBRARY_PATH -- Needs to be reversible so first make a copy append_path ("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH", os.getenv("LD_LIBRARY_PATH") or "") From a8382c72856d1c2dcfe35f0087e420143476fdd1 Mon Sep 17 00:00:00 2001 From: ocaisa Date: Thu, 23 Oct 2025 13:21:26 +0200 Subject: [PATCH 07/15] Also remove locale setting in CI --- .github/workflows/tests_eessi_module.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/tests_eessi_module.yml b/.github/workflows/tests_eessi_module.yml index 9709f6f7..67ff9bd3 100644 --- a/.github/workflows/tests_eessi_module.yml +++ b/.github/workflows/tests_eessi_module.yml @@ -212,9 +212,6 @@ jobs: module unuse .github/workflows/modules module avail - # Set a (safe) locale - export LC_ALL=C - # Store the initial environment (ignoring Lmod tables and internal stack varibles) env | grep -v _ModuleTable | grep -v __LMOD_STACK | sort > "${initial_env_file}" From 5f2c89b66f4a9a13942678ce88017e72ab43cb13 Mon Sep 17 00:00:00 2001 From: ocaisa Date: Thu, 23 Oct 2025 13:29:11 +0200 Subject: [PATCH 08/15] Update 2023.06.lua --- init/modules/EESSI/2023.06.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init/modules/EESSI/2023.06.lua b/init/modules/EESSI/2023.06.lua index eb6dd411..907dde81 100644 --- a/init/modules/EESSI/2023.06.lua +++ b/init/modules/EESSI/2023.06.lua @@ -215,7 +215,7 @@ end append_path ("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH", os.getenv("LD_LIBRARY_PATH") or "") -- on unload the variable will no longer exist if mode() == "load" then - -- remove any standard paths + -- remove any standard paths that can interfere with the compat layer remove_path ("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH", "/lib") remove_path ("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH", "/lib64") remove_path ("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH", "/usr/lib") From dbea419e763183827058dafd5fa996890dd0fc29 Mon Sep 17 00:00:00 2001 From: Alan O'Cais Date: Thu, 9 Apr 2026 19:12:44 +0200 Subject: [PATCH 09/15] Use some wildcard matching --- init/modules/EESSI/2023.06.lua | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/init/modules/EESSI/2023.06.lua b/init/modules/EESSI/2023.06.lua index 0ccae56b..5d311e07 100644 --- a/init/modules/EESSI/2023.06.lua +++ b/init/modules/EESSI/2023.06.lua @@ -237,14 +237,26 @@ end -- Needs to be reversible so first make a copy append_path ("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH", os.getenv("LD_LIBRARY_PATH") or "") -- on unload the variable will no longer exist +local function remove_system_paths(var) + local paths = os.getenv(var) + local system_lib_patterns = { + "^/lib(64)?(/|$)", + "^/usr/lib(64)?(/|$)", + "^/usr/local/lib(64)?(/|$)", + } + if not paths then return end + + for path in string.gmatch(paths, "([^:]+)") do + for _, pat in ipairs(system_lib_patterns) do + if path:match(pat) then + remove_path(var, path) + break + end + end + end +end if mode() == "load" then - -- remove any standard paths that can interfere with the compat layer - remove_path ("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH", "/lib") - remove_path ("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH", "/lib64") - remove_path ("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH", "/usr/lib") - remove_path ("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH", "/usr/lib64") - remove_path ("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH", "/usr/local/lib") - remove_path ("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH", "/usr/local/lib64") + remove_matching_paths("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH") end -- now we can use pushenv to retain/restore the original value pushenv ("LD_LIBRARY_PATH", os.getenv("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH") or "") From aa81759deed9d85881e377a27e7a9cf86b619abd Mon Sep 17 00:00:00 2001 From: Alan O'Cais Date: Thu, 9 Apr 2026 19:18:38 +0200 Subject: [PATCH 10/15] Fix CI --- .github/workflows/tests_eessi_module.yml | 26 +++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tests_eessi_module.yml b/.github/workflows/tests_eessi_module.yml index 50ac9999..7e3e4a57 100644 --- a/.github/workflows/tests_eessi_module.yml +++ b/.github/workflows/tests_eessi_module.yml @@ -212,7 +212,7 @@ jobs: module unuse .github/workflows/modules module avail - # Store the initial environment (ignoring Lmod tables and internal stack varibles) + # Store the initial environment (ignoring Lmod tables and internal stack variables) env | grep -v _ModuleTable | grep -v __LMOD_STACK | sort > "${initial_env_file}" # Do (and undo) loading the EESSI module @@ -316,11 +316,7 @@ jobs: GREP_PATTERN="Lmod is automatically replacing \"EESSI/${{matrix.EESSI_VERSION}}\" with \"${LOCAL_STACK_NAME}/${LOCAL_STACK_VERSION}\"." module load "${LOCAL_STACK_NAME}/${LOCAL_STACK_VERSION}" |& grep "${GREP_PATTERN}" -<<<<<<< HEAD check_ld_library_path_eessi_module: -======= - check_PS1_update_eessi_module: ->>>>>>> upstream/main runs-on: ubuntu-24.04 strategy: fail-fast: false @@ -355,6 +351,26 @@ jobs: module purge [ "$LD_LIBRARY_PATH" = "$INITIAL_LD_LIBRARY_PATH" ] || (echo "LD_LIBRARY_PATH is not $INITIAL_LD_LIBRARY_PATH but $LD_LIBRARY_PATH" && exit 1) + check_PS1_update_eessi_module: + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + EESSI_VERSION: + - '2023.06' + - '2025.06' + + steps: + - name: Check out software-layer repository + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + + - name: Mount EESSI CernVM-FS repository + uses: cvmfs-contrib/github-action-cvmfs@55899ca74cf78ab874bdf47f5a804e47c198743c # v4.0 + with: + cvmfs_config_package: https://github.com/EESSI/filesystem-layer/releases/download/latest/cvmfs-config-eessi_latest_all.deb + cvmfs_http_proxy: DIRECT + cvmfs_repositories: software.eessi.io + - name: Make sure we can use EESSI_UPDATE_PS1 to update PS1 in the EESSI module run: | # Initialise Lmod From 1485181811b22b47b2c47b27f41aad589de6baff Mon Sep 17 00:00:00 2001 From: Alan O'Cais Date: Thu, 9 Apr 2026 19:31:36 +0200 Subject: [PATCH 11/15] Fix CI --- .github/workflows/tests_eessi_module.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/tests_eessi_module.yml b/.github/workflows/tests_eessi_module.yml index 7e3e4a57..c156ca18 100644 --- a/.github/workflows/tests_eessi_module.yml +++ b/.github/workflows/tests_eessi_module.yml @@ -337,6 +337,7 @@ jobs: cvmfs_repositories: software.eessi.io - name: Make sure we are filtering LD_LIBRARY_PATH if necessary + run: | # Make sure we are using the EESSI module file from the repository export MODULEPATH=init/modules From 664040bda852582422ec8b177a96d9e1d94ed5a7 Mon Sep 17 00:00:00 2001 From: Alan O'Cais Date: Thu, 9 Apr 2026 19:37:10 +0200 Subject: [PATCH 12/15] Fix module name --- init/modules/EESSI/2023.06.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/init/modules/EESSI/2023.06.lua b/init/modules/EESSI/2023.06.lua index 5d311e07..48b74973 100644 --- a/init/modules/EESSI/2023.06.lua +++ b/init/modules/EESSI/2023.06.lua @@ -236,7 +236,6 @@ end -- Filter system paths from LD_LIBRARY_PATH -- Needs to be reversible so first make a copy append_path ("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH", os.getenv("LD_LIBRARY_PATH") or "") --- on unload the variable will no longer exist local function remove_system_paths(var) local paths = os.getenv(var) local system_lib_patterns = { @@ -255,8 +254,9 @@ local function remove_system_paths(var) end end end +-- on unload the variable will no longer exist if mode() == "load" then - remove_matching_paths("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH") + remove_system_paths("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH") end -- now we can use pushenv to retain/restore the original value pushenv ("LD_LIBRARY_PATH", os.getenv("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH") or "") From 5fe620ed47649db79243275b65b08fa3a3f2a5ed Mon Sep 17 00:00:00 2001 From: Alan O'Cais Date: Thu, 9 Apr 2026 19:42:22 +0200 Subject: [PATCH 13/15] More tweaks --- .github/workflows/tests_eessi_module.yml | 3 +++ init/modules/EESSI/2023.06.lua | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests_eessi_module.yml b/.github/workflows/tests_eessi_module.yml index c156ca18..0f790821 100644 --- a/.github/workflows/tests_eessi_module.yml +++ b/.github/workflows/tests_eessi_module.yml @@ -338,6 +338,9 @@ jobs: - name: Make sure we are filtering LD_LIBRARY_PATH if necessary run: | + # Initialise Lmod + . /cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}/compat/linux/$(uname -m)/usr/share/Lmod/init/bash + # Make sure we are using the EESSI module file from the repository export MODULEPATH=init/modules diff --git a/init/modules/EESSI/2023.06.lua b/init/modules/EESSI/2023.06.lua index 48b74973..4144281b 100644 --- a/init/modules/EESSI/2023.06.lua +++ b/init/modules/EESSI/2023.06.lua @@ -235,7 +235,7 @@ end -- Filter system paths from LD_LIBRARY_PATH -- Needs to be reversible so first make a copy -append_path ("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH", os.getenv("LD_LIBRARY_PATH") or "") +append_path ("__EESSI_DEFAULT_HOST_LD_LIBRARY_PATH__", os.getenv("LD_LIBRARY_PATH") or "") local function remove_system_paths(var) local paths = os.getenv(var) local system_lib_patterns = { @@ -256,10 +256,10 @@ local function remove_system_paths(var) end -- on unload the variable will no longer exist if mode() == "load" then - remove_system_paths("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH") + remove_system_paths("__EESSI_DEFAULT_HOST_LD_LIBRARY_PATH__") end -- now we can use pushenv to retain/restore the original value -pushenv ("LD_LIBRARY_PATH", os.getenv("EESSI_DEFAULT_HOST_LD_LIBRARY_PATH") or "") +pushenv ("LD_LIBRARY_PATH", os.getenv("__EESSI_DEFAULT_HOST_LD_LIBRARY_PATH__") or "") -- set CURL_CA_BUNDLE on RHEL-based systems ca_bundle_file_rhel = "/etc/pki/tls/certs/ca-bundle.crt" From 45e0c149fb637cf119dc62648ee06cc01c16a09c Mon Sep 17 00:00:00 2001 From: Alan O'Cais Date: Thu, 9 Apr 2026 20:00:11 +0200 Subject: [PATCH 14/15] First make sure it works --- .github/workflows/tests_eessi_module.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/tests_eessi_module.yml b/.github/workflows/tests_eessi_module.yml index 0f790821..3baf2534 100644 --- a/.github/workflows/tests_eessi_module.yml +++ b/.github/workflows/tests_eessi_module.yml @@ -346,6 +346,7 @@ jobs: # Create LD_LIBRARY_PATH to test with export FAKE_PATH=/path/does/not/exist + # export INITIAL_LD_LIBRARY_PATH="/usr/lib:/usr/lib/x86_64-linux-gnu:$FAKE_PATH" export INITIAL_LD_LIBRARY_PATH="/usr/lib:/usr/lib/x86_64-linux-gnu:$FAKE_PATH" export LD_LIBRARY_PATH="$INITIAL_LD_LIBRARY_PATH" module load "EESSI/${{matrix.EESSI_VERSION}}" From cd0b44dc7bc891e5b1b6656ba408757bbb8511ae Mon Sep 17 00:00:00 2001 From: Alan O'Cais Date: Thu, 9 Apr 2026 20:29:35 +0200 Subject: [PATCH 15/15] See if we can fashion a fix --- .github/workflows/tests_eessi_module.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests_eessi_module.yml b/.github/workflows/tests_eessi_module.yml index 3baf2534..8a1b10ed 100644 --- a/.github/workflows/tests_eessi_module.yml +++ b/.github/workflows/tests_eessi_module.yml @@ -346,7 +346,7 @@ jobs: # Create LD_LIBRARY_PATH to test with export FAKE_PATH=/path/does/not/exist - # export INITIAL_LD_LIBRARY_PATH="/usr/lib:/usr/lib/x86_64-linux-gnu:$FAKE_PATH" + export LMOD_CMD="env -u LD_LIBRARY_PATH $LMOD_CMD" # Can't do this in reality export INITIAL_LD_LIBRARY_PATH="/usr/lib:/usr/lib/x86_64-linux-gnu:$FAKE_PATH" export LD_LIBRARY_PATH="$INITIAL_LD_LIBRARY_PATH" module load "EESSI/${{matrix.EESSI_VERSION}}"