From 0584552b14d57635658749f30a3eedb49e9c38c1 Mon Sep 17 00:00:00 2001 From: Pavel Tomanek <99190809+pavelToman@users.noreply.github.com> Date: Wed, 16 Sep 2026 15:45:55 +0200 Subject: [PATCH 1/2] Add Visit preconfigure hook for zlib --- eb_hooks.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/eb_hooks.py b/eb_hooks.py index d8c8db30..95c9cbc5 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -1670,6 +1670,22 @@ def pre_configure_hook_cmake_system(self, *args, **kwargs): raise EasyBuildError("CMake-specific hook triggered for non-CMake easyconfig?!") +def pre_configure_hook_visit(self, *args, **kwargs): + """ + Pre-configure hook for Visit + - make sure that zlib is found in compat layer + """ + if self.name == 'Visit': + compat_layer_topdir = get_eessi_envvar('EESSI_EPREFIX') + configopts = self.cfg['configopts'] + self.cfg['configopts'] = configopts.replace( + '$EBROOTZLIB', + os.path.join(compat_layer_topdir, 'usr'), + ) + else: + raise EasyBuildError("Visit-specific hook triggered for non-Visit easyconfig?!") + + def pre_configure_hook_Zoltan(self, *args, **kwargs): """ Pre-configure hook for Zoltan to filter out ParMETIS configure options, @@ -2413,6 +2429,7 @@ def post_easyblock_hook(self, *args, **kwargs): 'ROCm-LLVM': pre_configure_hook_llvm, 'Score-P': pre_configure_hook_score_p, 'SymEngine': pre_configure_hook_symengine, + 'Visit': pre_configure_hook_visit, 'WRF': pre_configure_hook_wrf_aarch64, 'Zoltan': pre_configure_hook_Zoltan, } From 7697c556a4a8fc5683aa6cfa2b37a5d13b550e99 Mon Sep 17 00:00:00 2001 From: Pavel Tomanek <99190809+pavelToman@users.noreply.github.com> Date: Wed, 16 Sep 2026 16:06:38 +0200 Subject: [PATCH 2/2] Update eb_hooks.py --- eb_hooks.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/eb_hooks.py b/eb_hooks.py index 95c9cbc5..a47e8963 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -1676,12 +1676,19 @@ def pre_configure_hook_visit(self, *args, **kwargs): - make sure that zlib is found in compat layer """ if self.name == 'Visit': - compat_layer_topdir = get_eessi_envvar('EESSI_EPREFIX') - configopts = self.cfg['configopts'] - self.cfg['configopts'] = configopts.replace( - '$EBROOTZLIB', - os.path.join(compat_layer_topdir, 'usr'), - ) + if 'zlib' in build_option('filter_deps'): + compat_layer_topdir = get_eessi_envvar('EESSI_EPREFIX') + zlib_dir = os.path.join(compat_layer_topdir, 'usr') + zlib_opt = f'-DVISIT_ZLIB_DIR={zlib_dir}' + + if '-DVISIT_ZLIB_DIR' in self.cfg['configopts']: + self.cfg['configopts'] = re.sub( + r'-DVISIT_ZLIB_DIR=\S*', + zlib_opt, + self.cfg['configopts'], + ) + else: + self.cfg.update('configopts', zlib_opt) else: raise EasyBuildError("Visit-specific hook triggered for non-Visit easyconfig?!")