From 0412fef7624d1a1acd0146980189c6ac514da008 Mon Sep 17 00:00:00 2001 From: Chris Want Date: Wed, 26 Mar 2025 13:38:15 +0000 Subject: [PATCH 1/2] VTK 9.4.1 --- .../easyconfigs/v/VTK/VTK-9.4.1-GCC-12.3.0.eb | 74 +++++++++++++++++++ .../v/VTK/VTK-9.4.1-gompi-2023a-mpi.eb | 68 +++++++++++++++++ 2 files changed, 142 insertions(+) create mode 100644 easybuild/easyconfigs/v/VTK/VTK-9.4.1-GCC-12.3.0.eb create mode 100644 easybuild/easyconfigs/v/VTK/VTK-9.4.1-gompi-2023a-mpi.eb diff --git a/easybuild/easyconfigs/v/VTK/VTK-9.4.1-GCC-12.3.0.eb b/easybuild/easyconfigs/v/VTK/VTK-9.4.1-GCC-12.3.0.eb new file mode 100644 index 00000000000..f551d0e3a36 --- /dev/null +++ b/easybuild/easyconfigs/v/VTK/VTK-9.4.1-GCC-12.3.0.eb @@ -0,0 +1,74 @@ +easyblock = 'CMakeMake' + +name = 'VTK' +version = '9.4.1' + +homepage = 'http://www.vtk.org' +description = """The Visualization Toolkit (VTK) is an open-source, freely available software system for + 3D computer graphics, image processing and visualization. VTK consists of a C++ class library and several + interpreted interface layers including Tcl/Tk, Java, and Python. VTK supports a wide variety of visualization + algorithms including: scalar, vector, tensor, texture, and volumetric methods; and advanced modeling techniques + such as: implicit modeling, polygon reduction, mesh smoothing, cutting, contouring, and Delaunay triangulation.""" + +toolchain = {'name': 'GCC', 'version': '12.3.0'} + +source_urls = ['https://www.vtk.org/files/release/%(version_major_minor)s'] +sources = [ + SOURCE_TAR_GZ, + '%(name)sData-%(version)s.tar.gz', +] +checksums = [ + {'VTK-9.4.1.tar.gz': 'c253b0c8d002aaf98871c6d0cb76afc4936c301b72358a08d5f3f72ef8bc4529'}, + {'VTKData-9.4.1.tar.gz': '188ef68f3decea56c7218877598ec0a84d838d35ff5d4f688d8867986c743114'}, +] + +multi_deps = { 'Python': ['3.13', '3.12', '3.11'] } + +multi_deps_load_default = False + +modextrapaths = {'EBPYTHONPREFIXES': ['']} + +builddependencies = [('CMake', '3.27.7')] + +dependencies = [ + ('SciPy-Stack', '2024b'), + ('HDF5', '1.14.2'), + ('netCDF', '4.9.2'), +] + +separate_build_dir = True + +configopts = ' '.join([ + # Third party modules + "-DVTK_USE_SYSTEM_LZMA=ON", + "-DVTK_USE_SYSTEM_HDF5=ON", + "-DVTK_USE_SYSTEM_NETCDF=ON", + # Python + "-DVTK_WRAP_PYTHON=ON", + "-DVTK_PYTHON_VERSION=3", + "-DPYTHON_INCLUDE_DIR=$EBROOTPYTHON/include/python%(pyshortver)s", + "-DPYTHON_LIBRARY=$EBROOTPYTHON/lib/libpython%%(pyshortver)s.%s" % SHLIB_EXT, + "-DPython3_EXECUTABLE=$EBROOTPYTHON/bin/python", + # Other + "-DCMAKE_INSTALL_LIBDIR=lib", +]) + +preinstallopts = "export PYTHONPATH=%(installdir)s/lib/python%(pyshortver)s/site-packages:$PYTHONPATH && " + +postinstallcmds = [ + '/cvmfs/soft.computecanada.ca/easybuild/bin/setrpaths.sh --path %(installdir)s/lib --add_path %(installdir)s/lib --any_interpreter', +] + [ + "mkdir -p %(installdir)s/lib/python{py}/site-packages/{dist}-%(version)s.dist-info && echo -e 'Metadata-Version: 2.3\nName: {dist}\nVersion: %(version)s' > %(installdir)s/lib/python{py}/site-packages/{dist}-%(version)s.dist-info/METADATA".format(py=py, dist=name.lower()) + for py in multi_deps['Python'] +] + +sanity_check_paths = { + 'files': ['bin/vtk%s-%%(version_major_minor)s' % x for x in + ['WrapJava', 'ParseJava', 'WrapPythonInit', 'WrapPython', 'WrapHierarchy']] + + ['bin/vtkpython'], + 'dirs': ['lib/python%(pyshortver)s/site-packages/', 'include/vtk-%(version_major_minor)s'], +} + +sanity_check_commands = [('python', "-c 'import %(namelower)s'")] + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/v/VTK/VTK-9.4.1-gompi-2023a-mpi.eb b/easybuild/easyconfigs/v/VTK/VTK-9.4.1-gompi-2023a-mpi.eb new file mode 100644 index 00000000000..d0f40c6fe95 --- /dev/null +++ b/easybuild/easyconfigs/v/VTK/VTK-9.4.1-gompi-2023a-mpi.eb @@ -0,0 +1,68 @@ +easyblock = 'CMakeMake' + +name = 'VTK' +version = '9.4.1' +versionsuffix = '-mpi' + +homepage = 'http://www.vtk.org' +description = """The Visualization Toolkit (VTK) is an open-source, freely available software system for + 3D computer graphics, image processing and visualization. VTK consists of a C++ class library and several + interpreted interface layers including Tcl/Tk, Java, and Python. VTK supports a wide variety of visualization + algorithms including: scalar, vector, tensor, texture, and volumetric methods; and advanced modeling techniques + such as: implicit modeling, polygon reduction, mesh smoothing, cutting, contouring, and Delaunay triangulation.""" + +toolchain = {'name': 'gompi', 'version': '2023a'} +toolchainopts = {'usempi': True} + +source_urls = ['https://www.%(namelower)s.org/files/release/%(version_major_minor)s'] +sources = [ + SOURCE_TAR_GZ, + '%(name)sData-%(version)s.tar.gz', +] +checksums = [ + {'VTK-9.4.1.tar.gz': 'c253b0c8d002aaf98871c6d0cb76afc4936c301b72358a08d5f3f72ef8bc4529'}, + {'VTKData-9.4.1.tar.gz': '188ef68f3decea56c7218877598ec0a84d838d35ff5d4f688d8867986c743114'}, +] + +builddependencies = [ + ('CMake', '3.27.7', '', SYSTEM), +] +dependencies = [ + ('SciPy-Stack', '2024b', '', SYSTEM), + ('HDF5', '1.14.2'), + ('netCDF', '4.9.2'), +] +multi_deps = {'Python': ['3.13', '3.12', '3.11']} + +configopts = "-DVTK_USE_SYSTEM_LZMA=ON -DVTK_USE_SYSTEM_HDF5=ON -DVTK_USE_SYSTEM_NETCDF=ON -DVTK_WRAP_PYTHON=ON -DVTK_PYTHON_VERSION=3 -DPYTHON_INCLUDE_DIR=$EBROOTPYTHON/include/python%(pyshortver)s -DPYTHON_LIBRARY=$EBROOTPYTHON/lib/libpython%(pyshortver)s.so -DPython3_EXECUTABLE=$EBROOTPYTHON/bin/python -DCMAKE_INSTALL_LIBDIR=lib -DVTK_Group_MPI:BOOL=ON" + + +preinstallopts = "export PYTHONPATH=%(installdir)s/lib/python%(pyshortver)s/site-packages:$PYTHONPATH && " + +postinstallcmds = [ + "/cvmfs/soft.computecanada.ca/easybuild/bin/setrpaths.sh --path %(installdir)s/lib --add_path %(installdir)s/lib --any_interpreter", + """mkdir -p %(installdir)s/lib/python3.11/site-packages/%(namelower)s-%(version)s.dist-info && echo -e 'Metadata-Version: 2.3 +Name: %(namelower)s +Version: %(version)s' > %(installdir)s/lib/python3.11/site-packages/%(namelower)s-%(version)s.dist-info/METADATA""", + """mkdir -p %(installdir)s/lib/python3.12/site-packages/%(namelower)s-%(version)s.dist-info && echo -e 'Metadata-Version: 2.3 +Name: %(namelower)s +Version: %(version)s' > %(installdir)s/lib/python3.12/site-packages/%(namelower)s-%(version)s.dist-info/METADATA""", + """mkdir -p %(installdir)s/lib/python3.13/site-packages/%(namelower)s-%(version)s.dist-info && echo -e 'Metadata-Version: 2.3 +Name: %(namelower)s +Version: %(version)s' > %(installdir)s/lib/python3.13/site-packages/%(namelower)s-%(version)s.dist-info/METADATA""", +] +multi_deps_load_default = False + +sanity_check_paths = { + 'files': ['bin/vtkWrapJava-%(version_major_minor)s', 'bin/vtkParseJava-%(version_major_minor)s', 'bin/vtkWrapPythonInit-%(version_major_minor)s', 'bin/vtkWrapPython-%(version_major_minor)s', 'bin/vtkWrapHierarchy-%(version_major_minor)s', 'bin/vtkpython'], + 'dirs': ['lib/python%(pyshortver)s/site-packages/', 'include/%(namelower)s-%(version_major_minor)s', 'lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + ('python', "-c 'import %(namelower)s'"), + """if [ -n "$(find %(installdir)s/lib*/python*/site-packages -name '*.egg*')" ] ; then echo 'Found .egg file, please use pip. See https://github.com/ComputeCanada/software-stack/issues/137' ; exit 1; else exit 0; fi""", +] + +modextrapaths = {'EBPYTHONPREFIXES': ['']} + +moduleclass = 'vis' From 7a729f7cb0f6c5b0a07a79842b3e9cb18d351204 Mon Sep 17 00:00:00 2001 From: Charles Coulombe Date: Thu, 27 Mar 2025 12:32:09 -0400 Subject: [PATCH 2/2] Refactored a bit. Move deps to build deps. Use Numpy only --- .../easyconfigs/v/VTK/VTK-9.4.1-GCC-12.3.0.eb | 25 ++++------ .../v/VTK/VTK-9.4.1-gompi-2023a-mpi.eb | 50 ++++++++++--------- 2 files changed, 38 insertions(+), 37 deletions(-) diff --git a/easybuild/easyconfigs/v/VTK/VTK-9.4.1-GCC-12.3.0.eb b/easybuild/easyconfigs/v/VTK/VTK-9.4.1-GCC-12.3.0.eb index f551d0e3a36..7a808146dd4 100644 --- a/easybuild/easyconfigs/v/VTK/VTK-9.4.1-GCC-12.3.0.eb +++ b/easybuild/easyconfigs/v/VTK/VTK-9.4.1-GCC-12.3.0.eb @@ -22,20 +22,16 @@ checksums = [ {'VTKData-9.4.1.tar.gz': '188ef68f3decea56c7218877598ec0a84d838d35ff5d4f688d8867986c743114'}, ] -multi_deps = { 'Python': ['3.13', '3.12', '3.11'] } - -multi_deps_load_default = False - -modextrapaths = {'EBPYTHONPREFIXES': ['']} - -builddependencies = [('CMake', '3.27.7')] - -dependencies = [ - ('SciPy-Stack', '2024b'), +builddependencies = [ + ('CMake', '3.27.7'), + ('numpy', '2.1.1'), ('HDF5', '1.14.2'), ('netCDF', '4.9.2'), ] +multi_deps = { 'Python': ['3.13', '3.12', '3.11'] } +multi_deps_load_default = False + separate_build_dir = True configopts = ' '.join([ @@ -58,17 +54,18 @@ preinstallopts = "export PYTHONPATH=%(installdir)s/lib/python%(pyshortver)s/site postinstallcmds = [ '/cvmfs/soft.computecanada.ca/easybuild/bin/setrpaths.sh --path %(installdir)s/lib --add_path %(installdir)s/lib --any_interpreter', ] + [ - "mkdir -p %(installdir)s/lib/python{py}/site-packages/{dist}-%(version)s.dist-info && echo -e 'Metadata-Version: 2.3\nName: {dist}\nVersion: %(version)s' > %(installdir)s/lib/python{py}/site-packages/{dist}-%(version)s.dist-info/METADATA".format(py=py, dist=name.lower()) + "mkdir -p %(installdir)s/lib/python{py}/site-packages/{dist}-%(version)s.dist-info && echo -e 'Metadata-Version: 2.4\nName: {dist}\nVersion: %(version)s' > %(installdir)s/lib/python{py}/site-packages/{dist}-%(version)s.dist-info/METADATA".format(py=py, dist=name.lower()) for py in multi_deps['Python'] ] sanity_check_paths = { - 'files': ['bin/vtk%s-%%(version_major_minor)s' % x for x in - ['WrapJava', 'ParseJava', 'WrapPythonInit', 'WrapPython', 'WrapHierarchy']] + + 'files': ['bin/vtk%s-%%(version_major_minor)s' % x for x in ['WrapJava', 'ParseJava', 'WrapPythonInit', 'WrapPython', 'WrapHierarchy']] + ['bin/vtkpython'], 'dirs': ['lib/python%(pyshortver)s/site-packages/', 'include/vtk-%(version_major_minor)s'], } -sanity_check_commands = [('python', "-c 'import %(namelower)s'")] +sanity_check_commands = ["module load scipy-stack && python -c 'import %(namelower)s'"] + +modextrapaths = {'EBPYTHONPREFIXES': ['']} moduleclass = 'vis' diff --git a/easybuild/easyconfigs/v/VTK/VTK-9.4.1-gompi-2023a-mpi.eb b/easybuild/easyconfigs/v/VTK/VTK-9.4.1-gompi-2023a-mpi.eb index d0f40c6fe95..224dc473467 100644 --- a/easybuild/easyconfigs/v/VTK/VTK-9.4.1-gompi-2023a-mpi.eb +++ b/easybuild/easyconfigs/v/VTK/VTK-9.4.1-gompi-2023a-mpi.eb @@ -25,43 +25,47 @@ checksums = [ ] builddependencies = [ - ('CMake', '3.27.7', '', SYSTEM), -] -dependencies = [ - ('SciPy-Stack', '2024b', '', SYSTEM), + ('CMake', '3.31.1', '', SYSTEM), + ('numpy', '2.1.1', '', SYSTEM), ('HDF5', '1.14.2'), ('netCDF', '4.9.2'), ] -multi_deps = {'Python': ['3.13', '3.12', '3.11']} -configopts = "-DVTK_USE_SYSTEM_LZMA=ON -DVTK_USE_SYSTEM_HDF5=ON -DVTK_USE_SYSTEM_NETCDF=ON -DVTK_WRAP_PYTHON=ON -DVTK_PYTHON_VERSION=3 -DPYTHON_INCLUDE_DIR=$EBROOTPYTHON/include/python%(pyshortver)s -DPYTHON_LIBRARY=$EBROOTPYTHON/lib/libpython%(pyshortver)s.so -DPython3_EXECUTABLE=$EBROOTPYTHON/bin/python -DCMAKE_INSTALL_LIBDIR=lib -DVTK_Group_MPI:BOOL=ON" +multi_deps = {'Python': ['3.13', '3.12', '3.11']} +multi_deps_load_default = False +configopts = " ".join([ + # Third party modules + "-DVTK_USE_SYSTEM_LZMA=ON", + "-DVTK_USE_SYSTEM_HDF5=ON", + "-DVTK_USE_SYSTEM_NETCDF=ON", + "-DVTK_WRAP_PYTHON=ON", + # Python + "-DVTK_PYTHON_VERSION=3", + "-DPYTHON_INCLUDE_DIR=$EBROOTPYTHON/include/python%(pyshortver)s", + "-DPYTHON_LIBRARY=$EBROOTPYTHON/lib/libpython%(pyshortver)s.so", + "-DPython3_EXECUTABLE=$EBROOTPYTHON/bin/python", + # Other + "-DCMAKE_INSTALL_LIBDIR=lib ", + "-DVTK_Group_MPI:BOOL=ON", +]) preinstallopts = "export PYTHONPATH=%(installdir)s/lib/python%(pyshortver)s/site-packages:$PYTHONPATH && " postinstallcmds = [ - "/cvmfs/soft.computecanada.ca/easybuild/bin/setrpaths.sh --path %(installdir)s/lib --add_path %(installdir)s/lib --any_interpreter", - """mkdir -p %(installdir)s/lib/python3.11/site-packages/%(namelower)s-%(version)s.dist-info && echo -e 'Metadata-Version: 2.3 -Name: %(namelower)s -Version: %(version)s' > %(installdir)s/lib/python3.11/site-packages/%(namelower)s-%(version)s.dist-info/METADATA""", - """mkdir -p %(installdir)s/lib/python3.12/site-packages/%(namelower)s-%(version)s.dist-info && echo -e 'Metadata-Version: 2.3 -Name: %(namelower)s -Version: %(version)s' > %(installdir)s/lib/python3.12/site-packages/%(namelower)s-%(version)s.dist-info/METADATA""", - """mkdir -p %(installdir)s/lib/python3.13/site-packages/%(namelower)s-%(version)s.dist-info && echo -e 'Metadata-Version: 2.3 -Name: %(namelower)s -Version: %(version)s' > %(installdir)s/lib/python3.13/site-packages/%(namelower)s-%(version)s.dist-info/METADATA""", + '/cvmfs/soft.computecanada.ca/easybuild/bin/setrpaths.sh --path %(installdir)s/lib --add_path %(installdir)s/lib --any_interpreter', +] + [ + "mkdir -p %(installdir)s/lib/python{py}/site-packages/{dist}-%(version)s.dist-info && echo -e 'Metadata-Version: 2.4\nName: {dist}\nVersion: %(version)s' > %(installdir)s/lib/python{py}/site-packages/{dist}-%(version)s.dist-info/METADATA".format(py=py, dist=name.lower()) + for py in multi_deps['Python'] ] -multi_deps_load_default = False sanity_check_paths = { - 'files': ['bin/vtkWrapJava-%(version_major_minor)s', 'bin/vtkParseJava-%(version_major_minor)s', 'bin/vtkWrapPythonInit-%(version_major_minor)s', 'bin/vtkWrapPython-%(version_major_minor)s', 'bin/vtkWrapHierarchy-%(version_major_minor)s', 'bin/vtkpython'], - 'dirs': ['lib/python%(pyshortver)s/site-packages/', 'include/%(namelower)s-%(version_major_minor)s', 'lib/python%(pyshortver)s/site-packages'], + 'files': ['bin/vtk%s-%%(version_major_minor)s' % x for x in ['WrapJava', 'ParseJava', 'WrapPythonInit', 'WrapPython', 'WrapHierarchy']] + + ['bin/vtkpython'], + 'dirs': ['lib/python%(pyshortver)s/site-packages/', 'include/vtk-%(version_major_minor)s'], } -sanity_check_commands = [ - ('python', "-c 'import %(namelower)s'"), - """if [ -n "$(find %(installdir)s/lib*/python*/site-packages -name '*.egg*')" ] ; then echo 'Found .egg file, please use pip. See https://github.com/ComputeCanada/software-stack/issues/137' ; exit 1; else exit 0; fi""", -] +sanity_check_commands = ["module load scipy-stack && python -c 'import %(namelower)s'"] modextrapaths = {'EBPYTHONPREFIXES': ['']}