diff --git a/Custom_EasyBlocks/juliapackage.py b/Custom_EasyBlocks/juliapackage.py index 58cf4cd4b285828e0e936c14f9c31a1806565a50..f0c334623cb0b3bfd1e96f732e90edaa9a406b85 100644 --- a/Custom_EasyBlocks/juliapackage.py +++ b/Custom_EasyBlocks/juliapackage.py @@ -147,7 +147,10 @@ class JuliaPackage(ExtensionEasyBlock): Custom sanity check for Julia packages """ #NOTE: we don't use Pkg.status with arguments as only supported for Julia >=v1.1 - cmd = "unset EBJULIA_USER_DEPOT_PATH && unset EBJULIA_ADMIN_DEPOT_PATH && export JULIA_DEPOT_PATH=%s && export JULIA_PROJECT=%s && julia --eval 'using Pkg; Pkg.status()'" % (self.depot, self.projectdir) + # if juliaver >= 1.1: + cmd = "unset EBJULIA_USER_DEPOT_PATH && unset EBJULIA_ADMIN_DEPOT_PATH && export JULIA_DEPOT_PATH=%s && export JULIA_PROJECT=%s && julia --eval 'using Pkg; Pkg.status(\"%s\")'" % (self.depot, self.projectdir, self.package_name) + # else: + # cmd = "unset EBJULIA_USER_DEPOT_PATH && unset EBJULIA_ADMIN_DEPOT_PATH && export JULIA_DEPOT_PATH=%s && export JULIA_PROJECT=%s && julia --eval 'using Pkg; Pkg.status()'" % (self.depot, self.projectdir) cmdttdouterr, _ = run_cmd(cmd, log_all=True, simple=False, regexp=False) self.log.error("Julia package %s sanity returned %s" % (self.name, cmdttdouterr)) return len(parse_log_for_error(cmdttdouterr, regExp="%s\s+v%s" % (self.package_name, self.version))) != 0 diff --git a/Golden_Repo/a/ACTC/ACTC-1.1-GCCcore-11.3.0.eb b/Golden_Repo/a/ACTC/ACTC-1.1-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..12bca02e2a66855033fd206a20568247765746a4 --- /dev/null +++ b/Golden_Repo/a/ACTC/ACTC-1.1-GCCcore-11.3.0.eb @@ -0,0 +1,35 @@ +easyblock = 'MakeCp' + +name = 'ACTC' +version = '1.1' + +homepage = 'https://sourceforge.net/projects/actc' +description = "ACTC converts independent triangles into triangle strips or fans." + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['3a1303291629b9de6008c3c9d7b020a4b854802408fb3f8222ec492808c8b44d'] + +builddependencies = [('binutils', '2.38')] + +buildopts = 'CC="$CC" CFLAGS="$CFLAGS"' + +files_to_copy = [ + (['tcsample', 'tctest', 'tctest2'], 'bin'), + (['tc.h'], 'include/ac'), + (['libactc.a'], 'lib'), + 'COPYRIGHT', 'manual.html', 'prims.gif', 'README', +] + +sanity_check_paths = { + 'files': ['bin/tctest', 'bin/tctest2', 'bin/tcsample', 'include/ac/tc.h', 'lib/libactc.a', + 'COPYRIGHT', 'manual.html', 'prims.gif', 'README'], + 'dirs': [], +} + +modextrapaths = {'CPATH': 'include/ac'} + +moduleclass = 'lib' diff --git a/Golden_Repo/a/ADIOS2/ADIOS2-2.8.3-foss-2022a.eb b/Golden_Repo/a/ADIOS2/ADIOS2-2.8.3-foss-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..d435796303cea7959ac8b3213328a4d1109f768d --- /dev/null +++ b/Golden_Repo/a/ADIOS2/ADIOS2-2.8.3-foss-2022a.eb @@ -0,0 +1,163 @@ +easyblock = 'CMakeMake' + +name = 'ADIOS2' +version = '2.8.3' + +homepage = 'https://www.olcf.ornl.gov/center-projects/adios/' +description = """The Adaptable IO System (ADIOS) provides a simple, +flexible way for scientists to describe the data in their code that may +need to be written, read, or processed outside of the running +simulation.""" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'pic': True, 'usempi': False} + +github_account = 'ornladios' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = [ + {'v2.8.3.tar.gz': '4906ab1899721c41dd918dddb039ba2848a1fb0cf84f3a563a1179b9d6ee0d9f'}, +] + +builddependencies = [ + ('CMake', '3.23.1'), + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-Stack', '2022a', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('zlib', '1.2.12'), + ('bzip2', '1.0.8'), + ('Szip', '2.1.1'), + ('SZ', '2.1.12.5'), + ('zfp', '0.5.5'), + ('Blosc', '1.21.3'), + ('HDF5', '1.12.2'), + ('mpi4py', '3.1.4'), + ('libpng', '1.6.37'), + ('ZeroMQ', '4.3.4'), + ('nlohmann_json', '3.10.5'), + ('pybind11', '2.9.2'), +] + +separate_build_dir = True + +configopts = "-DCMAKE_VERBOSE_MAKEFILE=ON " + +configopts += "-DADIOS2_USE_Fortran=ON " +configopts += "-DADIOS2_USE_MPI=ON " + +# Examples/Testing +configopts += "-DADIOS2_BUILD_EXAMPLES=OFF " +configopts += "-DADIOS2_BUILD_EXAMPLES_EXPERIMENTAL=OFF " +configopts += "-DADIOS2_BUILD_TESTING=OFF " + +# Compression +configopts += "-DADIOS2_USE_BZip2=ON " +configopts += "-DBZIP2_DIR=${EBROOTBZIP2} " + +configopts += "-DADIOS2_USE_PNG=ON " +configopts += "-DPNG_DIR=${EBROOTLIBPNG} " + +configopts += "-DADIOS2_USE_SZ=ON " +configopts += "-DSZ_DIR=${EBROOTSZ} " + +configopts += "-DADIOS2_USE_ZFP=ON " +configopts += "-DZFP_DIR=${EBROOTZFP} " + +configopts += "-DADIOS2_USE_Blosc=ON " +configopts += "-DBLOSC_DIR=${EBROOTBLOSC} " + +configopts += "-DZLIB_DIR=${EBROOTZLIB} " +configopts += "-DADIOS2_USE_MGARD=OFF " + +# HDF5 +configopts += "-DADIOS2_USE_HDF5=ON " +configopts += "-DHDF5_DIR=${EBROOTHDF5} " + +# ZeroMQ +configopts += "-DADIOS2_USE_ZeroMQ=ON " +configopts += "-DZeroMQ_DIR=${EBROOTZEROMQ} " + +# Python +configopts += "-DADIOS2_USE_Python=ON " +configopts += "-DPython_DIR=${EBROOTPYTHON} " + +# System Virtual Shared Memory +configopts += "-DADIOS2_USE_SysVShMem=ON " + +# Strong Staging Coupler +# https://adios2.readthedocs.io/en/latest/engines/engines.html#ssc-strong-staging-coupler +configopts += "-DADIOS2_USE_SSC=ON " + +# Sustainable Staging Transport +# https://adios2.readthedocs.io/en/latest/engines/engines.html#sst-sustainable-staging-transport +configopts += "-DADIOS2_USE_SST=ON " +# Can optionally use LibFabric for RDMA transport: if -DLIBFABRIC_ROOT=<path> is set. + +# DataMan +# https://adios2.readthedocs.io/en/latest/engines/engines.html#dataman-for-wide-area-network-data-staging +configopts += "-DADIOS2_USE_DataMan=ON " + +# DataSpaces (mind. version 1.8) +configopts += "-DADIOS2_USE_DataSpaces=OFF " + +# external libs +configopts += "-DADIOS2_USE_EXTERNAL_PYBIND11=ON " +configopts += "-Dpybind11_DIR=${EBROOTPYBIND11} " +configopts += "-DADIOS2_USE_EXTERNAL_NLOHMANN_JSON=ON " +configopts += "-Dnlohmann_json_DIR=${EBROOTNLOHMANNMINJSON} " + +# more options +configopts += "-DADIOS2_USE_IME=OFF " +configopts += "-DADIOS2_USE_Profiling=OFF " +configopts += "-DADIOS2_USE_Table=OFF " +# configopts += "-DADIOS2_USE_Endian_Reverse=ON " + +runtest = False + +# create pkgconfig files +postinstallcmds = [ + 'ln -s %(installdir)s/lib64 %(installdir)s/lib', + 'mkdir %(installdir)s/lib/pkgconfig', + """echo -e "Name: adios2 +Description: ADIOS2 I/O library +Version: %(version)s +Requires: bzip2, zfp, sz, libpng, blosc +Libs: $(%(installdir)s/bin/adios2-config --c-libs) +Cflags: $(%(installdir)s/bin/adios2-config --c-flags)" > %(installdir)s/lib/pkgconfig/adios2.pc""", + """echo -e "Name: adios2_cxx +Description: ADIOS2 I/O library (C++) +Version: %(version)s +Libs: $(%(installdir)s/bin/adios2-config --cxx-libs) +Cflags: $(%(installdir)s/bin/adios2-config --cxx-flags)" > %(installdir)s/lib/pkgconfig/adios2_cxx.pc""", + """echo -e "Name: adios2_f +Description: ADIOS2 I/O library (Fortran) +Version: %(version)s +Libs: $(%(installdir)s/bin/adios2-config --fortran-libs) +Cflags: $(%(installdir)s/bin/adios2-config --fortran-flags)" > %(installdir)s/lib/pkgconfig/adios2_f.pc""", +] + +sanity_check_paths = { + 'files': [ + 'bin/adios2-config', 'bin/bpls', 'bin/bp4dbg', + 'include/adios2.h', 'include/adios2_c.h', 'include/adios2/fortran/adios2.mod', + 'lib64/libadios2_core.so', 'lib64/libadios2_core_mpi.so', 'lib64/cmake/adios2/adios2-config.cmake', + 'lib64/libadios2_c.so', 'lib64/libadios2_c_mpi.so', 'lib64/libadios2_cxx11.so', + 'lib64/libadios2_cxx11_mpi.so', 'lib64/libadios2_fortran.so', 'lib64/libadios2_fortran_mpi.so' + ], + 'dirs': ['bin', 'include', 'lib'] +} + +# modextrapaths = { +# 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages', +# } + +modextravars = { + 'ADIOS2_PKGCONFIG_LIBS': 'adios2', + 'ADIOS2_CXX_PKGCONFIG_LIBS': 'adios2_cxx', + 'ADIOS2_FORTRAN_PKGCONFIG_LIBS': 'adios2_f', +} + +moduleclass = 'data' diff --git a/Golden_Repo/a/ADIOS2/ADIOS2-2.8.3-gpsmkl-2022a.eb b/Golden_Repo/a/ADIOS2/ADIOS2-2.8.3-gpsmkl-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..0fc2729db8570e1eedcd20fbf1d8529fc5f3ab9d --- /dev/null +++ b/Golden_Repo/a/ADIOS2/ADIOS2-2.8.3-gpsmkl-2022a.eb @@ -0,0 +1,163 @@ +easyblock = 'CMakeMake' + +name = 'ADIOS2' +version = '2.8.3' + +homepage = 'https://www.olcf.ornl.gov/center-projects/adios/' +description = """The Adaptable IO System (ADIOS) provides a simple, +flexible way for scientists to describe the data in their code that may +need to be written, read, or processed outside of the running +simulation.""" + +toolchain = {'name': 'gpsmkl', 'version': '2022a'} +toolchainopts = {'pic': True, 'usempi': False} + +github_account = 'ornladios' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = [ + {'v2.8.3.tar.gz': '4906ab1899721c41dd918dddb039ba2848a1fb0cf84f3a563a1179b9d6ee0d9f'}, +] + +builddependencies = [ + ('CMake', '3.23.1'), + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-Stack', '2022a', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('zlib', '1.2.12'), + ('bzip2', '1.0.8'), + ('Szip', '2.1.1'), + ('SZ', '2.1.12.5'), + ('zfp', '0.5.5'), + ('Blosc', '1.21.3'), + ('HDF5', '1.12.2'), + ('mpi4py', '3.1.4'), + ('libpng', '1.6.37'), + ('ZeroMQ', '4.3.4'), + ('nlohmann_json', '3.10.5'), + ('pybind11', '2.9.2'), +] + +separate_build_dir = True + +configopts = "-DCMAKE_VERBOSE_MAKEFILE=ON " + +configopts += "-DADIOS2_USE_Fortran=ON " +configopts += "-DADIOS2_USE_MPI=ON " + +# Examples/Testing +configopts += "-DADIOS2_BUILD_EXAMPLES=OFF " +configopts += "-DADIOS2_BUILD_EXAMPLES_EXPERIMENTAL=OFF " +configopts += "-DADIOS2_BUILD_TESTING=OFF " + +# Compression +configopts += "-DADIOS2_USE_BZip2=ON " +configopts += "-DBZIP2_DIR=${EBROOTBZIP2} " + +configopts += "-DADIOS2_USE_PNG=ON " +configopts += "-DPNG_DIR=${EBROOTLIBPNG} " + +configopts += "-DADIOS2_USE_SZ=ON " +configopts += "-DSZ_DIR=${EBROOTSZ} " + +configopts += "-DADIOS2_USE_ZFP=ON " +configopts += "-DZFP_DIR=${EBROOTZFP} " + +configopts += "-DADIOS2_USE_Blosc=ON " +configopts += "-DBLOSC_DIR=${EBROOTBLOSC} " + +configopts += "-DZLIB_DIR=${EBROOTZLIB} " +configopts += "-DADIOS2_USE_MGARD=OFF " + +# HDF5 +configopts += "-DADIOS2_USE_HDF5=ON " +configopts += "-DHDF5_DIR=${EBROOTHDF5} " + +# ZeroMQ +configopts += "-DADIOS2_USE_ZeroMQ=ON " +configopts += "-DZeroMQ_DIR=${EBROOTZEROMQ} " + +# Python +configopts += "-DADIOS2_USE_Python=ON " +configopts += "-DPython_DIR=${EBROOTPYTHON} " + +# System Virtual Shared Memory +configopts += "-DADIOS2_USE_SysVShMem=ON " + +# Strong Staging Coupler +# https://adios2.readthedocs.io/en/latest/engines/engines.html#ssc-strong-staging-coupler +configopts += "-DADIOS2_USE_SSC=ON " + +# Sustainable Staging Transport +# https://adios2.readthedocs.io/en/latest/engines/engines.html#sst-sustainable-staging-transport +configopts += "-DADIOS2_USE_SST=ON " +# Can optionally use LibFabric for RDMA transport: if -DLIBFABRIC_ROOT=<path> is set. + +# DataMan +# https://adios2.readthedocs.io/en/latest/engines/engines.html#dataman-for-wide-area-network-data-staging +configopts += "-DADIOS2_USE_DataMan=ON " + +# DataSpaces (mind. version 1.8) +configopts += "-DADIOS2_USE_DataSpaces=OFF " + +# external libs +configopts += "-DADIOS2_USE_EXTERNAL_PYBIND11=ON " +configopts += "-Dpybind11_DIR=${EBROOTPYBIND11} " +configopts += "-DADIOS2_USE_EXTERNAL_NLOHMANN_JSON=ON " +configopts += "-Dnlohmann_json_DIR=${EBROOTNLOHMANNMINJSON} " + +# more options +configopts += "-DADIOS2_USE_IME=OFF " +configopts += "-DADIOS2_USE_Profiling=OFF " +configopts += "-DADIOS2_USE_Table=OFF " +# configopts += "-DADIOS2_USE_Endian_Reverse=ON " + +runtest = False + +# create pkgconfig files +postinstallcmds = [ + 'ln -s %(installdir)s/lib64 %(installdir)s/lib', + 'mkdir %(installdir)s/lib/pkgconfig', + """echo -e "Name: adios2 +Description: ADIOS2 I/O library +Version: %(version)s +Requires: bzip2, zfp, sz, libpng, blosc +Libs: $(%(installdir)s/bin/adios2-config --c-libs) +Cflags: $(%(installdir)s/bin/adios2-config --c-flags)" > %(installdir)s/lib/pkgconfig/adios2.pc""", + """echo -e "Name: adios2_cxx +Description: ADIOS2 I/O library (C++) +Version: %(version)s +Libs: $(%(installdir)s/bin/adios2-config --cxx-libs) +Cflags: $(%(installdir)s/bin/adios2-config --cxx-flags)" > %(installdir)s/lib/pkgconfig/adios2_cxx.pc""", + """echo -e "Name: adios2_f +Description: ADIOS2 I/O library (Fortran) +Version: %(version)s +Libs: $(%(installdir)s/bin/adios2-config --fortran-libs) +Cflags: $(%(installdir)s/bin/adios2-config --fortran-flags)" > %(installdir)s/lib/pkgconfig/adios2_f.pc""", +] + +sanity_check_paths = { + 'files': [ + 'bin/adios2-config', 'bin/bpls', 'bin/bp4dbg', + 'include/adios2.h', 'include/adios2_c.h', 'include/adios2/fortran/adios2.mod', + 'lib64/libadios2_core.so', 'lib64/libadios2_core_mpi.so', 'lib64/cmake/adios2/adios2-config.cmake', + 'lib64/libadios2_c.so', 'lib64/libadios2_c_mpi.so', 'lib64/libadios2_cxx11.so', + 'lib64/libadios2_cxx11_mpi.so', 'lib64/libadios2_fortran.so', 'lib64/libadios2_fortran_mpi.so' + ], + 'dirs': ['bin', 'include', 'lib'] +} + +# modextrapaths = { +# 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages', +# } + +modextravars = { + 'ADIOS2_PKGCONFIG_LIBS': 'adios2', + 'ADIOS2_CXX_PKGCONFIG_LIBS': 'adios2_cxx', + 'ADIOS2_FORTRAN_PKGCONFIG_LIBS': 'adios2_f', +} + +moduleclass = 'data' diff --git a/Golden_Repo/a/ARPACK-NG/ARPACK-NG-3.8.0-foss-2022a.eb b/Golden_Repo/a/ARPACK-NG/ARPACK-NG-3.8.0-foss-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..639db5be50e738c04e224e2b2576f2c0dee0dd7b --- /dev/null +++ b/Golden_Repo/a/ARPACK-NG/ARPACK-NG-3.8.0-foss-2022a.eb @@ -0,0 +1,60 @@ +easyblock = 'ConfigureMake' + +name = 'ARPACK-NG' + +version = '3.8.0' + +homepage = 'http://forge.scilab.org/index.php/p/arpack-ng/' + +description = """ARPACK-NG is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems. + +libarpack.a and libparpack.a have been installed in $EBROOTARPACKMINNG. + +In addition the variables ARPACK_ROOT, ARPACK_LIB, PARPACK_ROOT, and PARPACK_LIB are set. + +""" + +examples = 'Examples can be found in $ARPACK_ROOT/EXAMPLES' + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'opt': True, 'optarch': True, 'pic': True, 'usempi': True} +source_urls = ['https://github.com/opencollab/arpack-ng/releases/tag/'] +sources = ["%(version)s.tar.gz"] + +patches = [ + 'ARPACK-NG-%(version)s-install-arpack-examples_gpsmkl.patch' +] + +checksums = [ + 'ada5aeb3878874383307239c9235b716a8a170c6d096a6625bfd529844df003d', # 3.8.0.tar.gz + # ARPACK-NG-3.8.0-install-arpack-examples_gpsmkl.patch + 'edf121fcaf5f2bf17c8395d5c4aae35d106eb3746b29561927f53ed6d3769707', +] + +builddependencies = [ + ('Autotools', '20220317'), + ('pkgconf', '1.8.0') +] + +preconfigopts = 'sh bootstrap &&' + +configopts = '--enable-mpi --with-pic --enable-static --with-blas="$LIBBLAS" --with-lapack="$LIBLAPACK"' + +postinstallcmds = [ + "cp -r EXAMPLES %(installdir)s/EXAMPLES", + "cp -r PARPACK/EXAMPLES/MPI %(installdir)s/EXAMPLES/PARPACK", +] + +sanity_check_paths = { + 'files': ["lib/libarpack.a", "lib/libarpack.%s" % SHLIB_EXT, "lib/libparpack.a", "lib/libparpack.%s" % SHLIB_EXT], + 'dirs': [] +} + +modextravars = { + 'ARPACK_ROOT': '%(installdir)s', + 'PARPACK_ROOT': '%(installdir)s', + 'ARPACK_LIB': '%(installdir)s/lib', + 'PARPACK_LIB': '%(installdir)s/lib' +} + +moduleclass = 'numlib' diff --git a/Golden_Repo/a/ARPACK-NG/ARPACK-NG-3.8.0-gcccoremkl-11.3.0-2022.1.0-nompi.eb b/Golden_Repo/a/ARPACK-NG/ARPACK-NG-3.8.0-gcccoremkl-11.3.0-2022.1.0-nompi.eb new file mode 100644 index 0000000000000000000000000000000000000000..5dbaa878d3512cbce6ca945aa68e9475c27ab265 --- /dev/null +++ b/Golden_Repo/a/ARPACK-NG/ARPACK-NG-3.8.0-gcccoremkl-11.3.0-2022.1.0-nompi.eb @@ -0,0 +1,44 @@ +easyblock = 'ConfigureMake' +name = 'ARPACK-NG' +version = '3.8.0' +versionsuffix = '-nompi' +homepage = 'http://forge.scilab.org/index.php/p/arpack-ng/' + +description = """ARPACK-NG is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems. + +libarpack.a has been installed in $EBROOTARPACKMINNG. + +""" + +toolchain = {'name': 'gcccoremkl', 'version': '11.3.0-2022.1.0'} + +toolchainopts = {'opt': True, 'optarch': True, 'pic': True} +source_urls = ['https://github.com/opencollab/arpack-ng/archive/'] +sources = ["%(version)s.tar.gz"] + +checksums = ['ada5aeb3878874383307239c9235b716a8a170c6d096a6625bfd529844df003d'] + +builddependencies = [ + ('binutils', '2.38'), + ('Autotools', '20220317'), + ('pkgconf', '1.8.0') +] + +# We hide it since this should be used just for Jupyter and the MPI version should be preferred for normal cases + +hidden = True + +preconfigopts = 'sh bootstrap &&' +configopts = '--with-pic --with-blas="$LIBBLAS" --with-lapack="$LIBLAPACK"' + +sanity_check_paths = { + 'files': ["lib/libarpack.%s" % SHLIB_EXT, ], + 'dirs': [] +} + +modextravars = { + 'ARPACK_ROOT': '%(installdir)s', + 'ARPACK_LIB': '%(installdir)s/lib', +} + +moduleclass = 'numlib' diff --git a/Golden_Repo/a/ARPACK-NG/ARPACK-NG-3.8.0-install-arpack-examples.patch b/Golden_Repo/a/ARPACK-NG/ARPACK-NG-3.8.0-install-arpack-examples.patch new file mode 100644 index 0000000000000000000000000000000000000000..8ec3b0762eea851e0e27c6c0f1c003a43ae8fefb --- /dev/null +++ b/Golden_Repo/a/ARPACK-NG/ARPACK-NG-3.8.0-install-arpack-examples.patch @@ -0,0 +1,538 @@ +--- arpack-ng-3.8.0/PARPACK_CHANGES 2021-06-30 09:57:39.220219000 +0200 ++++ arpack-ng-3.8.0-ok/PARPACK_CHANGES 2021-06-30 10:25:30.148960874 +0200 +@@ -334,4 +334,6 @@ + 36. 09/18/2016 p*apps.f and p*aitr.f contain condition to fetch machine epsilon. + When different p*aupd call use communicator with different number of CPU these + conditions cause deadlock. Variables inside conditions are moved to global +- to be reset each first iteration +\ No newline at end of file ++ to be reset each first iteration ++ ++ +--- arpack-ng-3.8.0/EXAMPLES/BAND/Makefile_band_intel 1970-01-01 01:00:00.000000000 +0100 ++++ arpack-ng-3.8.0-ok/EXAMPLES/BAND/Makefile_band_intel 2021-06-30 10:36:04.492823000 +0200 +@@ -0,0 +1,159 @@ ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++# ++CC = mpicc ++CFLAGS = -g -O2 ++CPP = mpicc -E ++CPPFLAGS = ++ ++F77 = mpif77 ++FFLAGS = -g -O2 ++F77LD = $(F77) ++FGREP = /bin/grep -F ++ ++LAPACK_LIBS = -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -liomp5 -lpthread ++ ++ARPACKLIB = -L$(ARPACK_LIB) -larpack ++ ++cnbdr1_OBJECTS = cnbdr1.o cnband.o ++cnbdr2_OBJECTS = cnbdr2.o cnband.o ++cnbdr3_OBJECTS = cnbdr3.o cnband.o ++cnbdr4_OBJECTS = cnbdr4.o cnband.o ++dnbdr1_OBJECTS = dnbdr1.o dnband.o ++dnbdr2_OBJECTS = dnbdr2.o dnband.o ++dnbdr3_OBJECTS = dnbdr3.o dnband.o ++dnbdr4_OBJECTS = dnbdr4.o dnband.o ++dnbdr5_OBJECTS = dnbdr5.o dnband.o ++dnbdr6_OBJECTS = dnbdr6.o dnband.o ++dsbdr1_OBJECTS = dsbdr1.o dsband.o ++dsbdr2_OBJECTS = dsbdr2.o dsband.o ++dsbdr3_OBJECTS = dsbdr3.o dsband.o ++dsbdr4_OBJECTS = dsbdr4.o dsband.o ++dsbdr5_OBJECTS = dsbdr5.o dsband.o ++dsbdr6_OBJECTS = dsbdr6.o dsband.o ++snbdr1_OBJECTS = snbdr1.o snband.o ++snbdr2_OBJECTS = snbdr2.o snband.o ++snbdr3_OBJECTS = snbdr3.o snband.o ++snbdr4_OBJECTS = snbdr4.o snband.o ++snbdr5_OBJECTS = snbdr5.o snband.o ++snbdr6_OBJECTS = snbdr6.o snband.o ++ssbdr1_OBJECTS = ssbdr1.o ssband.o ++ssbdr2_OBJECTS = ssbdr2.o ssband.o ++ssbdr3_OBJECTS = ssbdr3.o ssband.o ++ssbdr4_OBJECTS = ssbdr4.o ssband.o ++ssbdr5_OBJECTS = ssbdr5.o ssband.o ++ssbdr6_OBJECTS = ssbdr6.o ssband.o ++znbdr1_OBJECTS = znbdr1.o znband.o ++znbdr2_OBJECTS = znbdr2.o znband.o ++znbdr3_OBJECTS = znbdr3.o znband.o ++znbdr4_OBJECTS = znbdr4.o znband.o ++ ++all : cnbdr1 cnbdr2 cnbdr3 cnbdr4 \ ++ dnbdr1 dnbdr2 dnbdr3 dnbdr4 dnbdr5 dnbdr6 \ ++ dsbdr1 dsbdr2 dsbdr3 dsbdr4 dsbdr5 dsbdr6 \ ++ snbdr1 snbdr2 snbdr3 snbdr4 snbdr5 snbdr6 \ ++ ssbdr1 ssbdr2 ssbdr3 ssbdr4 ssbdr5 ssbdr6 \ ++ znbdr1 znbdr2 znbdr3 znbdr4 ++ ++.SUFFIXES: .f .o ++.f.o: ++ $(F77) -c -o $@ $< ++ ++cnbdr1 : $(cnbdr1_OBJECTS) ++ $(F77LD) -o $@ $(cnbdr1_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++cnbdr2 : $(cnbdr2_OBJECTS) ++ $(F77LD) -o $@ $(cnbdr2_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++cnbdr3 : $(cnbdr3_OBJECTS) ++ $(F77LD) -o $@ $(cnbdr3_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++cnbdr4 : $(cnbdr4_OBJECTS) ++ $(F77LD) -o $@ $(cnbdr4_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dnbdr1 : $(dnbdr1_OBJECTS) ++ $(F77LD) -o $@ $(dnbdr1_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dnbdr2 : $(dnbdr2_OBJECTS) ++ $(F77LD) -o $@ $(dnbdr2_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dnbdr3 : $(dnbdr3_OBJECTS) ++ $(F77LD) -o $@ $(dnbdr3_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dnbdr4 : $(dnbdr4_OBJECTS) ++ $(F77LD) -o $@ $(dnbdr4_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dnbdr5 : $(dnbdr5_OBJECTS) ++ $(F77LD) -o $@ $(dnbdr5_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dnbdr6 : $(dnbdr6_OBJECTS) ++ $(F77LD) -o $@ $(dnbdr6_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dsbdr1 : $(dsbdr1_OBJECTS) ++ $(F77LD) -o $@ $(dsbdr1_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dsbdr2 : $(dsbdr2_OBJECTS) ++ $(F77LD) -o $@ $(dsbdr2_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dsbdr3 : $(dsbdr3_OBJECTS) ++ $(F77LD) -o $@ $(dsbdr3_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dsbdr4 : $(dsbdr4_OBJECTS) ++ $(F77LD) -o $@ $(dsbdr4_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dsbdr5 : $(dsbdr5_OBJECTS) ++ $(F77LD) -o $@ $(dsbdr5_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dsbdr6 : $(dsbdr6_OBJECTS) ++ $(F77LD) -o $@ $(dsbdr6_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++snbdr1 : $(snbdr1_OBJECTS) ++ $(F77LD) -o $@ $(snbdr1_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++snbdr2 : $(snbdr2_OBJECTS) ++ $(F77LD) -o $@ $(snbdr2_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++snbdr3 : $(snbdr3_OBJECTS) ++ $(F77LD) -o $@ $(snbdr3_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++snbdr4 : $(snbdr4_OBJECTS) ++ $(F77LD) -o $@ $(snbdr4_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++snbdr5 : $(snbdr5_OBJECTS) ++ $(F77LD) -o $@ $(snbdr5_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++snbdr6 : $(snbdr6_OBJECTS) ++ $(F77LD) -o $@ $(snbdr6_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ssbdr1 : $(ssbdr1_OBJECTS) ++ $(F77LD) -o $@ $(ssbdr1_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ssbdr2 : $(ssbdr2_OBJECTS) ++ $(F77LD) -o $@ $(ssbdr2_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ssbdr3 : $(ssbdr3_OBJECTS) ++ $(F77LD) -o $@ $(ssbdr3_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ssbdr4 : $(ssbdr4_OBJECTS) ++ $(F77LD) -o $@ $(ssbdr4_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ssbdr5 : $(ssbdr5_OBJECTS) ++ $(F77LD) -o $@ $(ssbdr5_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ssbdr6 : $(ssbdr6_OBJECTS) ++ $(F77LD) -o $@ $(ssbdr6_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++znbdr1 : $(znbdr1_OBJECTS) ++ $(F77LD) -o $@ $(znbdr1_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++znbdr2 : $(znbdr2_OBJECTS) ++ $(F77LD) -o $@ $(znbdr2_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++znbdr3 : $(znbdr3_OBJECTS) ++ $(F77LD) -o $@ $(znbdr3_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++znbdr4 : $(znbdr4_OBJECTS) ++ $(F77LD) -o $@ $(znbdr4_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ +--- arpack-ng-3.8.0/EXAMPLES/COMPLEX/Makefile_complex_intel 1970-01-01 01:00:00.000000000 +0100 ++++ arpack-ng-3.8.0-ok/EXAMPLES/COMPLEX/Makefile_complex_intel 2021-06-30 10:36:04.496200000 +0200 +@@ -0,0 +1,59 @@ ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++# ++CC = mpicc ++CFLAGS = -g -O2 ++CPP = mpicc -E ++CPPFLAGS = ++ ++F77 = mpif77 ++FFLAGS = -g -O2 ++F77LD = $(F77) ++FGREP = /bin/grep -F ++ ++LAPACK_LIBS = -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -liomp5 -lpthread ++ ++ARPACKLIB = -L$(ARPACK_LIB) -larpack ++ ++cndrv1_OBJECTS = cndrv1.o ++cndrv2_OBJECTS = cndrv2.o ++cndrv3_OBJECTS = cndrv3.o ++cndrv4_OBJECTS = cndrv4.o ++zndrv1_OBJECTS = zndrv1.o ++zndrv2_OBJECTS = zndrv2.o ++zndrv3_OBJECTS = zndrv3.o ++zndrv4_OBJECTS = zndrv4.o ++ ++all : cndrv1 cndrv2 cndrv3 cndrv4 \ ++ zndrv1 zndrv2 zndrv3 zndrv4 ++ ++.SUFFIXES: .f .o ++.f.o: ++ $(F77) -c -o $@ $< ++ ++cndrv1 : $(cndrv1_OBJECTS) ++ $(F77LD) -o $@ $(cndrv1_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++cndrv2 : $(cndrv2_OBJECTS) ++ $(F77LD) -o $@ $(cndrv2_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++cndrv3 : $(cndrv3_OBJECTS) ++ $(F77LD) -o $@ $(cndrv3_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++cndrv4 : $(cndrv4_OBJECTS) ++ $(F77LD) -o $@ $(cndrv4_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++zndrv1 : $(zndrv1_OBJECTS) ++ $(F77LD) -o $@ $(zndrv1_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++zndrv2 : $(zndrv2_OBJECTS) ++ $(F77LD) -o $@ $(zndrv2_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++zndrv3 : $(zndrv3_OBJECTS) ++ $(F77LD) -o $@ $(zndrv3_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++zndrv4 : $(zndrv4_OBJECTS) ++ $(F77LD) -o $@ $(zndrv4_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ +--- arpack-ng-3.8.0/EXAMPLES/NONSYM/Makefile_nonsym_intel 1970-01-01 01:00:00.000000000 +0100 ++++ arpack-ng-3.8.0-ok/EXAMPLES/NONSYM/Makefile_nonsym_intel 2021-06-30 10:36:04.539153000 +0200 +@@ -0,0 +1,75 @@ ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++# ++CC = mpicc ++CFLAGS = -g -O2 ++CPP = mpicc -E ++CPPFLAGS = ++ ++F77 = mpif77 ++FFLAGS = -g -O2 ++F77LD = $(F77) ++FGREP = /bin/grep -F ++ ++LAPACK_LIBS = -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -liomp5 -lpthread ++ ++ARPACKLIB = -L$(ARPACK_LIB) -larpack ++ ++dndrv1_OBJECTS = dndrv1.o ++dndrv2_OBJECTS = dndrv2.o ++dndrv3_OBJECTS = dndrv3.o ++dndrv4_OBJECTS = dndrv4.o ++dndrv5_OBJECTS = dndrv5.o ++dndrv6_OBJECTS = dndrv6.o ++sndrv1_OBJECTS = sndrv1.o ++sndrv2_OBJECTS = sndrv2.o ++sndrv3_OBJECTS = sndrv3.o ++sndrv4_OBJECTS = sndrv4.o ++sndrv5_OBJECTS = sndrv5.o ++sndrv6_OBJECTS = sndrv6.o ++ ++all : dndrv1 dndrv2 dndrv3 dndrv4 dndrv5 dndrv6 \ ++ sndrv1 sndrv2 sndrv3 sndrv4 sndrv5 sndrv6 ++ ++.SUFFIXES: .f .o ++.f.o: ++ $(F77) -c -o $@ $< ++ ++dndrv1 : $(dndrv1_OBJECTS) ++ $(F77LD) -o $@ $(dndrv1_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dndrv2 : $(dndrv2_OBJECTS) ++ $(F77LD) -o $@ $(dndrv2_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dndrv3 : $(dndrv3_OBJECTS) ++ $(F77LD) -o $@ $(dndrv3_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dndrv4 : $(dndrv4_OBJECTS) ++ $(F77LD) -o $@ $(dndrv4_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dndrv5 : $(dndrv5_OBJECTS) ++ $(F77LD) -o $@ $(dndrv5_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dndrv6 : $(dndrv6_OBJECTS) ++ $(F77LD) -o $@ $(dndrv6_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++sndrv1 : $(sndrv1_OBJECTS) ++ $(F77LD) -o $@ $(sndrv1_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++sndrv2 : $(sndrv2_OBJECTS) ++ $(F77LD) -o $@ $(sndrv2_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++sndrv3 : $(sndrv3_OBJECTS) ++ $(F77LD) -o $@ $(sndrv3_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++sndrv4 : $(sndrv4_OBJECTS) ++ $(F77LD) -o $@ $(sndrv4_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++sndrv5 : $(sndrv5_OBJECTS) ++ $(F77LD) -o $@ $(sndrv5_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++sndrv6 : $(sndrv6_OBJECTS) ++ $(F77LD) -o $@ $(sndrv6_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ +--- arpack-ng-3.8.0/PARPACK/EXAMPLES/MPI/Makefile_parpack_intel 1970-01-01 01:00:00.000000000 +0100 ++++ arpack-ng-3.8.0-ok/PARPACK/EXAMPLES/MPI/Makefile_parpack_intel 2021-06-30 10:37:57.095101000 +0200 +@@ -0,0 +1,51 @@ ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++# ++CC = mpicc ++CFLAGS = -g -O2 ++CPP = mpicc -E ++CPPFLAGS = ++ ++F77 = mpif77 ++FFLAGS = -g -O2 ++F77LD = $(F77) ++FGREP = /bin/grep -F ++ ++LAPACK_LIBS = -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -liomp5 -lpthread ++ ++PARPACKLIB = -L$(ARPACK_LIB) -lparpack -larpack ++ ++pcndrv1_OBJECTS = pcndrv1.o ++pdndrv1_OBJECTS = pdndrv1.o ++pdndrv3_OBJECTS = pdndrv3.o ++psndrv1_OBJECTS = psndrv1.o ++psndrv3_OBJECTS = psndrv3.o ++pzndrv1_OBJECTS = pzndrv1.o ++ ++all : pcndrv1 pdndrv1 pdndrv3 \ ++ psndrv1 psndrv3 pzndrv1 ++ ++.SUFFIXES: .f .o ++.f.o: ++ $(F77) -c -o $@ $< ++ ++pcndrv1 : $(pcndrv1_OBJECTS) ++ $(F77LD) -o $@ $(pcndrv1_OBJECTS) $(PARPACKLIB) $(LAPACK_LIBS) ++ ++pdndrv1 : $(pdndrv1_OBJECTS) ++ $(F77LD) -o $@ $(pdndrv1_OBJECTS) $(PARPACKLIB) $(LAPACK_LIBS) ++ ++pdndrv3 : $(pdndrv3_OBJECTS) ++ $(F77LD) -o $@ $(pdndrv3_OBJECTS) $(PARPACKLIB) $(LAPACK_LIBS) ++ ++psndrv1 : $(psndrv1_OBJECTS) ++ $(F77LD) -o $@ $(psndrv1_OBJECTS) $(PARPACKLIB) $(LAPACK_LIBS) ++ ++psndrv3 : $(psndrv3_OBJECTS) ++ $(F77LD) -o $@ $(psndrv3_OBJECTS) $(PARPACKLIB) $(LAPACK_LIBS) ++ ++pzndrv1 : $(pzndrv1_OBJECTS) ++ $(F77LD) -o $@ $(pzndrv1_OBJECTS) $(PARPACKLIB) $(LAPACK_LIBS) ++ ++ +--- arpack-ng-3.8.0/EXAMPLES/SIMPLE/Makefile_simple_intel 1970-01-01 01:00:00.000000000 +0100 ++++ arpack-ng-3.8.0-ok/EXAMPLES/SIMPLE/Makefile_simple_intel 2021-06-30 10:36:04.541931000 +0200 +@@ -0,0 +1,51 @@ ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++# ++CC = mpicc ++CFLAGS = -g -O2 ++CPP = mpicc -E ++CPPFLAGS = ++ ++F77 = mpif77 ++FFLAGS = -g -O2 ++F77LD = $(F77) ++FGREP = /bin/grep -F ++ ++LAPACK_LIBS = -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -liomp5 -lpthread ++ ++ARPACKLIB = -L$(ARPACK_LIB) -larpack ++ ++cnsimp_OBJECTS = cnsimp.o ++dnsimp_OBJECTS = dnsimp.o ++dssimp_OBJECTS = dssimp.o ++snsimp_OBJECTS = snsimp.o ++sssimp_OBJECTS = sssimp.o ++znsimp_OBJECTS = znsimp.o ++ ++all : cnsimp dnsimp dssimp \ ++ snsimp sssimp znsimp ++ ++.SUFFIXES: .f .o ++.f.o: ++ $(F77) -c -o $@ $< ++ ++cnsimp : $(cnsimp_OBJECTS) ++ $(F77LD) -o $@ $(cnsimp_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dnsimp : $(dnsimp_OBJECTS) ++ $(F77LD) -o $@ $(dnsimp_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dssimp : $(dssimp_OBJECTS) ++ $(F77LD) -o $@ $(dssimp_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++snsimp : $(snsimp_OBJECTS) ++ $(F77LD) -o $@ $(snsimp_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++sssimp : $(sssimp_OBJECTS) ++ $(F77LD) -o $@ $(sssimp_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++znsimp : $(znsimp_OBJECTS) ++ $(F77LD) -o $@ $(znsimp_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ +--- arpack-ng-3.8.0/EXAMPLES/SVD/Makefile_svd_intel 1970-01-01 01:00:00.000000000 +0100 ++++ arpack-ng-3.8.0-ok/EXAMPLES/SVD/Makefile_svd_intel 2021-06-30 10:36:04.546102000 +0200 +@@ -0,0 +1,36 @@ ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++# ++CC = mpicc ++CFLAGS = -g -O2 ++CPP = mpicc -E ++CPPFLAGS = ++ ++F77 = mpif77 ++FFLAGS = -g -O2 ++F77LD = $(F77) ++FGREP = /bin/grep -F ++ ++LAPACK_LIBS = -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -liomp5 -lpthread ++ ++ARPACKLIB = -L$(ARPACK_LIB) -larpack ++ ++dsvd_OBJECTS = dsvd.o ++ssvd_OBJECTS = ssvd.o ++ ++all : dsvd \ ++ ssvd ++ ++.SUFFIXES: .f .o ++.f.o: ++ $(F77) -c -o $@ $< ++ ++ ++dsvd : $(dsvd_OBJECTS) ++ $(F77LD) -o $@ $(dsvd_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ssvd : $(ssvd_OBJECTS) ++ $(F77LD) -o $@ $(ssvd_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ +--- arpack-ng-3.8.0/EXAMPLES/SYM/Makefile_sym_intel 1970-01-01 01:00:00.000000000 +0100 ++++ arpack-ng-3.8.0-ok/EXAMPLES/SYM/Makefile_sym_intel 2021-06-30 10:36:04.549670000 +0200 +@@ -0,0 +1,75 @@ ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++# ++CC = mpicc ++CFLAGS = -g -O2 ++CPP = mpicc -E ++CPPFLAGS = ++ ++F77 = mpif77 ++FFLAGS = -g -O2 ++F77LD = $(F77) ++FGREP = /bin/grep -F ++ ++LAPACK_LIBS = -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -liomp5 -lpthread ++ ++ARPACKLIB = -L$(ARPACK_LIB) -larpack ++ ++dsdrv1_OBJECTS = dsdrv1.o ++dsdrv2_OBJECTS = dsdrv2.o ++dsdrv3_OBJECTS = dsdrv3.o ++dsdrv4_OBJECTS = dsdrv4.o ++dsdrv5_OBJECTS = dsdrv5.o ++dsdrv6_OBJECTS = dsdrv6.o ++ssdrv1_OBJECTS = ssdrv1.o ++ssdrv2_OBJECTS = ssdrv2.o ++ssdrv3_OBJECTS = ssdrv3.o ++ssdrv4_OBJECTS = ssdrv4.o ++ssdrv5_OBJECTS = ssdrv5.o ++ssdrv6_OBJECTS = ssdrv6.o ++ ++all : dsdrv1 dsdrv2 dsdrv3 dsdrv4 dsdrv5 dsdrv6 \ ++ ssdrv1 ssdrv2 ssdrv3 ssdrv4 ssdrv5 ssdrv6 ++ ++.SUFFIXES: .f .o ++.f.o: ++ $(F77) -c -o $@ $< ++ ++dsdrv1 : $(dsdrv1_OBJECTS) ++ $(F77LD) -o $@ $(dsdrv1_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dsdrv2 : $(dsdrv2_OBJECTS) ++ $(F77LD) -o $@ $(dsdrv2_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dsdrv3 : $(dsdrv3_OBJECTS) ++ $(F77LD) -o $@ $(dsdrv3_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dsdrv4 : $(dsdrv4_OBJECTS) ++ $(F77LD) -o $@ $(dsdrv4_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dsdrv5 : $(dsdrv5_OBJECTS) ++ $(F77LD) -o $@ $(dsdrv5_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dsdrv6 : $(dsdrv6_OBJECTS) ++ $(F77LD) -o $@ $(dsdrv6_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ssdrv1 : $(ssdrv1_OBJECTS) ++ $(F77LD) -o $@ $(ssdrv1_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ssdrv2 : $(ssdrv2_OBJECTS) ++ $(F77LD) -o $@ $(ssdrv2_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ssdrv3 : $(ssdrv3_OBJECTS) ++ $(F77LD) -o $@ $(ssdrv3_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ssdrv4 : $(ssdrv4_OBJECTS) ++ $(F77LD) -o $@ $(ssdrv4_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ssdrv5 : $(ssdrv5_OBJECTS) ++ $(F77LD) -o $@ $(ssdrv5_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ssdrv6 : $(ssdrv6_OBJECTS) ++ $(F77LD) -o $@ $(ssdrv6_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ diff --git a/Golden_Repo/a/ARPACK-NG/ARPACK-NG-3.8.0-install-arpack-examples_gpsmkl.patch b/Golden_Repo/a/ARPACK-NG/ARPACK-NG-3.8.0-install-arpack-examples_gpsmkl.patch new file mode 100644 index 0000000000000000000000000000000000000000..cb08b9ea9053080a2e005fe6cd8b7e318625133b --- /dev/null +++ b/Golden_Repo/a/ARPACK-NG/ARPACK-NG-3.8.0-install-arpack-examples_gpsmkl.patch @@ -0,0 +1,538 @@ +--- arpack-ng-3.8.0/PARPACK_CHANGES 2021-06-30 09:57:39.220219000 +0200 ++++ arpack-ng-3.8.0-ok/PARPACK_CHANGES 2021-06-30 10:25:30.148960874 +0200 +@@ -334,4 +334,6 @@ + 36. 09/18/2016 p*apps.f and p*aitr.f contain condition to fetch machine epsilon. + When different p*aupd call use communicator with different number of CPU these + conditions cause deadlock. Variables inside conditions are moved to global +- to be reset each first iteration +\ No newline at end of file ++ to be reset each first iteration ++ ++ +--- arpack-ng-3.8.0/EXAMPLES/BAND/Makefile_band 1970-01-01 01:00:00.000000000 +0100 ++++ arpack-ng-3.8.0-ok/EXAMPLES/BAND/Makefile_band 2021-06-30 10:36:04.461587000 +0200 +@@ -0,0 +1,159 @@ ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++# ++CC = mpicc ++CFLAGS = -g -O2 ++CPP = mpicc -E ++CPPFLAGS = ++ ++F77 = mpif77 ++FFLAGS = -g -O2 ++F77LD = $(F77) ++FGREP = /bin/grep -F ++ ++LAPACK_LIBS = -lmkl_gf_lp64 -lmkl_sequential -lmkl_core -lgomp -lpthread ++ ++ARPACKLIB = -L$(ARPACK_LIB) -larpack ++ ++cnbdr1_OBJECTS = cnbdr1.o cnband.o ++cnbdr2_OBJECTS = cnbdr2.o cnband.o ++cnbdr3_OBJECTS = cnbdr3.o cnband.o ++cnbdr4_OBJECTS = cnbdr4.o cnband.o ++dnbdr1_OBJECTS = dnbdr1.o dnband.o ++dnbdr2_OBJECTS = dnbdr2.o dnband.o ++dnbdr3_OBJECTS = dnbdr3.o dnband.o ++dnbdr4_OBJECTS = dnbdr4.o dnband.o ++dnbdr5_OBJECTS = dnbdr5.o dnband.o ++dnbdr6_OBJECTS = dnbdr6.o dnband.o ++dsbdr1_OBJECTS = dsbdr1.o dsband.o ++dsbdr2_OBJECTS = dsbdr2.o dsband.o ++dsbdr3_OBJECTS = dsbdr3.o dsband.o ++dsbdr4_OBJECTS = dsbdr4.o dsband.o ++dsbdr5_OBJECTS = dsbdr5.o dsband.o ++dsbdr6_OBJECTS = dsbdr6.o dsband.o ++snbdr1_OBJECTS = snbdr1.o snband.o ++snbdr2_OBJECTS = snbdr2.o snband.o ++snbdr3_OBJECTS = snbdr3.o snband.o ++snbdr4_OBJECTS = snbdr4.o snband.o ++snbdr5_OBJECTS = snbdr5.o snband.o ++snbdr6_OBJECTS = snbdr6.o snband.o ++ssbdr1_OBJECTS = ssbdr1.o ssband.o ++ssbdr2_OBJECTS = ssbdr2.o ssband.o ++ssbdr3_OBJECTS = ssbdr3.o ssband.o ++ssbdr4_OBJECTS = ssbdr4.o ssband.o ++ssbdr5_OBJECTS = ssbdr5.o ssband.o ++ssbdr6_OBJECTS = ssbdr6.o ssband.o ++znbdr1_OBJECTS = znbdr1.o znband.o ++znbdr2_OBJECTS = znbdr2.o znband.o ++znbdr3_OBJECTS = znbdr3.o znband.o ++znbdr4_OBJECTS = znbdr4.o znband.o ++ ++all : cnbdr1 cnbdr2 cnbdr3 cnbdr4 \ ++ dnbdr1 dnbdr2 dnbdr3 dnbdr4 dnbdr5 dnbdr6 \ ++ dsbdr1 dsbdr2 dsbdr3 dsbdr4 dsbdr5 dsbdr6 \ ++ snbdr1 snbdr2 snbdr3 snbdr4 snbdr5 snbdr6 \ ++ ssbdr1 ssbdr2 ssbdr3 ssbdr4 ssbdr5 ssbdr6 \ ++ znbdr1 znbdr2 znbdr3 znbdr4 ++ ++.SUFFIXES: .f .o ++.f.o: ++ $(F77) -c -o $@ $< ++ ++cnbdr1 : $(cnbdr1_OBJECTS) ++ $(F77LD) -o $@ $(cnbdr1_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++cnbdr2 : $(cnbdr2_OBJECTS) ++ $(F77LD) -o $@ $(cnbdr2_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++cnbdr3 : $(cnbdr3_OBJECTS) ++ $(F77LD) -o $@ $(cnbdr3_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++cnbdr4 : $(cnbdr4_OBJECTS) ++ $(F77LD) -o $@ $(cnbdr4_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dnbdr1 : $(dnbdr1_OBJECTS) ++ $(F77LD) -o $@ $(dnbdr1_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dnbdr2 : $(dnbdr2_OBJECTS) ++ $(F77LD) -o $@ $(dnbdr2_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dnbdr3 : $(dnbdr3_OBJECTS) ++ $(F77LD) -o $@ $(dnbdr3_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dnbdr4 : $(dnbdr4_OBJECTS) ++ $(F77LD) -o $@ $(dnbdr4_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dnbdr5 : $(dnbdr5_OBJECTS) ++ $(F77LD) -o $@ $(dnbdr5_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dnbdr6 : $(dnbdr6_OBJECTS) ++ $(F77LD) -o $@ $(dnbdr6_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dsbdr1 : $(dsbdr1_OBJECTS) ++ $(F77LD) -o $@ $(dsbdr1_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dsbdr2 : $(dsbdr2_OBJECTS) ++ $(F77LD) -o $@ $(dsbdr2_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dsbdr3 : $(dsbdr3_OBJECTS) ++ $(F77LD) -o $@ $(dsbdr3_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dsbdr4 : $(dsbdr4_OBJECTS) ++ $(F77LD) -o $@ $(dsbdr4_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dsbdr5 : $(dsbdr5_OBJECTS) ++ $(F77LD) -o $@ $(dsbdr5_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dsbdr6 : $(dsbdr6_OBJECTS) ++ $(F77LD) -o $@ $(dsbdr6_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++snbdr1 : $(snbdr1_OBJECTS) ++ $(F77LD) -o $@ $(snbdr1_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++snbdr2 : $(snbdr2_OBJECTS) ++ $(F77LD) -o $@ $(snbdr2_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++snbdr3 : $(snbdr3_OBJECTS) ++ $(F77LD) -o $@ $(snbdr3_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++snbdr4 : $(snbdr4_OBJECTS) ++ $(F77LD) -o $@ $(snbdr4_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++snbdr5 : $(snbdr5_OBJECTS) ++ $(F77LD) -o $@ $(snbdr5_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++snbdr6 : $(snbdr6_OBJECTS) ++ $(F77LD) -o $@ $(snbdr6_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ssbdr1 : $(ssbdr1_OBJECTS) ++ $(F77LD) -o $@ $(ssbdr1_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ssbdr2 : $(ssbdr2_OBJECTS) ++ $(F77LD) -o $@ $(ssbdr2_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ssbdr3 : $(ssbdr3_OBJECTS) ++ $(F77LD) -o $@ $(ssbdr3_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ssbdr4 : $(ssbdr4_OBJECTS) ++ $(F77LD) -o $@ $(ssbdr4_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ssbdr5 : $(ssbdr5_OBJECTS) ++ $(F77LD) -o $@ $(ssbdr5_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ssbdr6 : $(ssbdr6_OBJECTS) ++ $(F77LD) -o $@ $(ssbdr6_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++znbdr1 : $(znbdr1_OBJECTS) ++ $(F77LD) -o $@ $(znbdr1_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++znbdr2 : $(znbdr2_OBJECTS) ++ $(F77LD) -o $@ $(znbdr2_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++znbdr3 : $(znbdr3_OBJECTS) ++ $(F77LD) -o $@ $(znbdr3_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++znbdr4 : $(znbdr4_OBJECTS) ++ $(F77LD) -o $@ $(znbdr4_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ +--- arpack-ng-3.8.0/EXAMPLES/COMPLEX/Makefile_complex 1970-01-01 01:00:00.000000000 +0100 ++++ arpack-ng-3.8.0-ok/EXAMPLES/COMPLEX/Makefile_complex 2021-06-30 10:36:04.494505000 +0200 +@@ -0,0 +1,59 @@ ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++# ++CC = mpicc ++CFLAGS = -g -O2 ++CPP = mpicc -E ++CPPFLAGS = ++ ++F77 = mpif77 ++FFLAGS = -g -O2 ++F77LD = $(F77) ++FGREP = /bin/grep -F ++ ++LAPACK_LIBS = -lmkl_gf_lp64 -lmkl_sequential -lmkl_core -lgomp -lpthread ++ ++ARPACKLIB = -L$(ARPACK_LIB) -larpack ++ ++cndrv1_OBJECTS = cndrv1.o ++cndrv2_OBJECTS = cndrv2.o ++cndrv3_OBJECTS = cndrv3.o ++cndrv4_OBJECTS = cndrv4.o ++zndrv1_OBJECTS = zndrv1.o ++zndrv2_OBJECTS = zndrv2.o ++zndrv3_OBJECTS = zndrv3.o ++zndrv4_OBJECTS = zndrv4.o ++ ++all : cndrv1 cndrv2 cndrv3 cndrv4 \ ++ zndrv1 zndrv2 zndrv3 zndrv4 ++ ++.SUFFIXES: .f .o ++.f.o: ++ $(F77) -c -o $@ $< ++ ++cndrv1 : $(cndrv1_OBJECTS) ++ $(F77LD) -o $@ $(cndrv1_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++cndrv2 : $(cndrv2_OBJECTS) ++ $(F77LD) -o $@ $(cndrv2_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++cndrv3 : $(cndrv3_OBJECTS) ++ $(F77LD) -o $@ $(cndrv3_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++cndrv4 : $(cndrv4_OBJECTS) ++ $(F77LD) -o $@ $(cndrv4_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++zndrv1 : $(zndrv1_OBJECTS) ++ $(F77LD) -o $@ $(zndrv1_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++zndrv2 : $(zndrv2_OBJECTS) ++ $(F77LD) -o $@ $(zndrv2_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++zndrv3 : $(zndrv3_OBJECTS) ++ $(F77LD) -o $@ $(zndrv3_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++zndrv4 : $(zndrv4_OBJECTS) ++ $(F77LD) -o $@ $(zndrv4_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ +--- arpack-ng-3.8.0/EXAMPLES/NONSYM/Makefile_nonsym 1970-01-01 01:00:00.000000000 +0100 ++++ arpack-ng-3.8.0-ok/EXAMPLES/NONSYM/Makefile_nonsym 2021-06-30 10:36:04.498741000 +0200 +@@ -0,0 +1,75 @@ ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++# ++CC = mpicc ++CFLAGS = -g -O2 ++CPP = mpicc -E ++CPPFLAGS = ++ ++F77 = mpif77 ++FFLAGS = -g -O2 ++F77LD = $(F77) ++FGREP = /bin/grep -F ++ ++LAPACK_LIBS = -lmkl_gf_lp64 -lmkl_sequential -lmkl_core -lgomp -lpthread ++ ++ARPACKLIB = -L$(ARPACK_LIB) -larpack ++ ++dndrv1_OBJECTS = dndrv1.o ++dndrv2_OBJECTS = dndrv2.o ++dndrv3_OBJECTS = dndrv3.o ++dndrv4_OBJECTS = dndrv4.o ++dndrv5_OBJECTS = dndrv5.o ++dndrv6_OBJECTS = dndrv6.o ++sndrv1_OBJECTS = sndrv1.o ++sndrv2_OBJECTS = sndrv2.o ++sndrv3_OBJECTS = sndrv3.o ++sndrv4_OBJECTS = sndrv4.o ++sndrv5_OBJECTS = sndrv5.o ++sndrv6_OBJECTS = sndrv6.o ++ ++all : dndrv1 dndrv2 dndrv3 dndrv4 dndrv5 dndrv6 \ ++ sndrv1 sndrv2 sndrv3 sndrv4 sndrv5 sndrv6 ++ ++.SUFFIXES: .f .o ++.f.o: ++ $(F77) -c -o $@ $< ++ ++dndrv1 : $(dndrv1_OBJECTS) ++ $(F77LD) -o $@ $(dndrv1_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dndrv2 : $(dndrv2_OBJECTS) ++ $(F77LD) -o $@ $(dndrv2_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dndrv3 : $(dndrv3_OBJECTS) ++ $(F77LD) -o $@ $(dndrv3_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dndrv4 : $(dndrv4_OBJECTS) ++ $(F77LD) -o $@ $(dndrv4_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dndrv5 : $(dndrv5_OBJECTS) ++ $(F77LD) -o $@ $(dndrv5_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dndrv6 : $(dndrv6_OBJECTS) ++ $(F77LD) -o $@ $(dndrv6_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++sndrv1 : $(sndrv1_OBJECTS) ++ $(F77LD) -o $@ $(sndrv1_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++sndrv2 : $(sndrv2_OBJECTS) ++ $(F77LD) -o $@ $(sndrv2_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++sndrv3 : $(sndrv3_OBJECTS) ++ $(F77LD) -o $@ $(sndrv3_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++sndrv4 : $(sndrv4_OBJECTS) ++ $(F77LD) -o $@ $(sndrv4_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++sndrv5 : $(sndrv5_OBJECTS) ++ $(F77LD) -o $@ $(sndrv5_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++sndrv6 : $(sndrv6_OBJECTS) ++ $(F77LD) -o $@ $(sndrv6_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ +--- arpack-ng-3.8.0/PARPACK/EXAMPLES/MPI/Makefile_parpack 1970-01-01 01:00:00.000000000 +0100 ++++ arpack-ng-3.8.0-ok/PARPACK/EXAMPLES/MPI/Makefile_parpack 2021-06-30 10:37:57.093198000 +0200 +@@ -0,0 +1,51 @@ ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++# ++CC = mpicc ++CFLAGS = -g -O2 ++CPP = mpicc -E ++CPPFLAGS = ++ ++F77 = mpif77 ++FFLAGS = -g -O2 ++F77LD = $(F77) ++FGREP = /bin/grep -F ++ ++LAPACK_LIBS = -lmkl_gf_lp64 -lmkl_sequential -lmkl_core -lgomp -lpthread ++ ++PARPACKLIB = -L$(ARPACK_LIB) -lparpack -larpack ++ ++pcndrv1_OBJECTS = pcndrv1.o ++pdndrv1_OBJECTS = pdndrv1.o ++pdndrv3_OBJECTS = pdndrv3.o ++psndrv1_OBJECTS = psndrv1.o ++psndrv3_OBJECTS = psndrv3.o ++pzndrv1_OBJECTS = pzndrv1.o ++ ++all : pcndrv1 pdndrv1 pdndrv3 \ ++ psndrv1 psndrv3 pzndrv1 ++ ++.SUFFIXES: .f .o ++.f.o: ++ $(F77) -c -o $@ $< ++ ++pcndrv1 : $(pcndrv1_OBJECTS) ++ $(F77LD) -o $@ $(pcndrv1_OBJECTS) $(PARPACKLIB) $(LAPACK_LIBS) ++ ++pdndrv1 : $(pdndrv1_OBJECTS) ++ $(F77LD) -o $@ $(pdndrv1_OBJECTS) $(PARPACKLIB) $(LAPACK_LIBS) ++ ++pdndrv3 : $(pdndrv3_OBJECTS) ++ $(F77LD) -o $@ $(pdndrv3_OBJECTS) $(PARPACKLIB) $(LAPACK_LIBS) ++ ++psndrv1 : $(psndrv1_OBJECTS) ++ $(F77LD) -o $@ $(psndrv1_OBJECTS) $(PARPACKLIB) $(LAPACK_LIBS) ++ ++psndrv3 : $(psndrv3_OBJECTS) ++ $(F77LD) -o $@ $(psndrv3_OBJECTS) $(PARPACKLIB) $(LAPACK_LIBS) ++ ++pzndrv1 : $(pzndrv1_OBJECTS) ++ $(F77LD) -o $@ $(pzndrv1_OBJECTS) $(PARPACKLIB) $(LAPACK_LIBS) ++ ++ +--- arpack-ng-3.8.0/EXAMPLES/SIMPLE/Makefile_simple 1970-01-01 01:00:00.000000000 +0100 ++++ arpack-ng-3.8.0-ok/EXAMPLES/SIMPLE/Makefile_simple 2021-06-30 10:36:04.541054000 +0200 +@@ -0,0 +1,51 @@ ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++# ++CC = mpicc ++CFLAGS = -g -O2 ++CPP = mpicc -E ++CPPFLAGS = ++ ++F77 = mpif77 ++FFLAGS = -g -O2 ++F77LD = $(F77) ++FGREP = /bin/grep -F ++ ++LAPACK_LIBS = -lmkl_gf_lp64 -lmkl_sequential -lmkl_core -lgomp -lpthread ++ ++ARPACKLIB = -L$(ARPACK_LIB) -larpack ++ ++cnsimp_OBJECTS = cnsimp.o ++dnsimp_OBJECTS = dnsimp.o ++dssimp_OBJECTS = dssimp.o ++snsimp_OBJECTS = snsimp.o ++sssimp_OBJECTS = sssimp.o ++znsimp_OBJECTS = znsimp.o ++ ++all : cnsimp dnsimp dssimp \ ++ snsimp sssimp znsimp ++ ++.SUFFIXES: .f .o ++.f.o: ++ $(F77) -c -o $@ $< ++ ++cnsimp : $(cnsimp_OBJECTS) ++ $(F77LD) -o $@ $(cnsimp_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dnsimp : $(dnsimp_OBJECTS) ++ $(F77LD) -o $@ $(dnsimp_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dssimp : $(dssimp_OBJECTS) ++ $(F77LD) -o $@ $(dssimp_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++snsimp : $(snsimp_OBJECTS) ++ $(F77LD) -o $@ $(snsimp_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++sssimp : $(sssimp_OBJECTS) ++ $(F77LD) -o $@ $(sssimp_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++znsimp : $(znsimp_OBJECTS) ++ $(F77LD) -o $@ $(znsimp_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ +--- arpack-ng-3.8.0/EXAMPLES/SVD/Makefile_svd 1970-01-01 01:00:00.000000000 +0100 ++++ arpack-ng-3.8.0-ok/EXAMPLES/SVD/Makefile_svd 2021-06-30 10:36:04.545031000 +0200 +@@ -0,0 +1,36 @@ ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++# ++CC = mpicc ++CFLAGS = -g -O2 ++CPP = mpicc -E ++CPPFLAGS = ++ ++F77 = mpif77 ++FFLAGS = -g -O2 ++F77LD = $(F77) ++FGREP = /bin/grep -F ++ ++LAPACK_LIBS = -lmkl_gf_lp64 -lmkl_sequential -lmkl_core -lgomp -lpthread ++ ++ARPACKLIB = -L$(ARPACK_LIB) -larpack ++ ++dsvd_OBJECTS = dsvd.o ++ssvd_OBJECTS = ssvd.o ++ ++all : dsvd \ ++ ssvd ++ ++.SUFFIXES: .f .o ++.f.o: ++ $(F77) -c -o $@ $< ++ ++ ++dsvd : $(dsvd_OBJECTS) ++ $(F77LD) -o $@ $(dsvd_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ssvd : $(ssvd_OBJECTS) ++ $(F77LD) -o $@ $(ssvd_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ +--- arpack-ng-3.8.0/EXAMPLES/SYM/Makefile_sym 1970-01-01 01:00:00.000000000 +0100 ++++ arpack-ng-3.8.0-ok/EXAMPLES/SYM/Makefile_sym 2021-06-30 10:36:04.548174000 +0200 +@@ -0,0 +1,75 @@ ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++# ++CC = mpicc ++CFLAGS = -g -O2 ++CPP = mpicc -E ++CPPFLAGS = ++ ++F77 = mpif77 ++FFLAGS = -g -O2 ++F77LD = $(F77) ++FGREP = /bin/grep -F ++ ++LAPACK_LIBS = -lmkl_gf_lp64 -lmkl_sequential -lmkl_core -lgomp -lpthread ++ ++ARPACKLIB = -L$(ARPACK_LIB) -larpack ++ ++dsdrv1_OBJECTS = dsdrv1.o ++dsdrv2_OBJECTS = dsdrv2.o ++dsdrv3_OBJECTS = dsdrv3.o ++dsdrv4_OBJECTS = dsdrv4.o ++dsdrv5_OBJECTS = dsdrv5.o ++dsdrv6_OBJECTS = dsdrv6.o ++ssdrv1_OBJECTS = ssdrv1.o ++ssdrv2_OBJECTS = ssdrv2.o ++ssdrv3_OBJECTS = ssdrv3.o ++ssdrv4_OBJECTS = ssdrv4.o ++ssdrv5_OBJECTS = ssdrv5.o ++ssdrv6_OBJECTS = ssdrv6.o ++ ++all : dsdrv1 dsdrv2 dsdrv3 dsdrv4 dsdrv5 dsdrv6 \ ++ ssdrv1 ssdrv2 ssdrv3 ssdrv4 ssdrv5 ssdrv6 ++ ++.SUFFIXES: .f .o ++.f.o: ++ $(F77) -c -o $@ $< ++ ++dsdrv1 : $(dsdrv1_OBJECTS) ++ $(F77LD) -o $@ $(dsdrv1_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dsdrv2 : $(dsdrv2_OBJECTS) ++ $(F77LD) -o $@ $(dsdrv2_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dsdrv3 : $(dsdrv3_OBJECTS) ++ $(F77LD) -o $@ $(dsdrv3_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dsdrv4 : $(dsdrv4_OBJECTS) ++ $(F77LD) -o $@ $(dsdrv4_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dsdrv5 : $(dsdrv5_OBJECTS) ++ $(F77LD) -o $@ $(dsdrv5_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++dsdrv6 : $(dsdrv6_OBJECTS) ++ $(F77LD) -o $@ $(dsdrv6_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ssdrv1 : $(ssdrv1_OBJECTS) ++ $(F77LD) -o $@ $(ssdrv1_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ssdrv2 : $(ssdrv2_OBJECTS) ++ $(F77LD) -o $@ $(ssdrv2_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ssdrv3 : $(ssdrv3_OBJECTS) ++ $(F77LD) -o $@ $(ssdrv3_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ssdrv4 : $(ssdrv4_OBJECTS) ++ $(F77LD) -o $@ $(ssdrv4_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ssdrv5 : $(ssdrv5_OBJECTS) ++ $(F77LD) -o $@ $(ssdrv5_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ssdrv6 : $(ssdrv6_OBJECTS) ++ $(F77LD) -o $@ $(ssdrv6_OBJECTS) $(ARPACKLIB) $(LAPACK_LIBS) ++ ++ diff --git a/Golden_Repo/a/ARPACK-NG/ARPACK-NG-3.8.0-intel-para-2022a.eb b/Golden_Repo/a/ARPACK-NG/ARPACK-NG-3.8.0-intel-para-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..eaa66876668de0ab0cc40e9b9f9847d02aca59ab --- /dev/null +++ b/Golden_Repo/a/ARPACK-NG/ARPACK-NG-3.8.0-intel-para-2022a.eb @@ -0,0 +1,62 @@ +easyblock = 'ConfigureMake' + +name = 'ARPACK-NG' + +version = '3.8.0' + +homepage = 'http://forge.scilab.org/index.php/p/arpack-ng/' + +description = """ARPACK-NG is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems. + +libarpack.a and libparpack.a have been installed in $EBROOTARPACKMINNG. + +In addition the variables ARPACK_ROOT, ARPACK_LIB, PARPACK_ROOT, and PARPACK_LIB are set. + +""" + +examples = 'Examples can be found in $ARPACK_ROOT/EXAMPLES' + +toolchain = {'name': 'intel-para', 'version': '2022a'} + +toolchainopts = {'opt': True, 'optarch': True, 'pic': True, 'usempi': True} + +source_urls = ['https://github.com/opencollab/arpack-ng/archive/'] + +sources = ["%(version)s.tar.gz"] + +patches = [ + 'ARPACK-NG-%(version)s-install-arpack-examples.patch' +] + +checksums = [ + 'ada5aeb3878874383307239c9235b716a8a170c6d096a6625bfd529844df003d', # 3.8.0.tar.gz + 'bd5a1d29d8ca0ac8ab87e2f78d06d4fd13ee8ae22ad9b12d36512f20eeb86f62', # ARPACK-NG-3.8.0-install-arpack-examples.patch +] + +builddependencies = [ + ('Autotools', '20220317'), + ('pkgconf', '1.8.0') +] + +preconfigopts = 'sh bootstrap &&' + +configopts = '--enable-mpi --with-pic --enable-static --with-blas="$LIBBLAS" --with-lapack="$LIBLAPACK"' + +postinstallcmds = [ + "cp -r EXAMPLES %(installdir)s/EXAMPLES", + "cp -r PARPACK/EXAMPLES/MPI %(installdir)s/EXAMPLES/PARPACK", +] + +sanity_check_paths = { + 'files': ["lib/libarpack.a", "lib/libarpack.%s" % SHLIB_EXT, "lib/libparpack.a", "lib/libparpack.%s" % SHLIB_EXT], + 'dirs': [] +} + +modextravars = { + 'ARPACK_ROOT': '%(installdir)s', + 'PARPACK_ROOT': '%(installdir)s', + 'ARPACK_LIB': '%(installdir)s/lib', + 'PARPACK_LIB': '%(installdir)s/lib' +} + +moduleclass = 'numlib' diff --git a/Golden_Repo/a/ant/ant-1.10.13-Java-11.eb b/Golden_Repo/a/ant/ant-1.10.13-Java-11.eb new file mode 100644 index 0000000000000000000000000000000000000000..dee56183ce012ce98dc6e7bdd6f91da7b710860e --- /dev/null +++ b/Golden_Repo/a/ant/ant-1.10.13-Java-11.eb @@ -0,0 +1,27 @@ +easyblock = 'PackedBinary' + +name = 'ant' +version = '1.10.13' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'https://ant.apache.org/' +description = """Apache Ant is a Java library and command-line tool whose mission is to drive processes described in + build files as targets and extension points dependent upon each other. The main known usage of Ant is the build of + Java applications.""" + +toolchain = SYSTEM + +source_urls = ['https://archive.apache.org/dist/ant/binaries/'] +sources = ['apache-%(name)s-%(version)s-bin.tar.gz'] +checksums = ['776be4a5704158f00ef3f23c0327546e38159389bc8f39abbfe114913f88bab1'] + +dependencies = [('Java', '11')] + +sanity_check_paths = { + 'files': ['bin/ant', 'lib/ant.jar'], + 'dirs': [], +} + +modextravars = {'ANT_HOME': '%(installdir)s'} + +moduleclass = 'devel' diff --git a/Golden_Repo/b/Blender/Blender-3.4.1-GCCcore-11.3.0-binary.eb b/Golden_Repo/b/Blender/Blender-3.4.1-GCCcore-11.3.0-binary.eb new file mode 100644 index 0000000000000000000000000000000000000000..1d1c5bdbdc9b78259ce42c4fd9b3cce1ee7c663c --- /dev/null +++ b/Golden_Repo/b/Blender/Blender-3.4.1-GCCcore-11.3.0-binary.eb @@ -0,0 +1,40 @@ +easyblock = 'PackedBinary' + +name = 'Blender' +version = '3.4.1' +versionsuffix = '-binary' + +homepage = 'https://www.blender.org' +description = """ +Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline, +modeling, rigging, animation, simulation, rendering, compositing and motion tracking, even video +editing and game creation. +""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['http://ftp.nluug.nl/pub/graphics/%(namelower)s/release/%(name)s%(version_major_minor)s/'] +sources = ['%(namelower)s-%(version)s-linux-x64.tar.xz'] +checksums = ['1497f83f93e9bbbde745422c795ed10fe15f92f5622b4421768f149fbe776981'] + +dependencies = [ + ('X11', '20220504'), + ('OpenGL', '2022a'), + ('CUDA', '11.7', '', SYSTEM), +] + +postinstallcmds = [ + # remove Blenders OpenGL libs + 'rm -rf %(installdir)s/lib/mesa', +] + +sanity_check_paths = { + 'files': ['%(namelower)s'], + 'dirs': ['%(version_major_minor)s'], +} + +modaliases = { + 'blender': 'blender -- --cycles-device CUDA', +} + +moduleclass = 'vis' diff --git a/Golden_Repo/b/Blosc/Blosc-1.21.3-GCCcore-11.3.0.eb b/Golden_Repo/b/Blosc/Blosc-1.21.3-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..115e49c59acda6f273c99e4cf774fd60ef392bdf --- /dev/null +++ b/Golden_Repo/b/Blosc/Blosc-1.21.3-GCCcore-11.3.0.eb @@ -0,0 +1,28 @@ +easyblock = 'CMakeMake' + +name = 'Blosc' +version = '1.21.3' + +homepage = 'https://www.blosc.org/' + +description = "Blosc, an extremely fast, multi-threaded, meta-compressor library" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} +toolchainopts = {'pic': True, 'cstd': 'c++11'} + +source_urls = ['https://github.com/Blosc/c-blosc/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['941016c4564bca662080bb01aea74f06630bd665e598c6f6967fd91b2e2e0bb6'] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1'), +] + +sanity_check_paths = { + 'files': ['include/blosc-export.h', 'include/blosc.h', 'lib/libblosc.a', + 'lib/libblosc.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/Golden_Repo/c/CVXOPT/CVXOPT-1.2.1-fix-setup-py.patch b/Golden_Repo/c/CVXOPT/CVXOPT-1.2.1-fix-setup-py.patch new file mode 100644 index 0000000000000000000000000000000000000000..5975c4bb3289692195062ef9c552f1b6d2373f75 --- /dev/null +++ b/Golden_Repo/c/CVXOPT/CVXOPT-1.2.1-fix-setup-py.patch @@ -0,0 +1,128 @@ +# Patches the setup.py to use EB settings for BLAS/LAPACK, FFTW, etc +# original by wpoely86@gmail.com, ported to v1.2.1 by Kenneth Hoste (HPC-UGent) +--- cvxopt-1.2.1/setup.py.orig 2018-08-30 19:54:12.000000000 +0200 ++++ cvxopt-1.2.1/setup.py 2018-10-02 16:28:57.252340779 +0200 +@@ -91,9 +91,11 @@ + LAPACK_LIB = os.environ.get("CVXOPT_LAPACK_LIB",LAPACK_LIB) + BLAS_LIB_DIR = os.environ.get("CVXOPT_BLAS_LIB_DIR",BLAS_LIB_DIR) + BLAS_EXTRA_LINK_ARGS = os.environ.get("CVXOPT_BLAS_EXTRA_LINK_ARGS",BLAS_EXTRA_LINK_ARGS) ++FFTW_EXTRA_LINK_ARGS = os.environ.get("CVXOPT_FFTW_EXTRA_LINK_ARGS",'') + if type(BLAS_LIB) is str: BLAS_LIB = BLAS_LIB.strip().split(';') + if type(LAPACK_LIB) is str: LAPACK_LIB = LAPACK_LIB.strip().split(';') +-if type(BLAS_EXTRA_LINK_ARGS) is str: BLAS_EXTRA_LINK_ARGS = BLAS_EXTRA_LINK_ARGS.strip().split(';') ++if type(BLAS_EXTRA_LINK_ARGS) is str: BLAS_EXTRA_LINK_ARGS = BLAS_EXTRA_LINK_ARGS.strip().split(' ') ++if type(FFTW_EXTRA_LINK_ARGS) is str: FFTW_EXTRA_LINK_ARGS = FFTW_EXTRA_LINK_ARGS.strip().split(' ') + BUILD_GSL = int(os.environ.get("CVXOPT_BUILD_GSL",BUILD_GSL)) + GSL_LIB_DIR = os.environ.get("CVXOPT_GSL_LIB_DIR",GSL_LIB_DIR) + GSL_INC_DIR = os.environ.get("CVXOPT_GSL_INC_DIR",GSL_INC_DIR) +@@ -126,7 +128,7 @@ + # optional modules + + if BUILD_GSL: +- gsl = Extension('gsl', libraries = M_LIB + ['gsl'] + BLAS_LIB, ++ gsl = Extension('gsl', libraries = M_LIB + ['gsl'], + include_dirs = [ GSL_INC_DIR ], + library_dirs = [ GSL_LIB_DIR, BLAS_LIB_DIR ], + define_macros = GSL_MACROS, +@@ -135,11 +137,11 @@ + extmods += [gsl]; + + if BUILD_FFTW: +- fftw = Extension('fftw', libraries = ['fftw3'] + BLAS_LIB, ++ fftw = Extension('fftw', + include_dirs = [ FFTW_INC_DIR ], + library_dirs = [ FFTW_LIB_DIR, BLAS_LIB_DIR ], + define_macros = FFTW_MACROS, +- extra_link_args = BLAS_EXTRA_LINK_ARGS, ++ extra_link_args = BLAS_EXTRA_LINK_ARGS + FFTW_EXTRA_LINK_ARGS, + sources = ['src/C/fftw.c'] ) + extmods += [fftw]; + +@@ -151,7 +153,7 @@ + extmods += [glpk]; + + if BUILD_DSDP: +- dsdp = Extension('dsdp', libraries = ['dsdp'] + LAPACK_LIB + BLAS_LIB, ++ dsdp = Extension('dsdp', libraries = ['dsdp'], + include_dirs = [ DSDP_INC_DIR ], + library_dirs = [ DSDP_LIB_DIR, BLAS_LIB_DIR ], + extra_link_args = BLAS_EXTRA_LINK_ARGS, +@@ -160,19 +162,19 @@ + + # Required modules + +-base = Extension('base', libraries = M_LIB + LAPACK_LIB + BLAS_LIB, ++base = Extension('base', + library_dirs = [ BLAS_LIB_DIR ], + define_macros = MACROS, + extra_link_args = BLAS_EXTRA_LINK_ARGS, + sources = ['src/C/base.c','src/C/dense.c','src/C/sparse.c']) + +-blas = Extension('blas', libraries = BLAS_LIB, ++blas = Extension('blas', + library_dirs = [ BLAS_LIB_DIR ], + define_macros = MACROS, + extra_link_args = BLAS_EXTRA_LINK_ARGS, + sources = ['src/C/blas.c'] ) + +-lapack = Extension('lapack', libraries = LAPACK_LIB + BLAS_LIB, ++lapack = Extension('lapack', + library_dirs = [ BLAS_LIB_DIR ], + define_macros = MACROS, + extra_link_args = BLAS_EXTRA_LINK_ARGS, +@@ -180,9 +182,10 @@ + + if not SUITESPARSE_SRC_DIR: + umfpack = Extension('umfpack', +- libraries = ['umfpack','cholmod','amd','colamd','suitesparseconfig'] + LAPACK_LIB + BLAS_LIB + RT_LIB, ++ libraries = ['umfpack','cholmod','amd','colamd','suitesparseconfig'] + RT_LIB, + include_dirs = [SUITESPARSE_INC_DIR], + library_dirs = [SUITESPARSE_LIB_DIR, BLAS_LIB_DIR], ++ extra_link_args = BLAS_EXTRA_LINK_ARGS, + sources = ['src/C/umfpack.c']) + else: + umfpack = Extension('umfpack', +@@ -193,7 +196,6 @@ + SUITESPARSE_SRC_DIR + '/SuiteSparse_config' ], + library_dirs = [ BLAS_LIB_DIR ], + define_macros = MACROS + [('NTIMER', '1'), ('NCHOLMOD', '1')], +- libraries = LAPACK_LIB + BLAS_LIB, + extra_compile_args = UMFPACK_EXTRA_COMPILE_ARGS, + extra_link_args = BLAS_EXTRA_LINK_ARGS, + sources = [ 'src/C/umfpack.c', +@@ -206,14 +208,13 @@ + + if not SUITESPARSE_SRC_DIR: + cholmod = Extension('cholmod', +- libraries = ['cholmod','colamd','amd','suitesparseconfig'] + LAPACK_LIB + BLAS_LIB + RT_LIB, ++ libraries = ['cholmod','colamd','amd','suitesparseconfig'] + RT_LIB, + include_dirs = [SUITESPARSE_INC_DIR], + library_dirs = [SUITESPARSE_LIB_DIR, BLAS_LIB_DIR], + sources = [ 'src/C/cholmod.c' ]) + else: + cholmod = Extension('cholmod', + library_dirs = [ BLAS_LIB_DIR ], +- libraries = LAPACK_LIB + BLAS_LIB, + include_dirs = [ SUITESPARSE_SRC_DIR + '/CHOLMOD/Include', + SUITESPARSE_SRC_DIR + '/COLAMD', + SUITESPARSE_SRC_DIR + '/AMD/Include', +@@ -235,17 +236,18 @@ + libraries = ['amd','suitesparseconfig'] + RT_LIB, + include_dirs = [SUITESPARSE_INC_DIR], + library_dirs = [SUITESPARSE_LIB_DIR], ++ extra_link_args = BLAS_EXTRA_LINK_ARGS, + sources = ['src/C/amd.c']) + else: + amd = Extension('amd', + include_dirs = [SUITESPARSE_SRC_DIR + '/AMD/Include', + SUITESPARSE_SRC_DIR + '/SuiteSparse_config' ], + define_macros = MACROS + [('NTIMER', '1')], ++ extra_link_args = BLAS_EXTRA_LINK_ARGS, + sources = [ 'src/C/amd.c', SUITESPARSE_SRC_DIR + '/SuiteSparse_config/SuiteSparse_config.c'] + + glob(SUITESPARSE_SRC_DIR + '/AMD/Source/*.c') ) + + misc_solvers = Extension('misc_solvers', +- libraries = LAPACK_LIB + BLAS_LIB, + library_dirs = [ BLAS_LIB_DIR ], + define_macros = MACROS, + extra_link_args = BLAS_EXTRA_LINK_ARGS, diff --git a/Golden_Repo/c/CVXOPT/CVXOPT-1.3.0-gpsmkl-2022a.eb b/Golden_Repo/c/CVXOPT/CVXOPT-1.3.0-gpsmkl-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..58d9b1b972d528cf24a5063ec1a92e067a5b8d30 --- /dev/null +++ b/Golden_Repo/c/CVXOPT/CVXOPT-1.3.0-gpsmkl-2022a.eb @@ -0,0 +1,39 @@ +easyblock = 'PythonPackage' + +name = 'CVXOPT' +version = '1.3.0' + +homepage = 'http://cvxopt.org' +description = """CVXOPT is a free software package for convex optimization based on the Python programming language. + Its main purpose is to make the development of software for convex optimization applications straightforward by + building on Python's extensive standard library and on the strengths of Python as a high-level programming language. +""" + +toolchain = {'name': 'gpsmkl', 'version': '2022a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = [PYPI_LOWER_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +patches = ['CVXOPT-1.2.1-fix-setup-py.patch'] +checksums = [ + '00b1b232f9d1f902d578a9d75814b67fa020758d5ae422e28ca8cef6269fa5c6', # cvxopt-1.3.0.tar.gz + '85d8475098895e9af45f330489a712b5b944489c5fb4a6c67f59bef8fed4303d', # CVXOPT-1.2.1-fix-setup-py.patch +] + +builddependencies = [ + ('binutils', '2.38'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('SuiteSparse', '5.13.0'), + ('GSL', '2.7'), +] + +download_dep_fail = True +use_pip = True + +preinstallopts = 'CVXOPT_BUILD_FFTW=1 CVXOPT_BUILD_GSL=1 CVXOPT_BLAS_EXTRA_LINK_ARGS="$LIBLAPACK" ' +preinstallopts += 'CVXOPT_FFTW_EXTRA_LINK_ARGS="$LIBFFT" CVXOPT_SUITESPARSE_SRC_DIR=$EBROOTSUITESPARSE' + +moduleclass = 'math' diff --git a/Golden_Repo/c/Catalyst/Catalyst-2.0.0-rc3-foss-2022a.eb b/Golden_Repo/c/Catalyst/Catalyst-2.0.0-rc3-foss-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..21eaff1368daa7838ce3493da7863aa81997a027 --- /dev/null +++ b/Golden_Repo/c/Catalyst/Catalyst-2.0.0-rc3-foss-2022a.eb @@ -0,0 +1,41 @@ +easyblock = 'CMakeMake' + +name = 'Catalyst' +version = '2.0.0-rc3' + +homepage = "https://gitlab.kitware.com/paraview/catalyst/" +description = """ +Catalyst is an API specification developed for simulations +(and other scientific data producers) +to analyze and visualize data in situ. +""" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = [('https://gitlab.kitware.com/paraview/catalyst/-/archive/v%(version)s/')] +sources = [('catalyst-v%(version)s.tar.gz')] +checksums = ['8862bd0a4d0be2176b4272f9affda1ea4e5092087acbb99a2fe2621c33834e05'] + +builddependencies = [ + ('CMake', '3.23.1'), + ('pkgconf', '1.8.0'), +] + +dependencies = [] + +separate_build_dir = True + +# --- general settings --- # +configopts = '-DCMAKE_VERBOSE_MAKEFILE=ON ' +configopts += '-DCATALYST_BUILD_TOOLS=ON ' +configopts += '-DCATALYST_USE_MPI=ON ' + +# postinstallcmds = [] + +sanity_check_paths = { + 'files': ['lib/libcatalyst.so'], + 'dirs': ['include/', 'lib'], +} + +moduleclass = 'vis' diff --git a/Golden_Repo/c/Catalyst/Catalyst-2.0.0-rc3-gpsmkl-2022a.eb b/Golden_Repo/c/Catalyst/Catalyst-2.0.0-rc3-gpsmkl-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..1dde871ba337a511525a8b718aefa3fefb6b9e36 --- /dev/null +++ b/Golden_Repo/c/Catalyst/Catalyst-2.0.0-rc3-gpsmkl-2022a.eb @@ -0,0 +1,41 @@ +easyblock = 'CMakeMake' + +name = 'Catalyst' +version = '2.0.0-rc3' + +homepage = "https://gitlab.kitware.com/paraview/catalyst/" +description = """ +Catalyst is an API specification developed for simulations +(and other scientific data producers) +to analyze and visualize data in situ. +""" + +toolchain = {'name': 'gpsmkl', 'version': '2022a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = [('https://gitlab.kitware.com/paraview/catalyst/-/archive/v%(version)s/')] +sources = [('catalyst-v%(version)s.tar.gz')] +checksums = ['8862bd0a4d0be2176b4272f9affda1ea4e5092087acbb99a2fe2621c33834e05'] + +builddependencies = [ + ('CMake', '3.23.1'), + ('pkgconf', '1.8.0'), +] + +dependencies = [] + +separate_build_dir = True + +# --- general settings --- # +configopts = '-DCMAKE_VERBOSE_MAKEFILE=ON ' +configopts += '-DCATALYST_BUILD_TOOLS=ON ' +configopts += '-DCATALYST_USE_MPI=ON ' + +# postinstallcmds = [] + +sanity_check_paths = { + 'files': ['lib/libcatalyst.so'], + 'dirs': ['include/', 'lib'], +} + +moduleclass = 'vis' diff --git a/Golden_Repo/c/Cling/Cling-20230205-GCCcore-11.3.0.eb b/Golden_Repo/c/Cling/Cling-20230205-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..80bb6bf1f7fda7e559b43efe3d245560ae6ee5dd --- /dev/null +++ b/Golden_Repo/c/Cling/Cling-20230205-GCCcore-11.3.0.eb @@ -0,0 +1,77 @@ +easyblock = 'CMakeMake' + +name = 'Cling' +version = '20230205' + +local_commit = '1d93ee8d5855a82bbff2aab31515760630e8c1a4' + +homepage = "https://root.cern/cling/" +description = """Cling is an interactive C++ interpreter, built on the top of LLVM and Clang libraries. +Its advantages over the standard interpreters are that it has command line prompt +and uses just-in-time (JIT) compiler for compilation. +""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/root-project/cling/archive/'] +sources = ['%s.tar.gz' % local_commit] +patches = [ + ('disable_demo.patch'), +] +checksums = [ + {'1d93ee8d5855a82bbff2aab31515760630e8c1a4.tar.gz': + '5cbdac0a8a5229dd2613d3f83af7e38d9e44fba1e5c1e801a4d4349fa277688a'}, + {'disable_demo.patch': '44c74ffd74f0c1d308c68001fa87d9a95d5274a07ea797a284b3b21e6da1c712'}, +] + +builddependencies = [ + ('CMake', '3.23.1'), + ('binutils', '2.38',), +] + +separate_build_dir = True +srcdir = "%(builddir)s/src" + +# get source +preconfigopts = ( + + # get compatible LLVM version id + 'pushd %%(builddir)s/cling-%s && ' + 'LLVM_RELEASE=$(cat LastKnownGoodLLVMSVNRevision.txt) && ' + + # clone compatible LLVM branch + 'cd .. && ' + 'git clone http://root.cern.ch/git/llvm.git src && ' + 'cd src && ' + 'git checkout cling-patches-r${LLVM_RELEASE} && ' + + # clone compatible Clang branch to the correct position in LLVM src + 'cd tools && ' + 'git clone http://root.cern.ch/git/clang.git && ' + 'cd clang && ' + 'git checkout cling-patches-r${LLVM_RELEASE} && ' + + # add cling src to the correct position LLVM src + 'cd .. && ' + 'ln -s ../../cling-%s cling && ' + + # cd to easybuild standard build directory + 'popd && ' + +) % (local_commit, local_commit) + +# copy jupyter kernel files +postinstallcmds = [ + # copy Jupyter kernel install files + # https://cdn.rawgit.com/root-project/cling/master/www/jupyter.html + 'mkdir -p %(installdir)s/share/cling/ ', + 'cp -a %%(builddir)s/cling-%s/tools/Jupyter %%(installdir)s/share/cling ' % local_commit, +] + +sanity_check_paths = { + 'files': ['bin/cling'], + 'dirs': ['bin', 'include', 'lib', 'share'], +} + +moduleclass = 'tools' diff --git a/Golden_Repo/c/Cling/disable_demo.patch b/Golden_Repo/c/Cling/disable_demo.patch new file mode 100644 index 0000000000000000000000000000000000000000..041f894becf403c7807f11ede625668f75a3dafd --- /dev/null +++ b/Golden_Repo/c/Cling/disable_demo.patch @@ -0,0 +1,11 @@ +diff -Naur cling-1d93ee8d5855a82bbff2aab31515760630e8c1a4.orig/tools/CMakeLists.txt cling-1d93ee8d5855a82bbff2aab31515760630e8c1a4/tools/CMakeLists.txt +--- cling-1d93ee8d5855a82bbff2aab31515760630e8c1a4.orig/tools/CMakeLists.txt 2023-02-05 16:02:08.108301585 +0100 ++++ cling-1d93ee8d5855a82bbff2aab31515760630e8c1a4/tools/CMakeLists.txt 2023-02-05 15:59:53.711904401 +0100 +@@ -11,7 +11,6 @@ + add_subdirectory(driver) + add_subdirectory(Jupyter) + add_subdirectory(libcling) +- add_subdirectory(demo) + endif() + + add_subdirectory(plugins) diff --git a/Golden_Repo/c/ceres-solver/ceres-solver-2.1.0-gcccoremkl-11.3.0-2022.1.0.eb b/Golden_Repo/c/ceres-solver/ceres-solver-2.1.0-gcccoremkl-11.3.0-2022.1.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..927d32c82838e9b88b9d09a8707f8c44dcf2bf70 --- /dev/null +++ b/Golden_Repo/c/ceres-solver/ceres-solver-2.1.0-gcccoremkl-11.3.0-2022.1.0.eb @@ -0,0 +1,38 @@ +easyblock = 'CMakeMake' + +name = 'ceres-solver' +version = '2.1.0' + +homepage = 'http://ceres-solver.org' +description = """ +Ceres Solver is an open source C++ library for modeling and solving large, complicated optimization problems. +""" + +toolchain = {'name': 'gcccoremkl', 'version': '11.3.0-2022.1.0'} +toolchainopts = {'pic': True} + +source_urls = ['http://ceres-solver.org/'] +sources = ['%(name)s-%(version)s.tar.gz'] +checksums = ['f7d74eecde0aed75bfc51ec48c91d01fe16a6bf16bce1987a7073286701e2fc6'] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1') +] + +dependencies = [ + ('Eigen', '3.4.0'), + ('SuiteSparse', '5.13.0', '-nompi'), # ('gcccoremkl', '11.3.0-2022.1.0')), + ('gflags', '2.2.2'), + ('glog', '0.6.0'), +] + +configopts = '-DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF ' +configopts += '-DBUILD_SHARED_LIBS=on ' + +sanity_check_paths = { + 'files': ['lib/libceres.so', 'include/ceres/ceres.h'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/Golden_Repo/e/ELPA/ELPA-2022.11.001.rc1-foss-2022a.eb b/Golden_Repo/e/ELPA/ELPA-2022.11.001.rc1-foss-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..04ad4280c84d1afbb14756acd629dde63c529a73 --- /dev/null +++ b/Golden_Repo/e/ELPA/ELPA-2022.11.001.rc1-foss-2022a.eb @@ -0,0 +1,42 @@ +name = 'ELPA' +version = '2022.11.001.rc1' + +homepage = 'https://elpa.rzg.mpg.de' +description = """Eigenvalue SoLvers for Petaflop-Applications.""" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'openmp': True, 'usempi': True} + +source_urls = ['https://gitlab.mpcdf.mpg.de/elpa/elpa/-/archive/new_release_%(version)s/'] +sources = ['elpa-new_release_%(version)s.tar.gz'] +patches = ['%(name)s-%(version)s_fix_hardcoded_perl_path.patch'] +checksums = [ + {'elpa-new_release_2022.11.001.rc1.tar.gz': 'dfd5fa9cc6da8af4c4c0505feaf3b212df7380a3a58ce34181d0c750c20d018d'}, + {'ELPA-2022.11.001.rc1_fix_hardcoded_perl_path.patch': + '1088c190a9ccfa3d88ce760bcf9de9300288cd1e4606ff79c2b66f5189a0ac72'}, +] + +builddependencies = [ + ('Autotools', '20220317'), + ('Python', '3.10.4'), + ('Perl', '5.34.1'), +] + +preconfigopts = './autogen.sh && ' +preconfigopts += 'export LDFLAGS="-lm $LDFLAGS" && ' +preconfigopts += 'autoreconf && ' +configopts = '--without-threading-support-check-during-build ' +with_single = False +maxparallel = 1 +modextravars = { + 'ELPA_ROOT': '%(installdir)s', + 'ELPAROOT': '%(installdir)s', + 'ELPA_INCLUDE': '%(installdir)s/include/elpa-%(version)s/', + 'ELPA_INCLUDE_OPENMP': '%(installdir)s/include/elpa_openmp-%(version)s/', + 'ELPA_LIB': '%(installdir)s/lib', + 'ELPA_LIB_OPENMP': '%(installdir)s/lib', + 'ELPA_MODULES': '%(installdir)s/include/elpa-%(version)s/modules', + 'ELPA_MODULES_OPENMP': '%(installdir)s/include/elpa_openmp-%(version)s/modules', +} + +moduleclass = 'math' diff --git a/Golden_Repo/e/ELPA/ELPA-2022.11.001.rc1-gpsmkl-2022a.eb b/Golden_Repo/e/ELPA/ELPA-2022.11.001.rc1-gpsmkl-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..0908512fdef8a9be9ba094a904b788a0df2923ac --- /dev/null +++ b/Golden_Repo/e/ELPA/ELPA-2022.11.001.rc1-gpsmkl-2022a.eb @@ -0,0 +1,79 @@ +name = 'ELPA' +version = '2022.11.001.rc1' + +homepage = 'https://elpa.rzg.mpg.de' +description = """Eigenvalue SoLvers for Petaflop-Applications. ELPA has been installed as module in +$EBROOTELPA ($ELPA_ROOT is also defined). This installation +contains the pure MPI version and the hybrid MPI/OpenMP version. +Notice: If you want to use OpenMP threads you have to set +export ELPA_DEFAULT_omp=<number of threads per MPI process> +in your batch job and start MPI with MPI_INIT_THREAD(MPI_THREAD_MULTIPLE,.... + +Several assembly kernels have been compiled. They can be chosen at runtime when calling the library or +with the environment variables REAL_ELPA_KERNEL or COMPLEX_ELPA_KERNEL. + +An example is +export REAL_ELPA_KERNEL=REAL_ELPA_KERNEL_GENERIC +which chooses the generic real kernel for elpa2. +Starting with version 2019.11.001 the legacy interface is no longer available. +""" + +usage = """You can get an overview over the available kernels by loading ELPA and then submitting a batch job with + +srun --ntasks=1 $EBROOTELPA/bin/elpa2_print_kernels + +Programs using this ELPA library have to be compiled with + +-I$ELPA_INCLUDE[_OPENMP]/ -I$ELPA_INCLUDE[_OPENMP]/elpa -I$ELPA_MODULES[_OPENMP] + +and linked with + +-L$EBROOTELPA/lib -lelpa[_openmp] +-lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 -lmkl_gf_lp64 +-lmkl_sequential[-lmkl_gnu_thread] +-lmkl_core -lgomp -lpthread -lm -ldl -lstdc++ +""" + +examples = 'Examples can be found in $EBROOTELPA/examples' + +toolchain = {'name': 'gpsmkl', 'version': '2022a'} +toolchainopts = {'openmp': True, 'usempi': True} + +source_urls = ['https://gitlab.mpcdf.mpg.de/elpa/elpa/-/archive/new_release_%(version)s/'] +sources = ["elpa-new_release_%(version)s.tar.gz"] +patches = ['%(name)s-%(version)s_fix_hardcoded_perl_path.patch'] +checksums = [ + {'elpa-new_release_2022.11.001.rc1.tar.gz': 'dfd5fa9cc6da8af4c4c0505feaf3b212df7380a3a58ce34181d0c750c20d018d'}, + {'ELPA-2022.11.001.rc1_fix_hardcoded_perl_path.patch': + '1088c190a9ccfa3d88ce760bcf9de9300288cd1e4606ff79c2b66f5189a0ac72'}, +] + +builddependencies = [ + ('Autotools', '20220317'), + # remove_xcompiler script requires 'python' command, + ('Python', '3.10.4'), + ('Perl', '5.34.1'), +] + +preconfigopts = './autogen.sh && ' +preconfigopts += 'export LDFLAGS="-lm $LDFLAGS" && ' +preconfigopts += 'autoreconf && ' + +configopts = '--without-threading-support-check-during-build ' + +with_single = False + +maxparallel = 1 + +modextravars = { + 'ELPA_ROOT': '%(installdir)s', + 'ELPAROOT': '%(installdir)s', + 'ELPA_INCLUDE': '%(installdir)s/include/elpa-%(version)s/', + 'ELPA_INCLUDE_OPENMP': '%(installdir)s/include/elpa_openmp-%(version)s/', + 'ELPA_LIB': '%(installdir)s/lib', + 'ELPA_LIB_OPENMP': '%(installdir)s/lib', + 'ELPA_MODULES': '%(installdir)s/include/elpa-%(version)s/modules', + 'ELPA_MODULES_OPENMP': '%(installdir)s/include/elpa_openmp-%(version)s/modules', +} + +moduleclass = 'math' diff --git a/Golden_Repo/e/ELPA/ELPA-2022.11.001.rc1-intel-para-2022a.eb b/Golden_Repo/e/ELPA/ELPA-2022.11.001.rc1-intel-para-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..966537c00da53dd193ccc31d6c6dce13b42784da --- /dev/null +++ b/Golden_Repo/e/ELPA/ELPA-2022.11.001.rc1-intel-para-2022a.eb @@ -0,0 +1,78 @@ +name = 'ELPA' +version = '2022.11.001.rc1' + +homepage = 'https://elpa.rzg.mpg.de' +description = """Eigenvalue SoLvers for Petaflop-Applications. ELPA has been installed as module in +$EBROOTELPA ($ELPA_ROOT is also defined). This installation +contains the pure MPI version and the hybrid MPI/OpenMP version. +Notice: If you want to use OpenMP threads you have to set +export ELPA_DEFAULT_omp=<number of threads per MPI process> +in your batch job and start MPI with MPI_INIT_THREAD(MPI_THREAD_MULTIPLE,.... + +Several assembly kernels have been compiled. They can be chosen at runtime when calling the library or +with the environment variables REAL_ELPA_KERNEL or COMPLEX_ELPA_KERNEL. + +An example is +export REAL_ELPA_KERNEL=REAL_ELPA_KERNEL_GENERIC +which chooses the generic real kernel for elpa2. +Starting with version 2019.11.001 the legacy interface is no longer available. +""" + +usage = """You can get an overview over the available kernels by loading ELPA and then submitting a batch job with + +srun --ntasks=1 $EBROOTELPA/bin/elpa2_print_kernels + +Programs using this ELPA library have to be compiled with + +-I$ELPA_INCLUDE[_OPENMP]/ -I$ELPA_INCLUDE[_OPENMP]/elpa -I$ELPA_MODULES[_OPENMP] + +and linked with + +-L$EBROOTELPA/lib -lelpa[_openmp] +-lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 -lmkl_intel_lp64 +-lmkl_sequential[-lmkl_intel_thread] +-lmkl_core -liomp5 -lpthread -lstdc++ +""" + +examples = 'Examples can be found in $EBROOTELPA/examples' + +toolchain = {'name': 'intel-para', 'version': '2022a'} +toolchainopts = {'openmp': True, 'usempi': True} + +source_urls = ['https://gitlab.mpcdf.mpg.de/elpa/elpa/-/archive/new_release_%(version)s/'] +sources = ["elpa-new_release_%(version)s.tar.gz"] +patches = ['%(name)s-%(version)s_fix_hardcoded_perl_path.patch'] +checksums = [ + {'elpa-new_release_2022.11.001.rc1.tar.gz': 'dfd5fa9cc6da8af4c4c0505feaf3b212df7380a3a58ce34181d0c750c20d018d'}, + {'ELPA-2022.11.001.rc1_fix_hardcoded_perl_path.patch': + '1088c190a9ccfa3d88ce760bcf9de9300288cd1e4606ff79c2b66f5189a0ac72'}, +] + +builddependencies = [ + ('Autotools', '20220317'), + # remove_xcompiler script requires 'python' command, + ('Python', '3.10.4'), + ('Perl', '5.34.1'), +] + +preconfigopts = './autogen.sh && ' +preconfigopts += 'autoreconf && ' + +configopts = '--without-threading-support-check-during-build ' + +with_single = False + +maxparallel = 1 + +modextravars = { + 'ELPA_ROOT': '%(installdir)s', + 'ELPAROOT': '%(installdir)s', + 'ELPA_INCLUDE': '%(installdir)s/include/elpa-%(version)s/', + 'ELPA_INCLUDE_OPENMP': '%(installdir)s/include/elpa_openmp-%(version)s/', + 'ELPA_LIB': '%(installdir)s/lib', + 'ELPA_LIB_OPENMP': '%(installdir)s/lib', + 'ELPA_MODULES': '%(installdir)s/include/elpa-%(version)s/modules', + 'ELPA_MODULES_OPENMP': '%(installdir)s/include/elpa_openmp-%(version)s/modules', +} + +moduleclass = 'math' diff --git a/Golden_Repo/e/ELPA/ELPA-2022.11.001.rc1_fix_hardcoded_perl_path.patch b/Golden_Repo/e/ELPA/ELPA-2022.11.001.rc1_fix_hardcoded_perl_path.patch new file mode 100644 index 0000000000000000000000000000000000000000..bf7cb71c89992a0c537487a64a844938112cab18 --- /dev/null +++ b/Golden_Repo/e/ELPA/ELPA-2022.11.001.rc1_fix_hardcoded_perl_path.patch @@ -0,0 +1,40 @@ +--- elpa-new_release_2022.11.001.rc1/fdep/fortran_dependencies.pl 2023-02-09 09:33:15.571125000 +0100 ++++ elpa-new_release_2022.11.001.rc1_ok/fdep/fortran_dependencies.pl 2023-02-09 09:35:04.768695000 +0100 +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl -w ++#!/usr/bin/env perl + # + # Copyright 2015 Lorenz Hüdepohl + # +--- elpa-new_release_2022.11.001.rc1/test_project_1stage/fdep/fortran_dependencies.pl 2023-02-09 09:32:46.109982000 +0100 ++++ elpa-new_release_2022.11.001.rc1_ok/test_project_1stage/fdep/fortran_dependencies.pl 2023-02-09 09:35:23.783036000 +0100 +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl -w ++#!/usr/bin/env perl + + use strict; + +--- elpa-new_release_2022.11.001.rc1/test_project_2stage/fdep/fortran_dependencies.pl 2023-02-09 09:33:16.418735000 +0100 ++++ elpa-new_release_2022.11.001.rc1_ok/test_project_2stage/fdep/fortran_dependencies.pl 2023-02-09 09:35:45.256102000 +0100 +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl -w ++#!/usr/bin/env perl + + use strict; + +--- elpa-new_release_2022.11.001.rc1/test_project_C/fdep/fortran_dependencies.pl 2023-02-09 09:33:18.588180000 +0100 ++++ elpa-new_release_2022.11.001.rc1_ok/test_project_C/fdep/fortran_dependencies.pl 2023-02-09 09:36:05.544582000 +0100 +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl -w ++#!/usr/bin/env perl + + use strict; + +--- elpa-new_release_2022.11.001.rc1/test_project_C_2stage/fdep/fortran_dependencies.pl 2023-02-09 09:32:39.459260000 +0100 ++++ elpa-new_release_2022.11.001.rc1_ok/test_project_C_2stage/fdep/fortran_dependencies.pl 2023-02-09 09:36:23.381596000 +0100 +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl -w ++#!/usr/bin/env perl + + use strict; + diff --git a/Golden_Repo/e/Embree/Embree-3.13.5-GCC-11.3.0.eb b/Golden_Repo/e/Embree/Embree-3.13.5-GCC-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..403a9b8158dd994dafd5a8c49750f1d84f4cf0a8 --- /dev/null +++ b/Golden_Repo/e/Embree/Embree-3.13.5-GCC-11.3.0.eb @@ -0,0 +1,59 @@ +easyblock = 'CMakeMake' + +name = 'Embree' +version = '3.13.5' + +homepage = 'https://www.embree.org/' +description = """ +Embree is a collection of high-performance ray tracing kernels, developed at Intel. The target user of Embree are +graphics application engineers that want to improve the performance of their application by leveraging the optimized ray +tracing kernels of Embree. The kernels are optimized for photo-realistic rendering on the latest Intel processors with +support for SSE, AVX, AVX2, and AVX512. +""" + +toolchain = {'name': 'GCC', 'version': '11.3.0'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['https://github.com/embree/embree/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['b8c22d275d9128741265537c559d0ea73074adbf2f2b66b0a766ca52c52d665b'] + +builddependencies = [ + ('CMake', '3.23.1'), + ('pkgconf', '1.8.0'), + ('ispc', '1.18.1', '', SYSTEM), +] + +dependencies = [ + ('X11', '20220504'), + ('OpenGL', '2022a'), + ('freeglut', '3.4.0'), + ('libpng', '1.6.37'), + ('libjpeg-turbo', '2.1.3'), + ('ImageMagick', '7.1.0-37'), + ('OpenEXR', '3.1.5'), +] + +separate_build_dir = True + +configopts = '-DCMAKE_BUILD_TYPE=Release ' +configopts += '-DEMBREE_ISPC_SUPPORT=ON ' +configopts += '-DEMBREE_TASKING_SYSTEM=INTERNAL ' +# Select highest supported ISA (SSE2, SSE4.2, AVX, AVX2, AVX512KNL, AVX512SKX, or NONE) +configopts += '-DEMBREE_MAX_ISA=AVX2 ' +configopts += '-DEMBREE_GEOMETRY_HAIR:BOOL=ON ' +configopts += '-DEMBREE_GEOMETRY_LINES:BOOL=OFF ' +configopts += '-DEMBREE_GEOMETRY_QUADS:BOOL=OFF ' +configopts += '-DEMBREE_GEOMETRY_SUBDIV:BOOL=OFF ' +configopts += '-DEMBREE_TUTORIALS=OFF ' + +sanity_check_paths = { + 'dirs': ['include/embree3'], + 'files': ['lib64/libembree3.so'] +} + +modextrapaths = { + 'CMAKE_MODULE_PATH': 'lib64/cmake/embree-%(version)s/' +} + +moduleclass = 'vis' diff --git a/Golden_Repo/e/Exiv2/Exiv2-0.27.5-GCCcore-11.3.0.eb b/Golden_Repo/e/Exiv2/Exiv2-0.27.5-GCCcore-11.3.0.eb deleted file mode 100644 index 764780cfb0f701c40c67a937721cd007538270ce..0000000000000000000000000000000000000000 --- a/Golden_Repo/e/Exiv2/Exiv2-0.27.5-GCCcore-11.3.0.eb +++ /dev/null @@ -1,34 +0,0 @@ -easyblock = 'CMakeMake' - -name = 'Exiv2' -version = '0.27.5' - -homepage = 'http://www.exiv2.org' -description = """ - Exiv2 is a C++ library and a command line utility to manage image metadata. It provides fast and easy read and write - access to the Exif, IPTC and XMP metadata of digital images in various formats. Exiv2 is available as free software and - with a commercial license, and is used in many projects. -""" - - -toolchain = {'name': 'GCCcore', 'version': '11.3.0'} - -source_urls = ['http://www.exiv2.org'] -sources = ['https://github.com/Exiv2/exiv2/releases/download/v%(version)s/%(namelower)s-%(version)s-Source.tar.gz'] -checksums = ['35a58618ab236a901ca4928b0ad8b31007ebdc0386d904409d825024e45ea6e2'] - -builddependencies = [ - ('binutils', '2.38'), - ('CMake', '3.23.1'), -] - -dependencies = [ - ('expat', '2.4.8'), -] - -sanity_check_paths = { - 'files': ['bin/exiv2', 'lib/libexiv2.%s' % SHLIB_EXT], - 'dirs': [] -} - -moduleclass = 'vis' diff --git a/Golden_Repo/e/ecCodes/ecCodes-2.27.0-gompi-2022a.eb b/Golden_Repo/e/ecCodes/ecCodes-2.27.0-gompi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..3641581f22c451665d0fe098c9550ae503c827fe --- /dev/null +++ b/Golden_Repo/e/ecCodes/ecCodes-2.27.0-gompi-2022a.eb @@ -0,0 +1,46 @@ +easyblock = 'CMakeMake' + +name = 'ecCodes' +version = '2.27.0' + +homepage = 'https://software.ecmwf.int/wiki/display/ECC/ecCodes+Home' +description = """ecCodes is a package developed by ECMWF which provides an application programming interface and + a set of tools for decoding and encoding messages in the following formats: WMO FM-92 GRIB edition 1 and edition 2, + WMO FM-94 BUFR edition 3 and edition 4, WMO GTS abbreviated header (only decoding).""" + +toolchain = {'name': 'gompi', 'version': '2022a'} +toolchainopts = {'usempi': False} + +source_urls = ['https://confluence.ecmwf.int/download/attachments/45757960/'] +sources = ['eccodes-%(version)s-Source.tar.gz'] +checksums = ['ede5b3ffd503967a5eac89100e8ead5e16a881b7585d02f033584ed0c4269c99'] + +builddependencies = [('CMake', '3.23.1')] + +dependencies = [ + ('netCDF', '4.9.0'), + ('JasPer', '2.0.33'), + ('libjpeg-turbo', '2.1.3'), + ('libpng', '1.6.37'), + ('zlib', '1.2.12'), + ('libaec', '1.0.6'), +] + +# Python bindings are provided by a separate package 'eccodes-python' +configopts = "-DENABLE_NETCDF=ON -DENABLE_PNG=ON -DENABLE_PYTHON=OFF " +configopts += "-DENABLE_JPG=ON -DENABLE_JPG_LIBJASPER=ON " +configopts += "-DENABLE_ECCODES_THREADS=ON" # multi-threading with pthreads + +local_exes = ['%s_%s' % (a, b) + for a in ['bufr', 'grib', 'gts', 'metar'] + for b in ['compare', 'copy', 'dump', 'filter', 'get', 'ls']] +local_exes += ['codes_%s' % c for c in ['count', 'info', 'split_file']] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in local_exes] + + ['lib/libeccodes_f90.%s' % SHLIB_EXT, + 'lib/libeccodes.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +moduleclass = 'tools' diff --git a/Golden_Repo/e/ecCodes/ecCodes-2.27.0-gpsmpi-2022a.eb b/Golden_Repo/e/ecCodes/ecCodes-2.27.0-gpsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..5b634e318befb3dc27b3b6db0bce7fec9084a79d --- /dev/null +++ b/Golden_Repo/e/ecCodes/ecCodes-2.27.0-gpsmpi-2022a.eb @@ -0,0 +1,46 @@ +easyblock = 'CMakeMake' + +name = 'ecCodes' +version = '2.27.0' + +homepage = 'https://software.ecmwf.int/wiki/display/ECC/ecCodes+Home' +description = """ecCodes is a package developed by ECMWF which provides an application programming interface and + a set of tools for decoding and encoding messages in the following formats: WMO FM-92 GRIB edition 1 and edition 2, + WMO FM-94 BUFR edition 3 and edition 4, WMO GTS abbreviated header (only decoding).""" + +toolchain = {'name': 'gpsmpi', 'version': '2022a'} +toolchainopts = {'usempi': False} + +source_urls = ['https://confluence.ecmwf.int/download/attachments/45757960/'] +sources = ['eccodes-%(version)s-Source.tar.gz'] +checksums = ['ede5b3ffd503967a5eac89100e8ead5e16a881b7585d02f033584ed0c4269c99'] + +builddependencies = [('CMake', '3.23.1')] + +dependencies = [ + ('netCDF', '4.9.0'), + ('JasPer', '2.0.33'), + ('libjpeg-turbo', '2.1.3'), + ('libpng', '1.6.37'), + ('zlib', '1.2.12'), + ('libaec', '1.0.6'), +] + +# Python bindings are provided by a separate package 'eccodes-python' +configopts = "-DENABLE_NETCDF=ON -DENABLE_PNG=ON -DENABLE_PYTHON=OFF " +configopts += "-DENABLE_JPG=ON -DENABLE_JPG_LIBJASPER=ON " +configopts += "-DENABLE_ECCODES_THREADS=ON" # multi-threading with pthreads + +local_exes = ['%s_%s' % (a, b) + for a in ['bufr', 'grib', 'gts', 'metar'] + for b in ['compare', 'copy', 'dump', 'filter', 'get', 'ls']] +local_exes += ['codes_%s' % c for c in ['count', 'info', 'split_file']] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in local_exes] + + ['lib/libeccodes_f90.%s' % SHLIB_EXT, + 'lib/libeccodes.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +moduleclass = 'tools' diff --git a/Golden_Repo/e/ecCodes/ecCodes-2.27.0-ipsmpi-2022a.eb b/Golden_Repo/e/ecCodes/ecCodes-2.27.0-ipsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..8eeaa2d145beda3070a4561be64f77b66449a6d7 --- /dev/null +++ b/Golden_Repo/e/ecCodes/ecCodes-2.27.0-ipsmpi-2022a.eb @@ -0,0 +1,46 @@ +easyblock = 'CMakeMake' + +name = 'ecCodes' +version = '2.27.0' + +homepage = 'https://software.ecmwf.int/wiki/display/ECC/ecCodes+Home' +description = """ecCodes is a package developed by ECMWF which provides an application programming interface and + a set of tools for decoding and encoding messages in the following formats: WMO FM-92 GRIB edition 1 and edition 2, + WMO FM-94 BUFR edition 3 and edition 4, WMO GTS abbreviated header (only decoding).""" + +toolchain = {'name': 'ipsmpi', 'version': '2022a'} +toolchainopts = {'usempi': False} + +source_urls = ['https://confluence.ecmwf.int/download/attachments/45757960/'] +sources = ['eccodes-%(version)s-Source.tar.gz'] +checksums = ['ede5b3ffd503967a5eac89100e8ead5e16a881b7585d02f033584ed0c4269c99'] + +builddependencies = [('CMake', '3.23.1')] + +dependencies = [ + ('netCDF', '4.9.0'), + ('JasPer', '2.0.33'), + ('libjpeg-turbo', '2.1.3'), + ('libpng', '1.6.37'), + ('zlib', '1.2.12'), + ('libaec', '1.0.6'), +] + +# Python bindings are provided by a separate package 'eccodes-python' +configopts = "-DENABLE_NETCDF=ON -DENABLE_PNG=ON -DENABLE_PYTHON=OFF " +configopts += "-DENABLE_JPG=ON -DENABLE_JPG_LIBJASPER=ON " +configopts += "-DENABLE_ECCODES_THREADS=ON" # multi-threading with pthreads + +local_exes = ['%s_%s' % (a, b) + for a in ['bufr', 'grib', 'gts', 'metar'] + for b in ['compare', 'copy', 'dump', 'filter', 'get', 'ls']] +local_exes += ['codes_%s' % c for c in ['count', 'info', 'split_file']] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in local_exes] + + ['lib/libeccodes_f90.%s' % SHLIB_EXT, + 'lib/libeccodes.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +moduleclass = 'tools' diff --git a/Golden_Repo/e/eudev/eudev-3.2.11-GCCcore-11.3.0.eb b/Golden_Repo/e/eudev/eudev-3.2.11-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..5710764ae9d5d3c56f33b82e2b7e347ed1aee803 --- /dev/null +++ b/Golden_Repo/e/eudev/eudev-3.2.11-GCCcore-11.3.0.eb @@ -0,0 +1,46 @@ +easyblock = 'ConfigureMake' + +name = 'eudev' +version = '3.2.11' + +homepage = 'https://wiki.gentoo.org/wiki/Project:Eudev' + +description = """ + eudev is a fork of systemd-udev with the goal of obtaining better + compatibility with existing software such as OpenRC and Upstart, + older kernels, various toolchains and anything else required by + users and various distributions. +""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = [('https://github.com/eudev-project/eudev/archive')] +sources = ['v%(version)s.tar.gz'] +patches = ['%(name)s-%(version)s_python3.patch'] +checksums = [ + {'v3.2.11.tar.gz': 'dcfc482099f3fdfcfdb9aeabbc4d609877cf4d2d0407f50ab0c59d43fff44f92'}, + {'eudev-3.2.11_python3.patch': '846b1e72e12853c4146d3a4e312301001bbfb13110ce76de2afdf860f4d085a8'}, +] + +builddependencies = [ + ('binutils', '2.38'), + ('gperf', '3.1'), + ('Python', '3.10.4'), + ('Autotools', '20220317'), + ('pkgconf', '1.8.0'), +] + +osdependencies = [('kernel-headers', 'linux-libc-dev')] + +preconfigopts = "./autogen.sh && " +configopts = '--disable-blkid --disable-selinux --disable-manpages ' + +runtest = 'check' + +sanity_check_paths = { + 'files': ['bin/udevadm', 'include/libudev.h', 'include/udev.h', + 'lib/libudev.so.1'], + 'dirs': [], +} + +moduleclass = 'system' diff --git a/Golden_Repo/e/eudev/eudev-3.2.11_python3.patch b/Golden_Repo/e/eudev/eudev-3.2.11_python3.patch new file mode 100644 index 0000000000000000000000000000000000000000..6730aacf06124cfaf282723c931418dce9665ad0 --- /dev/null +++ b/Golden_Repo/e/eudev/eudev-3.2.11_python3.patch @@ -0,0 +1,9 @@ +diff -ruN eudev-3.2.9.orig/test/rule-syntax-check.py eudev-3.2.9/test/rule-syntax-check.py +--- eudev-3.2.9.orig/test/rule-syntax-check.py 2016-11-17 22:14:19.000000000 +0100 ++++ eudev-3.2.9/test/rule-syntax-check.py 2020-11-06 15:22:12.238868994 +0100 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/env python3 + # Simple udev rules syntax checker + # + # (C) 2010 Canonical Ltd. diff --git a/Golden_Repo/f/FFTW/FFTW-3.3.10-GCCcore-11.3.0.eb b/Golden_Repo/f/FFTW/FFTW-3.3.10-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..99cfafe375bccc7db74d2fc9ed0af8526a66af86 --- /dev/null +++ b/Golden_Repo/f/FFTW/FFTW-3.3.10-GCCcore-11.3.0.eb @@ -0,0 +1,22 @@ +name = 'FFTW' +version = '3.3.10' + +homepage = 'https://www.fftw.org' +description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) +in one or more dimensions, of arbitrary input size, and of both real and complex data.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +source_urls = [homepage] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467'] + +builddependencies = [('binutils', '2.38')] + +# We hide it here since this should be used just for Jupyter and the MPI version should be preferred for normal cases +hidden = True + +runtest = 'check' + +moduleclass = 'numlib' diff --git a/Golden_Repo/f/FFTW/FFTW-3.3.10-ipsmpi-2022a.eb b/Golden_Repo/f/FFTW/FFTW-3.3.10-ipsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..621ed5e8eac61040a8cf5ee6e5269f7b35fb76a0 --- /dev/null +++ b/Golden_Repo/f/FFTW/FFTW-3.3.10-ipsmpi-2022a.eb @@ -0,0 +1,38 @@ +name = 'FFTW' + +version = '3.3.10' + +homepage = 'http://www.fftw.org' +description = """FFTW is a C subroutine library for computing the discrete +Fourier transform (DFT) in one or more dimensions, of arbitrary input size, +and of both real and complex data.""" + +toolchain = {'name': 'ipsmpi', 'version': '2022a'} +toolchainopts = {'pic': True} + +source_urls = [homepage] +sources = ['fftw-3.3.10.tar.gz'] + +checksums = ['56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467'] + +# no quad precision, requires GCC v4.6 or higher +# see also +# http://www.fftw.org/doc/Extended-and-quadruple-precision-in-Fortran.html + +with_quad_prec = False + +# compilation fails on AMD systems when configuring with --enable-avx-128-fma, +# because Intel compilers do not support FMA4 instructions + +use_fma4 = False + +# can't find mpirun/mpiexec and fails +# runtest = 'check' + +modextravars = { + 'FFTW_ROOT': '%(installdir)s', + 'FFTW_INCLUDE': '%(installdir)s/include', + 'FFTW_LIB': '%(installdir)s/lib', +} + +moduleclass = 'numlib' diff --git a/Golden_Repo/f/FreeImage/FreeImage-3.18.0-GCCcore-11.3.0.eb b/Golden_Repo/f/FreeImage/FreeImage-3.18.0-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..20585c6304edd12533bb6bd4d7b14a220da87cd9 --- /dev/null +++ b/Golden_Repo/f/FreeImage/FreeImage-3.18.0-GCCcore-11.3.0.eb @@ -0,0 +1,40 @@ +easyblock = 'ConfigureMake' + +name = 'FreeImage' +version = '3.18.0' + +homepage = 'http://freeimage.sourceforge.net' +description = """FreeImage is an Open Source library project for developers who would like to support popular graphics +image formats like PNG, BMP, JPEG, TIFF and others as needed by today's multimedia applications. FreeImage is easy to +use, fast, multithreading safe.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} +toolchainopts = {'pic': True, 'cstd': 'c++11'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%%(name)s%s.zip' % ''.join(version.split('.'))] +patches = ['%(name)s-%(version)s-fix-makefile.patch'] +checksums = [ + 'f41379682f9ada94ea7b34fe86bf9ee00935a3147be41b6569c9605a53e438fd', # FreeImage3180.zip + '3eaa1eb9562ccfd0cb95a37879bb7e3e8c745166596d75af529478181ef006a0', # FreeImage-3.18.0-fix-makefile.patch +] + +builddependencies = [('binutils', '2.38')] + +skipsteps = ['configure'] + +buildopts = ['', '-f Makefile.fip'] +installopts = [ + 'INCDIR=%(installdir)s/include INSTALLDIR=%(installdir)s/lib', + '-f Makefile.fip INCDIR=%(installdir)s/include INSTALLDIR=%(installdir)s/lib' +] + +dependencies = [('zlib', '1.2.12')] + +sanity_check_paths = { + 'files': ['include/FreeImage.h', 'include/FreeImagePlus.h', 'lib/libfreeimage.a', 'lib/libfreeimage.%s' % SHLIB_EXT, + 'lib/libfreeimageplus.a', 'lib/libfreeimageplus.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'vis' diff --git a/Golden_Repo/f/FreeImage/FreeImage-3.18.0-fix-makefile.patch b/Golden_Repo/f/FreeImage/FreeImage-3.18.0-fix-makefile.patch new file mode 100644 index 0000000000000000000000000000000000000000..ac35040d4d637adaf48ca909d3988ead0e628f07 --- /dev/null +++ b/Golden_Repo/f/FreeImage/FreeImage-3.18.0-fix-makefile.patch @@ -0,0 +1,54 @@ +# Do not install files to root user +# wpoely86@gmail.com +diff -ur FreeImage.orig/Makefile.fip FreeImage/Makefile.fip +--- FreeImage.orig/Makefile.fip 2015-03-10 09:03:56.000000000 +0100 ++++ FreeImage/Makefile.fip 2019-04-09 10:32:42.052332853 +0200 +@@ -11,7 +11,7 @@ + # Converts cr/lf to just lf + DOS2UNIX = dos2unix + +-LIBRARIES = -lstdc++ ++LIBRARIES = -lstdc++ $(LIBS) + + MODULES = $(SRCS:.c=.o) + MODULES := $(MODULES:.cpp=.o) +@@ -72,10 +72,10 @@ + + install: + install -d $(INCDIR) $(INSTALLDIR) +- install -m 644 -o root -g root $(HEADER) $(INCDIR) +- install -m 644 -o root -g root $(HEADERFIP) $(INCDIR) +- install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR) +- install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR) ++ install -m 644 $(HEADER) $(INCDIR) ++ install -m 644 $(HEADERFIP) $(INCDIR) ++ install -m 644 $(STATICLIB) $(INSTALLDIR) ++ install -m 755 $(SHAREDLIB) $(INSTALLDIR) + ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME) + ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME) + +diff -ur FreeImage.orig/Makefile.gnu FreeImage/Makefile.gnu +--- FreeImage.orig/Makefile.gnu 2015-03-10 09:04:00.000000000 +0100 ++++ FreeImage/Makefile.gnu 2019-04-09 10:31:59.066052732 +0200 +@@ -11,7 +11,7 @@ + # Converts cr/lf to just lf + DOS2UNIX = dos2unix + +-LIBRARIES = -lstdc++ ++LIBRARIES = -lstdc++ $(LIBS) + + MODULES = $(SRCS:.c=.o) + MODULES := $(MODULES:.cpp=.o) +@@ -71,9 +71,9 @@ + + install: + install -d $(INCDIR) $(INSTALLDIR) +- install -m 644 -o root -g root $(HEADER) $(INCDIR) +- install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR) +- install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR) ++ install -m 644 $(HEADER) $(INCDIR) ++ install -m 644 $(STATICLIB) $(INSTALLDIR) ++ install -m 755 $(SHAREDLIB) $(INSTALLDIR) + ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME) + ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME) + # ldconfig diff --git a/Golden_Repo/g/GPicView/GPicView-0.2.5-GCCcore-11.3.0.eb b/Golden_Repo/g/GPicView/GPicView-0.2.5-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..f58c27473bc2f883e191ab1dbd352ec314c09078 --- /dev/null +++ b/Golden_Repo/g/GPicView/GPicView-0.2.5-GCCcore-11.3.0.eb @@ -0,0 +1,35 @@ +easyblock = 'ConfigureMake' + +name = 'GPicView' +version = '0.2.5' + +homepage = 'http://lxde.sourceforge.net/gpicview' +description = """GPicView - A Simple and Fast Image Viewer for X""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = [ + 'https://sourceforge.net/projects/lxde/files/GPicView%20%28image%20Viewer%29/0.2.x/'] +sources = [SOURCELOWER_TAR_XZ] +checksums = ['38466058e53702450e5899193c4b264339959b563dd5cd81f6f690de32d82942'] + +builddependencies = [ + ('binutils', '2.38'), + ('pkgconf', '1.8.0'), + ('Perl', '5.34.1'), +] + +dependencies = [ + ('X11', '20220504'), + ('GTK+', '3.24.34'), + ('libjpeg-turbo', '2.1.3'), +] + +configopts = '--enable-gtk3 ' + +sanity_check_paths = { + 'files': ['bin/gpicview'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/Golden_Repo/g/GStreamer/GStreamer-1.18_fix_bad_suid.patch b/Golden_Repo/g/GStreamer/GStreamer-1.18_fix_bad_suid.patch new file mode 100644 index 0000000000000000000000000000000000000000..4fff14d8b7af95e16f3ec8e948e7b39e3c6addc6 --- /dev/null +++ b/Golden_Repo/g/GStreamer/GStreamer-1.18_fix_bad_suid.patch @@ -0,0 +1,22 @@ +Do NOT make files setuid or try to do setcap. +That's a recipe for disaster. + +Åke Sandgren, 20221031 +diff -ru gstreamer-1.20.2.orig/libs/gst/helpers/ptp_helper_post_install.sh gstreamer-1.20.2/libs/gst/helpers/ptp_helper_post_install.sh +--- gstreamer-1.20.2.orig/libs/gst/helpers/ptp_helper_post_install.sh 2022-05-03 00:29:29.000000000 +0200 ++++ gstreamer-1.20.2/libs/gst/helpers/ptp_helper_post_install.sh 2022-10-31 16:39:11.959435316 +0100 +@@ -11,14 +11,10 @@ + setuid-root) + echo "$0: permissions before: " + ls -l "$ptp_helper" +- chown root "$ptp_helper" || true +- chmod u+s "$ptp_helper" || true + echo "$0: permissions after: " + ls -l "$ptp_helper" + ;; + capabilities) +- echo "Calling $setcap cap_net_bind_service,cap_net_admin+ep $ptp_helper" +- $setcap cap_net_bind_service,cap_net_admin+ep "$ptp_helper" || true + ;; + none) + echo "No perms/caps to set for $ptp_helper" diff --git a/Golden_Repo/g/GStreamer/GStreamer-1.20.2-GCCcore-11.3.0.eb b/Golden_Repo/g/GStreamer/GStreamer-1.20.2-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..bddcf2ab2ce466328d244e9611d64519b3d99a50 --- /dev/null +++ b/Golden_Repo/g/GStreamer/GStreamer-1.20.2-GCCcore-11.3.0.eb @@ -0,0 +1,81 @@ +easyblock = 'Bundle' + +name = 'GStreamer' +version = '1.20.2' + +homepage = 'https://gstreamer.freedesktop.org/' +description = """GStreamer is a library for constructing graphs of media-handling + components. The applications it supports range from simple + Ogg/Vorbis playback, audio/video streaming to complex audio + (mixing) and video (non-linear editing) processing.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +builddependencies = [ + ('binutils', '2.38'), + ('Meson', '0.62.1'), + ('Ninja', '1.10.2'), + ('Bison', '3.8.2'), + ('flex', '2.6.4'), + ('GObject-Introspection', '1.72.0'), + ('gettext', '0.21'), + ('pkgconf', '1.8.0'), + ('CMake', '3.23.1'), + ('git', '2.36.0', '-nodocs'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('zlib', '1.2.12'), + ('GMP', '6.2.1'), + ('GSL', '2.7'), + ('GLib', '2.72.1'), + ('GTK+', '3.24.34'), + ('libunwind', '1.6.2'), + ('double-conversion', '3.2.0'), + ('elfutils', '0.187'), +] + +default_easyblock = 'MesonNinja' + +default_component_specs = { + 'sources': [SOURCELOWER_TAR_XZ], + 'start_dir': '%(namelower)s-%(version)s', +} + +components = [ + (name, version, { + 'source_urls': ['https://gstreamer.freedesktop.org/src/%(namelower)s'], + 'patches': ['GStreamer-1.18_fix_bad_suid.patch'], + 'checksums': [ + 'df24e8792691a02dfe003b3833a51f1dbc6c3331ae625d143b17da939ceb5e0a', + '3d963ffdaf157ed92f46a071c4ef46f548c0b19186427e8404cb066705bbb61a', + ], + 'configopts': "-Dlibdw=disabled ", + }), + ('GST-plugins-base', version, { + 'source_urls': ['https://gstreamer.freedesktop.org/src/%(namelower)s'], + 'checksums': ['ab0656f2ad4d38292a803e0cb4ca090943a9b43c8063f650b4d3e3606c317f17'], + 'preconfigopts': 'export PKG_CONFIG_PATH="%(installdir)s/lib/pkgconfig:${PKG_CONFIG_PATH}" && ', + }), + ('GST-plugins-good', version, { + 'source_urls': ['https://gstreamer.freedesktop.org/src/%(namelower)s'], + 'checksums': ['83589007bf002b8f9ef627718f308c16d83351905f0db8e85c3060f304143aae'], + 'preconfigopts': 'export PKG_CONFIG_PATH="%(installdir)s/lib/pkgconfig:${PKG_CONFIG_PATH}" && ', + }), + ('GST-plugins-bad', version, { + 'source_urls': ['https://gstreamer.freedesktop.org/src/%(namelower)s'], + 'checksums': ['4adc4c05f41051f8136b80cda99b0d049a34e777832f9fea7c5a70347658745b'], + 'preconfigopts': 'export PKG_CONFIG_PATH="%(installdir)s/lib/pkgconfig:${PKG_CONFIG_PATH}" && ', + }), +] + +modextrapaths = {'PKG_CONFIG_PATH': 'lib/pkgconfig'} # required! + +sanity_check_paths = { + 'files': ['bin/gst-%s-1.0' % x for x in ['discoverer', 'play', 'device-monitor']] + + ['lib/libgst%s-1.0.%s' % (x, SHLIB_EXT) for x in ['app', 'audio', 'video']], + 'dirs': ['include', 'share'] +} + +moduleclass = 'vis' diff --git a/Golden_Repo/g/glog/glog-0.6.0-GCCcore-11.3.0.eb b/Golden_Repo/g/glog/glog-0.6.0-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..f8d1bdb9f181437999a5742744e0f2fe265b0920 --- /dev/null +++ b/Golden_Repo/g/glog/glog-0.6.0-GCCcore-11.3.0.eb @@ -0,0 +1,33 @@ +easyblock = 'CMakeMake' + +name = 'glog' +version = '0.6.0' + +homepage = 'https://github.com/google/glog' +description = "A C++ implementation of the Google logging module." + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} +toolchainopts = {'cstd': 'c++11'} + +source_urls = ['https://github.com/google/glog/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['8a83bf982f37bb70825df71a9709fa90ea9f4447fb3c099e1d720a439d88bad6'] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1') +] + +dependencies = [ + ('gflags', '2.2.2'), + ('libunwind', '1.6.2'), +] + +configopts = '-DBUILD_SHARED_LIBS=ON ' + +sanity_check_paths = { + 'files': ['include/glog/logging.h', 'include/glog/raw_logging.h', 'lib/libglog.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/Golden_Repo/h/h5py/h5py-3.7.0-GCCcore-11.3.0-serial.eb b/Golden_Repo/h/h5py/h5py-3.7.0-GCCcore-11.3.0-serial.eb new file mode 100644 index 0000000000000000000000000000000000000000..c6ca6ba4b092d0c9b6117a74c4171b4f5b796b54 --- /dev/null +++ b/Golden_Repo/h/h5py/h5py-3.7.0-GCCcore-11.3.0-serial.eb @@ -0,0 +1,37 @@ +easyblock = "PythonPackage" + +name = 'h5py' +version = '3.7.0' +versionsuffix = '-serial' + +homepage = 'http://www.h5py.org/' +description = """HDF5 for Python (h5py) is a general-purpose Python interface to the Hierarchical Data Format library, + version 5. HDF5 is a versatile, mature scientific software library designed for the fast, flexible storage of enormous + amounts of data. +""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['3fcf37884383c5da64846ab510190720027dca0768def34dd8dcb659dbe5cbf3'] + +builddependencies = [ + ('binutils', '2.38'), + ('pkgconfig', '1.5.5', '-python')] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('HDF5', '1.12.2', '-serial'), +] + +use_pip = True +sanity_pip_check = True +download_dep_fail = True + +# h5py's setup.py will disable setup_requires if H5PY_SETUP_REQUIRES is set to 0 +# without this environment variable, pip will fetch the minimum numpy version h5py supports during install, +# even though SciPy-bundle provides a newer version that satisfies h5py's install_requires dependency. +preinstallopts = 'HDF5_MPI=OFF HDF5_DIR="$EBROOTHDF5" H5PY_SETUP_REQUIRES=0 ' + +moduleclass = 'data' diff --git a/Golden_Repo/h/h5py/h5py-3.7.0-gpsmpi-2022a.eb b/Golden_Repo/h/h5py/h5py-3.7.0-gpsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..c615f7c6fd948d08b2d05eb1179a020164d5645c --- /dev/null +++ b/Golden_Repo/h/h5py/h5py-3.7.0-gpsmpi-2022a.eb @@ -0,0 +1,35 @@ +easyblock = 'PythonPackage' + +name = 'h5py' +version = '3.7.0' + +homepage = 'https://www.h5py.org/' +description = """HDF5 for Python (h5py) is a general-purpose Python interface to the Hierarchical Data Format library, + version 5. HDF5 is a versatile, mature scientific software library designed for the fast, flexible storage of enormous + amounts of data.""" + +toolchain = {'name': 'gpsmpi', 'version': '2022a'} +toolchainopts = {'usempi': True} + +sources = [SOURCE_TAR_GZ] +checksums = ['3fcf37884383c5da64846ab510190720027dca0768def34dd8dcb659dbe5cbf3'] + +builddependencies = [('pkgconfig', '1.5.5', '-python')] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('HDF5', '1.12.2'), + ('mpi4py', '3.1.4'), +] + +use_pip = True +sanity_pip_check = True +download_dep_fail = True + +# h5py's setup.py will disable setup_requires if H5PY_SETUP_REQUIRES is set to 0 +# without this environment variable, pip will fetch the minimum numpy version h5py supports during install, +# even though SciPy-bundle provides a newer version that satisfies h5py's install_requires dependency. +preinstallopts = 'HDF5_MPI=ON HDF5_DIR="$EBROOTHDF5" H5PY_SETUP_REQUIRES=0 ' + +moduleclass = 'data' diff --git a/Golden_Repo/h/h5py/h5py-3.7.0-ipsmpi-2022a.eb b/Golden_Repo/h/h5py/h5py-3.7.0-ipsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..4118d6bc6bd10e07ff96df4592c90dbe80a30611 --- /dev/null +++ b/Golden_Repo/h/h5py/h5py-3.7.0-ipsmpi-2022a.eb @@ -0,0 +1,35 @@ +easyblock = 'PythonPackage' + +name = 'h5py' +version = '3.7.0' + +homepage = 'https://www.h5py.org/' +description = """HDF5 for Python (h5py) is a general-purpose Python interface to the Hierarchical Data Format library, + version 5. HDF5 is a versatile, mature scientific software library designed for the fast, flexible storage of enormous + amounts of data.""" + +toolchain = {'name': 'ipsmpi', 'version': '2022a'} +toolchainopts = {'usempi': True} + +sources = [SOURCE_TAR_GZ] +checksums = ['3fcf37884383c5da64846ab510190720027dca0768def34dd8dcb659dbe5cbf3'] + +builddependencies = [('pkgconfig', '1.5.5', '-python')] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('HDF5', '1.12.2'), + ('mpi4py', '3.1.4'), +] + +use_pip = True +sanity_pip_check = True +download_dep_fail = True + +# h5py's setup.py will disable setup_requires if H5PY_SETUP_REQUIRES is set to 0 +# without this environment variable, pip will fetch the minimum numpy version h5py supports during install, +# even though SciPy-bundle provides a newer version that satisfies h5py's install_requires dependency. +preinstallopts = 'HDF5_MPI=ON HDF5_DIR="$EBROOTHDF5" H5PY_SETUP_REQUIRES=0 ' + +moduleclass = 'data' diff --git a/Golden_Repo/i/ITK/ITK-5.2.1-foss-2022a.eb b/Golden_Repo/i/ITK/ITK-5.2.1-foss-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..7b3c4dc99f3a94e29e4733fec9ff81134f360776 --- /dev/null +++ b/Golden_Repo/i/ITK/ITK-5.2.1-foss-2022a.eb @@ -0,0 +1,80 @@ +easyblock = 'CMakeMake' + +name = 'ITK' +version = '5.2.1' + +homepage = 'https://itk.org' +description = """Insight Segmentation and Registration Toolkit (ITK) provides + an extensive suite of software tools for registering and segmenting + multidimensional imaging data.""" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'pic': True, 'cstd': 'c++11'} + +github_account = 'InsightSoftwareConsortium' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['6022b2b64624b8bcec3333fe48d5f74ff6ebceb3bdf98258ba7d7fbbc76b99ab'] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1'), + ('Bison', '3.8.2'), + ('Eigen', '3.4.0'), + ('pkgconf', '1.8.0'), + ('Perl', '5.34.1'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('expat', '2.4.8'), + ('HDF5', '1.12.2'), + ('libjpeg-turbo', '2.1.3'), + ('libpng', '1.6.37'), + ('LibTIFF', '4.3.0'), + ('VTK', '9.2.5'), + ('zlib', '1.2.12'), + ('SWIG', '4.0.2',), + ('FFTW', '3.3.10'), + ('double-conversion', '3.2.0'), + ('tbb', '2021.5.0'), +] + +local_sys_deps = [ + 'EIGEN', 'EXPAT', 'HDF5', 'JPEG', 'PNG', 'TIFF', 'ZLIB', + 'FFTW', 'DOUBLECONVERSION', 'SWIG', +] +local_sys_cmake = ['-DITK_USE_SYSTEM_%s=ON' % d for d in local_sys_deps] + +configopts = "-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON " +configopts += '-DBUILD_SHARED_LIBS=ON -DBUILD_TESTING=OFF ' +configopts += '-DModule_ITKReview=ON -DModule_ITKVtkGlue=ON ' +configopts += '-DITK_WRAP_PYTHON:BOOL=ON ' +configopts += "-DSWIG_EXECUTABLE=${EBROOTSWIG}/bin/swig " +configopts += ' '.join(local_sys_cmake) + +configopts += "-DModule_SimpleITKFilters=ON " +configopts += '-DITK_LEGACY_REMOVE:BOOL=OFF ' # needed by SimpleITK +configopts += "-DITK_FORBID_DOWNLOADS=OFF " # needed by SimpleITK + +prebuildopts = "LC_ALL=C " + +preinstallopts = "export PYTHONPATH=%(installdir)s/lib/python%(pyshortver)s/site-packages:$PYTHONPATH && " + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +local_lib_names = ['ITKCommon', 'ITKIOHDF5', 'ITKIOJPEG', 'ITKIOPNG', 'ITKIOTIFF', + 'ITKReview', 'ITKVTK', 'ITKVtkGlue', 'itkSimpleITKFilters', + 'ITKFFT'] + +sanity_check_paths = { + 'files': ['bin/itkTestDriver'] + + ['lib/lib%s-%%(version_major)s.%%(version_minor)s.%s' % (l, SHLIB_EXT) for l in local_lib_names], + 'dirs': ['include/ITK-%(version_major_minor)s', + 'lib/python%(pyshortver)s/site-packages', + 'share'], +} + +sanity_check_commands = [('python', "-c 'import %(namelower)s'")] + +moduleclass = 'vis' diff --git a/Golden_Repo/i/ITK/ITK-5.2.1-gcccoremkl-11.3.0-2022.1.0-nompi.eb b/Golden_Repo/i/ITK/ITK-5.2.1-gcccoremkl-11.3.0-2022.1.0-nompi.eb new file mode 100644 index 0000000000000000000000000000000000000000..ebf6dcee36dbb91972048e43703ec97926bbc031 --- /dev/null +++ b/Golden_Repo/i/ITK/ITK-5.2.1-gcccoremkl-11.3.0-2022.1.0-nompi.eb @@ -0,0 +1,81 @@ +easyblock = 'CMakeMake' + +name = 'ITK' +version = '5.2.1' +versionsuffix = '-nompi' + +homepage = 'https://itk.org' +description = """Insight Segmentation and Registration Toolkit (ITK) provides + an extensive suite of software tools for registering and segmenting + multidimensional imaging data.""" + +toolchain = {'name': 'gcccoremkl', 'version': '11.3.0-2022.1.0'} +toolchainopts = {'pic': True, 'cstd': 'c++11'} + +github_account = 'InsightSoftwareConsortium' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['6022b2b64624b8bcec3333fe48d5f74ff6ebceb3bdf98258ba7d7fbbc76b99ab'] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1'), + ('Bison', '3.8.2'), + ('Eigen', '3.4.0'), + ('pkgconf', '1.8.0'), + ('Perl', '5.34.1'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('expat', '2.4.8'), + ('HDF5', '1.12.2', '-serial'), + ('libjpeg-turbo', '2.1.3'), + ('libpng', '1.6.37'), + ('LibTIFF', '4.3.0'), + ('VTK', '9.2.5', '-nompi'), + ('zlib', '1.2.12'), + ('SWIG', '4.0.2',), + ('FFTW', '3.3.10'), + ('double-conversion', '3.2.0'), + ('tbb', '2021.5.0'), +] + +local_sys_deps = [ + 'EIGEN', 'EXPAT', 'HDF5', 'JPEG', 'PNG', 'TIFF', 'ZLIB', + 'FFTW', 'DOUBLECONVERSION', 'SWIG', +] +local_sys_cmake = ['-DITK_USE_SYSTEM_%s=ON' % d for d in local_sys_deps] + +configopts = "-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON " +configopts += '-DBUILD_SHARED_LIBS=ON -DBUILD_TESTING=OFF ' +configopts += '-DModule_ITKReview=ON -DModule_ITKVtkGlue=ON ' +configopts += '-DITK_WRAP_PYTHON:BOOL=ON ' +configopts += "-DSWIG_EXECUTABLE=${EBROOTSWIG}/bin/swig " +configopts += ' '.join(local_sys_cmake) + +configopts += "-DModule_SimpleITKFilters=ON " +configopts += '-DITK_LEGACY_REMOVE:BOOL=OFF ' # needed by SimpleITK +configopts += "-DITK_FORBID_DOWNLOADS=OFF " # needed by SimpleITK + +prebuildopts = "LC_ALL=C " + +preinstallopts = "export PYTHONPATH=%(installdir)s/lib/python%(pyshortver)s/site-packages:$PYTHONPATH && " + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +local_lib_names = ['ITKCommon', 'ITKIOHDF5', 'ITKIOJPEG', 'ITKIOPNG', 'ITKIOTIFF', + 'ITKReview', 'ITKVTK', 'ITKVtkGlue', 'itkSimpleITKFilters', + 'ITKFFT'] + +sanity_check_paths = { + 'files': ['bin/itkTestDriver'] + + ['lib/lib%s-%%(version_major)s.%%(version_minor)s.%s' % (l, SHLIB_EXT) for l in local_lib_names], + 'dirs': ['include/ITK-%(version_major_minor)s', + 'lib/python%(pyshortver)s/site-packages', + 'share'], +} + +sanity_check_commands = [('python', "-c 'import %(namelower)s'")] + +moduleclass = 'vis' diff --git a/Golden_Repo/i/ITK/ITK-5.2.1-gpsmkl-2022a.eb b/Golden_Repo/i/ITK/ITK-5.2.1-gpsmkl-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..496993732ce4d387e1aa607390b5f13bc0c60dc4 --- /dev/null +++ b/Golden_Repo/i/ITK/ITK-5.2.1-gpsmkl-2022a.eb @@ -0,0 +1,80 @@ +easyblock = 'CMakeMake' + +name = 'ITK' +version = '5.2.1' + +homepage = 'https://itk.org' +description = """Insight Segmentation and Registration Toolkit (ITK) provides + an extensive suite of software tools for registering and segmenting + multidimensional imaging data.""" + +toolchain = {'name': 'gpsmkl', 'version': '2022a'} +toolchainopts = {'pic': True, 'cstd': 'c++11'} + +github_account = 'InsightSoftwareConsortium' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['6022b2b64624b8bcec3333fe48d5f74ff6ebceb3bdf98258ba7d7fbbc76b99ab'] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1'), + ('Bison', '3.8.2'), + ('Eigen', '3.4.0'), + ('pkgconf', '1.8.0'), + ('Perl', '5.34.1'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('expat', '2.4.8'), + ('HDF5', '1.12.2'), + ('libjpeg-turbo', '2.1.3'), + ('libpng', '1.6.37'), + ('LibTIFF', '4.3.0'), + ('VTK', '9.2.5'), + ('zlib', '1.2.12'), + ('SWIG', '4.0.2',), + ('FFTW', '3.3.10'), + ('double-conversion', '3.2.0'), + ('tbb', '2021.5.0'), +] + +local_sys_deps = [ + 'EIGEN', 'EXPAT', 'HDF5', 'JPEG', 'PNG', 'TIFF', 'ZLIB', + 'FFTW', 'DOUBLECONVERSION', 'SWIG', +] +local_sys_cmake = ['-DITK_USE_SYSTEM_%s=ON' % d for d in local_sys_deps] + +configopts = "-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON " +configopts += '-DBUILD_SHARED_LIBS=ON -DBUILD_TESTING=OFF ' +configopts += '-DModule_ITKReview=ON -DModule_ITKVtkGlue=ON ' +configopts += '-DITK_WRAP_PYTHON:BOOL=ON ' +configopts += "-DSWIG_EXECUTABLE=${EBROOTSWIG}/bin/swig " +configopts += ' '.join(local_sys_cmake) + +configopts += "-DModule_SimpleITKFilters=ON " +configopts += '-DITK_LEGACY_REMOVE:BOOL=OFF ' # needed by SimpleITK +configopts += "-DITK_FORBID_DOWNLOADS=OFF " # needed by SimpleITK + +prebuildopts = "LC_ALL=C " + +preinstallopts = "export PYTHONPATH=%(installdir)s/lib/python%(pyshortver)s/site-packages:$PYTHONPATH && " + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +local_lib_names = ['ITKCommon', 'ITKIOHDF5', 'ITKIOJPEG', 'ITKIOPNG', 'ITKIOTIFF', + 'ITKReview', 'ITKVTK', 'ITKVtkGlue', 'itkSimpleITKFilters', + 'ITKFFT'] + +sanity_check_paths = { + 'files': ['bin/itkTestDriver'] + + ['lib/lib%s-%%(version_major)s.%%(version_minor)s.%s' % (l, SHLIB_EXT) for l in local_lib_names], + 'dirs': ['include/ITK-%(version_major_minor)s', + 'lib/python%(pyshortver)s/site-packages', + 'share'], +} + +sanity_check_commands = [('python', "-c 'import %(namelower)s'")] + +moduleclass = 'vis' diff --git a/Golden_Repo/i/ispc/ispc-1.18.1.eb b/Golden_Repo/i/ispc/ispc-1.18.1.eb new file mode 100644 index 0000000000000000000000000000000000000000..44e37c459e24c18a82e53ccd76c865319f2c7a9f --- /dev/null +++ b/Golden_Repo/i/ispc/ispc-1.18.1.eb @@ -0,0 +1,26 @@ +easyblock = 'Tarball' + +name = 'ispc' +version = '1.18.1' + +homepage = 'http://ispc.github.io/ , https://github.com/ispc/ispc/' +description = """Intel SPMD Program Compilers; An open-source compiler for high-performance + SIMD programming on the CPU. ispc is a compiler for a variant of the C programming language, + with extensions for 'single program, multiple data' (SPMD) programming. + Under the SPMD model, the programmer writes a program that generally appears + to be a regular serial program, though the execution model is actually that + a number of program instances execute in parallel on the hardware. +""" + +toolchain = SYSTEM + +source_urls = [('https://github.com/ispc/ispc/releases/download/v%(version)s')] +sources = ['ispc-v%(version)s-linux.tar.gz'] +checksums = ['7faf59f26c09ceffe6165805d9e40b6582ddc1417c12786a214f4536e3388b47'] + +sanity_check_paths = { + 'files': ["bin/ispc"], + 'dirs': [] +} + +moduleclass = 'system' diff --git a/Golden_Repo/j/Julia/Julia-1.8.5-foss-2022a.eb b/Golden_Repo/j/Julia/Julia-1.8.5-foss-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..41916d88ea22e3221d26d2abef47c458b3769946 --- /dev/null +++ b/Golden_Repo/j/Julia/Julia-1.8.5-foss-2022a.eb @@ -0,0 +1,248 @@ +name = 'Julia' +version = '1.8.5' + +homepage = 'https://julialang.org/' +description = """Julia was designed from the beginning for high performance. +Julia programs compile to efficient native code for multiple platforms via LLVM +""" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'usempi': False, 'pic': True} + +source_urls = ['https://github.com/JuliaLang/julia/releases/download/v%(version)s/'] +sources = ['julia-%(version)s-full.tar.gz'] +checksums = ['35554080a4b4d3ce52ef220254306bd42ac0d88eff9eb85592a57d0663db5df2'] + +builddependencies = [ + ('binutils', '2.38'), + ('git', '2.36.0', '-nodocs'), + ('CMake', '3.23.1'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('GMP', '6.2.1'), + ('CUDA', '11.7', '', SYSTEM), + ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('matplotlib', '3.5.2', '', ('gcccoremkl', '11.3.0-2022.1.0')), + # ('OpenGL', '2022a'), # build segfaults starting with version 1.8.1 + ('OpenSSL', '1.1', '', SYSTEM), +] + +skipsteps = ['configure'] +buildopts = " USE_SYSTEM_GMP=1 USE_INTEL_MKL=1 " +installopts = "prefix=%(installdir)s " + +arch_name = 'gpu' + +exts_defaultclass = 'JuliaPackage' +exts_list = [ + # General Purpose + ('PackageCompiler.jl', '2.1.4', { + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/JuliaLang/PackageCompiler.jl/archive/'], + 'checksums': ['2fd6f50003d995624374900e7e0220cd7cd8386a317e0070d2b4b9b9d61c5e88'], + }), + ('HTTP.jl', '1.7.4', { + 'source_tmpl': 'v1.7.4.tar.gz', + 'source_urls': ['https://github.com/JuliaWeb/HTTP.jl/archive/'], + 'checksums': ['95e4079f12983ad5008cca2505a5408b6f0146a9ed8f247361e090004030613d'], + }), + ('Parsers.jl', '2.5.1', { + 'source_tmpl': 'v2.5.1.tar.gz', + 'source_urls': ['https://github.com/JuliaData/Parsers.jl/archive/'], + 'checksums': ['72494acac42c7dff16e1a6ac1305f13001f3743e0021d158d097399f0567d926'], + }), + ('VersionParsing.jl', '1.3.0', { + 'source_tmpl': 'v1.3.0.tar.gz', + 'source_urls': ['https://github.com/JuliaInterop/VersionParsing.jl/archive/'], + 'checksums': ['f90fe419e1a40ef0eccfaaed1d1b7792d9115a059a82d0c23e3c04c944d0f8ca'], + }), + ('JSON.jl', '0.21.3', { + 'source_tmpl': 'v0.21.3.tar.gz', + 'source_urls': ['https://github.com/JuliaIO/JSON.jl/archive/'], + 'checksums': ['bd02a015da24b03f79d55967b29f5ceaba2477b559242576d74f02623bb1b6b1'], + }), + ('WebIO.jl', '0.8.20', { + 'source_tmpl': 'v0.8.20.tar.gz', + 'source_urls': ['https://github.com/JuliaGizmos/WebIO.jl/archive/'], + 'checksums': ['d8c45c0be367963539cf7bdf748d16b4f6065fa5113e353ad57872980fc56b39'], + }), + ('ProgressMeter.jl', '1.7.2', { + 'source_tmpl': 'v1.7.2.tar.gz', + 'source_urls': ['https://github.com/timholy/ProgressMeter.jl/archive/'], + 'checksums': ['3591ea33d0ad7576bbb7d430ba94a988274af6434fbd7f3d0dc7fc2655dc888c'], + }), + ('Conda.jl', '1.7.0', { + 'source_tmpl': 'v1.7.0.tar.gz', + 'source_urls': ['https://github.com/JuliaPy/Conda.jl/archive/'], + 'checksums': ['2077b1192e1cfa206caf441d9d91b0ca83aa935db89918f1fd69cd25c2415ced'], + }), + ('PyCall.jl', '1.95.1', { + 'source_tmpl': 'v1.95.1.tar.gz', + 'source_urls': ['https://github.com/JuliaPy/PyCall.jl/archive/'], + 'checksums': ['8746b3ecc54fd670e5983945bec205ff65cdb4b9e395a79f887cc28741b05e87'], + }), + ('LaTeXStrings.jl', '1.3.0', { + 'source_tmpl': 'v1.3.0.tar.gz', + 'source_urls': ['https://github.com/stevengj/LaTeXStrings.jl/archive/'], + 'checksums': ['f90fe419e1a40ef0eccfaaed1d1b7792d9115a059a82d0c23e3c04c944d0f8ca'], + }), + ('DocumentFormat.jl', '4.0.3', { + 'source_tmpl': 'v4.0.3.tar.gz', + 'source_urls': ['https://github.com/julia-vscode/DocumentFormat.jl/archive/'], + 'checksums': ['4a7131590fa07d16d8b4998ef7570f797148e7ed622a0fa431a6ca3fe52156ab'], + }), + # Data Science + ('CSV.jl', '0.10.9', { + 'source_tmpl': 'v0.10.9.tar.gz', + 'source_urls': ['https://github.com/JuliaData/CSV.jl/archive/'], + 'checksums': ['e0958f0bf04e2b32bc4040e74ce9eed1e5be3947c03f381be1003ac197304d84'], + }), + ('DataFrames.jl', '1.4.4', { + 'source_tmpl': 'v1.4.4.tar.gz', + 'source_urls': ['https://github.com/JuliaData/DataFrames.jl/archive/'], + 'checksums': ['365877a405d1ba3af23ff5258424870cce434a13b02df34c7d8a78568ef2b87a'], + }), + ('Arrow.jl', '2.4.3', { + 'source_tmpl': 'v2.4.3.tar.gz', + 'source_urls': ['https://github.com/JuliaData/Arrow.jl/archive/'], + 'checksums': ['d65a8c803f9ac664b3afc878f1eba2c7fe99d91601aebc3dc288784585be80a2'], + }), + ('OnlineStats.jl', '1.5.14', { + 'source_tmpl': 'v1.5.14.tar.gz', + 'source_urls': ['https://github.com/joshday/OnlineStats.jl/archive/'], + 'checksums': ['b1c725a3de6cfde25271753b7cc341d2f565bc6aa74ae76394f845cb0339dc42'], + }), + ('Query.jl', '1.0.0', { + 'source_tmpl': 'v1.0.0.tar.gz', + 'source_urls': ['https://github.com/queryverse/Query.jl/archive/'], + 'checksums': ['76c05e3ffc8f3c2ce2cd3f6824f40a107cdba6fc58c4ce42de2289132de988e0'], + }), + # Scientific Domains + ('GSL.jl', '1.0.1', { + 'source_tmpl': 'v1.0.1.tar.gz', + 'source_urls': ['https://github.com/JuliaMath/GSL.jl/archive/refs/tags/'], + 'checksums': ['91a5acbb752610c5989b9acef126f2231f612debb7ba6d1d4625c68d2af5776e'], + }), + ('DifferentialEquations.jl', '7.6.0', { + 'source_tmpl': 'v7.6.0.tar.gz', + 'source_urls': ['https://github.com/SciML/DifferentialEquations.jl/archive/'], + 'checksums': ['32df0e2b2811567f5d58f5b88831e6a6c3c15b4d2f0bae6bde0a11a98b4e49d8'], + }), + ('Distributions.jl', '0.25.80', { + 'source_tmpl': 'v0.25.80.tar.gz', + 'source_urls': ['https://github.com/JuliaStats/Distributions.jl/archive/'], + 'checksums': ['0f457839d969dd5f8a12ba96fb3a3a728387945d98504ba3e7131178ef8e9ef7'], + }), + ('Optim.jl', '1.7.4', { + 'source_tmpl': 'v1.7.4.tar.gz', + 'source_urls': ['https://github.com/JuliaNLSolvers/Optim.jl/archive/'], + 'checksums': ['95e4079f12983ad5008cca2505a5408b6f0146a9ed8f247361e090004030613d'], + }), + ('IterativeSolvers.jl', '0.9.2', { + 'source_tmpl': 'v0.9.2.tar.gz', + 'source_urls': ['https://github.com/JuliaLinearAlgebra/IterativeSolvers.jl/archive/'], + 'checksums': ['95fbfa39aa68e989ae6bad2f51ce0fe5635ba3f3375d0ea4d9422e77ff924a9b'], + }), + ('AbstractFFTs.jl', '1.2.1', { + 'source_tmpl': 'v1.2.1.tar.gz', + 'source_urls': ['https://github.com/JuliaMath/AbstractFFTs.jl/archive/'], + 'checksums': ['58abf90b037c618daeed89940c77ac129b5155b26429ac77643cc9c5db453363'], + }), + ('OrdinaryDiffEq.jl', '6.42.0', { + 'source_tmpl': 'v6.42.0.tar.gz', + 'source_urls': ['https://github.com/SciML/OrdinaryDiffEq.jl/archive/'], + 'checksums': ['22af73320fd7577e3e4557e10f2b7cb0f77c03556499699033c47c8f56cbe482'], + }), + ('SpecialFunctions.jl', '1.8.7', { + 'source_tmpl': 'v1.8.7.tar.gz', + 'source_urls': ['https://github.com/JuliaMath/SpecialFunctions.jl/archive/'], + 'checksums': ['3f2ecec0506fe47cfa5e436ac510e2a82d39f74fceaeb422572cf06d90f2096a'], + }), + ('JuMP.jl', '1.7.0', { + 'source_tmpl': 'v1.7.0.tar.gz', + 'source_urls': ['https://github.com/jump-dev/JuMP.jl/archive/'], + 'checksums': ['2077b1192e1cfa206caf441d9d91b0ca83aa935db89918f1fd69cd25c2415ced'], + }), + # Visualization + ('GR.jl', '0.71.5', { + 'source_tmpl': 'v0.71.5.tar.gz', + 'source_urls': ['https://github.com/jheinen/GR.jl/archive/'], + 'checksums': ['d2b096241d8dfd3e16b1abcf2c0dd5664db025c1eeadf11145b9934284b112b7'], + }), + ('PlotlyJS.jl', '0.18.10', { + 'source_tmpl': 'v0.18.10.tar.gz', + 'source_urls': ['https://github.com/JuliaPlots/PlotlyJS.jl/archive/'], + 'checksums': ['b574113676080c14634118ce3a5ceda7562224039a2fd0ea3ad8bc5938700a49'], + }), + ('PyPlot.jl', '2.11.0', { + 'source_tmpl': 'v2.11.0.tar.gz', + 'source_urls': ['https://github.com/JuliaPy/PyPlot.jl/archive/'], + 'checksums': ['10498f5b7bd958c5e0dae33aa2514048005e4f5b037d9a73a09cb4231259cc13'], + }), + ('Plots.jl', '1.38.4', { + 'source_tmpl': 'v1.38.4.tar.gz', + 'source_urls': ['https://github.com/JuliaPlots/Plots.jl/archive/'], + 'checksums': ['d37a748e531b9970d1b5e552e069f8778f22f2e0508368bbd74f76b20dc51b1e'], + }), + ('UnicodePlots.jl', '3.3.4', { + 'source_tmpl': 'v3.3.4.tar.gz', + 'source_urls': ['https://github.com/Evizero/UnicodePlots.jl/archive/'], + 'checksums': ['7280b26b83dd03eaee21398de40cb83674c5e42037cad75f6e821cb0322ae9fd'], + }), + ('StatsPlots.jl', '0.15.4', { + 'source_tmpl': 'v0.15.4.tar.gz', + 'source_urls': ['https://github.com/JuliaPlots/StatsPlots.jl/archive/'], + 'checksums': ['451076c4d352ab88c8d0010320315a2f3d26ef0cc16007c7d0eb49eaa1105777'], + }), + # MPI + ('MPI.jl', '0.20.8', { + 'mpi_path': '$EBROOTOPENMPI', + 'mpiexec': 'srun', + 'source_tmpl': 'v0.20.8.tar.gz', + 'source_urls': ['https://github.com/JuliaParallel/MPI.jl/archive/'], + 'checksums': ['f70a2710e4d1375be82f6838510980f6cb7d48caaad63ffecd2a296c39b80dba'], + }), + # CUDA + ('CUDA.jl', '4.0.0', { + 'source_tmpl': 'v4.0.0.tar.gz', + 'source_urls': ['https://github.com/JuliaGPU/CUDA.jl/archive/'], + 'checksums': ['64fa7fe158c8cd56841b7906a4f57c53dbaa225fe8688bf3087b7951854b591b'], + }), +] + +modextrapaths = { + 'LD_LIBRARY_PATH': 'lib/julia', +} + +modextravars = { + 'JULIA_MPICC': 'mpicc', + 'JULIA_MPIEXEC': 'srun', + # 'JULIA_MPIEXEC_ARGS': '', + 'JULIA_MPI_ABI': 'OpenMPI', + 'JULIA_MPI_BINARY': 'system', + 'JULIA_MPI_PATH': '$::env(EBROOTOPENMPI)', + 'JULIA_CUDA_USE_BINARYBUILDER': 'false', + # FYI: automaticall added by EB_Julia + # 'EBJULIA_STD_DEPOT_PATH': '%(installdir)s/local/share/julia:%(installdir)s/share/julia', + # 'EBJULIA_USER_DEPOT_PATH': '~/.julia/%(version)s/default-%(arch_name)', + # 'EBJULIA_ADMIN_DEPOT_PATH': '%(installdir)s/extensions', + # 'EBJULIA_STD_LOAD_PATH': '@stdlib', + # 'EBJULIA_USER_LOAD_PATH': '@:@#.#.#-default-%(arch_name)' + # 'EBJULIA_ADMIN_LOAD_PATH': '%(installdir)s/extensions/environments/%(version)s-default-%(arch_name)s/', + # 'EBEXTSLISTJULIA': '<list of extensions installed>' + # 'EBJULIA_ENV_NAME': '%(version)s-default-%(arch_name)s' + # 'JULIA_INSTALL_FOLDER': '%(installdir)s', + # 'JULIA_DEPOT_PATH': + # '~/.julia/%(version)s/default-gpu:%(installdir)s/local/share/julia:%(installdir)s/share/julia', + # 'JULIA_LOAD_PATH': '@:@#.#.#-default-gpu:@stdlib', + # 'JULIA_PROJECT': ''%(installdir)s/extensions/environments/%(version)s-default-%(arch_name)s/Project.toml', +} + +sanity_check_paths = { + 'files': ['bin/julia', 'include/julia/julia.h', 'lib/libjulia.so'], + 'dirs': ['bin', 'etc', 'include', 'lib', 'share'] +} + +moduleclass = 'lang' diff --git a/Golden_Repo/j/Julia/Julia-1.8.5-gcccoremkl-11.3.0-2022.1.0.eb b/Golden_Repo/j/Julia/Julia-1.8.5-gcccoremkl-11.3.0-2022.1.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..0bc41079a8aaf8f7bb84c1f2d09e65bf3cd2fa15 --- /dev/null +++ b/Golden_Repo/j/Julia/Julia-1.8.5-gcccoremkl-11.3.0-2022.1.0.eb @@ -0,0 +1,234 @@ +name = 'Julia' +version = '1.8.5' + +homepage = 'https://julialang.org/' +description = """Julia was designed from the beginning for high performance. +Julia programs compile to efficient native code for multiple platforms via LLVM +""" + +toolchain = {'name': 'gcccoremkl', 'version': '11.3.0-2022.1.0'} +toolchainopts = {'pic': True, 'verbose': True} + +source_urls = ['https://github.com/JuliaLang/julia/releases/download/v%(version)s/'] +sources = ['julia-%(version)s-full.tar.gz'] +checksums = ['35554080a4b4d3ce52ef220254306bd42ac0d88eff9eb85592a57d0663db5df2'] + +builddependencies = [ + ('binutils', '2.38'), + ('git', '2.36.0', '-nodocs'), + ('CMake', '3.23.1'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('GMP', '6.2.1'), + ('CUDA', '11.7', '', SYSTEM), + ('SciPy-bundle', '2022.05'), + ('matplotlib', '3.5.2'), + # ('OpenGL', '2022a'), # build segfaults starting with version 1.8.1 + ('OpenSSL', '1.1', '', SYSTEM), +] + +skipsteps = ['configure'] +buildopts = " USE_SYSTEM_GMP=1 USE_INTEL_MKL=1 " +installopts = "prefix=%(installdir)s " + +arch_name = 'gpu' + +exts_defaultclass = 'JuliaPackage' +exts_list = [ + # General Purpose + ('PackageCompiler.jl', '2.1.4', { + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/JuliaLang/PackageCompiler.jl/archive/'], + 'checksums': ['2fd6f50003d995624374900e7e0220cd7cd8386a317e0070d2b4b9b9d61c5e88'], + }), + ('HTTP.jl', '1.7.4', { + 'source_tmpl': 'v1.7.4.tar.gz', + 'source_urls': ['https://github.com/JuliaWeb/HTTP.jl/archive/'], + 'checksums': ['95e4079f12983ad5008cca2505a5408b6f0146a9ed8f247361e090004030613d'], + }), + ('Parsers.jl', '2.5.1', { + 'source_tmpl': 'v2.5.1.tar.gz', + 'source_urls': ['https://github.com/JuliaData/Parsers.jl/archive/'], + 'checksums': ['72494acac42c7dff16e1a6ac1305f13001f3743e0021d158d097399f0567d926'], + }), + ('VersionParsing.jl', '1.3.0', { + 'source_tmpl': 'v1.3.0.tar.gz', + 'source_urls': ['https://github.com/JuliaInterop/VersionParsing.jl/archive/'], + 'checksums': ['f90fe419e1a40ef0eccfaaed1d1b7792d9115a059a82d0c23e3c04c944d0f8ca'], + }), + ('JSON.jl', '0.21.3', { + 'source_tmpl': 'v0.21.3.tar.gz', + 'source_urls': ['https://github.com/JuliaIO/JSON.jl/archive/'], + 'checksums': ['bd02a015da24b03f79d55967b29f5ceaba2477b559242576d74f02623bb1b6b1'], + }), + ('WebIO.jl', '0.8.20', { + 'source_tmpl': 'v0.8.20.tar.gz', + 'source_urls': ['https://github.com/JuliaGizmos/WebIO.jl/archive/'], + 'checksums': ['d8c45c0be367963539cf7bdf748d16b4f6065fa5113e353ad57872980fc56b39'], + }), + ('ProgressMeter.jl', '1.7.2', { + 'source_tmpl': 'v1.7.2.tar.gz', + 'source_urls': ['https://github.com/timholy/ProgressMeter.jl/archive/'], + 'checksums': ['3591ea33d0ad7576bbb7d430ba94a988274af6434fbd7f3d0dc7fc2655dc888c'], + }), + ('Conda.jl', '1.7.0', { + 'source_tmpl': 'v1.7.0.tar.gz', + 'source_urls': ['https://github.com/JuliaPy/Conda.jl/archive/'], + 'checksums': ['2077b1192e1cfa206caf441d9d91b0ca83aa935db89918f1fd69cd25c2415ced'], + }), + ('PyCall.jl', '1.95.1', { + 'source_tmpl': 'v1.95.1.tar.gz', + 'source_urls': ['https://github.com/JuliaPy/PyCall.jl/archive/'], + 'checksums': ['8746b3ecc54fd670e5983945bec205ff65cdb4b9e395a79f887cc28741b05e87'], + }), + ('LaTeXStrings.jl', '1.3.0', { + 'source_tmpl': 'v1.3.0.tar.gz', + 'source_urls': ['https://github.com/stevengj/LaTeXStrings.jl/archive/'], + 'checksums': ['f90fe419e1a40ef0eccfaaed1d1b7792d9115a059a82d0c23e3c04c944d0f8ca'], + }), + ('DocumentFormat.jl', '4.0.3', { + 'source_tmpl': 'v4.0.3.tar.gz', + 'source_urls': ['https://github.com/julia-vscode/DocumentFormat.jl/archive/'], + 'checksums': ['4a7131590fa07d16d8b4998ef7570f797148e7ed622a0fa431a6ca3fe52156ab'], + }), + # Data Science + ('CSV.jl', '0.10.9', { + 'source_tmpl': 'v0.10.9.tar.gz', + 'source_urls': ['https://github.com/JuliaData/CSV.jl/archive/'], + 'checksums': ['e0958f0bf04e2b32bc4040e74ce9eed1e5be3947c03f381be1003ac197304d84'], + }), + ('DataFrames.jl', '1.4.4', { + 'source_tmpl': 'v1.4.4.tar.gz', + 'source_urls': ['https://github.com/JuliaData/DataFrames.jl/archive/'], + 'checksums': ['365877a405d1ba3af23ff5258424870cce434a13b02df34c7d8a78568ef2b87a'], + }), + ('Arrow.jl', '2.4.3', { + 'source_tmpl': 'v2.4.3.tar.gz', + 'source_urls': ['https://github.com/JuliaData/Arrow.jl/archive/'], + 'checksums': ['d65a8c803f9ac664b3afc878f1eba2c7fe99d91601aebc3dc288784585be80a2'], + }), + ('OnlineStats.jl', '1.5.14', { + 'source_tmpl': 'v1.5.14.tar.gz', + 'source_urls': ['https://github.com/joshday/OnlineStats.jl/archive/'], + 'checksums': ['b1c725a3de6cfde25271753b7cc341d2f565bc6aa74ae76394f845cb0339dc42'], + }), + ('Query.jl', '1.0.0', { + 'source_tmpl': 'v1.0.0.tar.gz', + 'source_urls': ['https://github.com/queryverse/Query.jl/archive/'], + 'checksums': ['76c05e3ffc8f3c2ce2cd3f6824f40a107cdba6fc58c4ce42de2289132de988e0'], + }), + # Scientific Domains + ('GSL.jl', '1.0.1', { + 'source_tmpl': 'v1.0.1.tar.gz', + 'source_urls': ['https://github.com/JuliaMath/GSL.jl/archive/refs/tags/'], + 'checksums': ['91a5acbb752610c5989b9acef126f2231f612debb7ba6d1d4625c68d2af5776e'], + }), + ('DifferentialEquations.jl', '7.6.0', { + 'source_tmpl': 'v7.6.0.tar.gz', + 'source_urls': ['https://github.com/SciML/DifferentialEquations.jl/archive/'], + 'checksums': ['32df0e2b2811567f5d58f5b88831e6a6c3c15b4d2f0bae6bde0a11a98b4e49d8'], + }), + ('Distributions.jl', '0.25.80', { + 'source_tmpl': 'v0.25.80.tar.gz', + 'source_urls': ['https://github.com/JuliaStats/Distributions.jl/archive/'], + 'checksums': ['0f457839d969dd5f8a12ba96fb3a3a728387945d98504ba3e7131178ef8e9ef7'], + }), + ('Optim.jl', '1.7.4', { + 'source_tmpl': 'v1.7.4.tar.gz', + 'source_urls': ['https://github.com/JuliaNLSolvers/Optim.jl/archive/'], + 'checksums': ['95e4079f12983ad5008cca2505a5408b6f0146a9ed8f247361e090004030613d'], + }), + ('IterativeSolvers.jl', '0.9.2', { + 'source_tmpl': 'v0.9.2.tar.gz', + 'source_urls': ['https://github.com/JuliaLinearAlgebra/IterativeSolvers.jl/archive/'], + 'checksums': ['95fbfa39aa68e989ae6bad2f51ce0fe5635ba3f3375d0ea4d9422e77ff924a9b'], + }), + ('AbstractFFTs.jl', '1.2.1', { + 'source_tmpl': 'v1.2.1.tar.gz', + 'source_urls': ['https://github.com/JuliaMath/AbstractFFTs.jl/archive/'], + 'checksums': ['58abf90b037c618daeed89940c77ac129b5155b26429ac77643cc9c5db453363'], + }), + ('OrdinaryDiffEq.jl', '6.42.0', { + 'source_tmpl': 'v6.42.0.tar.gz', + 'source_urls': ['https://github.com/SciML/OrdinaryDiffEq.jl/archive/'], + 'checksums': ['22af73320fd7577e3e4557e10f2b7cb0f77c03556499699033c47c8f56cbe482'], + }), + ('SpecialFunctions.jl', '1.8.7', { + 'source_tmpl': 'v1.8.7.tar.gz', + 'source_urls': ['https://github.com/JuliaMath/SpecialFunctions.jl/archive/'], + 'checksums': ['3f2ecec0506fe47cfa5e436ac510e2a82d39f74fceaeb422572cf06d90f2096a'], + }), + ('JuMP.jl', '1.7.0', { + 'source_tmpl': 'v1.7.0.tar.gz', + 'source_urls': ['https://github.com/jump-dev/JuMP.jl/archive/'], + 'checksums': ['2077b1192e1cfa206caf441d9d91b0ca83aa935db89918f1fd69cd25c2415ced'], + }), + # Visualization + ('GR.jl', '0.71.5', { + 'source_tmpl': 'v0.71.5.tar.gz', + 'source_urls': ['https://github.com/jheinen/GR.jl/archive/'], + 'checksums': ['d2b096241d8dfd3e16b1abcf2c0dd5664db025c1eeadf11145b9934284b112b7'], + }), + ('PlotlyJS.jl', '0.18.10', { + 'source_tmpl': 'v0.18.10.tar.gz', + 'source_urls': ['https://github.com/JuliaPlots/PlotlyJS.jl/archive/'], + 'checksums': ['b574113676080c14634118ce3a5ceda7562224039a2fd0ea3ad8bc5938700a49'], + }), + ('PyPlot.jl', '2.11.0', { + 'source_tmpl': 'v2.11.0.tar.gz', + 'source_urls': ['https://github.com/JuliaPy/PyPlot.jl/archive/'], + 'checksums': ['10498f5b7bd958c5e0dae33aa2514048005e4f5b037d9a73a09cb4231259cc13'], + }), + ('Plots.jl', '1.38.4', { + 'source_tmpl': 'v1.38.4.tar.gz', + 'source_urls': ['https://github.com/JuliaPlots/Plots.jl/archive/'], + 'checksums': ['d37a748e531b9970d1b5e552e069f8778f22f2e0508368bbd74f76b20dc51b1e'], + }), + ('UnicodePlots.jl', '3.3.4', { + 'source_tmpl': 'v3.3.4.tar.gz', + 'source_urls': ['https://github.com/Evizero/UnicodePlots.jl/archive/'], + 'checksums': ['7280b26b83dd03eaee21398de40cb83674c5e42037cad75f6e821cb0322ae9fd'], + }), + ('StatsPlots.jl', '0.15.4', { + 'source_tmpl': 'v0.15.4.tar.gz', + 'source_urls': ['https://github.com/JuliaPlots/StatsPlots.jl/archive/'], + 'checksums': ['451076c4d352ab88c8d0010320315a2f3d26ef0cc16007c7d0eb49eaa1105777'], + }), + # CUDA + ('CUDA.jl', '4.0.0', { + 'source_tmpl': 'v4.0.0.tar.gz', + 'source_urls': ['https://github.com/JuliaGPU/CUDA.jl/archive/'], + 'checksums': ['64fa7fe158c8cd56841b7906a4f57c53dbaa225fe8688bf3087b7951854b591b'], + }), +] + +modextrapaths = { + 'LD_LIBRARY_PATH': 'lib/julia', +} + +modextravars = { + 'JULIA_CUDA_USE_BINARYBUILDER': 'false', + # FYI: automatically added by EB_Julia + # 'EBJULIA_STD_DEPOT_PATH': '%(installdir)s/local/share/julia:%(installdir)s/share/julia', + # 'EBJULIA_USER_DEPOT_PATH': '~/.julia/%(version)s/default-%(arch_name)', + # 'EBJULIA_ADMIN_DEPOT_PATH': '%(installdir)s/extensions', + # 'EBJULIA_STD_LOAD_PATH': '@stdlib', + # 'EBJULIA_USER_LOAD_PATH': '@:@#.#.#-default-%(arch_name)' + # 'EBJULIA_ADMIN_LOAD_PATH': '%(installdir)s/extensions/environments/%(version)s-default-%(arch_name)s/', + # 'EBEXTSLISTJULIA': '<list of extensions installed>' + # 'EBJULIA_ENV_NAME': '%(version)s-default-%(arch_name)s' + # 'JULIA_INSTALL_FOLDER': '%(installdir)s', + # 'JULIA_DEPOT_PATH': + # '~/.julia/%(version)s/default-gpu:%(installdir)s/local/share/julia:%(installdir)s/share/julia', + # 'JULIA_LOAD_PATH': '@:@#.#.#-default-gpu:@stdlib', + # 'JULIA_PROJECT': ''%(installdir)s/extensions/environments/%(version)s-default-%(arch_name)s/Project.toml', +} + +sanity_check_paths = { + 'files': ['bin/julia', 'include/julia/julia.h', 'lib/libjulia.so'], + 'dirs': ['bin', 'etc', 'include', 'lib', 'share'] +} + +moduleclass = 'lang' diff --git a/Golden_Repo/j/Julia/Julia-1.8.5-gpsmkl-2022a.eb b/Golden_Repo/j/Julia/Julia-1.8.5-gpsmkl-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..6f3a0f0b60af745c38f459f34e5fc46f8016d56d --- /dev/null +++ b/Golden_Repo/j/Julia/Julia-1.8.5-gpsmkl-2022a.eb @@ -0,0 +1,248 @@ +name = 'Julia' +version = '1.8.5' + +homepage = 'https://julialang.org/' +description = """Julia was designed from the beginning for high performance. +Julia programs compile to efficient native code for multiple platforms via LLVM +""" + +toolchain = {'name': 'gpsmkl', 'version': '2022a'} +toolchainopts = {'usempi': False, 'pic': True} + +source_urls = ['https://github.com/JuliaLang/julia/releases/download/v%(version)s/'] +sources = ['julia-%(version)s-full.tar.gz'] +checksums = ['35554080a4b4d3ce52ef220254306bd42ac0d88eff9eb85592a57d0663db5df2'] + +builddependencies = [ + ('binutils', '2.38'), + ('git', '2.36.0', '-nodocs'), + ('CMake', '3.23.1'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('GMP', '6.2.1'), + ('CUDA', '11.7', '', SYSTEM), + ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('matplotlib', '3.5.2', '', ('gcccoremkl', '11.3.0-2022.1.0')), + # ('OpenGL', '2022a'), # build segfaults starting with version 1.8.1 + ('OpenSSL', '1.1', '', SYSTEM), +] + +skipsteps = ['configure'] +buildopts = " USE_SYSTEM_GMP=1 USE_INTEL_MKL=1 " +installopts = "prefix=%(installdir)s " + +arch_name = 'gpu' + +exts_defaultclass = 'JuliaPackage' +exts_list = [ + # General Purpose + ('PackageCompiler.jl', '2.1.4', { + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/JuliaLang/PackageCompiler.jl/archive/'], + 'checksums': ['2fd6f50003d995624374900e7e0220cd7cd8386a317e0070d2b4b9b9d61c5e88'], + }), + ('HTTP.jl', '1.7.4', { + 'source_tmpl': 'v1.7.4.tar.gz', + 'source_urls': ['https://github.com/JuliaWeb/HTTP.jl/archive/'], + 'checksums': ['95e4079f12983ad5008cca2505a5408b6f0146a9ed8f247361e090004030613d'], + }), + ('Parsers.jl', '2.5.1', { + 'source_tmpl': 'v2.5.1.tar.gz', + 'source_urls': ['https://github.com/JuliaData/Parsers.jl/archive/'], + 'checksums': ['72494acac42c7dff16e1a6ac1305f13001f3743e0021d158d097399f0567d926'], + }), + ('VersionParsing.jl', '1.3.0', { + 'source_tmpl': 'v1.3.0.tar.gz', + 'source_urls': ['https://github.com/JuliaInterop/VersionParsing.jl/archive/'], + 'checksums': ['f90fe419e1a40ef0eccfaaed1d1b7792d9115a059a82d0c23e3c04c944d0f8ca'], + }), + ('JSON.jl', '0.21.3', { + 'source_tmpl': 'v0.21.3.tar.gz', + 'source_urls': ['https://github.com/JuliaIO/JSON.jl/archive/'], + 'checksums': ['bd02a015da24b03f79d55967b29f5ceaba2477b559242576d74f02623bb1b6b1'], + }), + ('WebIO.jl', '0.8.20', { + 'source_tmpl': 'v0.8.20.tar.gz', + 'source_urls': ['https://github.com/JuliaGizmos/WebIO.jl/archive/'], + 'checksums': ['d8c45c0be367963539cf7bdf748d16b4f6065fa5113e353ad57872980fc56b39'], + }), + ('ProgressMeter.jl', '1.7.2', { + 'source_tmpl': 'v1.7.2.tar.gz', + 'source_urls': ['https://github.com/timholy/ProgressMeter.jl/archive/'], + 'checksums': ['3591ea33d0ad7576bbb7d430ba94a988274af6434fbd7f3d0dc7fc2655dc888c'], + }), + ('Conda.jl', '1.7.0', { + 'source_tmpl': 'v1.7.0.tar.gz', + 'source_urls': ['https://github.com/JuliaPy/Conda.jl/archive/'], + 'checksums': ['2077b1192e1cfa206caf441d9d91b0ca83aa935db89918f1fd69cd25c2415ced'], + }), + ('PyCall.jl', '1.95.1', { + 'source_tmpl': 'v1.95.1.tar.gz', + 'source_urls': ['https://github.com/JuliaPy/PyCall.jl/archive/'], + 'checksums': ['8746b3ecc54fd670e5983945bec205ff65cdb4b9e395a79f887cc28741b05e87'], + }), + ('LaTeXStrings.jl', '1.3.0', { + 'source_tmpl': 'v1.3.0.tar.gz', + 'source_urls': ['https://github.com/stevengj/LaTeXStrings.jl/archive/'], + 'checksums': ['f90fe419e1a40ef0eccfaaed1d1b7792d9115a059a82d0c23e3c04c944d0f8ca'], + }), + ('DocumentFormat.jl', '4.0.3', { + 'source_tmpl': 'v4.0.3.tar.gz', + 'source_urls': ['https://github.com/julia-vscode/DocumentFormat.jl/archive/'], + 'checksums': ['4a7131590fa07d16d8b4998ef7570f797148e7ed622a0fa431a6ca3fe52156ab'], + }), + # Data Science + ('CSV.jl', '0.10.9', { + 'source_tmpl': 'v0.10.9.tar.gz', + 'source_urls': ['https://github.com/JuliaData/CSV.jl/archive/'], + 'checksums': ['e0958f0bf04e2b32bc4040e74ce9eed1e5be3947c03f381be1003ac197304d84'], + }), + ('DataFrames.jl', '1.4.4', { + 'source_tmpl': 'v1.4.4.tar.gz', + 'source_urls': ['https://github.com/JuliaData/DataFrames.jl/archive/'], + 'checksums': ['365877a405d1ba3af23ff5258424870cce434a13b02df34c7d8a78568ef2b87a'], + }), + ('Arrow.jl', '2.4.3', { + 'source_tmpl': 'v2.4.3.tar.gz', + 'source_urls': ['https://github.com/JuliaData/Arrow.jl/archive/'], + 'checksums': ['d65a8c803f9ac664b3afc878f1eba2c7fe99d91601aebc3dc288784585be80a2'], + }), + ('OnlineStats.jl', '1.5.14', { + 'source_tmpl': 'v1.5.14.tar.gz', + 'source_urls': ['https://github.com/joshday/OnlineStats.jl/archive/'], + 'checksums': ['b1c725a3de6cfde25271753b7cc341d2f565bc6aa74ae76394f845cb0339dc42'], + }), + ('Query.jl', '1.0.0', { + 'source_tmpl': 'v1.0.0.tar.gz', + 'source_urls': ['https://github.com/queryverse/Query.jl/archive/'], + 'checksums': ['76c05e3ffc8f3c2ce2cd3f6824f40a107cdba6fc58c4ce42de2289132de988e0'], + }), + # Scientific Domains + ('GSL.jl', '1.0.1', { + 'source_tmpl': 'v1.0.1.tar.gz', + 'source_urls': ['https://github.com/JuliaMath/GSL.jl/archive/refs/tags/'], + 'checksums': ['91a5acbb752610c5989b9acef126f2231f612debb7ba6d1d4625c68d2af5776e'], + }), + ('DifferentialEquations.jl', '7.6.0', { + 'source_tmpl': 'v7.6.0.tar.gz', + 'source_urls': ['https://github.com/SciML/DifferentialEquations.jl/archive/'], + 'checksums': ['32df0e2b2811567f5d58f5b88831e6a6c3c15b4d2f0bae6bde0a11a98b4e49d8'], + }), + ('Distributions.jl', '0.25.80', { + 'source_tmpl': 'v0.25.80.tar.gz', + 'source_urls': ['https://github.com/JuliaStats/Distributions.jl/archive/'], + 'checksums': ['0f457839d969dd5f8a12ba96fb3a3a728387945d98504ba3e7131178ef8e9ef7'], + }), + ('Optim.jl', '1.7.4', { + 'source_tmpl': 'v1.7.4.tar.gz', + 'source_urls': ['https://github.com/JuliaNLSolvers/Optim.jl/archive/'], + 'checksums': ['95e4079f12983ad5008cca2505a5408b6f0146a9ed8f247361e090004030613d'], + }), + ('IterativeSolvers.jl', '0.9.2', { + 'source_tmpl': 'v0.9.2.tar.gz', + 'source_urls': ['https://github.com/JuliaLinearAlgebra/IterativeSolvers.jl/archive/'], + 'checksums': ['95fbfa39aa68e989ae6bad2f51ce0fe5635ba3f3375d0ea4d9422e77ff924a9b'], + }), + ('AbstractFFTs.jl', '1.2.1', { + 'source_tmpl': 'v1.2.1.tar.gz', + 'source_urls': ['https://github.com/JuliaMath/AbstractFFTs.jl/archive/'], + 'checksums': ['58abf90b037c618daeed89940c77ac129b5155b26429ac77643cc9c5db453363'], + }), + ('OrdinaryDiffEq.jl', '6.42.0', { + 'source_tmpl': 'v6.42.0.tar.gz', + 'source_urls': ['https://github.com/SciML/OrdinaryDiffEq.jl/archive/'], + 'checksums': ['22af73320fd7577e3e4557e10f2b7cb0f77c03556499699033c47c8f56cbe482'], + }), + ('SpecialFunctions.jl', '1.8.7', { + 'source_tmpl': 'v1.8.7.tar.gz', + 'source_urls': ['https://github.com/JuliaMath/SpecialFunctions.jl/archive/'], + 'checksums': ['3f2ecec0506fe47cfa5e436ac510e2a82d39f74fceaeb422572cf06d90f2096a'], + }), + ('JuMP.jl', '1.7.0', { + 'source_tmpl': 'v1.7.0.tar.gz', + 'source_urls': ['https://github.com/jump-dev/JuMP.jl/archive/'], + 'checksums': ['2077b1192e1cfa206caf441d9d91b0ca83aa935db89918f1fd69cd25c2415ced'], + }), + # Visualization + ('GR.jl', '0.71.5', { + 'source_tmpl': 'v0.71.5.tar.gz', + 'source_urls': ['https://github.com/jheinen/GR.jl/archive/'], + 'checksums': ['d2b096241d8dfd3e16b1abcf2c0dd5664db025c1eeadf11145b9934284b112b7'], + }), + ('PlotlyJS.jl', '0.18.10', { + 'source_tmpl': 'v0.18.10.tar.gz', + 'source_urls': ['https://github.com/JuliaPlots/PlotlyJS.jl/archive/'], + 'checksums': ['b574113676080c14634118ce3a5ceda7562224039a2fd0ea3ad8bc5938700a49'], + }), + ('PyPlot.jl', '2.11.0', { + 'source_tmpl': 'v2.11.0.tar.gz', + 'source_urls': ['https://github.com/JuliaPy/PyPlot.jl/archive/'], + 'checksums': ['10498f5b7bd958c5e0dae33aa2514048005e4f5b037d9a73a09cb4231259cc13'], + }), + ('Plots.jl', '1.38.4', { + 'source_tmpl': 'v1.38.4.tar.gz', + 'source_urls': ['https://github.com/JuliaPlots/Plots.jl/archive/'], + 'checksums': ['d37a748e531b9970d1b5e552e069f8778f22f2e0508368bbd74f76b20dc51b1e'], + }), + ('UnicodePlots.jl', '3.3.4', { + 'source_tmpl': 'v3.3.4.tar.gz', + 'source_urls': ['https://github.com/Evizero/UnicodePlots.jl/archive/'], + 'checksums': ['7280b26b83dd03eaee21398de40cb83674c5e42037cad75f6e821cb0322ae9fd'], + }), + ('StatsPlots.jl', '0.15.4', { + 'source_tmpl': 'v0.15.4.tar.gz', + 'source_urls': ['https://github.com/JuliaPlots/StatsPlots.jl/archive/'], + 'checksums': ['451076c4d352ab88c8d0010320315a2f3d26ef0cc16007c7d0eb49eaa1105777'], + }), + # MPI + ('MPI.jl', '0.20.8', { + 'mpi_path': '$EBROOTOPENMPI', + 'mpiexec': 'srun', + 'source_tmpl': 'v0.20.8.tar.gz', + 'source_urls': ['https://github.com/JuliaParallel/MPI.jl/archive/'], + 'checksums': ['f70a2710e4d1375be82f6838510980f6cb7d48caaad63ffecd2a296c39b80dba'], + }), + # CUDA + ('CUDA.jl', '4.0.0', { + 'source_tmpl': 'v4.0.0.tar.gz', + 'source_urls': ['https://github.com/JuliaGPU/CUDA.jl/archive/'], + 'checksums': ['64fa7fe158c8cd56841b7906a4f57c53dbaa225fe8688bf3087b7951854b591b'], + }), +] + +modextrapaths = { + 'LD_LIBRARY_PATH': 'lib/julia', +} + +modextravars = { + 'JULIA_MPICC': 'mpicc', + 'JULIA_MPIEXEC': 'srun', + # 'JULIA_MPIEXEC_ARGS': '', + 'JULIA_MPI_ABI': 'OpenMPI', + 'JULIA_MPI_BINARY': 'system', + 'JULIA_MPI_PATH': '$::env(EBROOTOPENMPI)', + 'JULIA_CUDA_USE_BINARYBUILDER': 'false', + # FYI: automaticall added by EB_Julia + # 'EBJULIA_STD_DEPOT_PATH': '%(installdir)s/local/share/julia:%(installdir)s/share/julia', + # 'EBJULIA_USER_DEPOT_PATH': '~/.julia/%(version)s/default-%(arch_name)', + # 'EBJULIA_ADMIN_DEPOT_PATH': '%(installdir)s/extensions', + # 'EBJULIA_STD_LOAD_PATH': '@stdlib', + # 'EBJULIA_USER_LOAD_PATH': '@:@#.#.#-default-%(arch_name)' + # 'EBJULIA_ADMIN_LOAD_PATH': '%(installdir)s/extensions/environments/%(version)s-default-%(arch_name)s/', + # 'EBEXTSLISTJULIA': '<list of extensions installed>' + # 'EBJULIA_ENV_NAME': '%(version)s-default-%(arch_name)s' + # 'JULIA_INSTALL_FOLDER': '%(installdir)s', + # 'JULIA_DEPOT_PATH': + # '~/.julia/%(version)s/default-gpu:%(installdir)s/local/share/julia:%(installdir)s/share/julia', + # 'JULIA_LOAD_PATH': '@:@#.#.#-default-gpu:@stdlib', + # 'JULIA_PROJECT': ''%(installdir)s/extensions/environments/%(version)s-default-%(arch_name)s/Project.toml', +} + +sanity_check_paths = { + 'files': ['bin/julia', 'include/julia/julia.h', 'lib/libjulia.so'], + 'dirs': ['bin', 'etc', 'include', 'lib', 'share'] +} + +moduleclass = 'lang' diff --git a/Golden_Repo/j/jax/TensorFlow-2.7.0_cuda-noncanonical-include-paths.patch b/Golden_Repo/j/jax/TensorFlow-2.7.0_cuda-noncanonical-include-paths.patch new file mode 100644 index 0000000000000000000000000000000000000000..93157c49ad0bd14ed295da30e46692a0b562e74e --- /dev/null +++ b/Golden_Repo/j/jax/TensorFlow-2.7.0_cuda-noncanonical-include-paths.patch @@ -0,0 +1,20 @@ +Use non-canonical paths to populate the include paths in the toolchain in Bazel. +Otherwise, build will fail due to mismatch in include paths. +author: Alex Domingo (Vrije Universiteit Brussel) +--- third_party/gpus/cuda_configure.bzl.orig 2021-10-25 11:48:32.896463000 +0200 ++++ third_party/gpus/cuda_configure.bzl 2021-10-25 11:51:56.719009257 +0200 +@@ -274,8 +274,12 @@ + sysroot = [] + if tf_sysroot: + sysroot += ["--sysroot", tf_sysroot] +- result = raw_exec(repository_ctx, [cc, "-E", "-x" + lang, "-", "-v"] + +- sysroot) ++ ++ result = raw_exec( ++ repository_ctx, ++ [cc, "-no-canonical-prefixes", "-E", "-x" + lang, "-", "-v"] + sysroot ++ ) ++ + stderr = err_out(result) + index1 = stderr.find(_INC_DIR_MARKER_BEGIN) + if index1 == -1: diff --git a/Golden_Repo/j/jax/jax-0.3.23-foss-2022a-CUDA-11.7.eb b/Golden_Repo/j/jax/jax-0.3.23-foss-2022a-CUDA-11.7.eb new file mode 100644 index 0000000000000000000000000000000000000000..90db04dc3e2bafc29f61fb542c931b0b1f8ef521 --- /dev/null +++ b/Golden_Repo/j/jax/jax-0.3.23-foss-2022a-CUDA-11.7.eb @@ -0,0 +1,122 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Denis Kristak +# Updated by: Alex Domingo (Vrije Universiteit Brussel) +easyblock = 'PythonBundle' + +name = 'jax' +version = '0.3.23' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://pypi.python.org/pypi/jax' +description = """Composable transformations of Python+NumPy programs: +differentiate, vectorize, JIT to GPU/TPU, and more""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +builddependencies = [ + ('Bazel', '5.1.1'), + ('pytest-xdist', '2.5.0'), + # git 2.x required to fetch repository 'io_bazel_rules_docker' + ('git', '2.36.0', '-nodocs'), + ('matplotlib', '3.5.2', '', ('gcccoremkl', '11.3.0-2022.1.0')), +] + +dependencies = [ + ('CUDA', '11.7', '', SYSTEM), + ('cuDNN', '8.6.0.163', '-CUDA-%(cudaver)s', SYSTEM), + ('NCCL', 'default', '-CUDA-%(cudaver)s'), + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('flatbuffers-python', '2.0'), +] + +# downloading TensorFlow tarball to avoid that Bazel downloads it during the build +# note: this *must* be the exact same commit as used in WORKSPACE +local_tf_commit = 'cb946f223b9b3fa04efdbb7a0e6a9dabb22a7057' +local_tf_dir = 'tensorflow-%s' % local_tf_commit +local_tf_builddir = '%(builddir)s/' + local_tf_dir + +# replace remote TensorFlow repository with the local one from EB +local_jax_prebuildopts = "sed -i -f jaxlib_local-tensorflow-repo.sed WORKSPACE && " +local_jax_prebuildopts += "sed -i 's|EB_TF_REPOPATH|%s|' WORKSPACE && " % local_tf_builddir + +use_pip = True + +default_easyblock = 'PythonPackage' +default_component_specs = { + 'sources': [SOURCE_TAR_GZ], + 'source_urls': [PYPI_SOURCE], + 'start_dir': '%(name)s-%(version)s', + 'use_pip': True, + 'sanity_pip_check': True, + 'download_dep_fail': True, +} + +components = [ + ('absl-py', '1.3.0', { + 'options': {'modulename': 'absl'}, + 'checksums': ['463c38a08d2e4cef6c498b76ba5bd4858e4c6ef51da1a5a1f27139a022e20248'], + }), + ('jaxlib', '0.3.22', { + 'sources': [ + '%(name)s-v%(version)s.tar.gz', + { + 'download_filename': '%s.tar.gz' % local_tf_commit, + 'filename': 'tensorflow-%s.tar.gz' % local_tf_commit, + } + ], + 'source_urls': [ + 'https://github.com/google/jax/archive/', + 'https://github.com/tensorflow/tensorflow/archive/' + ], + 'patches': [ + ('jaxlib_local-tensorflow-repo.sed', '.'), + ('TensorFlow-2.7.0_cuda-noncanonical-include-paths.patch', '../' + local_tf_dir), + ], + 'checksums': [ + # jaxlib-v0.3.22.tar.gz + '680a6f5265ba26d5515617a95ae47244005366f879a5c321782fde60f34e6d0d', + # tensorflow-cb946f223b9b3fa04efdbb7a0e6a9dabb22a7057.tar.gz + '9a7a7a87356bdeef5874fae135de380466482b593469035be3609a9cd2c153c4', + # jaxlib_local-tensorflow-repo.sed + 'abb5c3b97f4e317bce9f22ed3eeea3b9715365818d8b50720d937e2d41d5c4e5', + # TensorFlow-2.7.0_cuda-noncanonical-include-paths.patch + '0a759010c253d49755955cd5f028e75de4a4c447dcc8f5a0d9f47cce6881a9db', + ], + 'start_dir': 'jax-jaxlib-v%(version)s', + 'prebuildopts': local_jax_prebuildopts, + }), +] + +exts_list = [ + ('opt_einsum', '3.3.0', { + 'checksums': ['59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549'], + }), + ('etils', '0.8.0', { + 'checksums': ['d1d5af7bd9c784a273c4e1eccfaa8feaca5e0481a08717b5313fa231da22a903'], + }), + (name, version, { + 'patches': [ + 'jax-0.3.9_relax-test-tolerance.patch', + 'jax-0.3.23_correctly-skip-from_dlpack-tests.patch', + 'jax-0.3.23_relax-testPoly5-tolerance.patch', + ], + 'runtest': "NVIDIA_TF32_OVERRIDE=0 CUDA_VISIBLE_DEVICES=0 \ + XLA_PYTHON_CLIENT_ALLOCATOR=platform JAX_ENABLE_X64=true pytest -vv tests", + 'source_tmpl': '%(name)s-v%(version)s.tar.gz', + 'source_urls': ['https://github.com/google/jax/archive/'], + 'checksums': [ + {'jax-v0.3.23.tar.gz': 'fa8c68a82fa2fcf3d272bf239c77e7028bb6077466a53349ce85f6e85ed623db'}, + {'jax-0.3.9_relax-test-tolerance.patch': + 'b50c4d23a5d51dba720c8aebdae8d15a0ddfc2e9719f48049a8220655ac20254'}, + {'jax-0.3.23_correctly-skip-from_dlpack-tests.patch': + 'a69ce7280ca8bb42e671217f00d9147f8c64b4b7ba65dea7f05f2c6de757b279'}, + {'jax-0.3.23_relax-testPoly5-tolerance.patch': + 'be64bf36dde4884a97b6c8bb22c6b14ab5b24033cd40bfe7ce18363c55c30e87'}, + ], + }), +] + +sanity_pip_check = True + +moduleclass = 'tools' diff --git a/Golden_Repo/j/jax/jax-0.3.23_correctly-skip-from_dlpack-tests.patch b/Golden_Repo/j/jax/jax-0.3.23_correctly-skip-from_dlpack-tests.patch new file mode 100644 index 0000000000000000000000000000000000000000..7354e39c8e3e3b3fce8f28bd67d933667aadbd49 --- /dev/null +++ b/Golden_Repo/j/jax/jax-0.3.23_correctly-skip-from_dlpack-tests.patch @@ -0,0 +1,15 @@ +np.from_dlpack was not added until numpy 1.23 +Patch based off https://github.com/google/jax/pull/12900 and added by Simon Branford (University of Birmingham) +diff --git a/tests/array_interoperability_test.py b/tests/array_interoperability_test.py +index cc2f3a6c08d..ac04ee637c8 100644 +--- a/tests/array_interoperability_test.py ++++ b/tests/array_interoperability_test.py +@@ -200,7 +200,7 @@ def testNumpyToJax(self, shape, dtype): + "shape": shape, "dtype": dtype} + for shape in all_shapes + for dtype in torch_dtypes)) +- @unittest.skipIf(numpy_version < (1, 22, 0), "Requires numpy 1.22 or newer") ++ @unittest.skipIf(numpy_version < (1, 23, 0), "Requires numpy 1.23 or newer") + @jtu.skip_on_devices("gpu") + def testJaxToNumpy(self, shape, dtype): + rng = jtu.rand_default(self.rng()) diff --git a/Golden_Repo/j/jax/jax-0.3.23_relax-testPoly5-tolerance.patch b/Golden_Repo/j/jax/jax-0.3.23_relax-testPoly5-tolerance.patch new file mode 100644 index 0000000000000000000000000000000000000000..38729edac87cc0687e6c7603acee25b0dc5dd3c9 --- /dev/null +++ b/Golden_Repo/j/jax/jax-0.3.23_relax-testPoly5-tolerance.patch @@ -0,0 +1,14 @@ +Relax the tolerance for the testPoly5 test +Patch by Simon Branford (University of Birmingham) +--- tests/lax_numpy_test.py 2022-10-12 16:23:43.000000000 +0100 ++++ tests/lax_numpy_test.py 2022-10-21 13:33:59.871417000 +0100 +@@ -1277,6 +1277,9 @@ + if jtu.device_under_test() == "tpu": + tol[np.int32] = tol[np.float32] = 1e-1 + tol = jtu.tolerance(dtype, tol) ++ if rank == 2 and dtype == np.int8 and a_shape == (12,): ++ # relax tolerance (from 1e-3) for testPoly5 ++ tol = 2e-3 + args_maker = lambda: [rng(a_shape * rank, dtype)] + self._CheckAgainstNumpy(np.poly, jnp.poly, args_maker, check_dtypes=False, tol=tol) + self._CompileAndCheck(jnp.poly, args_maker, check_dtypes=True, rtol=tol, atol=tol) diff --git a/Golden_Repo/j/jax/jax-0.3.9_relax-test-tolerance.patch b/Golden_Repo/j/jax/jax-0.3.9_relax-test-tolerance.patch new file mode 100644 index 0000000000000000000000000000000000000000..a8275d46e2fe8f41802498dd34f5ecf1c74e6523 --- /dev/null +++ b/Golden_Repo/j/jax/jax-0.3.9_relax-test-tolerance.patch @@ -0,0 +1,29 @@ +Relax tolerance for tests/linalg_test.py::NumpyLinalgTest::testQr0 +Which gives norm=152.9272003173828 (out of 140) on AMD Epyc 7402 +Patch by Alexandre Strube (Helmholtz AI/Juelich Supercomputing Centre) +Relax tolerance for tests/linalg_test.py::ScipyLinalgTest::testLu_shape=float64[50,50] +which failes by a small amount on AMD Rome +Patch by Simon Branford (University of Birmingham) +--- tests/linalg_test.py.orig 2022-10-12 17:23:43.000000000 +0200 ++++ tests/linalg_test.py 2023-01-12 18:24:58.706838703 +0100 +@@ -667,7 +667,7 @@ + phases = np.divide(sum_of_ratios, np.abs(sum_of_ratios)) + q1 *= phases + nm = norm(q1 - q2) +- self.assertTrue(np.all(nm < 140), msg=f"norm={np.amax(nm)}") ++ self.assertTrue(np.all(nm < 160), msg=f"norm={np.amax(nm)}") + + # Check a ~= qr + self.assertTrue(np.all(norm(a - np.matmul(lq, lr)) < 40)) +@@ -984,8 +984,9 @@ + x, = args_maker() + p, l, u = jsp.linalg.lu(x) + self.assertAllClose(x, np.matmul(p, np.matmul(l, u)), +- rtol={np.float32: 1e-3, np.float64: 1e-12, +- np.complex64: 1e-3, np.complex128: 1e-12}) ++ rtol={np.float32: 1e-3, np.float64: 1e-11, ++ np.complex64: 1e-3, np.complex128: 1e-12}, ++ atol={np.float64: 1e-14}) + self._CompileAndCheck(jsp.linalg.lu, args_maker) + + def testLuOfSingularMatrix(self): \ No newline at end of file diff --git a/Golden_Repo/j/jax/jaxlib_local-tensorflow-repo.sed b/Golden_Repo/j/jax/jaxlib_local-tensorflow-repo.sed new file mode 100644 index 0000000000000000000000000000000000000000..1116ca24ca92a1f42b6329570adab879ed8d1739 --- /dev/null +++ b/Golden_Repo/j/jax/jaxlib_local-tensorflow-repo.sed @@ -0,0 +1,12 @@ +/^http_archive(/{ + :a;N;/\n)/!ba; + /org_tensorflow/{ + s/^/# /; + s/\n/\n# /g; + s|$|\ +local_repository(\ + name = "org_tensorflow",\ + path = "EB_TF_REPOPATH",\ +)|; + } +} diff --git a/Golden_Repo/l/libspng/libspng-0.7.3-GCCcore-11.3.0.eb b/Golden_Repo/l/libspng/libspng-0.7.3-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..df0545446f2db9857f1b7b61a36e5f8296257c8b --- /dev/null +++ b/Golden_Repo/l/libspng/libspng-0.7.3-GCCcore-11.3.0.eb @@ -0,0 +1,43 @@ +easyblock = 'CMakeMake' + +name = 'libspng' +version = '0.7.3' + +homepage = 'https://libspng.org' +description = "Simple, modern libpng alternative " + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +github_account = 'randy408' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['a50cadbe808ffda1a7fab17d145f52a23b163f34b3eb3696c7ecb5a52340fc1d'] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1'), + ('pkgconf', '1.8.0'), +] +dependencies = [('zlib', '1.2.12')] + +separate_build_dir = True +configopts = "-DCMAKE_VERBOSE_MAKEFILE=ON " + +postinstallcmds = [ + ( + 'pushd %(installdir)s/lib64/pkgconfig/ && ' + 'cp libspng.pc spng.pc && ' + 'popd' + ) +] + +sanity_check_paths = { + 'files': [ + 'include/spng.h', + 'lib/libspng_static.a', 'lib/libspng.%s' % SHLIB_EXT, + ], + 'dirs': ['include', 'lib'], +} + +moduleclass = 'lib' diff --git a/Golden_Repo/l/libyuv/libyuv-20210428-GCCcore-11.3.0.eb b/Golden_Repo/l/libyuv/libyuv-20210428-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..4a5f7a360cd885ec91d0b3c45b63e00214a87218 --- /dev/null +++ b/Golden_Repo/l/libyuv/libyuv-20210428-GCCcore-11.3.0.eb @@ -0,0 +1,60 @@ +easyblock = 'CMakeMake' + +name = 'libyuv' +version = '20210428' + +homepage = 'https://chromium.googlesource.com/libyuv/libyuv/' +description = """ +libyuv for colorspace conversion. libyuv is Optimized for SSE2/SSSE3/AVX2 on x86/x64. +""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +sources = [ + { + 'source_urls': ['https://chromium.googlesource.com/libyuv/libyuv/+archive/'], + 'filename': '%(name)s-eb6e7bb63738e29efd82ea3cf2a115238a89fa51.tar.gz', + 'download_filename': 'eb6e7bb63738e29efd82ea3cf2a115238a89fa51.tar.gz', + } +] +# checksum changes with every download +checksums = ['d84d716d81d0b4a43bd1b3efc2ed62b148ee8d473754c37fcde479a2793a0c46'] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1') +] + +separate_build_dir = True +start_dir = './' + +configopts = '-DCMAKE_VERBOSE_MAKEFILE=ON ' + +postinstallcmds = [ + ( + '{ cat >> %(installdir)s/libyuv.pc; } << \'EOF\'\n' + 'prefix=%(installdir)s\n' + 'exec_prefix=${prefix}\n' + 'libdir=${prefix}/lib\n' + 'includedir=${prefix}/include\n' + '\n' + 'Name: libyuv\n' + 'Description: YUV conversion and scaling functionality library\n' + 'Version: 0\n' + 'Cflags: -I${includedir}\n' + 'Libs: -L${libdir} -lyuv\n' + 'EOF' + ), +] + +sanity_check_paths = { + 'files': ['lib/libyuv.a', 'include/libyuv.h'], + 'dirs': [], +} + +modextrapaths = { + 'PKG_CONFIG_PATH': '' +} + +moduleclass = 'vis' diff --git a/Golden_Repo/m/METIS/METIS-5.1.0-intel-compilers-2022.1.0.eb b/Golden_Repo/m/METIS/METIS-5.1.0-intel-compilers-2022.1.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..49ea124c5874d1cb0a512e5e673145b872abe274 --- /dev/null +++ b/Golden_Repo/m/METIS/METIS-5.1.0-intel-compilers-2022.1.0.eb @@ -0,0 +1,26 @@ +name = 'METIS' +version = '5.1.0' + +homepage = 'http://glaros.dtc.umn.edu/gkhome/metis/metis/overview' +description = """METIS is a set of serial programs for partitioning graphs, partitioning finite element meshes, +and producing fill reducing orderings for sparse matrices. +The algorithms implemented in METIS are based on the multilevel recursive-bisection, +multilevel k-way, and multi-constraint partitioning schemes.""" + +toolchain = {'name': 'intel-compilers', 'version': '2022.1.0'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['https://src.fedoraproject.org/repo/pkgs/metis/metis-5.1.0.tar.gz/5465e67079419a69e0116de24fce58fe'] +sources = [SOURCELOWER_TAR_GZ] +patches = ['METIS-5.1.0-use-doubles.patch'] +checksums = [ + {'metis-5.1.0.tar.gz': '76faebe03f6c963127dbb73c13eab58c9a3faeae48779f049066a21c087c5db2'}, + {'METIS-5.1.0-use-doubles.patch': '8e79f5970c0fb36394dd6338dd3160eb346dc00e38c37ac90303e1ee5eb4c53f'}, +] + +# we use 32bit for indices and 64bit for content +builddependencies = [('CMake', '3.23.1')] + +configopts = ['', 'shared=1'] + +moduleclass = 'math' diff --git a/Golden_Repo/m/MUMPS/MUMPS-5.5.1-gpsmkl-2022a-metis.eb b/Golden_Repo/m/MUMPS/MUMPS-5.5.1-gpsmkl-2022a-metis.eb new file mode 100644 index 0000000000000000000000000000000000000000..88b28ff1037ba0670dc9bef55fe9a63ff35924c2 --- /dev/null +++ b/Golden_Repo/m/MUMPS/MUMPS-5.5.1-gpsmkl-2022a-metis.eb @@ -0,0 +1,35 @@ +name = 'MUMPS' +version = '5.5.1' +versionsuffix = '-metis' + +homepage = 'https://graal.ens-lyon.fr/MUMPS/' +description = "A parallel sparse direct solver" + +toolchain = {'name': 'gpsmkl', 'version': '2022a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = ['https://graal.ens-lyon.fr/MUMPS/'] +sources = ['%(name)s_%(version)s.tar.gz'] +patches = [ + '%(name)s-%(version)s_shared-pord.patch', # builds the shared libs of PORD + '%(name)s-%(version)s_shared-mumps.patch', # builds shared libs of MUMPS +] +checksums = [ + {'MUMPS_5.5.1.tar.gz': '1abff294fa47ee4cfd50dfd5c595942b72ebfcedce08142a75a99ab35014fa15'}, + {'MUMPS-5.5.1_shared-pord.patch': '2f32d928fe21ab918920eaf26e3112e3185f85bb22a4ab494191849af30c4b6e'}, + {'MUMPS-5.5.1_shared-mumps.patch': '746b12844120a352902a4420b36dc5babd68d4beaa98263826ef4a7893e14504'}, +] + +dependencies = [ + ('SCOTCH', '7.0.1'), + ('METIS', '5.1.0'), +] + +parallel = 1 + +# fix 'Type mismatch between actual argument' errors with GCC 10.x +prebuildopts = 'export FFLAGS="$FFLAGS -fallow-argument-mismatch" && ' + +buildopts = 'all SONAME_VERSION="%(version)s"' + +moduleclass = 'math' diff --git a/Golden_Repo/m/MUST/MUST-1.8.0-gompi-2022a.eb b/Golden_Repo/m/MUST/MUST-1.8.0-gompi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..b4e26720b96d5ba8ed05e3d20673e90fab543552 --- /dev/null +++ b/Golden_Repo/m/MUST/MUST-1.8.0-gompi-2022a.eb @@ -0,0 +1,53 @@ +# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild +# Copyright:: Copyright 2013-2023 Juelich Supercomputing Centre, Germany +# Authors:: Bernd Mohr <b.mohr@fz-juelich.de> +# Authors:: Damian Alvarez <d.alvarez@fz-juelich.de> +# Authors:: Benedikt Steinbusch <b.steinbusch@fz-juelich.de> +# License:: New BSD +# +# This work is based from experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## +easyblock = 'CMakeMake' + +name = "MUST" +version = "1.8.0" + +homepage = 'https://hpc.rwth-aachen.de/must/' +description = """MUST detects usage errors of the Message Passing Interface (MPI) and reports them +to the user. As MPI calls are complex and usage errors common, this functionality is extremely helpful +for application developers that want to develop correct MPI applications. This includes errors that +already manifest --segmentation faults or incorrect results -- as well as many errors that are not +visible to the application developer or do not manifest on a certain system or MPI implementation. +""" + +toolchain = {'name': 'gompi', 'version': '2022a'} + +source_urls = ['https://hpc.rwth-aachen.de/must/files/'] +sources = ['%(name)s-v%(version)s.tar.gz'] +patches = [ + 'wrap-config.cmake.in.patch', +] +checksums = [ + '9754fefd2e4c8cba812f8b56a5dd929bc84aa599b2509305e1eb8518be0a8a39', # MUST-v1.8.0.tar.gz + 'a7adba726fb68f928556dc6e16ad9b624c528a2c807b73e1a61e79a2b2431681', # wrap-config.cmake.in.patch +] + +builddependencies = [ + ('CMake', '3.23.1'), +] + +dependencies = [ + ('Graphviz', '5.0.0'), + ('libxml2', '2.9.13'), + ('Python', '3.10.4'), +] + +configopts = ' -DCMAKE_BUILD_TYPE=Release -DPython_ROOT_DIR="$EBROOTPYTHON" ' + +sanity_check_paths = { + 'files': ["bin/mustrun", "include/mustConfig.h"], + 'dirs': [], +} + +moduleclass = 'perf' diff --git a/Golden_Repo/m/MUST/MUST-1.8.0-gpsmpi-2022a.eb b/Golden_Repo/m/MUST/MUST-1.8.0-gpsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..f8cba8685d6adfd2a9575bfff9e2c70befe4aee2 --- /dev/null +++ b/Golden_Repo/m/MUST/MUST-1.8.0-gpsmpi-2022a.eb @@ -0,0 +1,53 @@ +# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild +# Copyright:: Copyright 2013-2023 Juelich Supercomputing Centre, Germany +# Authors:: Bernd Mohr <b.mohr@fz-juelich.de> +# Authors:: Damian Alvarez <d.alvarez@fz-juelich.de> +# Authors:: Benedikt Steinbusch <b.steinbusch@fz-juelich.de> +# License:: New BSD +# +# This work is based from experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## +easyblock = 'CMakeMake' + +name = "MUST" +version = "1.8.0" + +homepage = 'https://hpc.rwth-aachen.de/must/' +description = """MUST detects usage errors of the Message Passing Interface (MPI) and reports them +to the user. As MPI calls are complex and usage errors common, this functionality is extremely helpful +for application developers that want to develop correct MPI applications. This includes errors that +already manifest --segmentation faults or incorrect results -- as well as many errors that are not +visible to the application developer or do not manifest on a certain system or MPI implementation. +""" + +toolchain = {'name': 'gpsmpi', 'version': '2022a'} + +source_urls = ['https://hpc.rwth-aachen.de/must/files/'] +sources = ['%(name)s-v%(version)s.tar.gz'] +patches = [ + 'wrap-config.cmake.in.patch', +] +checksums = [ + '9754fefd2e4c8cba812f8b56a5dd929bc84aa599b2509305e1eb8518be0a8a39', # MUST-v1.8.0.tar.gz + 'a7adba726fb68f928556dc6e16ad9b624c528a2c807b73e1a61e79a2b2431681', # wrap-config.cmake.in.patch +] + +builddependencies = [ + ('CMake', '3.23.1'), +] + +dependencies = [ + ('Graphviz', '5.0.0'), + ('libxml2', '2.9.13'), + ('Python', '3.10.4'), +] + +configopts = ' -DCMAKE_BUILD_TYPE=Release -DPython_ROOT_DIR="$EBROOTPYTHON" ' + +sanity_check_paths = { + 'files': ["bin/mustrun", "include/mustConfig.h"], + 'dirs': [], +} + +moduleclass = 'perf' diff --git a/Golden_Repo/m/MUST/MUST-1.8.0-ipsmpi-2022a.eb b/Golden_Repo/m/MUST/MUST-1.8.0-ipsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..9c457ed2c0f7ffa40cdcc8a1e914149e4369e405 --- /dev/null +++ b/Golden_Repo/m/MUST/MUST-1.8.0-ipsmpi-2022a.eb @@ -0,0 +1,53 @@ +# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild +# Copyright:: Copyright 2013-2023 Juelich Supercomputing Centre, Germany +# Authors:: Bernd Mohr <b.mohr@fz-juelich.de> +# Authors:: Damian Alvarez <d.alvarez@fz-juelich.de> +# Authors:: Benedikt Steinbusch <b.steinbusch@fz-juelich.de> +# License:: New BSD +# +# This work is based from experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## +easyblock = 'CMakeMake' + +name = "MUST" +version = "1.8.0" + +homepage = 'https://hpc.rwth-aachen.de/must/' +description = """MUST detects usage errors of the Message Passing Interface (MPI) and reports them +to the user. As MPI calls are complex and usage errors common, this functionality is extremely helpful +for application developers that want to develop correct MPI applications. This includes errors that +already manifest --segmentation faults or incorrect results -- as well as many errors that are not +visible to the application developer or do not manifest on a certain system or MPI implementation. +""" + +toolchain = {'name': 'ipsmpi', 'version': '2022a'} + +source_urls = ['https://hpc.rwth-aachen.de/must/files/'] +sources = ['%(name)s-v%(version)s.tar.gz'] +patches = [ + 'wrap-config.cmake.in.patch', +] +checksums = [ + '9754fefd2e4c8cba812f8b56a5dd929bc84aa599b2509305e1eb8518be0a8a39', # MUST-v1.8.0.tar.gz + 'a7adba726fb68f928556dc6e16ad9b624c528a2c807b73e1a61e79a2b2431681', # wrap-config.cmake.in.patch +] + +builddependencies = [ + ('CMake', '3.23.1'), +] + +dependencies = [ + ('Graphviz', '5.0.0'), + ('libxml2', '2.9.13'), + ('Python', '3.10.4'), +] + +configopts = ' -DCMAKE_BUILD_TYPE=Release -DPython_ROOT_DIR="$EBROOTPYTHON" ' + +sanity_check_paths = { + 'files': ["bin/mustrun", "include/mustConfig.h"], + 'dirs': [], +} + +moduleclass = 'perf' diff --git a/Golden_Repo/m/MUST/wrap-config.cmake.in.patch b/Golden_Repo/m/MUST/wrap-config.cmake.in.patch new file mode 100644 index 0000000000000000000000000000000000000000..5240d39fd4df30ca52548defd727f9a7bece8c47 --- /dev/null +++ b/Golden_Repo/m/MUST/wrap-config.cmake.in.patch @@ -0,0 +1,90 @@ +--- externals/wrap/wrap-config.cmake.in.orig 2020-08-26 21:13:57.739359000 +0200 ++++ externals/wrap/wrap-config.cmake.in 2020-08-26 21:05:11.535717000 +0200 +@@ -39,9 +39,9 @@ + + # Play nice with FindPythonInterp -- use the interpreter if it was found, + # otherwise use the script directly. +- find_package(PythonInterp 2.6) +- if (PYTHON_EXECUTABLE) +- set(command ${PYTHON_EXECUTABLE}) ++ find_package(Python) ++ if (Python_EXECUTABLE) ++ set(command ${Python_EXECUTABLE}) + set(script_arg ${Wrap_EXECUTABLE}) + else() + set(command ${Wrap_EXECUTABLE}) +--- externals/GTI/externals/wrap/wrap-config.cmake.in.orig 2020-08-26 21:12:21.579754000 +0200 ++++ externals/GTI/externals/wrap/wrap-config.cmake.in 2020-08-26 21:14:34.723726000 +0200 +@@ -39,9 +39,9 @@ + + # Play nice with FindPythonInterp -- use the interpreter if it was found, + # otherwise use the script directly. +- find_package(PythonInterp 2.6) +- if (PYTHON_EXECUTABLE) +- set(command ${PYTHON_EXECUTABLE}) ++ find_package(Python) ++ if (Python_EXECUTABLE) ++ set(command ${Python_EXECUTABLE}) + set(script_arg ${Wrap_EXECUTABLE}) + else() + set(command ${Wrap_EXECUTABLE}) +--- externals/GTI/externals/PnMPI/externals/wrap/wrap-config.cmake.in.orig 2020-08-26 21:13:22.408675000 +0200 ++++ externals/GTI/externals/PnMPI/externals/wrap/wrap-config.cmake.in 2020-08-26 21:00:55.200196000 +0200 +@@ -39,9 +39,9 @@ + + # Play nice with FindPythonInterp -- use the interpreter if it was found, + # otherwise use the script directly. +- find_package(PythonInterp 2.6) +- if (PYTHON_EXECUTABLE) +- set(command ${PYTHON_EXECUTABLE}) ++ find_package(Python) ++ if (Python_EXECUTABLE) ++ set(command ${Python_EXECUTABLE}) + set(script_arg ${Wrap_EXECUTABLE}) + else() + set(command ${Wrap_EXECUTABLE}) +--- externals/wrap/WrapConfig.cmake.orig 2021-05-27 10:35:39.000000000 +0200 ++++ externals/wrap/WrapConfig.cmake 2021-05-27 10:36:23.000000000 +0200 +@@ -29,9 +29,9 @@ + + # Play nice with FindPythonInterp -- use the interpreter if it was found, + # otherwise use the script directly. +- find_package(PythonInterp 2.6) +- if (PYTHON_EXECUTABLE) +- set(command ${PYTHON_EXECUTABLE}) ++ find_package(Python) ++ if (Python_EXECUTABLE) ++ set(command ${Python_EXECUTABLE}) + set(script_arg ${Wrap_EXECUTABLE}) + else() + set(command ${Wrap_EXECUTABLE}) +--- externals/GTI/externals/wrap/WrapConfig.cmake.orig 2021-05-27 10:35:39.000000000 +0200 ++++ externals/GTI/externals/wrap/WrapConfig.cmake 2021-05-27 10:36:23.000000000 +0200 +@@ -29,9 +29,9 @@ + + # Play nice with FindPythonInterp -- use the interpreter if it was found, + # otherwise use the script directly. +- find_package(PythonInterp 2.6) +- if (PYTHON_EXECUTABLE) +- set(command ${PYTHON_EXECUTABLE}) ++ find_package(Python) ++ if (Python_EXECUTABLE) ++ set(command ${Python_EXECUTABLE}) + set(script_arg ${Wrap_EXECUTABLE}) + else() + set(command ${Wrap_EXECUTABLE}) +--- externals/GTI/externals/PnMPI/externals/wrap/WrapConfig.cmake.orig 2021-05-27 10:35:39.000000000 +0200 ++++ externals/GTI/externals/PnMPI/externals/wrap/WrapConfig.cmake 2021-05-27 10:36:23.000000000 +0200 +@@ -29,9 +29,9 @@ + + # Play nice with FindPythonInterp -- use the interpreter if it was found, + # otherwise use the script directly. +- find_package(PythonInterp 2.6) +- if (PYTHON_EXECUTABLE) +- set(command ${PYTHON_EXECUTABLE}) ++ find_package(Python) ++ if (Python_EXECUTABLE) ++ set(command ${Python_EXECUTABLE}) + set(script_arg ${Wrap_EXECUTABLE}) + else() + set(command ${Wrap_EXECUTABLE}) diff --git a/Golden_Repo/m/muparserx/muparserx-4.0.11-GCCcore-11.3.0.eb b/Golden_Repo/m/muparserx/muparserx-4.0.11-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..4266a0332c3b77c48409e072ba72aa0f1d9903dd --- /dev/null +++ b/Golden_Repo/m/muparserx/muparserx-4.0.11-GCCcore-11.3.0.eb @@ -0,0 +1,27 @@ +easyblock = 'CMakeMake' + +name = 'muparserx' +version = '4.0.11' + +homepage = 'https://beltoforion.de/en/muparserx/' +description = 'A C++ Library for Parsing Expressions with Strings, Complex Numbers, Vectors, Matrices and more.' +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +github_account = 'beltoforion' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['8bc2773f174afd8c51cc480a293622c499fd1f46ecfa57296e59d86c75356977'] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1'), +] + +configopts = ['-DBUILD_SHARED_LIBS=OFF', '-DBUILD_SHARED_LIBS=ON'] + +sanity_check_paths = { + 'files': ['lib64/libmuparserx.a', 'lib64/libmuparserx.%s' % SHLIB_EXT], + 'dirs': ['include/muparserx'], +} + +moduleclass = 'lib' diff --git a/Golden_Repo/n/netCDF-C++4/netCDF-C++4-4.3.1-gpsmpi-2022a.eb b/Golden_Repo/n/netCDF-C++4/netCDF-C++4-4.3.1-gpsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..767674d4124fdb9595585bd1e0af733c3dba0b34 --- /dev/null +++ b/Golden_Repo/n/netCDF-C++4/netCDF-C++4-4.3.1-gpsmpi-2022a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'netCDF-C++4' +version = '4.3.1' + +homepage = 'https://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries + and machine-independent data formats that support the creation, access, and sharing of array-oriented + scientific data.""" + +toolchain = {'name': 'gpsmpi', 'version': '2022a'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/Unidata/netcdf-cxx4/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['e3fe3d2ec06c1c2772555bf1208d220aab5fee186d04bd265219b0bc7a978edc'] + +dependencies = [('netCDF', '4.9.0')] + +sanity_check_paths = { + 'files': ['include/netcdf', 'lib/libnetcdf_c++4.a', 'lib/libnetcdf_c++4.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'data' diff --git a/Golden_Repo/n/netCDF-C++4/netCDF-C++4-4.3.1-ipsmpi-2022a.eb b/Golden_Repo/n/netCDF-C++4/netCDF-C++4-4.3.1-ipsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..28870b23937a14af7e469868fdcdd5b6aab999ce --- /dev/null +++ b/Golden_Repo/n/netCDF-C++4/netCDF-C++4-4.3.1-ipsmpi-2022a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'netCDF-C++4' +version = '4.3.1' + +homepage = 'https://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries + and machine-independent data formats that support the creation, access, and sharing of array-oriented + scientific data.""" + +toolchain = {'name': 'ipsmpi', 'version': '2022a'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/Unidata/netcdf-cxx4/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['e3fe3d2ec06c1c2772555bf1208d220aab5fee186d04bd265219b0bc7a978edc'] + +dependencies = [('netCDF', '4.9.0')] + +sanity_check_paths = { + 'files': ['include/netcdf', 'lib/libnetcdf_c++4.a', 'lib/libnetcdf_c++4.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'data' diff --git a/Golden_Repo/n/netCDF/netCDF-4.9.0-gompi-2022a.eb b/Golden_Repo/n/netCDF/netCDF-4.9.0-gompi-2022a.eb index cdf3f1976e1dc377b2e4fb11a9c328509cd2c821..0b6ce479cf42c234fa406348945abf57580959fb 100644 --- a/Golden_Repo/n/netCDF/netCDF-4.9.0-gompi-2022a.eb +++ b/Golden_Repo/n/netCDF/netCDF-4.9.0-gompi-2022a.eb @@ -48,7 +48,7 @@ dependencies = [ # and disable "remote" tests that access a unreliable external test server over internet configopts = [ "-DENABLE_PNETCDF=ON -DENABLE_DAP_REMOTE_TESTS=OFF -DBUILD_SHARED_LIBS=OFF -DMPIEXEC='/usr/bin/srun'", - "-DENABLE_PNETCDF=ON -DBUILD_SHARED_LIBS=ON -DMPIEXEC='/usr/bin/srun'", + "-DENABLE_PNETCDF=ON -DENABLE_DAP_REMOTE_TESTS=OFF -DBUILD_SHARED_LIBS=ON -DMPIEXEC='/usr/bin/srun'", ] # some tests try to start 16 MPI ranks, so we need to allow oversubscription to avoid failing tests diff --git a/Golden_Repo/n/netcdf4-python/netcdf4-python-1.1.8-avoid-diskless-test.patch b/Golden_Repo/n/netcdf4-python/netcdf4-python-1.1.8-avoid-diskless-test.patch new file mode 100644 index 0000000000000000000000000000000000000000..d146f649548b0815386b6003647eb6cf37cee583 --- /dev/null +++ b/Golden_Repo/n/netcdf4-python/netcdf4-python-1.1.8-avoid-diskless-test.patch @@ -0,0 +1,14 @@ +# this test seems to always fall. The diskless thing is not really diskless it seems +# By Ward Poelmans <ward.poelmans@ugent.be> +diff -ur netcdf4-python-1.1.8rel/test/tst_diskless.py netcdf4-python-1.1.8rel.new/test/tst_diskless.py +--- netcdf4-python-1.1.8rel/test/tst_diskless.py 2015-05-13 16:27:00.000000000 +0200 ++++ netcdf4-python-1.1.8rel.new/test/tst_diskless.py 2016-01-07 14:16:21.851971913 +0100 +@@ -65,7 +65,7 @@ + assert_array_almost_equal(foo[:], ranarr) + assert_array_almost_equal(bar[:], ranarr2) + # file does not actually exist on disk +- assert(os.path.isfile(self.file)==False) ++# assert(os.path.isfile(self.file)==False) + # open persisted file. + # first, check that file does actually exist on disk + assert(os.path.isfile(self.file2)==True) diff --git a/Golden_Repo/n/netcdf4-python/netcdf4-python-1.6.1-GCCcore-11.3.0-serial.eb b/Golden_Repo/n/netcdf4-python/netcdf4-python-1.6.1-GCCcore-11.3.0-serial.eb new file mode 100644 index 0000000000000000000000000000000000000000..f5bceef51f279ec036d02f11c5d5849bf88c8643 --- /dev/null +++ b/Golden_Repo/n/netcdf4-python/netcdf4-python-1.6.1-GCCcore-11.3.0-serial.eb @@ -0,0 +1,59 @@ +easyblock = 'PythonBundle' + +name = 'netcdf4-python' +version = '1.6.1' + +versionsuffix = '-serial' + +homepage = 'https://unidata.github.io/netcdf4-python/' +description = """Python/numpy interface to netCDF.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} +toolchainopts = {} + +builddependencies = [ + ('binutils', '2.38'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('netCDF', '4.9.0', '-serial'), + ('cURL', '7.83.0'), +] + +use_pip = True +sanity_pip_check = True + +exts_default_options = {'source_urls': [PYPI_SOURCE]} + +exts_list = [ + ('cftime', '1.6.2', { + 'checksums': ['8614c00fb8a5046de304fdd86dbd224f99408185d7b245ac6628d0276596e6d2'], + }), + (name, version, { + 'patches': ['netcdf4-python-1.1.8-avoid-diskless-test.patch'], + 'source_tmpl': 'netCDF4-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/n/netCDF4'], + 'checksums': [ + {'netCDF4-1.6.1.tar.gz': 'ba8dc5d65293a99f1afb8c2acf588d903fdfdc1963a62545b677fa2734262a78'}, + {'netcdf4-python-1.1.8-avoid-diskless-test.patch': + 'a8b262fa201d55f59015e1bc14466c1d113f807543bc1e05a22481ab0d216d72'}, + ], + }), +] + +fix_python_shebang_for = ['bin/*'] + +sanity_check_paths = { + 'files': ['bin/nc3tonc4', 'bin/nc4tonc3', 'bin/ncinfo'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + "nc4tonc3 --help", + "nc3tonc4 --help", + "ncinfo --help", +] + +moduleclass = 'data' diff --git a/Golden_Repo/n/netcdf4-python/netcdf4-python-1.6.1-gompi-2022a.eb b/Golden_Repo/n/netcdf4-python/netcdf4-python-1.6.1-gompi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..5ba2aeff9215232b53884aab8924bda4ca64020e --- /dev/null +++ b/Golden_Repo/n/netcdf4-python/netcdf4-python-1.6.1-gompi-2022a.eb @@ -0,0 +1,60 @@ +easyblock = 'PythonBundle' + +name = 'netcdf4-python' +version = '1.6.1' + +homepage = 'https://unidata.github.io/netcdf4-python/' +description = """Python/numpy interface to netCDF.""" + +toolchain = {'name': 'gompi', 'version': '2022a'} +toolchainopts = {'usempi': True} + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('netCDF', '4.9.0'), + ('cURL', '7.83.0'), + ('mpi4py', '3.1.4'), +] + +use_pip = True +sanity_pip_check = True +runtest = False # mpirun problems #from 2022 +skipsteps = ['sanitycheck'] # mpirun problems #from 2022 + +exts_list = [ + ('cftime', '1.6.2', { + 'checksums': ['8614c00fb8a5046de304fdd86dbd224f99408185d7b245ac6628d0276596e6d2'], + }), + (name, version, { + 'patches': [ + 'netcdf4-python-1.1.8-avoid-diskless-test.patch', + 'netcdf4-python-1.6.1_relax_tolerance_compression_test.patch', + ], + 'source_tmpl': 'netCDF4-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/n/netCDF4'], + 'checksums': [ + # netCDF4-1.6.1.tar.gz + 'ba8dc5d65293a99f1afb8c2acf588d903fdfdc1963a62545b677fa2734262a78', + # netcdf4-python-1.1.8-avoid-diskless-test.patch + 'a8b262fa201d55f59015e1bc14466c1d113f807543bc1e05a22481ab0d216d72', + # netcdf4-python-1.6.1_relax_tolerance_compression_test.patch + '64d192a5d1e3e00af78f053da78f5a35015fa713c7f97b10b622be6a44347166', + ], + }), +] + +fix_python_shebang_for = ['bin/*'] + +sanity_check_paths = { + 'files': ['bin/nc3tonc4', 'bin/nc4tonc3', 'bin/ncinfo'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + "nc4tonc3 --help", + "nc3tonc4 --help", + "ncinfo --help", +] + +moduleclass = 'data' diff --git a/Golden_Repo/n/netcdf4-python/netcdf4-python-1.6.1-gpsmpi-2022a.eb b/Golden_Repo/n/netcdf4-python/netcdf4-python-1.6.1-gpsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..5ca6572ed7d26d1621a4a719488c076854a01f39 --- /dev/null +++ b/Golden_Repo/n/netcdf4-python/netcdf4-python-1.6.1-gpsmpi-2022a.eb @@ -0,0 +1,60 @@ +easyblock = 'PythonBundle' + +name = 'netcdf4-python' +version = '1.6.1' + +homepage = 'https://unidata.github.io/netcdf4-python/' +description = """Python/numpy interface to netCDF.""" + +toolchain = {'name': 'gpsmpi', 'version': '2022a'} +toolchainopts = {'usempi': True} + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('netCDF', '4.9.0'), + ('cURL', '7.83.0'), + ('mpi4py', '3.1.4'), +] + +use_pip = True +sanity_pip_check = True +runtest = False # mpirun problems #from 2022 +skipsteps = ['sanitycheck'] # mpirun problems #from 2022 + +exts_list = [ + ('cftime', '1.6.2', { + 'checksums': ['8614c00fb8a5046de304fdd86dbd224f99408185d7b245ac6628d0276596e6d2'], + }), + (name, version, { + 'patches': [ + 'netcdf4-python-1.1.8-avoid-diskless-test.patch', + 'netcdf4-python-1.6.1_relax_tolerance_compression_test.patch', + ], + 'source_tmpl': 'netCDF4-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/n/netCDF4'], + 'checksums': [ + # netCDF4-1.6.1.tar.gz + 'ba8dc5d65293a99f1afb8c2acf588d903fdfdc1963a62545b677fa2734262a78', + # netcdf4-python-1.1.8-avoid-diskless-test.patch + 'a8b262fa201d55f59015e1bc14466c1d113f807543bc1e05a22481ab0d216d72', + # netcdf4-python-1.6.1_relax_tolerance_compression_test.patch + '64d192a5d1e3e00af78f053da78f5a35015fa713c7f97b10b622be6a44347166', + ], + }), +] + +fix_python_shebang_for = ['bin/*'] + +sanity_check_paths = { + 'files': ['bin/nc3tonc4', 'bin/nc4tonc3', 'bin/ncinfo'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + "nc4tonc3 --help", + "nc3tonc4 --help", + "ncinfo --help", +] + +moduleclass = 'data' diff --git a/Golden_Repo/n/netcdf4-python/netcdf4-python-1.6.1-ipsmpi-2022a.eb b/Golden_Repo/n/netcdf4-python/netcdf4-python-1.6.1-ipsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..c57b836642429b6c4ef9ded340fae82230657718 --- /dev/null +++ b/Golden_Repo/n/netcdf4-python/netcdf4-python-1.6.1-ipsmpi-2022a.eb @@ -0,0 +1,60 @@ +easyblock = 'PythonBundle' + +name = 'netcdf4-python' +version = '1.6.1' + +homepage = 'https://unidata.github.io/netcdf4-python/' +description = """Python/numpy interface to netCDF.""" + +toolchain = {'name': 'ipsmpi', 'version': '2022a'} +toolchainopts = {'usempi': True} + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('netCDF', '4.9.0'), + ('cURL', '7.83.0'), + ('mpi4py', '3.1.4'), +] + +use_pip = True +sanity_pip_check = True +runtest = False # mpirun problems #from 2022 +skipsteps = ['sanitycheck'] # mpirun problems #from 2022 + +exts_list = [ + ('cftime', '1.6.2', { + 'checksums': ['8614c00fb8a5046de304fdd86dbd224f99408185d7b245ac6628d0276596e6d2'], + }), + (name, version, { + 'patches': [ + 'netcdf4-python-1.1.8-avoid-diskless-test.patch', + 'netcdf4-python-1.6.1_relax_tolerance_compression_test.patch', + ], + 'source_tmpl': 'netCDF4-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/n/netCDF4'], + 'checksums': [ + # netCDF4-1.6.1.tar.gz + 'ba8dc5d65293a99f1afb8c2acf588d903fdfdc1963a62545b677fa2734262a78', + # netcdf4-python-1.1.8-avoid-diskless-test.patch + 'a8b262fa201d55f59015e1bc14466c1d113f807543bc1e05a22481ab0d216d72', + # netcdf4-python-1.6.1_relax_tolerance_compression_test.patch + '64d192a5d1e3e00af78f053da78f5a35015fa713c7f97b10b622be6a44347166', + ], + }), +] + +fix_python_shebang_for = ['bin/*'] + +sanity_check_paths = { + 'files': ['bin/nc3tonc4', 'bin/nc4tonc3', 'bin/ncinfo'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + "nc4tonc3 --help", + "nc3tonc4 --help", + "ncinfo --help", +] + +moduleclass = 'data' diff --git a/Golden_Repo/n/netcdf4-python/netcdf4-python-1.6.1_relax_tolerance_compression_test.patch b/Golden_Repo/n/netcdf4-python/netcdf4-python-1.6.1_relax_tolerance_compression_test.patch new file mode 100644 index 0000000000000000000000000000000000000000..57dda863c8b175277759c4c99a0771a791480f7e --- /dev/null +++ b/Golden_Repo/n/netcdf4-python/netcdf4-python-1.6.1_relax_tolerance_compression_test.patch @@ -0,0 +1,15 @@ +# Relax tolerance in the compression_szip test to avoid fails on some systems. +# author: maxim-masterov (SURF) +# +diff -Nru netcdf4-python-1.6.1.orig/test/tst_compression_szip.py netcdf4-python-1.6.1/test/tst_compression_szip.py +--- netcdf4-python-1.6.1.orig/test/tst_compression_szip.py 2022-10-11 14:47:31.830359000 +0200 ++++ netcdf4-python-1.6.1/test/tst_compression_szip.py 2022-10-11 14:48:13.300393000 +0200 +@@ -33,7 +33,7 @@ + assert_almost_equal(datarr,f.variables['data'][:]) + assert f.variables['data'].filters() ==\ + {'zlib':False,'szip':False,'zstd':False,'bzip2':False,'blosc':False,'shuffle':False,'complevel':0,'fletcher32':False} +- assert_almost_equal(datarr,f.variables['data_szip'][:]) ++ assert_almost_equal(datarr,f.variables['data_szip'][:], 6) + dtest = {'zlib': False, 'szip': {'coding': 'ec', 'pixels_per_block': 32}, 'zstd': False, 'bzip2': False, 'blosc': False, 'shuffle': False, 'complevel': 0, 'fletcher32': False} + assert f.variables['data_szip'].filters() == dtest + f.close() diff --git a/Golden_Repo/n/nvidia-Video_Codec_SDK/nvidia-Video_Codec_SDK-11.1.5.eb b/Golden_Repo/n/nvidia-Video_Codec_SDK/nvidia-Video_Codec_SDK-11.1.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..be698f06d312ef76013327db43abe247dfe62932 --- /dev/null +++ b/Golden_Repo/n/nvidia-Video_Codec_SDK/nvidia-Video_Codec_SDK-11.1.5.eb @@ -0,0 +1,47 @@ +easyblock = 'Tarball' + +name = 'nvidia-Video_Codec_SDK' +version = '11.1.5' + +homepage = 'https://developer.nvidia.com/nvidia-video-codec-sdk' +description = """NVDECODE and NVENCODE APIs for low-level granular control over various encode/decode parameters +and if you want to directly tap into the hardware decoder/encoder.""" + +toolchain = SYSTEM + +sources = ['Video_Codec_SDK_%(version)s.tar.gz'] +checksums = ['5facddff252cc15fd93a00f24d60e8bea85515e573ddd0341e84e756e286584a'] + +dependencies = [ + ('nvidia-driver', 'default', '', SYSTEM), +] + +postinstallcmds = [ + ( + '{ cat > %(installdir)s/nvenc.pc; } << EOF\n' + 'prefix=%(installdir)s \n' + 'exec_prefix=\${prefix} \n' + 'includedir=\${prefix}/Interface \n' + 'libdir=${EBROOTNVIDIAMINDRIVER}/lib64 \n' + '\n' + 'Name: nvenc \n' + 'Description: NVENC \n' + 'Version: %(version_major)s \n' + 'Requires: \n' + 'Conflicts: \n' + 'Libs: -L\${libdir} -lnvidia-encode \n' + 'Cflags: -I\${includedir} -Wno-error=deprecated-declarations\n' + 'EOF' + ), +] + +modextrapaths = { + 'PKG_CONFIG_PATH': '' +} + +sanity_check_paths = { + 'files': ['Interface/nvEncodeAPI.h'], + 'dirs': ['Interface', 'Lib'], +} + +moduleclass = 'lib' diff --git a/Golden_Repo/o/OSPRay/OSPRay-2.10.0-foss-2022a.eb b/Golden_Repo/o/OSPRay/OSPRay-2.10.0-foss-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..265a1a78cc575ca864106a331887e34133ed4efa --- /dev/null +++ b/Golden_Repo/o/OSPRay/OSPRay-2.10.0-foss-2022a.eb @@ -0,0 +1,65 @@ +easyblock = 'CMakeMake' + +name = 'OSPRay' +version = '2.10.0' + +homepage = 'http://www.ospray.org/' +description = """ +OSPRay is an open source, scalable, and portable ray tracing engine for +high-performance, high-fidelity visualization on Intel® Architecture CPUs. +""" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/ospray/OSPRay/archive/'] +sources = ['v%(version)s.tar.gz'] + +checksums = ['bd478284f48d2cb775fc41a2855a9d9f5ea16c861abda0f8dc94e02ea7189cb8'] + +builddependencies = [ + ('ispc', '1.18.1', '', SYSTEM), + ('CMake', '3.23.1'), + ('Doxygen', '1.9.4') +] + +dependencies = [ + ('X11', '20220504'), + ('OpenGL', '2022a'), + ('freeglut', '3.4.0'), + ('Qt5', '5.15.5'), + ('tbb', '2021.5.0'), + ('Embree', '3.13.5'), + ('rkcommon', '1.10.0'), + ('openvkl', '1.3.1'), + ('OpenImageDenoise', '1.4.3', '', ('gcccoremkl', '11.3.0-2022.1.0')), +] + +separate_build_dir = True + +configopts = '-DCMAKE_VERBOSE_MAKEFILE=ON ' +configopts += '-DOSPRAY_INSTALL_DEPENDENCIES=OFF ' +configopts += '-DCMAKE_BUILD_TYPE=Release ' +configopts += '-DOSPRAY_BUILD_ISA=ALL ' +configopts += '-Dembree_DIR=$EBROOTEMBREE/lib64/cmake/embree-3.13.5 ' +configopts += '-DOSPRAY_ENABLE_APPS:BOOL=OFF ' +configopts += '-DOSPRAY_MODULE_DENOISER:BOOL=ON ' +configopts += '-DOSPRAY_MODULE_MPI:BOOL=True ' + +configopts += '-DOSPRAY_ENABLE_APPS:BOOL=OFF ' +configopts += '-DOSPRAY_ENABLE_APPS_BENCHMARK:BOOL=OFF ' +configopts += '-DOSPRAY_ENABLE_APPS_EXAMPLES:BOOL=OFF ' +configopts += '-DOSPRAY_ENABLE_APPS_TUTORIALS:BOOL=OFF ' +configopts += '-DOSPRAY_ENABLE_APPS_TESTING:BOOL=OFF ' + +sanity_check_paths = { + 'dirs': ['include/ospray/', + 'lib64/cmake/%(namelower)s-%(version)s', 'share/doc/OSPRay'], + 'files': ['include/ospray/version.h', + 'lib64/libospray.so', + 'share/doc/OSPRay/README.md'], +} + +modextrapaths = {'CMAKE_MODULE_PATH': ['lib64/cmake/ospray-%(version)s']} + +moduleclass = 'vis' diff --git a/Golden_Repo/o/OSPRay/OSPRay-2.10.0-gpsmkl-2022a.eb b/Golden_Repo/o/OSPRay/OSPRay-2.10.0-gpsmkl-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..74c85e8bb0fbe32af2ef28c3cbeb7d47bb1b3d54 --- /dev/null +++ b/Golden_Repo/o/OSPRay/OSPRay-2.10.0-gpsmkl-2022a.eb @@ -0,0 +1,65 @@ +easyblock = 'CMakeMake' + +name = 'OSPRay' +version = '2.10.0' + +homepage = 'http://www.ospray.org/' +description = """ +OSPRay is an open source, scalable, and portable ray tracing engine for +high-performance, high-fidelity visualization on Intel® Architecture CPUs. +""" + +toolchain = {'name': 'gpsmkl', 'version': '2022a'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/ospray/OSPRay/archive/'] +sources = ['v%(version)s.tar.gz'] + +checksums = ['bd478284f48d2cb775fc41a2855a9d9f5ea16c861abda0f8dc94e02ea7189cb8'] + +builddependencies = [ + ('ispc', '1.18.1', '', SYSTEM), + ('CMake', '3.23.1'), + ('Doxygen', '1.9.4') +] + +dependencies = [ + ('X11', '20220504'), + ('OpenGL', '2022a'), + ('freeglut', '3.4.0'), + ('Qt5', '5.15.5'), + ('tbb', '2021.5.0'), + ('Embree', '3.13.5'), + ('rkcommon', '1.10.0'), + ('openvkl', '1.3.1'), + ('OpenImageDenoise', '1.4.3', '', ('gcccoremkl', '11.3.0-2022.1.0')), +] + +separate_build_dir = True + +configopts = '-DCMAKE_VERBOSE_MAKEFILE=ON ' +configopts += '-DOSPRAY_INSTALL_DEPENDENCIES=OFF ' +configopts += '-DCMAKE_BUILD_TYPE=Release ' +configopts += '-DOSPRAY_BUILD_ISA=ALL ' +configopts += '-Dembree_DIR=$EBROOTEMBREE/lib64/cmake/embree-3.13.5 ' +configopts += '-DOSPRAY_ENABLE_APPS:BOOL=OFF ' +configopts += '-DOSPRAY_MODULE_DENOISER:BOOL=ON ' +configopts += '-DOSPRAY_MODULE_MPI:BOOL=True ' + +configopts += '-DOSPRAY_ENABLE_APPS:BOOL=OFF ' +configopts += '-DOSPRAY_ENABLE_APPS_BENCHMARK:BOOL=OFF ' +configopts += '-DOSPRAY_ENABLE_APPS_EXAMPLES:BOOL=OFF ' +configopts += '-DOSPRAY_ENABLE_APPS_TUTORIALS:BOOL=OFF ' +configopts += '-DOSPRAY_ENABLE_APPS_TESTING:BOOL=OFF ' + +sanity_check_paths = { + 'dirs': ['include/ospray/', + 'lib64/cmake/%(namelower)s-%(version)s', 'share/doc/OSPRay'], + 'files': ['include/ospray/version.h', + 'lib64/libospray.so', + 'share/doc/OSPRay/README.md'], +} + +modextrapaths = {'CMAKE_MODULE_PATH': ['lib64/cmake/ospray-%(version)s']} + +moduleclass = 'vis' diff --git a/Golden_Repo/o/OpenCV/OpenCV-4.7.0-gcccoremkl-11.3.0-2022.1.0-CUDA-12.0-contrib.eb b/Golden_Repo/o/OpenCV/OpenCV-4.7.0-gcccoremkl-11.3.0-2022.1.0-CUDA-12.0-contrib.eb new file mode 100644 index 0000000000000000000000000000000000000000..c67d261b950e9c6f68626ffbb73fe793d5efab48 --- /dev/null +++ b/Golden_Repo/o/OpenCV/OpenCV-4.7.0-gcccoremkl-11.3.0-2022.1.0-CUDA-12.0-contrib.eb @@ -0,0 +1,139 @@ +easyblock = 'CMakeMake' + +name = 'OpenCV' +version = '4.7.0' +versionsuffix = '-CUDA-%(cudaver)s-contrib' + +# the hash is version dependent! see 3rdparty/ippicv/ippicv.cmake +local_ippicv_hash = 'a56b6ac6f030c312b2dce17430eef13aed9af274' + +homepage = 'https://opencv.org/' +description = """OpenCV (Open Source Computer Vision Library) is an open source computer vision + and machine learning software library. OpenCV was built to provide + a common infrastructure for computer vision applications and to accelerate + the use of machine perception in the commercial products. + Includes extra modules for OpenCV from the contrib repository.""" + +toolchain = {'name': 'gcccoremkl', 'version': '11.3.0-2022.1.0'} +toolchainopts = {'pic': True, 'cstd': 'c++14', 'optarch': True} + +sources = [ + { + 'source_urls': ['https://github.com/%(namelower)s/%(namelower)s/archive/'], + 'download_filename': '%(version)s.zip', + 'filename': SOURCELOWER_ZIP + }, + { + 'source_urls': ['https://github.com/%(namelower)s/opencv_contrib/archive/'], + 'download_filename': '%(version)s.zip', + 'filename': '%(namelower)s_contrib-%(version)s.zip' + }, + { + 'source_urls': ['https://raw.githubusercontent.com/opencv/opencv_3rdparty/%s/ippicv' % local_ippicv_hash], + 'filename': 'ippicv_2020_lnx_intel64_20191018_general.tgz', + 'extract_cmd': 'cp %s %(builddir)s' + }, +] +checksums = [ + 'db6fb5e7dc76829d738fdbcdba11a810c66ca0a4752e531eaf3d793361e96de8', # opencv-4.7.0.zip + 'ef001813ec39215593ce9deb3aec70a85278f57a0ed88b18f6f615265855436c', # opencv_contrib-4.7.0.zip + '08627fa5660d52d59309a572dd7db5b9c8aea234cfa5aee0942a1dd903554246', # ippicv_2020_lnx_intel64_20191018_general.tgz +] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), # for numpy + ('zlib', '1.2.12'), + ('FFmpeg', '4.4.2'), + ('GStreamer', '1.20.2'), + ('freetype', '2.12.1'), + ('HarfBuzz', '4.2.1'), + ('libjpeg-turbo', '2.1.3'), + ('OpenJPEG', '2.5.0'), + ('libpng', '1.6.37'), + ('LibTIFF', '4.3.0'), + ('libwebp', '1.2.4'), + ('OpenEXR', '3.1.5'), + ('JasPer', '2.0.33'), + ('Java', '11', '', SYSTEM), + ('ant', '1.10.13', '-Java-%(javaver)s', SYSTEM), + ('GLib', '2.72.1'), + ('GTK+', '3.24.34',), + ('HDF5', '1.12.2', '-serial'), # needed by hdf from contrib + ('protobuf', '3.19.4'), + ('Eigen', '3.4.0'), + ('CUDA', '11.7', '', SYSTEM), + ('cuDNN', '8.6.0.163', '-CUDA-%(cudaver)s', SYSTEM), + ('nvidia-Video_Codec_SDK', '11.1.5', '', SYSTEM), + ('OpenGL', '2022a'), +] + +configopts = "-D CMAKE_BUILD_TYPE=RELEASE " +configopts += '-D CMAKE_CXX_FLAGS="-Wdeprecated-declarations" ' + +configopts += "-D OPENCV_GENERATE_PKGCONFIG=ON " +configopts += "-D ENABLE_PRECOMPILED_HEADERS=OFF " + +configopts += "-D BUILD_EXAMPLES=ON " +configopts += "-D INSTALL_PYTHON_EXAMPLES=ON " + +configopts += "-D WITH_CUDA=ON " +configopts += "-D WITH_CUDNN=ON " +configopts += "-D WITH_CUBLAS=ON " +configopts += "-D WITH_CUFFT=ON " +configopts += "-D CUDA_ARCH_BIN='%(cuda_cc_space_sep)s' " +# configopts += "-D CUDA_ARCH_PTX='' " +configopts += "-D BUILD_CUDA_STUBS=ON " +configopts += "-D OPENCV_DNN_CUDA=ON " +configopts += "-D BUILD_opencv_cudacodec=ON " + +configopts += "-D WITH_NVCUVID=ON " + +configopts += "-D WITH_GSTREAMER=ON " + +configopts += '-DOPENCV_EXTRA_MODULES_PATH=%(builddir)s/%(namelower)s_contrib-%(version)s/modules ' + +configopts += "-DProtobuf_INCLUDE_DIR=$EBROOTPROTOBUF/include " +configopts += "-DProtobuf_LIBRARY=$EBROOTPROTOBUF/lib64/libprotobuf.so " +configopts += "-DProtobuf_LITE_LIBRARY_RELEASE=$EBROOTPROTOBUF/lib64/libprotobuf-lite.so " +configopts += "-DProtobuf_PROTOC_LIBRARY_RELEASE=$EBROOTPROTOBUF/lib64/bprotoc.so " +configopts += "-DBUILD_PROTOBUF=OFF -DPROTOBUF_UPDATE_FILES=ON " + +# XXXX in configurations is a bug fix in OpenCV because ocv_check_modules is not able to recognize freetype and harfbuzz +# ref: https://github.com/opencv/opencv/blob/6e8daaec0f46aaba9ea22e2afce47307b1dbff9f/cmake/OpenCVUtils.cmake#L861 +configopts += " ".join([ + "-DOPENCV_EXTRA_MODULES_PATH=%(builddir)s/%(namelower)s_contrib-%(version)s/modules", + "-DFREETYPE_FOUND=ON", + "-DFREETYPE_INCLUDE_DIRS=$EBROOTFREETYPE/include/freetype2/", + "-DFREETYPE_LIBRARIES=$EBROOTFREETYPE/lib64/libfreetype.so", + "-DFREETYPE_LINK_LIBRARIES=$EBROOTFREETYPE/lib64/libfreetype.so", + "-DFREETYPE_LINK_LIBRARIES_XXXXX=ON", + "-DHARFBUZZ_FOUND=ON", + "-DHARFBUZZ_INCLUDE_DIRS=$EBROOTHARFBUZZ/include/harfbuzz", + "-DHARFBUZZ_LIBRARIES=$EBROOTHARFBUZZ/lib64/libharfbuzz.so", + "-DHARFBUZZ_LINK_LIBRARIES=$EBROOTHARFBUZZ/lib64/libharfbuzz.so", + "-DHARFBUZZ_LINK_LIBRARIES_XXXXX=ON", + "-DBUILD_opencv_python2=OFF", + "-DCUDA_NVCC_FLAGS=--std=c++14", +]) + +enhance_sanity_check = True + +local_contrib_libs = [ + 'aruco', 'bgsegm', 'bioinspired', 'ccalib', 'datasets', 'dnn_objdetect', 'dnn_superres', 'dpm', 'face', 'freetype', + 'fuzzy', 'hdf', 'hfs', 'img_hash', 'line_descriptor', 'optflow', 'phase_unwrapping', 'plot', 'quality', 'reg', + 'rgbd', 'saliency', 'shape', 'stereo', 'structured_light', 'superres', 'surface_matching', 'text', 'tracking', + 'videostab', 'xfeatures2d', 'ximgproc', 'xobjdetect', 'xphoto' +] + +sanity_check_paths = { + 'files': ['lib64/libopencv_%s.%s' % (x, SHLIB_EXT) for x in local_contrib_libs], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/Golden_Repo/o/OpenFOAM/OpenFOAM-v1906-wmake-ompi.patch b/Golden_Repo/o/OpenFOAM/OpenFOAM-v1906-wmake-ompi.patch new file mode 100644 index 0000000000000000000000000000000000000000..78291300d58feaf61c9847c86a72abffec805986 --- /dev/null +++ b/Golden_Repo/o/OpenFOAM/OpenFOAM-v1906-wmake-ompi.patch @@ -0,0 +1,29 @@ +# - Corrected output of "wmake -show-c" and "wmake -show-c++" with OpenMPI in order to allow compilation of paraFoam +# +# author: Jiri Furst <Jiri.Furst@gmail.com> +--- OpenFOAM-v1906/wmake/makefiles/info.orig 2019-11-07 18:12:53.000000000 +0100 ++++ OpenFOAM-v1906/wmake/makefiles/info 2019-11-23 12:52:50.700688579 +0100 +@@ -73,19 +73,19 @@ + + .PHONY: c + c: +- @echo "$(firstword $(cc))" ++ @echo "$(lastword $(cc))" + + .PHONY: cxx + cxx: +- @echo "$(firstword $(CC))" ++ @echo "$(lastword $(CC))" + + .PHONY: cflags + cflags: +- @echo "$(wordlist 2,$(words $(COMPILE_C)), $(COMPILE_C))" ++ @echo "$(wordlist 3,$(words $(COMPILE_C)), $(COMPILE_C))" + + .PHONY: cxxflags + cxxflags: +- @echo "$(wordlist 2,$(words $(COMPILE_CXX)), $(COMPILE_CXX))" ++ @echo "$(wordlist 3,$(words $(COMPILE_CXX)), $(COMPILE_CXX))" + + .PHONY: cflags-arch + cflags-arch: diff --git a/Golden_Repo/o/OpenFOAM/OpenFOAM-v2012-cleanup.patch b/Golden_Repo/o/OpenFOAM/OpenFOAM-v2012-cleanup.patch new file mode 100644 index 0000000000000000000000000000000000000000..daccb9439617bee6e1d5038794d6678de6cf00d3 --- /dev/null +++ b/Golden_Repo/o/OpenFOAM/OpenFOAM-v2012-cleanup.patch @@ -0,0 +1,150 @@ +# Replaces OpenFOAM third-party libraries with EASYBUILD variants. +# Uses the OpenFOAM prefs mechanism and the FOAM_CONFIG_ETC variable +# to define the preferred settings without patching the original files +# +# Authors: Mark Olesen <Mark.Olesen@esi-group.com> +# ------------------------------------------------------------------------- +--- /dev/null 2020-12-14 09:05:45.272769166 +0100 ++++ OpenFOAM-v2012/etc/prefs.sh 2020-12-14 10:02:26.488430802 +0100 +@@ -0,0 +1,7 @@ ++##Easybuild## settings -*- sh -*- ++ ++export FOAM_CONFIG_ETC="etc/easybuild" ++ ++export WM_MPLIB=EASYBUILDMPI ++ ++##Easybuild## +--- /dev/null 2020-12-14 09:05:45.272769166 +0100 ++++ OpenFOAM-v2012/etc/easybuild/config.sh/CGAL 2020-12-14 10:10:55.991841204 +0100 +@@ -0,0 +1,6 @@ ++##Easybuild## settings -*- sh -*- ++ ++export BOOST_ARCH_PATH="$EBROOTBOOST" ++export CGAL_ARCH_PATH="$EBROOTCGAL" ++ ++##Easybuild## +--- /dev/null 2020-12-14 09:05:45.272769166 +0100 ++++ OpenFOAM-v2012/etc/easybuild/config.sh/FFTW 2020-12-14 10:10:53.735843322 +0100 +@@ -0,0 +1,5 @@ ++##Easybuild## settings -*- sh -*- ++ ++export FFTW_ARCH_PATH="$EBROOTFFTW" ++ ++##EasyBuild## +--- /dev/null 2020-12-14 09:05:45.272769166 +0100 ++++ OpenFOAM-v2012/etc/easybuild/config.sh/metis 2020-12-11 21:23:28.774934024 +0100 +@@ -0,0 +1,6 @@ ++##Easybuild## settings -*- sh -*- ++ ++METIS_VERSION="metis-$EBVERSIONMETIS" ++[ -d "$METIS_ARCH_PATH" ] || METIS_ARCH_PATH="$METIS_ROOT" ++ ++##Easybuild## +--- /dev/null 2020-12-14 09:05:45.272769166 +0100 ++++ OpenFOAM-v2012/etc/easybuild/config.sh/readline 2020-12-11 21:23:22.534951043 +0100 +@@ -0,0 +1,5 @@ ++##Easybuild## settings -*- sh -*- ++ ++export READLINE_ARCH_PATH="$EBROOTLIBREADLINE" ++ ++##Easybuild## +--- /dev/null 2020-12-14 09:05:45.272769166 +0100 ++++ OpenFOAM-v2012/etc/easybuild/config.sh/scotch 2020-12-11 21:23:17.586964539 +0100 +@@ -0,0 +1,7 @@ ++##Easybuild## settings -*- sh -*- ++ ++export SCOTCH_VERSION="scotch_$EBVERSIONSCOTCH" ++export SCOTCH_ARCH_PATH="$EBROOTSCOTCH" ++[ -d "$SCOTCH_ARCH_PATH" ] || SCOTCH_ARCH_PATH="$SCOTCH_ROOT" ++ ++##Easybuild## +--- /dev/null 2020-12-14 09:05:45.272769166 +0100 ++++ OpenFOAM-v2012/etc/easybuild/config.sh/vtk 2020-12-11 21:22:55.463024882 +0100 +@@ -0,0 +1,9 @@ ++##Easybuild## settings -*- sh -*- ++ ++export VTK_DIR="$EBROOTVTK" ++export MESA_ARCH_PATH="$EBROOTMESA" ++ ++# Define paraview-mesa directory as required ++unset ParaView_MESA_DIR ++ ++##Easybuild## +--- /dev/null 2020-12-14 09:05:45.272769166 +0100 ++++ OpenFOAM-v2012/etc/easybuild/config.sh/paraview 2020-12-14 10:13:53.583674383 +0100 +@@ -0,0 +1,75 @@ ++##Easybuild## settings -*- sh -*- ++# ++# Largely a knockoff of the OpenFOAM etc/config.sh/paraview-system ++# readjusted for easybuild ++# ++# Copyright (C) 2020 OpenCFD Ltd. ++# ++#------------------------------------------------------------------------------ ++# Compiler-specific location for ThirdParty installations ++archDir="$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER" ++ ++# Clean path and library path of previous settings ++eval \ ++ "$($WM_PROJECT_DIR/bin/foamCleanPath -sh-env=PATH \ ++ $ParaView_DIR $archDir/ParaView- $archDir/qt-)" ++ ++eval \ ++ "$($WM_PROJECT_DIR/bin/foamCleanPath -sh-env=LD_LIBRARY_PATH \ ++ $ParaView_DIR $archDir/ParaView- $archDir/qt-)" ++ ++ ++#------------------------------------------------------------------------------ ++ ++##Easybuild## settings ++ ++ParaView_VERSION="$EBVERSIONPARAVIEW" ++export ParaView_DIR="$EBROOTPARAVIEW" ++ ++#------------------------------------------------------------------------------ ++ ++unset PV_PLUGIN_PATH ++ ++# Set API to correspond to VERSION ++# pv_api is <digits>.<digits> from ParaView_VERSION ++#- ++# Extract API from VERSION ++pv_api=$(echo "$ParaView_VERSION" | \ ++ sed -ne 's/^[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/p') ++ ++pv_plugin_dir="$FOAM_LIBBIN/paraview-$pv_api" ++ ++# Set paths if binaries are present ++if [ -r "$ParaView_DIR" ] ++then ++ export PATH="$ParaView_DIR/bin:$PATH" ++ ++ # ParaView libraries ++ # - 5.5 and later: lib/, but could also be lib64/ ++ for libDir in lib64 lib ++ do ++ pvLibDir="$libDir/paraview-$pv_api" ++ if [ -d "$ParaView_DIR/$pvLibDir" ] ++ then ++ export LD_LIBRARY_PATH="$ParaView_DIR/$libDir:$LD_LIBRARY_PATH" ++ break ++ fi ++ done ++ ++ # OpenFOAM plugin directory must be the first in PV_PLUGIN_PATH ++ # and have paraview-major.minor encoded in its name ++ if [ -d "$pv_plugin_dir" ] ++ then ++ export PV_PLUGIN_PATH="$pv_plugin_dir" ++ fi ++fi ++ ++ ++#------------------------------------------------------------------------------ ++ ++unset ParaView_VERSION ++ ++unset archDir libDir ++unset pv_api pv_plugin_dir pvLibDir ++ ++#------------------------------------------------------------------------------ diff --git a/Golden_Repo/o/OpenFOAM/OpenFOAM-v2112-foss-2022a.eb b/Golden_Repo/o/OpenFOAM/OpenFOAM-v2112-foss-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..7fadff24f870886fba2d5631d237e2bac733b706 --- /dev/null +++ b/Golden_Repo/o/OpenFOAM/OpenFOAM-v2112-foss-2022a.eb @@ -0,0 +1,41 @@ +name = 'OpenFOAM' +version = 'v2112' + +homepage = 'https://www.openfoam.com/' +description = """OpenFOAM is a free, open source CFD software package. + OpenFOAM has an extensive range of features to solve anything from complex fluid flows + involving chemical reactions, turbulence and heat transfer, + to solid dynamics and electromagnetics.""" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'opt': True, 'cstd': 'c++17'} + +source_urls = ['https://sourceforge.net/projects/openfoam/files/%(version)s/'] +sources = [SOURCE_TGZ] +patches = [ + ('OpenFOAM-v2012-cleanup.patch', 1), + 'OpenFOAM-v1906-wmake-ompi.patch', +] +checksums = [ + '3e838731e79db1c288acc27aad8cc8a43d9dac1f24e5773e3b9fa91419a8c3f7', # OpenFOAM-v2112.tgz + 'cdd2597a1ac1448e9bd33a364a8dfe17f51cc9ab5a8e0ab67cf92bba3ed9da43', # OpenFOAM-v2012-cleanup.patch + '518e27683c5c41400cfbc17b31effa50b31b25916dccbf85b18b0b955f642505', # OpenFOAM-v1906-wmake-ompi.patch +] + +builddependencies = [ + ('Bison', '3.8.2'), + ('CMake', '3.23.1'), + ('flex', '2.6.4'), +] + +dependencies = [ + ('libreadline', '8.1.2'), + ('ncurses', '6.3'), + # OpenFOAM requires 64 bit METIS using 32 bit indexes (array indexes) + ('METIS', '5.1.0', '-RTW64-IDX32'), # , ('GCCcore', '11.3.0')), + ('SCOTCH', '7.0.1'), + ('CGAL', '5.5.1'), + ('gnuplot', '5.4.4'), +] + +moduleclass = 'cae' diff --git a/Golden_Repo/o/OpenImageDenoise/OpenImageDenoise-1.4.3-gcccoremkl-11.3.0-2022.1.0.eb b/Golden_Repo/o/OpenImageDenoise/OpenImageDenoise-1.4.3-gcccoremkl-11.3.0-2022.1.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..e4a61dc3b4366d128441638ba094ac94e4ad2388 --- /dev/null +++ b/Golden_Repo/o/OpenImageDenoise/OpenImageDenoise-1.4.3-gcccoremkl-11.3.0-2022.1.0.eb @@ -0,0 +1,39 @@ +easyblock = 'CMakeMake' + +name = 'OpenImageDenoise' +version = '1.4.3' + +homepage = 'https://www.openimagedenoise.org/' +description = """ +Intel Open Image Denoise is an open source library of high-performance, +high-quality denoising filters for images rendered with ray tracing. +""" + +toolchain = {'name': 'gcccoremkl', 'version': '11.3.0-2022.1.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/OpenImageDenoise/oidn/releases/download/v%(version)s/'] +sources = ['oidn-%(version)s.src.tar.gz'] +checksums = ['3276e252297ebad67a999298d8f0c30cfb221e166b166ae5c955d88b94ad062a'] + +builddependencies = [ + ('ispc', '1.18.1', '', SYSTEM), + ('CMake', '3.23.1'), + ('Python', '3.10.4'), +] + +dependencies = [ + ('tbb', '2021.5.0'), +] + +separate_build_dir = True +start_dir = 'oidn-%(version)s' + +configopts = '-DOIDN_APPS:BOOL=OFF ' + +sanity_check_paths = { + 'dirs': ['include/OpenImageDenoise'], + 'files': ['lib/libOpenImageDenoise.so'], +} + +moduleclass = 'vis' diff --git a/Golden_Repo/o/OptiX/OptiX-6.5.0.eb b/Golden_Repo/o/OptiX/OptiX-6.5.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..6232d58d8cf24e397ff21ada5b873c4d69284119 --- /dev/null +++ b/Golden_Repo/o/OptiX/OptiX-6.5.0.eb @@ -0,0 +1,33 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Authors:: Stephane Thiell <sthiell@stanford.edu> +## +easyblock = 'Binary' + +name = 'OptiX' +version = '6.5.0' + +homepage = 'https://developer.nvidia.com/optix' +description = """OptiX is NVIDIA SDK for easy ray tracing performance. + It provides a simple framework for accessing the GPU’s massive ray tracing + power using state-of-the-art GPU algorithms.""" + +toolchain = SYSTEM + +# Registration required. Download links: +# https://developer.nvidia.com/designworks/optix/download +# https://developer.nvidia.com/designworks/optix/downloads/legacy +sources = ['NVIDIA-OptiX-SDK-%(version)s-linux64.sh'] +checksums = ['eca09e617a267e18403ecccc715c5bc3a88729b81589a828fcb696435100a62e'] + +install_cmd = "./" + sources[0] + " --skip-license --prefix=%(installdir)s" + +sanity_check_paths = { + 'files': ["include/optix.h", "include/optix_cuda.h", "lib64/liboptix.%s" % SHLIB_EXT, + "lib64/liboptixu.%s" % SHLIB_EXT], + 'dirs': [] +} + +modextravars = {'OPTIX_HOME': '%(installdir)s'} + +moduleclass = 'vis' diff --git a/Golden_Repo/o/OptiX/OptiX-7.5.0.eb b/Golden_Repo/o/OptiX/OptiX-7.5.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..70c877ef23023860365400587a7c3d3e357742a3 --- /dev/null +++ b/Golden_Repo/o/OptiX/OptiX-7.5.0.eb @@ -0,0 +1,31 @@ +## +# Author: Robert Mijakovic <robert.mijakovic@lxp.lu> +## +easyblock = 'Binary' + +name = 'OptiX' +version = '7.5.0' + +homepage = 'https://developer.nvidia.com/optix' +description = """OptiX is NVIDIA SDK for easy ray tracing performance. + It provides a simple framework for accessing the GPU’s massive ray tracing + power using state-of-the-art GPU algorithms.""" + +toolchain = SYSTEM + +# Registration required. Download links: +# https://developer.nvidia.com/designworks/optix/download +# https://developer.nvidia.com/designworks/optix/downloads/legacy +sources = ['NVIDIA-OptiX-SDK-%(version)s-linux64-x86_64.sh'] +checksums = ['ec8f80350870275e6536a4150a65976d7b391f605ef2c09616486569aa60b670'] + +install_cmd = "./" + sources[0] + " --skip-license --prefix=%(installdir)s" + +sanity_check_paths = { + 'files': ["include/optix.h", "include/optix_device.h"], + 'dirs': [] +} + +modextravars = {'OPTIX_HOME': '%(installdir)s'} + +moduleclass = 'vis' diff --git a/Golden_Repo/o/openvkl/openvkl-1.3.1-GCC-11.3.0.eb b/Golden_Repo/o/openvkl/openvkl-1.3.1-GCC-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..7c11c301e433e143bdb7a2859251a737a9a33732 --- /dev/null +++ b/Golden_Repo/o/openvkl/openvkl-1.3.1-GCC-11.3.0.eb @@ -0,0 +1,43 @@ +easyblock = 'CMakeMake' + +name = 'openvkl' +version = '1.3.1' + +homepage = 'http://www.openvkl.org/' +description = """ +Intel® Open Volume Kernel Library (Intel® Open VKL) is a collection +of high-performance volume computation kernels, developed at Intel. +""" + +toolchain = {'name': 'GCC', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/openvkl/openvkl/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['c9cefb6c313f2b4c0331e9629931759a6bc204ec00deed6ec0becad1670a1933'] + +builddependencies = [ + ('ispc', '1.18.1', '', SYSTEM), + ('CMake', '3.23.1'), +] + +dependencies = [ + ('tbb', '2021.5.0'), + ('Embree', '3.13.5'), + ('rkcommon', '1.10.0'), +] + +separate_build_dir = True + +start_dir = '%(name)s-%(version)s' + +configopts = '-DBUILD_BENCHMARKS:BOOL=OFF ' +configopts += '-DBUILD_EXAMPLES:BOOL=OFF ' +configopts += '-DBUILD_TESTING:BOOL=OFF ' + +sanity_check_paths = { + 'dirs': ['include/openvkl'], + 'files': ['lib/libopenvkl.so'], +} + +moduleclass = 'vis' diff --git a/Golden_Repo/p/POV-Ray/POV-Ray-3.7.0.10-GCCcore-11.3.0.eb b/Golden_Repo/p/POV-Ray/POV-Ray-3.7.0.10-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..6f3668657b4990101c4654b4e018c2e4ff90d3b4 --- /dev/null +++ b/Golden_Repo/p/POV-Ray/POV-Ray-3.7.0.10-GCCcore-11.3.0.eb @@ -0,0 +1,64 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu, NTUA +# Authors:: Fotis Georgatos <fotis@cern.ch> +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/ +## + +easyblock = 'ConfigureMake' + +name = 'POV-Ray' +version = '3.7.0.10' + +homepage = 'https://www.povray.org/' +description = """The Persistence of Vision Raytracer, or POV-Ray, is a ray tracing program + which generates images from a text-based scene description, and is available for a variety + of computer platforms. POV-Ray is a high-quality, Free Software tool for creating stunning + three-dimensional graphics. The source code is available for those wanting to do their own ports.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/POV-Ray/povray/archive/'] +sources = ['v%(version)s.tar.gz'] +patches = ['POV-Ray-3.7.0.7_dont-touch-home.patch'] +checksums = [ + '7bee83d9296b98b7956eb94210cf30aa5c1bbeada8ef6b93bb52228bbc83abff', # v3.7.0.10.tar.gz + '45103afca808e279dcdee80194c65e2a760c76d011d351392a46e817b0b655f7', # POV-Ray-3.7.0.7_dont-touch-home.patch +] + +builddependencies = [ + ('Autotools', '20220317'), +] + +dependencies = [ + ('Boost', '1.79.0'), + ('zlib', '1.2.12'), + ('libpng', '1.6.37'), + ('libjpeg-turbo', '2.1.3'), + ('X11', '20220504'), + ('LibTIFF', '4.3.0'), + ('SDL2', '2.26.2', '', ('gcccoremkl', '11.3.0-2022.1.0')), +] + +preconfigopts = "cd unix && sed -i 's/^automake/automake --add-missing; automake/g' prebuild.sh && " +preconfigopts += " ./prebuild.sh && cd .. && " +configopts = "COMPILED_BY='EasyBuild' " +configopts += "--with-boost=$EBROOTBOOST --with-zlib=$EBROOTZLIB --with-libpng=$EBROOTLIBPNG " +configopts += "--with-libtiff=$EBROOTLIBTIFF --with-libjpeg=$EBROOTLIBJPEGMINTURBO --with-libsdl=$EBROOTSDL2 " +configopts += "CXXFLAGS='-DBOOST_BIND_GLOBAL_PLACEHOLDERS ' " +# configopts += " --with-libmkl=DIR " ## upstream needs to fix this, still in BETA + +runtest = 'check' + +sanity_check_paths = { + 'files': ['bin/povray'], + 'dirs': ['etc/povray/%(version_major_minor)s', 'share'] +} + +moduleclass = 'vis' diff --git a/Golden_Repo/p/POV-Ray/POV-Ray-3.7.0.7_dont-touch-home.patch b/Golden_Repo/p/POV-Ray/POV-Ray-3.7.0.7_dont-touch-home.patch new file mode 100644 index 0000000000000000000000000000000000000000..097174a9e0a4a91a3c5e7bd64c3da5c536b6da60 --- /dev/null +++ b/Golden_Repo/p/POV-Ray/POV-Ray-3.7.0.7_dont-touch-home.patch @@ -0,0 +1,25 @@ +# Do not let povray do anything in the user home directory +# wpoely86@gmail.com +diff -ur povray-3.7.0.7.orig/unix/prebuild.sh povray-3.7.0.7/unix/prebuild.sh +--- povray-3.7.0.7.orig/unix/prebuild.sh 2018-01-05 10:06:48.000000000 +0100 ++++ povray-3.7.0.7/unix/prebuild.sh 2018-04-10 10:14:08.621514093 +0200 +@@ -641,19 +641,6 @@ + for f in \$\$filelist ; do \\ + \$(INSTALL_DATA) \$(top_srcdir)/doc/\$\$f \$(DESTDIR)\$(povdocdir)/\$\$f && echo "\$(DESTDIR)\$(povdocdir)/\$\$f" >> \$(povinstall); \\ + done +- @echo "Creating user directories..."; \\ +- for p in \$(povuser) \$(povconfuser) ; do \\ +- \$(mkdir_p) \$\$p && chown \$(povowner) \$\$p && chgrp \$(povgroup) \$\$p && printf "%s\\n" "\$\$p" "\`cat \$(povinstall)\`" > \$(povinstall); \\ +- done +- @echo "Copying user configuration and INI files..."; \\ +- for f in povray.conf povray.ini ; do \\ +- if test -f \$(povconfuser)/\$\$f; then \\ +- echo "Creating backup of \$(povconfuser)/\$\$f"; \\ +- mv -f \$(povconfuser)/\$\$f \$(povconfuser)/\$\$f.bak; \\ +- fi; \\ +- done; \\ +- \$(INSTALL_DATA) \$(top_srcdir)/povray.conf \$(povconfuser)/povray.conf && chown \$(povowner) \$(povconfuser)/povray.conf && chgrp \$(povgroup) \$(povconfuser)/povray.conf && echo "\$(povconfuser)/povray.conf" >> \$(povinstall); \\ +- \$(INSTALL_DATA) \$(top_builddir)/povray.ini \$(povconfuser)/povray.ini && chown \$(povowner) \$(povconfuser)/povray.ini && chgrp \$(povgroup) \$(povconfuser)/povray.ini && echo "\$(povconfuser)/povray.ini" >> \$(povinstall) + + # Remove data, config, and empty folders for 'make uninstall'. + # Use 'hook' instead of 'local' so as to properly remove *empty* folders (e.g. scripts). diff --git a/Golden_Repo/p/Pandoc/Pandoc-2.19.2.eb b/Golden_Repo/p/Pandoc/Pandoc-2.19.2.eb new file mode 100644 index 0000000000000000000000000000000000000000..018403b1a7927572cf6fa5f4b5b9c5a95220ba38 --- /dev/null +++ b/Golden_Repo/p/Pandoc/Pandoc-2.19.2.eb @@ -0,0 +1,34 @@ +# This file is an EasyBuild reciPY as per https://easybuilders.github.io/easybuild/ +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics +# Contribution from the NIHR Biomedical Research Centre +# Guy's and St Thomas' NHS Foundation Trust and King's College London +# uploaded by J. Sassmannshausen + +easyblock = 'Tarball' + +name = 'Pandoc' +version = '2.19.2' + +homepage = 'https://pandoc.org' +description = "If you need to convert files from one markup format into another, pandoc is your swiss-army knife" + +toolchain = SYSTEM + +source_urls = ['https://github.com/jgm/pandoc/releases/download/%(version)s/'] +_archs = {'x86_64': 'amd64', 'aarch64': 'arm64'} +sources = ['%%(namelower)s-%%(version)s-linux-%s.tar.gz' % _archs[ARCH]] +checksums = [{ + 'pandoc-2.19.2-linux-amd64.tar.gz': '9d55c7afb6a244e8a615451ed9cb02e6a6f187ad4d169c6d5a123fa74adb4830', + 'pandoc-2.19.2-linux-arm64.tar.gz': '43f364915b9da64905fc3f6009f5542f224e54fb24f71043ef5154540f1a3983', +}] + +sanity_check_paths = { + 'files': ['bin/pandoc'], + 'dirs': ['share'], +} + +sanity_check_commands = ['pandoc --help'] + +moduleclass = 'tools' diff --git a/Golden_Repo/p/ParMETIS/ParMETIS-4.0.3-ipsmpi-2022a.eb b/Golden_Repo/p/ParMETIS/ParMETIS-4.0.3-ipsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..fbfc8406b171d843a4a6a123ec7033005e2e7df2 --- /dev/null +++ b/Golden_Repo/p/ParMETIS/ParMETIS-4.0.3-ipsmpi-2022a.eb @@ -0,0 +1,39 @@ +name = 'ParMETIS' +version = '4.0.3' + +homepage = 'http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview' +description = """ParMETIS is an MPI-based parallel library +that implements a variety of algorithms for partitioning unstructured graphs, +meshes, and for computing fill-reducing orderings of sparse matrices. +ParMETIS extends the functionality provided by METIS +and includes routines that are especially suited for parallel AMR computations +and large scale numerical simulations. +The algorithms implemented in ParMETIS are based on the parallel multilevel +k-way graph-partitioning, adaptive repartitioning, +and parallel multi-constrained partitioning schemes.""" + +toolchain = {'name': 'ipsmpi', 'version': '2022a'} +toolchainopts = {'optarch': True, 'usempi': True, 'pic': True, 'openmp': True} +source_urls = ['http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis'] +sources = [SOURCELOWER_TAR_GZ] +patches = [ + # Needed for elemental + 'parmetis_computevertexseparator.patch' +] + +checksums = [ + 'f2d9a231b7cf97f1fee6e8c9663113ebf6c240d407d3c118c55b3633d6be6e5f', # parmetis-4.0.3.tar.gz + 'b82f5e869b971b5e49566091a79783cc267276bcddcd939abf2240f415287fa7', # parmetis_computevertexseparator.patch +] + +builddependencies = [ + ('CMake', '3.23.1') +] + +modextravars = { + 'PARMETIS_ROOT': '%(installdir)s', + 'PARMETIS_LIB': '%(installdir)s/lib', + 'PARMETIS_INCLUDE': '%(installdir)s/include' +} + +moduleclass = 'math' diff --git a/Golden_Repo/p/ParaView/ParaView-5.11.0-foss-2022a-EGL.eb b/Golden_Repo/p/ParaView/ParaView-5.11.0-foss-2022a-EGL.eb new file mode 100644 index 0000000000000000000000000000000000000000..0a299917aeb66a8cd7dcda34a6947015ed6d55d1 --- /dev/null +++ b/Golden_Repo/p/ParaView/ParaView-5.11.0-foss-2022a-EGL.eb @@ -0,0 +1,351 @@ +easyblock = 'CMakeMake' + +name = 'ParaView' +version = '5.11.0' +versionsuffix = '-EGL' + +homepage = "http://www.paraview.org" +description = "Paraview is a scientific parallel visualizer." + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'pic': True, 'usempi': True} + +local_dwnlsfx_src = 'download.php?submit=Download&version=v%(version_major_minor)s&type=source&os=Sources&downloadFile=' +source_urls = [('http://www.paraview.org/paraview-downloads/%s' % + local_dwnlsfx_src)] +sources = [("ParaView-v%(version)s.tar.gz")] + +patches = [ + 'cdireader_update_issue5715.patch', + 'parflowreader_fix-nlohmann_merge6050.patch', +] + +checksums = [ + '68b1c6d15dd67ec442f964460c56212417e8af2a96763001f8548eb3cbc5ce87', + '064d6878409d9133ad56ce363503a000f7b4617d0c912fd81dd772994f6b5ac2', # cdireader patch + 'eb8b6967782bb47e81df129b0d8e192bbf31f11f815d0f53d1c5b4e53da95fd6', # parflowreader patch +] + +builddependencies = [ + ('CMake', '3.23.1'), + ('git', '2.36.0', '-nodocs'), + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('Boost', '1.79.0'), + ('X11', '20220504'), + ('bzip2', '1.0.8'), + ('HDF5', '1.12.2'), + ('ADIOS2', '2.8.3'), + ('FFmpeg', '4.4.2'), + ('Embree', '3.13.5'), + ('OSPRay', '2.10.0'), + ('libpng', '1.6.37'), + ('expat', '2.4.8'), + ('freetype', '2.12.1'), + ('libjpeg-turbo', '2.1.3'), + ('libxml2', '2.9.13'), + ('LibTIFF', '4.3.0'), + ('zlib', '1.2.12'), + ('netCDF', '4.9.0'), + ('netCDF-C++4', '4.3.1'), + ('netCDF-Fortran', '4.6.0'), + ('nlohmann_json', '3.10.5'), # for ParFlow plugin + ('libcdi', '2.1.1', '', ('gcccoremkl', '11.3.0-2022.1.0')), # for CDI plugin + ('mpi4py', '3.1.4'), + ('double-conversion', '3.2.0'), + ('Eigen', '3.4.0'), + ('Qt5', '5.15.5'), + ('SciPy-Stack', '2022a', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('OpenGL', '2022a'), + ('Catalyst', '2.0.0-rc3'), + ('ParaViewData', '5.11.0'), + ('VTKData', '9.2.5'), +] + +separate_build_dir = True + +# ensure we do not use a too advanced GL-version at config/build-time, which might not be available at run-time +preconfigopts = "export __EGL_VENDOR_LIBRARY_FILENAMES=${EBROOTOPENGL}/share/glvnd/egl_vendor.d/50_mesa.json && " +prebuildopts = "export __EGL_VENDOR_LIBRARY_FILENAMES=${EBROOTOPENGL}/share/glvnd/egl_vendor.d/50_mesa.json && " + +######################################################################################## +# check ParaView Superbuild options # +# https://gitlab.kitware.com/paraview/paraview-superbuild/tree/master # +# # +# check ParaView Spack options # +# https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/paraview/package.py +# # +# check ParaView Build documenation # +# https://gitlab.kitware.com/paraview/paraview/blob/master/Documentation/dev/build.md # +######################################################################################## + +local_buildsrc = '%(builddir)s/easybuild_obj' +local_installsrc = '%(installdir)s/debugsrc' + +# --- general settings --- # +configopts = '-DCMAKE_VERBOSE_MAKEFILE=ON ' +configopts += '-DCMAKE_CXX_FLAGS="-fdebug-prefix-map=%s=%s $CMAKE_CXX_FLAGS" ' % (local_buildsrc, local_installsrc) +configopts += '-DCMAKE_C_FLAGS="-fdebug-prefix-map=%s=%s $CMAKE_C_FLAGS" ' % (local_buildsrc, local_installsrc) +configopts += '-DCMAKE_CXX_STANDARD=11 ' +configopts += '-DPARAVIEW_BUILD_LEGACY_SILENT=ON ' + +# https://forum.openframeworks.cc/t/nvidia-drivers-pthreads-and-segfaults/2524 +# configopts += '-DCMAKE_CXX_FLAGS="-lpthread $CMAKE_CXX_FLAGS" ' +# configopts += '-DCMAKE_C_FLAGS="-lpthread $CMAKE_C_FLAGS" ' + +configopts += '-DPARAVIEW_BUILD_EDITION=CANONICAL ' +configopts += '-DPARAVIEW_BUILD_WITH_KITS=OFF ' +configopts += '-DPARAVIEW_USE_QT=OFF ' + +# --- tuning --- # +# better disable for now: https://discourse.paraview.org/t/array-dispatch-issues/10328 +# configopts += '-DVTK_BUILD_SCALED_SOA_ARRAYS=OFF ' +# configopts += '-DVTK_DISPATCH_SOA_ARRAYS=OFF ' +# configopts += '-DVTK_DISPATCH_TYPED_ARRAYS=OFF ' + +# --- web --- # +configopts += '-DPARAVIEW_ENABLE_WEB=ON ' +configopts += '-DPARAVIEW_USE_QTWEBENGINE=ON ' +configopts += '-DVTK_MODULE_ENABLE_ParaView_PVWebPython=YES ' + +# --- python --- # +configopts += '-DPARAVIEW_USE_PYTHON=ON ' +configopts += "-DPython3_EXECUTABLE=$EBROOTPYTHON/bin/python " + +configopts += '-DVTK_PYTHON_VERSION=3 ' +configopts += '-DVTK_NO_PYTHON_THREADS=OFF ' +# visibility depends on VTK_NO_PYTHON_THREADS=OFF +configopts += '-DVTK_PYTHON_FULL_THREADSAFE=OFF ' +# If you pass VTK_PYTHON_FULL_THREADSAFE to true, then each and every call to python will be protected with GIL, +# ensuring that you can have eg. other python interpreter in your application and still use python wrapping in vtk. + +# --- VTKm --- # +configopts += '-DPARAVIEW_USE_VTKM=ON ' +configopts += '-DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmCore=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmDataModel=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmFilters=YES ' +configopts += '-DVTKm_Vectorization=AVX2 ' +# configopts += '-DVTKm_ENABLE_KOKKOS=OFF ' +# configopts += '-DVTKm_ENABLE_TBB=OFF ' +# configopts += '-DVTKm_ENABLE_CUDA=ON ' +# configopts += '-DVTKm_ENABLE_LOGGING=ON ' + +# --- parallel (on-node) --- # +# https://blog.kitware.com/simple-parallel-computing-with-vtksmptools-2/ +configopts += '-DVTK_SMP_IMPLEMENTATION_TYPE=OpenMP ' +configopts += '-DVTK_MAX_THREADS=64 ' +configopts += '-DVTKm_ENABLE_OPENMP=ON ' + +# --- parallel (distributed) --- # +configopts += '-DMPIEXEC_MAX_NUMPROCS=24 ' +configopts += '-DPARAVIEW_USE_MPI=ON ' +configopts += '-DVTKm_ENABLE_MPI=ON ' + +# --- IO --- # +configopts += '-DXDMF_BUILD_MPI=ON ' +configopts += '-DPARAVIEW_ENABLE_XDMF3=ON ' +configopts += '-DPARAVIEW_ENABLE_ADIOS2=OFF ' # error: adios2.h not found +# configopts += '-DPARAVIEW_PLUGIN_ENABLE_AdiosReaderPixie=ON ' # req. ADIOS1 +# configopts += '-DPARAVIEW_PLUGIN_ENABLE_AdiosReaderStaging=ON ' # req. ADIOS1 +configopts += '-DVTKm_ENABLE_HDF5_IO=ON ' + +# --- large data --- # +configopts += '-DVTK_USE_64BIT_IDS=ON ' + +# --- rendering --- # + +# OpenGL (hardware) +# https://kitware.github.io/paraview-docs/latest/cxx/Offscreen.html +# If VTK_OPENGL_HAS_EGL or VTK_OPENGL_HAS_OSMESA is ON, the build supports headless rendering, +# otherwise VTK_USE_X must be ON and the build does not support headless, +# but can still support offscreen rendering. +# If VTK_USE_X is OFF, then either VTK_OPENGL_HAS_OSMESA or VTK_OPENGL_HAS_EGL must be ON. +# Then the build does not support onscreen rendering, but only headless rendering. +# If PARAVIEW_BUILD_QT_GUI is ON and VTK_USE_X is ON, while ParaView command line tools won't link against +# or use X calls, Qt will and hence an accessible X server is still needed to run the desktop client. +# If VTK_OPENGL_HAS_OSMESA is ON, and VTK_USE_X is ON, +# then all the OpenGL and OSMesa variables should point to the Mesa libraries. +# Likewise, if VTK_OPENGL_HAS_EGL is ON and VTK_USE_X is ON, then all the OpenGL and EGL variables +# should point to the system libraries providing both, typically the NVidia libraries. + +configopts += '-DOpenGL_GL_PREFERENCE=GLVND ' +configopts += '-DVTK_REPORT_OPENGL_ERRORS_IN_RELEASE_BUILDS=OFF ' + +configopts += "-DOPENGL_INCLUDE_DIR=${EBROOTOPENGL}/include " +configopts += "-DOPENGL_GLX_INCLUDE_DIR=${EBROOTOPENGL}/include " +configopts += "-DOPENGL_EGL_INCLUDE_DIR=${EBROOTOPENGL}/include " +# configopts += "-DOPENGL_xmesa_INCLUDE_DIR=IGNORE " + +configopts += "-DOPENGL_opengl_LIBRARY=${EBROOTOPENGL}/lib/libOpenGL.so.0 " +configopts += "-DOPENGL_gl_LIBRARY=${EBROOTOPENGL}/lib/libGL.so " +configopts += "-DOPENGL_glx_LIBRARY=${EBROOTOPENGL}/lib/libGLX.so.0 " +configopts += "-DOPENGL_glu_LIBRARY=${EBROOTOPENGL}/lib/libGLU.so " +configopts += "-DOPENGL_egl_LIBRARY=${EBROOTOPENGL}/lib/libEGL.so.1 " + +# OpenGL over X +# configopts += '-DVTK_USE_X=ON ' # OFF:headless rendering +# already considered by Qt (https://gitlab.kitware.com/lorensen/vtk/commit/b29f6db3f746d84f830c81e4212e48db192e4dbb) +# configopts += '-DVTK_DEFAULT_RENDER_WINDOW_OFFSCREEN=OFF ' +# configopts += '-DVTK_OPENGL_HAS_OSMESA=OFF ' # http://www.paraview.org/Wiki/ParaView_And_Mesa_3D + +# EGL (off-screen rendering with OpenGL, but without the need for X) +# call pvserver with –egl-device-index=0 or 1 and –disable-xdisplay-test +configopts += '-DVTK_OPENGL_HAS_EGL=ON ' +# http://www.paraview.org/Wiki/ParaView_And_Mesa_3D +configopts += '-DVTK_OPENGL_HAS_OSMESA=OFF ' +configopts += '-DVTK_USE_X=OFF ' +configopts += '-DVTK_DEFAULT_EGL_DEVICE_INDEX=0 ' +# configopts += '-DEGL_INCLUDE_DIR=${EBROOTOPENGL}/include/EGL/ ' # https://www.khronos.org/registry/EGL/ +# configopts += '-DEGL_LIBRARY=${EBROOTOPENGL}/lib/libEGL.so.1 ' +# configopts += '-DEGL_opengl_LIBRARY=${EBROOTOPENGL}/lib/libOpenGL.so.0 ' +# configopts += '-DEGL_gldispatch_LIBRARY=${EBROOTOPENGL}/lib/libGLdispatch.so.0 ' # <path_to_libGLdispatch.so.0> + +# OSMesa (software) +# With OSMesa the DISPLAY variable has no meaning and is not needed +# When ON, implies that ParaView can use OSMesa to support headless modes of operation. +# configopts += '-DVTK_OPENGL_HAS_OSMESA=ON ' # http://www.paraview.org/Wiki/ParaView_And_Mesa_3D +# configopts += '-DVTK_USE_X=OFF ' +# configopts += '-DVTK_DEFAULT_RENDER_WINDOW_OFFSCREEN=ON ' +# configopts += '-DOSMESA_INCLUDE_DIR=${EBROOTOPENGL}/include ' +# configopts += '-DOSMESA_LIBRARY=${EBROOTOPENGL}/lib/libOSMesa.so ' + +# Raytracing +configopts += '-DPARAVIEW_ENABLE_RAYTRACING=ON ' +configopts += '-DVTK_ENABLE_OSPRAY=ON ' +configopts += '-DVTK_ENABLE_VISRTX=OFF ' + +configopts += "-Dospray_DIR=${EBROOTOSPRAY} " +configopts += "-Dembree_DIR=${EBROOTEMBREE}/lib64/cmake/embree-3.13.5 " +configopts += '-DVTKOSPRAY_ENABLE_DENOISER=ON ' + +# configopts += '-DPARAVIEW_PLUGIN_ENABLE_pvNVIDIAIndeX=YES ' + +# --- extra features --- # +configopts += '-DPARAVIEW_PLUGIN_ENABLE_GeographicalMap=ON ' + +configopts += "-DFFMPEG_ROOT=$EBROOTFFMPEG " +configopts += '-DPARAVIEW_ENABLE_FFMPEG=ON ' +configopts += '-DVTK_MODULE_ENABLE_VTK_IOFFMPEG=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_IOVideo=YES ' + +configopts += '-DVTK_MODULE_ENABLE_VTK_DICOMParser=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersReebGraph=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersSMP=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersSelection=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersTopology=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersTexture=YES ' +# configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersStatisticsGnu=YES ' +# configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersMatlab=YES ' + +# --- coupling --- # +configopts += '-DPARAVIEW_ENABLE_CATALYST=ON ' +configopts += '-DVTK_MODULE_ENABLE_ParaView_InSitu=YES ' +# configopts += '-DVTK_MODULE_USE_EXTERNAL_ParaView_vtkcatalyst=ON ' +configopts += '-Dcatalyst_DIR=${EBROOTCATALYST}/lib64/cmake/catalyst-2.0/ ' + +# --- development & testing --- # +configopts += '-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON ' +configopts += '-DPARAVIEW_BUILD_DEVELOPER_DOCUMENTATION=OFF ' +configopts += '-DPARAVIEW_ENABLE_EXAMPLES=OFF ' +configopts += '-DPARAVIEW_BUILD_TESTING=OFF ' +configopts += '-DPARAVIEW_BUILD_VTK_TESTING=OFF ' + +# --- external data --- # +# https://cmake.org/cmake/help/latest/module/ExternalData.html +# https://gitlab.kitware.com/vtk/vtk/blob/master/Documentation/dev/git/data.md +# configopts += '-DCTEST_TEST_TIMEOUT=10800 ' # unknown setting +# download inactivity, 0 = no timeout +configopts += '-DExternalData_TIMEOUT_INACTIVITY=10 ' +# download abs. time, 0 = no timeout +configopts += '-DExternalData_TIMEOUT_ABSOLUTE=60 ' +# Exclude test data download from default 'all' target. +configopts += '-DPARAVIEW_DATA_EXCLUDE_FROM_ALL=ON ' +# Local directory holding ExternalData objects in the layout %(algo)/%(hash). +configopts += '-DPARAVIEW_DATA_STORE=${EBROOTPARAVIEWDATA}/.ExternalData ' +configopts += '-DVTK_DATA_STORE=${EBROOTVTKDATA}/.ExternalData ' +# Local directory holding the real data files of ExternalData. +configopts += '-DExternalData_BINARY_ROOT=${EBROOTPARAVIEWDATA} ' +# we need to combine VTK and ParaView's External data files as there can only be one ExternalData_BINARY_ROOT + +# --- XDMF options --- # +configopts += '-DXDMF_USE_BZIP2=ON ' +configopts += '-DXDMF_USE_GZIP=ON ' + +# --- VTK external libraries --- # +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_expat=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_freetype=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_hdf5=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_jpeg=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_libxml2=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_mpi4py=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_netcdf=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_png=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_tiff=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_zlib=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_doubleconversion=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_eigen=ON ' + +# --- ParaView Extra-Reader --- # +configopts += '-DPARAVIEW_PLUGIN_ENABLE_CDIReader=ON ' +configopts += '-DPARAVIEW_PLUGIN_ENABLE_ParFlow=ON ' +configopts += '-DPARAVIEW_ENABLE_MOTIONFX=ON ' +# configopts += '-DPARAVIEW_ENABLE_FIDES=ON ' # req. ADIOS2 as dependency +# configopts += '-DPARAVIEW_ENABLE_GDAL=ON ' # req. GDAL as dependency +# configopts += '-DPARAVIEW_ENABLE_LAS=ON ' # req. LAS as dependency +# configopts += '-DPARAVIEW_ENABLE_PDAL=ON ' # req. PDAL as dependency +# configopts += '-DPARAVIEW_ENABLE_OPENVDB=ON ' # req. OpenVDB as dependency + +# https://gitlab.kitware.com/paraview/visitbridge/-/blob/master/databases/CMakeLists.txt +configopts += '-DPARAVIEW_ENABLE_VISITBRIDGE=ON ' +configopts += '-DVTK_MODULE_ENABLE_ParaView_IOVisItBridge=YES ' +# configopts += '-DVISIT_BUILD_READER_Boxlib3D=ON ' # req. external dependency +# configopts += '-DVISIT_BUILD_READER_Mili=ON ' # req. external dependency +# configopts += '-DVISIT_BUILD_READER_Silo=ON ' # req. external dependency +# https://gitlab.kitware.com/vtk/vtk/-/merge_requests/7503 +# configopts += '-DVISIT_BUILD_READER_Nek5000=ON ' # MR still open + +postinstallcmds = [ + 'python -m compileall %(installdir)s/lib64/python%(pyshortver)s/site-packages/', + # 'cp -a %s %s' % (local_buildsrc, local_installsrc), # copy source from build dir to install dir + # '', # move debug info to separate files: + # http://stackoverflow.com/questions/866721/how-to-generate-gcc-debug-symbol-outside-the-build-target + # '', # debugedit -i --base-dir=%(builddir)s/ParaView-v%(version)s --dest-dir= %(installdir)s/src <file.debug> + # # change path to source in debug info +] + +modextravars = { + 'PARAVIEW_VTK_DIR': '%(installdir)s/lib64/cmake/paraview-%(version_major_minor)/vtk', + # 'CUDA_VISIBLE_DEVICES': '0,1', + # OpenSWR fully supports OpenGL 3.0 and most of 3.3, but ParaView requires 3.3 -> clame to fully support 3.3 + 'MESA_GL_VERSION_OVERRIDE': '3.3', + 'MESA_GLSL_VERSION_OVERRIDE': '330', + # OpenMP will choose an optimum number of threads by default, which is usually the number of cores + # 'OMP_NUM_THREADS': '28', # fix number of threads used by paraview filters and parallel sections in the code + # threads used by ospray - details https://github.com/ospray/ospray/blob/release-2.0.x/ospray/api/Device.cpp#L88 + # unset => OSPRAY uses all hardware threads + # 'OSPRAY_THREADS': '14', # OSPRay < 2.0 + # 'OSPRAY_NUM_THREADS': '14', # OSPRay >= 2.0 + # When TBB is used for OSPRAY: tbb::task_scheduler_init::default_num_threads() is default if no OSPRAY_NUM_THREADS + # https://github.com/ospray/ospcommon/blob/master/ospcommon/tasking/detail/tasking_system_init.cpp#L47 + # https://www.threadingbuildingblocks.org/docs/doxygen/a00150.html + # more ospray definitions: https://www.ospray.org/documentation.html#environment-variables + # max. threads used by OpenSWR (limited by number of hardware threads) + 'KNOB_MAX_WORKER_THREADS': '65535', + # details in https://gitlab.version.fz-juelich.de/vis/vis-software/issues/14 + # more knob defs: https://github.com/mesa3d/mesa/blob/master/src/gallium/docs/source/drivers/openswr/knobs.rst + 'CATALYST_IMPLEMENTATION_NAME': 'paraview', + 'CATALYST_IMPLEMENTATION_PATHS': '%(installdir)s/lib64/catalyst', + # details in https://catalyst-in-situ.readthedocs.io/en/latest/for_simulation_developers.html#catalyst-initialize +} + +modextrapaths = { + 'PYTHONPATH': [ + 'lib64/python%(pyshortver)s/site-packages', + 'lib64/python%(pyshortver)s/site-packages/vtkmodules' # required by Trilinos Catalyst adapter + ], +} + +moduleclass = 'vis' diff --git a/Golden_Repo/p/ParaView/ParaView-5.11.0-foss-2022a.eb b/Golden_Repo/p/ParaView/ParaView-5.11.0-foss-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..31ed6285da39e037542993f9a152cc2b3abcabdd --- /dev/null +++ b/Golden_Repo/p/ParaView/ParaView-5.11.0-foss-2022a.eb @@ -0,0 +1,350 @@ +easyblock = 'CMakeMake' + +name = 'ParaView' +version = '5.11.0' + +homepage = "http://www.paraview.org" +description = "Paraview is a scientific parallel visualizer." + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'pic': True, 'usempi': True} + +local_dwnlsfx_src = 'download.php?submit=Download&version=v%(version_major_minor)s&type=source&os=Sources&downloadFile=' +source_urls = [('http://www.paraview.org/paraview-downloads/%s' % + local_dwnlsfx_src)] +sources = [("ParaView-v%(version)s.tar.gz")] + +patches = [ + 'cdireader_update_issue5715.patch', + 'parflowreader_fix-nlohmann_merge6050.patch', +] + +checksums = [ + '68b1c6d15dd67ec442f964460c56212417e8af2a96763001f8548eb3cbc5ce87', + '064d6878409d9133ad56ce363503a000f7b4617d0c912fd81dd772994f6b5ac2', # cdireader patch + 'eb8b6967782bb47e81df129b0d8e192bbf31f11f815d0f53d1c5b4e53da95fd6', # parflowreader patch +] + +builddependencies = [ + ('CMake', '3.23.1'), + ('git', '2.36.0', '-nodocs'), + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('Boost', '1.79.0'), + ('X11', '20220504'), + ('bzip2', '1.0.8'), + ('HDF5', '1.12.2'), + ('ADIOS2', '2.8.3'), + ('FFmpeg', '4.4.2'), + ('Embree', '3.13.5'), + ('OSPRay', '2.10.0'), + ('libpng', '1.6.37'), + ('expat', '2.4.8'), + ('freetype', '2.12.1'), + ('libjpeg-turbo', '2.1.3'), + ('libxml2', '2.9.13'), + ('LibTIFF', '4.3.0'), + ('zlib', '1.2.12'), + ('netCDF', '4.9.0'), + ('netCDF-C++4', '4.3.1'), + ('netCDF-Fortran', '4.6.0'), + ('nlohmann_json', '3.10.5'), # for ParFlow plugin + ('libcdi', '2.1.1', '', ('gcccoremkl', '11.3.0-2022.1.0')), # for CDI plugin + ('mpi4py', '3.1.4'), + ('double-conversion', '3.2.0'), + ('Eigen', '3.4.0'), + ('Qt5', '5.15.5'), + ('SciPy-Stack', '2022a', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('OpenGL', '2022a'), + ('Catalyst', '2.0.0-rc3'), + ('ParaViewData', '5.11.0'), + ('VTKData', '9.2.5'), +] + +separate_build_dir = True + +# ensure we do not use a too advanced GL-version at config/build-time, which might not be available at run-time +preconfigopts = "export __EGL_VENDOR_LIBRARY_FILENAMES=${EBROOTOPENGL}/share/glvnd/egl_vendor.d/50_mesa.json && " +prebuildopts = "export __EGL_VENDOR_LIBRARY_FILENAMES=${EBROOTOPENGL}/share/glvnd/egl_vendor.d/50_mesa.json && " + +######################################################################################## +# check ParaView Superbuild options # +# https://gitlab.kitware.com/paraview/paraview-superbuild/tree/master # +# # +# check ParaView Spack options # +# https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/paraview/package.py +# # +# check ParaView Build documenation # +# https://gitlab.kitware.com/paraview/paraview/blob/master/Documentation/dev/build.md # +######################################################################################## + +local_buildsrc = '%(builddir)s/easybuild_obj' +local_installsrc = '%(installdir)s/debugsrc' + +# --- general settings --- # +configopts = '-DCMAKE_VERBOSE_MAKEFILE=ON ' +configopts += '-DCMAKE_CXX_FLAGS="-fdebug-prefix-map=%s=%s $CMAKE_CXX_FLAGS" ' % (local_buildsrc, local_installsrc) +configopts += '-DCMAKE_C_FLAGS="-fdebug-prefix-map=%s=%s $CMAKE_C_FLAGS" ' % (local_buildsrc, local_installsrc) +configopts += '-DCMAKE_CXX_STANDARD=11 ' +configopts += '-DPARAVIEW_BUILD_LEGACY_SILENT=ON ' + +# https://forum.openframeworks.cc/t/nvidia-drivers-pthreads-and-segfaults/2524 +# configopts += '-DCMAKE_CXX_FLAGS="-lpthread $CMAKE_CXX_FLAGS" ' +# configopts += '-DCMAKE_C_FLAGS="-lpthread $CMAKE_C_FLAGS" ' + +configopts += '-DPARAVIEW_BUILD_EDITION=CANONICAL ' +configopts += '-DPARAVIEW_BUILD_WITH_KITS=OFF ' +configopts += '-DPARAVIEW_USE_QT=ON ' + +# --- tuning --- # +# better disable for now: https://discourse.paraview.org/t/array-dispatch-issues/10328 +# configopts += '-DVTK_BUILD_SCALED_SOA_ARRAYS=OFF ' +# configopts += '-DVTK_DISPATCH_SOA_ARRAYS=OFF ' +# configopts += '-DVTK_DISPATCH_TYPED_ARRAYS=OFF ' + +# --- web --- # +configopts += '-DPARAVIEW_ENABLE_WEB=ON ' +configopts += '-DPARAVIEW_USE_QTWEBENGINE=ON ' +configopts += '-DVTK_MODULE_ENABLE_ParaView_PVWebPython=YES ' + +# --- python --- # +configopts += '-DPARAVIEW_USE_PYTHON=ON ' +configopts += "-DPython3_EXECUTABLE=$EBROOTPYTHON/bin/python " + +configopts += '-DVTK_PYTHON_VERSION=3 ' +configopts += '-DVTK_NO_PYTHON_THREADS=OFF ' +# visibility depends on VTK_NO_PYTHON_THREADS=OFF +configopts += '-DVTK_PYTHON_FULL_THREADSAFE=OFF ' +# If you pass VTK_PYTHON_FULL_THREADSAFE to true, then each and every call to python will be protected with GIL, +# ensuring that you can have eg. other python interpreter in your application and still use python wrapping in vtk. + +# --- VTKm --- # +configopts += '-DPARAVIEW_USE_VTKM=ON ' +configopts += '-DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmCore=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmDataModel=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmFilters=YES ' +configopts += '-DVTKm_Vectorization=AVX2 ' +# configopts += '-DVTKm_ENABLE_KOKKOS=OFF ' +# configopts += '-DVTKm_ENABLE_TBB=OFF ' +# configopts += '-DVTKm_ENABLE_CUDA=ON ' +# configopts += '-DVTKm_ENABLE_LOGGING=ON ' + +# --- parallel (on-node) --- # +# https://blog.kitware.com/simple-parallel-computing-with-vtksmptools-2/ +configopts += '-DVTK_SMP_IMPLEMENTATION_TYPE=OpenMP ' +configopts += '-DVTK_MAX_THREADS=64 ' +configopts += '-DVTKm_ENABLE_OPENMP=ON ' + +# --- parallel (distributed) --- # +configopts += '-DMPIEXEC_MAX_NUMPROCS=24 ' +configopts += '-DPARAVIEW_USE_MPI=ON ' +configopts += '-DVTKm_ENABLE_MPI=ON ' + +# --- IO --- # +configopts += '-DXDMF_BUILD_MPI=ON ' +configopts += '-DPARAVIEW_ENABLE_XDMF3=ON ' +configopts += '-DPARAVIEW_ENABLE_ADIOS2=OFF ' # error: adios2.h not found +# configopts += '-DPARAVIEW_PLUGIN_ENABLE_AdiosReaderPixie=ON ' # req. ADIOS1 +# configopts += '-DPARAVIEW_PLUGIN_ENABLE_AdiosReaderStaging=ON ' # req. ADIOS1 +configopts += '-DVTKm_ENABLE_HDF5_IO=ON ' + +# --- large data --- # +configopts += '-DVTK_USE_64BIT_IDS=ON ' + +# --- rendering --- # + +# OpenGL (hardware) +# https://kitware.github.io/paraview-docs/latest/cxx/Offscreen.html +# If VTK_OPENGL_HAS_EGL or VTK_OPENGL_HAS_OSMESA is ON, the build supports headless rendering, +# otherwise VTK_USE_X must be ON and the build does not support headless, +# but can still support offscreen rendering. +# If VTK_USE_X is OFF, then either VTK_OPENGL_HAS_OSMESA or VTK_OPENGL_HAS_EGL must be ON. +# Then the build does not support onscreen rendering, but only headless rendering. +# If PARAVIEW_BUILD_QT_GUI is ON and VTK_USE_X is ON, while ParaView command line tools won't link against +# or use X calls, Qt will and hence an accessible X server is still needed to run the desktop client. +# If VTK_OPENGL_HAS_OSMESA is ON, and VTK_USE_X is ON, +# then all the OpenGL and OSMesa variables should point to the Mesa libraries. +# Likewise, if VTK_OPENGL_HAS_EGL is ON and VTK_USE_X is ON, then all the OpenGL and EGL variables +# should point to the system libraries providing both, typically the NVidia libraries. + +configopts += '-DOpenGL_GL_PREFERENCE=GLVND ' +configopts += '-DVTK_REPORT_OPENGL_ERRORS_IN_RELEASE_BUILDS=OFF ' + +configopts += "-DOPENGL_INCLUDE_DIR=${EBROOTOPENGL}/include " +configopts += "-DOPENGL_GLX_INCLUDE_DIR=${EBROOTOPENGL}/include " +configopts += "-DOPENGL_EGL_INCLUDE_DIR=${EBROOTOPENGL}/include " +# configopts += "-DOPENGL_xmesa_INCLUDE_DIR=IGNORE " + +configopts += "-DOPENGL_opengl_LIBRARY=${EBROOTOPENGL}/lib/libOpenGL.so.0 " +configopts += "-DOPENGL_gl_LIBRARY=${EBROOTOPENGL}/lib/libGL.so " +configopts += "-DOPENGL_glx_LIBRARY=${EBROOTOPENGL}/lib/libGLX.so.0 " +configopts += "-DOPENGL_glu_LIBRARY=${EBROOTOPENGL}/lib/libGLU.so " +configopts += "-DOPENGL_egl_LIBRARY=${EBROOTOPENGL}/lib/libEGL.so.1 " + +# OpenGL over X +configopts += '-DVTK_USE_X=ON ' # OFF:headless rendering +# already considered by Qt (https://gitlab.kitware.com/lorensen/vtk/commit/b29f6db3f746d84f830c81e4212e48db192e4dbb) +configopts += '-DVTK_DEFAULT_RENDER_WINDOW_OFFSCREEN=OFF ' +# http://www.paraview.org/Wiki/ParaView_And_Mesa_3D +configopts += '-DVTK_OPENGL_HAS_OSMESA=OFF ' + +# EGL (off-screen rendering with OpenGL, but without the need for X) +# call pvserver with –egl-device-index=0 or 1 and –disable-xdisplay-test +# configopts += '-DVTK_OPENGL_HAS_EGL=ON ' +# configopts += '-DVTK_OPENGL_HAS_OSMESA=OFF ' # http://www.paraview.org/Wiki/ParaView_And_Mesa_3D +# configopts += '-DVTK_USE_X=OFF ' +# configopts += '-DVTK_DEFAULT_EGL_DEVICE_INDEX=0 ' +# #configopts += '-DEGL_INCLUDE_DIR=${EBROOTOPENGL}/include/EGL/ ' # https://www.khronos.org/registry/EGL/ +# #configopts += '-DEGL_LIBRARY=${EBROOTOPENGL}/lib/libEGL.so.1 ' +# #configopts += '-DEGL_opengl_LIBRARY=${EBROOTOPENGL}/lib/libOpenGL.so.0 ' +# #configopts += '-DEGL_gldispatch_LIBRARY=${EBROOTOPENGL}/lib/libGLdispatch.so.0 ' # <path_to_libGLdispatch.so.0> + +# OSMesa (software) +# With OSMesa the DISPLAY variable has no meaning and is not needed +# When ON, implies that ParaView can use OSMesa to support headless modes of operation. +# configopts += '-DVTK_OPENGL_HAS_OSMESA=ON ' # http://www.paraview.org/Wiki/ParaView_And_Mesa_3D +# configopts += '-DVTK_USE_X=OFF ' +# configopts += '-DVTK_DEFAULT_RENDER_WINDOW_OFFSCREEN=ON ' +# configopts += '-DOSMESA_INCLUDE_DIR=${EBROOTOPENGL}/include ' +# configopts += '-DOSMESA_LIBRARY=${EBROOTOPENGL}/lib/libOSMesa.so ' + +# Raytracing +configopts += '-DPARAVIEW_ENABLE_RAYTRACING=ON ' +configopts += '-DVTK_ENABLE_OSPRAY=ON ' +configopts += '-DVTK_ENABLE_VISRTX=OFF ' + +configopts += "-Dospray_DIR=${EBROOTOSPRAY} " +configopts += "-Dembree_DIR=${EBROOTEMBREE}/lib64/cmake/embree-3.13.5 " +configopts += '-DVTKOSPRAY_ENABLE_DENOISER=ON ' + +# configopts += '-DPARAVIEW_PLUGIN_ENABLE_pvNVIDIAIndeX=YES ' + +# --- extra features --- # +configopts += '-DPARAVIEW_PLUGIN_ENABLE_GeographicalMap=ON ' + +configopts += "-DFFMPEG_ROOT=$EBROOTFFMPEG " +configopts += '-DPARAVIEW_ENABLE_FFMPEG=ON ' +configopts += '-DVTK_MODULE_ENABLE_VTK_IOFFMPEG=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_IOVideo=YES ' + +configopts += '-DVTK_MODULE_ENABLE_VTK_DICOMParser=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersReebGraph=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersSMP=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersSelection=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersTopology=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersTexture=YES ' +# configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersStatisticsGnu=YES ' +# configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersMatlab=YES ' + +# --- coupling --- # +configopts += '-DPARAVIEW_ENABLE_CATALYST=ON ' +configopts += '-DVTK_MODULE_ENABLE_ParaView_InSitu=YES ' +# configopts += '-DVTK_MODULE_USE_EXTERNAL_ParaView_vtkcatalyst=ON ' +configopts += '-Dcatalyst_DIR=${EBROOTCATALYST}/lib64/cmake/catalyst-2.0/ ' + +# --- development & testing --- # +configopts += '-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON ' +configopts += '-DPARAVIEW_BUILD_DEVELOPER_DOCUMENTATION=OFF ' +configopts += '-DPARAVIEW_ENABLE_EXAMPLES=OFF ' +configopts += '-DPARAVIEW_BUILD_TESTING=OFF ' +configopts += '-DPARAVIEW_BUILD_VTK_TESTING=OFF ' + +# --- external data --- # +# https://cmake.org/cmake/help/latest/module/ExternalData.html +# https://gitlab.kitware.com/vtk/vtk/blob/master/Documentation/dev/git/data.md +# configopts += '-DCTEST_TEST_TIMEOUT=10800 ' # unknown setting +# download inactivity, 0 = no timeout +configopts += '-DExternalData_TIMEOUT_INACTIVITY=10 ' +# download abs. time, 0 = no timeout +configopts += '-DExternalData_TIMEOUT_ABSOLUTE=60 ' +# Exclude test data download from default 'all' target. +configopts += '-DPARAVIEW_DATA_EXCLUDE_FROM_ALL=ON ' +# Local directory holding ExternalData objects in the layout %(algo)/%(hash). +configopts += '-DPARAVIEW_DATA_STORE=${EBROOTPARAVIEWDATA}/.ExternalData ' +configopts += '-DVTK_DATA_STORE=${EBROOTVTKDATA}/.ExternalData ' +# Local directory holding the real data files of ExternalData. +configopts += '-DExternalData_BINARY_ROOT=${EBROOTPARAVIEWDATA} ' +# we need to combine VTK and ParaView's External data files as there can only be one ExternalData_BINARY_ROOT + +# --- XDMF options --- # +configopts += '-DXDMF_USE_BZIP2=ON ' +configopts += '-DXDMF_USE_GZIP=ON ' + +# --- VTK external libraries --- # +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_expat=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_freetype=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_hdf5=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_jpeg=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_libxml2=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_mpi4py=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_netcdf=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_png=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_tiff=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_zlib=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_doubleconversion=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_eigen=ON ' + +# --- ParaView Extra-Reader --- # +configopts += '-DPARAVIEW_PLUGIN_ENABLE_CDIReader=ON ' +configopts += '-DPARAVIEW_PLUGIN_ENABLE_ParFlow=ON ' +configopts += '-DPARAVIEW_ENABLE_MOTIONFX=ON ' +# configopts += '-DPARAVIEW_ENABLE_FIDES=ON ' # req. ADIOS2 as dependency +# configopts += '-DPARAVIEW_ENABLE_GDAL=ON ' # req. GDAL as dependency +# configopts += '-DPARAVIEW_ENABLE_LAS=ON ' # req. LAS as dependency +# configopts += '-DPARAVIEW_ENABLE_PDAL=ON ' # req. PDAL as dependency +# configopts += '-DPARAVIEW_ENABLE_OPENVDB=ON ' # req. OpenVDB as dependency + +# https://gitlab.kitware.com/paraview/visitbridge/-/blob/master/databases/CMakeLists.txt +configopts += '-DPARAVIEW_ENABLE_VISITBRIDGE=ON ' +configopts += '-DVTK_MODULE_ENABLE_ParaView_IOVisItBridge=YES ' +# configopts += '-DVISIT_BUILD_READER_Boxlib3D=ON ' # req. external dependency +# configopts += '-DVISIT_BUILD_READER_Mili=ON ' # req. external dependency +# configopts += '-DVISIT_BUILD_READER_Silo=ON ' # req. external dependency +# https://gitlab.kitware.com/vtk/vtk/-/merge_requests/7503 +# configopts += '-DVISIT_BUILD_READER_Nek5000=ON ' # MR still open + +postinstallcmds = [ + 'python -m compileall %(installdir)s/lib64/python%(pyshortver)s/site-packages/', + # 'cp -a %s %s' % (local_buildsrc, local_installsrc), # copy source from build dir to install dir + # '', # move debug info to separate files: + # http://stackoverflow.com/questions/866721/how-to-generate-gcc-debug-symbol-outside-the-build-target + # '', # debugedit -i --base-dir=%(builddir)s/ParaView-v%(version)s --dest-dir= %(installdir)s/src <file.debug> + # # change path to source in debug info +] + +modextravars = { + 'PARAVIEW_VTK_DIR': '%(installdir)s/lib64/cmake/paraview-%(version_major_minor)/vtk', + # 'CUDA_VISIBLE_DEVICES': '0,1', + # OpenSWR fully supports OpenGL 3.0 and most of 3.3, but ParaView requires 3.3 -> clame to fully support 3.3 + 'MESA_GL_VERSION_OVERRIDE': '3.3', + 'MESA_GLSL_VERSION_OVERRIDE': '330', + # OpenMP will choose an optimum number of threads by default, which is usually the number of cores + # 'OMP_NUM_THREADS': '28', # fix number of threads used by paraview filters and parallel sections in the code + # threads used by ospray - details https://github.com/ospray/ospray/blob/release-2.0.x/ospray/api/Device.cpp#L88 + # unset => OSPRAY uses all hardware threads + # 'OSPRAY_THREADS': '14', # OSPRay < 2.0 + # 'OSPRAY_NUM_THREADS': '14', # OSPRay >= 2.0 + # When TBB is used for OSPRAY: tbb::task_scheduler_init::default_num_threads() is default if no OSPRAY_NUM_THREADS + # https://github.com/ospray/ospcommon/blob/master/ospcommon/tasking/detail/tasking_system_init.cpp#L47 + # https://www.threadingbuildingblocks.org/docs/doxygen/a00150.html + # more ospray definitions: https://www.ospray.org/documentation.html#environment-variables + # max. threads used by OpenSWR (limited by number of hardware threads) + 'KNOB_MAX_WORKER_THREADS': '65535', + # details in https://gitlab.version.fz-juelich.de/vis/vis-software/issues/14 + # more knob defs: https://github.com/mesa3d/mesa/blob/master/src/gallium/docs/source/drivers/openswr/knobs.rst + 'CATALYST_IMPLEMENTATION_NAME': 'paraview', + 'CATALYST_IMPLEMENTATION_PATHS': '%(installdir)s/lib64/catalyst', + # details in https://catalyst-in-situ.readthedocs.io/en/latest/for_simulation_developers.html#catalyst-initialize +} + +modextrapaths = { + 'PYTHONPATH': [ + 'lib64/python%(pyshortver)s/site-packages', + 'lib64/python%(pyshortver)s/site-packages/vtkmodules' # required by Trilinos Catalyst adapter + ], +} + +moduleclass = 'vis' diff --git a/Golden_Repo/p/ParaView/ParaView-5.11.0-gpsmkl-2022a-EGL.eb b/Golden_Repo/p/ParaView/ParaView-5.11.0-gpsmkl-2022a-EGL.eb new file mode 100644 index 0000000000000000000000000000000000000000..12be5b994e8953b8d6347c7d2561ce86f0665dea --- /dev/null +++ b/Golden_Repo/p/ParaView/ParaView-5.11.0-gpsmkl-2022a-EGL.eb @@ -0,0 +1,351 @@ +easyblock = 'CMakeMake' + +name = 'ParaView' +version = '5.11.0' +versionsuffix = '-EGL' + +homepage = "http://www.paraview.org" +description = "Paraview is a scientific parallel visualizer." + +toolchain = {'name': 'gpsmkl', 'version': '2022a'} +toolchainopts = {'pic': True, 'usempi': True} + +local_dwnlsfx_src = 'download.php?submit=Download&version=v%(version_major_minor)s&type=source&os=Sources&downloadFile=' +source_urls = [('http://www.paraview.org/paraview-downloads/%s' % + local_dwnlsfx_src)] +sources = [("ParaView-v%(version)s.tar.gz")] + +patches = [ + 'cdireader_update_issue5715.patch', + 'parflowreader_fix-nlohmann_merge6050.patch', +] + +checksums = [ + '68b1c6d15dd67ec442f964460c56212417e8af2a96763001f8548eb3cbc5ce87', + '064d6878409d9133ad56ce363503a000f7b4617d0c912fd81dd772994f6b5ac2', # cdireader patch + 'eb8b6967782bb47e81df129b0d8e192bbf31f11f815d0f53d1c5b4e53da95fd6', # parflowreader patch +] + +builddependencies = [ + ('CMake', '3.23.1'), + ('git', '2.36.0', '-nodocs'), + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('Boost', '1.79.0'), + ('X11', '20220504'), + ('bzip2', '1.0.8'), + ('HDF5', '1.12.2'), + ('ADIOS2', '2.8.3'), + ('FFmpeg', '4.4.2'), + ('Embree', '3.13.5'), + ('OSPRay', '2.10.0'), + ('libpng', '1.6.37'), + ('expat', '2.4.8'), + ('freetype', '2.12.1'), + ('libjpeg-turbo', '2.1.3'), + ('libxml2', '2.9.13'), + ('LibTIFF', '4.3.0'), + ('zlib', '1.2.12'), + ('netCDF', '4.9.0'), + ('netCDF-C++4', '4.3.1'), + ('netCDF-Fortran', '4.6.0'), + ('nlohmann_json', '3.10.5'), # for ParFlow plugin + ('libcdi', '2.1.1', '', ('gcccoremkl', '11.3.0-2022.1.0')), # for CDI plugin + ('mpi4py', '3.1.4'), + ('double-conversion', '3.2.0'), + ('Eigen', '3.4.0'), + ('Qt5', '5.15.5'), + ('SciPy-Stack', '2022a', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('OpenGL', '2022a'), + ('Catalyst', '2.0.0-rc3'), + ('ParaViewData', '5.11.0'), + ('VTKData', '9.2.5'), +] + +separate_build_dir = True + +# ensure we do not use a too advanced GL-version at config/build-time, which might not be available at run-time +preconfigopts = "export __EGL_VENDOR_LIBRARY_FILENAMES=${EBROOTOPENGL}/share/glvnd/egl_vendor.d/50_mesa.json && " +prebuildopts = "export __EGL_VENDOR_LIBRARY_FILENAMES=${EBROOTOPENGL}/share/glvnd/egl_vendor.d/50_mesa.json && " + +######################################################################################## +# check ParaView Superbuild options # +# https://gitlab.kitware.com/paraview/paraview-superbuild/tree/master # +# # +# check ParaView Spack options # +# https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/paraview/package.py +# # +# check ParaView Build documenation # +# https://gitlab.kitware.com/paraview/paraview/blob/master/Documentation/dev/build.md # +######################################################################################## + +local_buildsrc = '%(builddir)s/easybuild_obj' +local_installsrc = '%(installdir)s/debugsrc' + +# --- general settings --- # +configopts = '-DCMAKE_VERBOSE_MAKEFILE=ON ' +configopts += '-DCMAKE_CXX_FLAGS="-fdebug-prefix-map=%s=%s $CMAKE_CXX_FLAGS" ' % (local_buildsrc, local_installsrc) +configopts += '-DCMAKE_C_FLAGS="-fdebug-prefix-map=%s=%s $CMAKE_C_FLAGS" ' % (local_buildsrc, local_installsrc) +configopts += '-DCMAKE_CXX_STANDARD=11 ' +configopts += '-DPARAVIEW_BUILD_LEGACY_SILENT=ON ' + +# https://forum.openframeworks.cc/t/nvidia-drivers-pthreads-and-segfaults/2524 +# configopts += '-DCMAKE_CXX_FLAGS="-lpthread $CMAKE_CXX_FLAGS" ' +# configopts += '-DCMAKE_C_FLAGS="-lpthread $CMAKE_C_FLAGS" ' + +configopts += '-DPARAVIEW_BUILD_EDITION=CANONICAL ' +configopts += '-DPARAVIEW_BUILD_WITH_KITS=OFF ' +configopts += '-DPARAVIEW_USE_QT=OFF ' + +# --- tuning --- # +# better disable for now: https://discourse.paraview.org/t/array-dispatch-issues/10328 +# configopts += '-DVTK_BUILD_SCALED_SOA_ARRAYS=OFF ' +# configopts += '-DVTK_DISPATCH_SOA_ARRAYS=OFF ' +# configopts += '-DVTK_DISPATCH_TYPED_ARRAYS=OFF ' + +# --- web --- # +configopts += '-DPARAVIEW_ENABLE_WEB=ON ' +configopts += '-DPARAVIEW_USE_QTWEBENGINE=ON ' +configopts += '-DVTK_MODULE_ENABLE_ParaView_PVWebPython=YES ' + +# --- python --- # +configopts += '-DPARAVIEW_USE_PYTHON=ON ' +configopts += "-DPython3_EXECUTABLE=$EBROOTPYTHON/bin/python " + +configopts += '-DVTK_PYTHON_VERSION=3 ' +configopts += '-DVTK_NO_PYTHON_THREADS=OFF ' +# visibility depends on VTK_NO_PYTHON_THREADS=OFF +configopts += '-DVTK_PYTHON_FULL_THREADSAFE=OFF ' +# If you pass VTK_PYTHON_FULL_THREADSAFE to true, then each and every call to python will be protected with GIL, +# ensuring that you can have eg. other python interpreter in your application and still use python wrapping in vtk. + +# --- VTKm --- # +configopts += '-DPARAVIEW_USE_VTKM=ON ' +configopts += '-DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmCore=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmDataModel=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmFilters=YES ' +configopts += '-DVTKm_Vectorization=AVX2 ' +# configopts += '-DVTKm_ENABLE_KOKKOS=OFF ' +# configopts += '-DVTKm_ENABLE_TBB=OFF ' +# configopts += '-DVTKm_ENABLE_CUDA=ON ' +# configopts += '-DVTKm_ENABLE_LOGGING=ON ' + +# --- parallel (on-node) --- # +# https://blog.kitware.com/simple-parallel-computing-with-vtksmptools-2/ +configopts += '-DVTK_SMP_IMPLEMENTATION_TYPE=OpenMP ' +configopts += '-DVTK_MAX_THREADS=64 ' +configopts += '-DVTKm_ENABLE_OPENMP=ON ' + +# --- parallel (distributed) --- # +configopts += '-DMPIEXEC_MAX_NUMPROCS=24 ' +configopts += '-DPARAVIEW_USE_MPI=ON ' +configopts += '-DVTKm_ENABLE_MPI=ON ' + +# --- IO --- # +configopts += '-DXDMF_BUILD_MPI=ON ' +configopts += '-DPARAVIEW_ENABLE_XDMF3=ON ' +configopts += '-DPARAVIEW_ENABLE_ADIOS2=OFF ' # error: adios2.h not found +# configopts += '-DPARAVIEW_PLUGIN_ENABLE_AdiosReaderPixie=ON ' # req. ADIOS1 +# configopts += '-DPARAVIEW_PLUGIN_ENABLE_AdiosReaderStaging=ON ' # req. ADIOS1 +configopts += '-DVTKm_ENABLE_HDF5_IO=ON ' + +# --- large data --- # +configopts += '-DVTK_USE_64BIT_IDS=ON ' + +# --- rendering --- # + +# OpenGL (hardware) +# https://kitware.github.io/paraview-docs/latest/cxx/Offscreen.html +# If VTK_OPENGL_HAS_EGL or VTK_OPENGL_HAS_OSMESA is ON, the build supports headless rendering, +# otherwise VTK_USE_X must be ON and the build does not support headless, +# but can still support offscreen rendering. +# If VTK_USE_X is OFF, then either VTK_OPENGL_HAS_OSMESA or VTK_OPENGL_HAS_EGL must be ON. +# Then the build does not support onscreen rendering, but only headless rendering. +# If PARAVIEW_BUILD_QT_GUI is ON and VTK_USE_X is ON, while ParaView command line tools won't link against +# or use X calls, Qt will and hence an accessible X server is still needed to run the desktop client. +# If VTK_OPENGL_HAS_OSMESA is ON, and VTK_USE_X is ON, +# then all the OpenGL and OSMesa variables should point to the Mesa libraries. +# Likewise, if VTK_OPENGL_HAS_EGL is ON and VTK_USE_X is ON, then all the OpenGL and EGL variables +# should point to the system libraries providing both, typically the NVidia libraries. + +configopts += '-DOpenGL_GL_PREFERENCE=GLVND ' +configopts += '-DVTK_REPORT_OPENGL_ERRORS_IN_RELEASE_BUILDS=OFF ' + +configopts += "-DOPENGL_INCLUDE_DIR=${EBROOTOPENGL}/include " +configopts += "-DOPENGL_GLX_INCLUDE_DIR=${EBROOTOPENGL}/include " +configopts += "-DOPENGL_EGL_INCLUDE_DIR=${EBROOTOPENGL}/include " +# configopts += "-DOPENGL_xmesa_INCLUDE_DIR=IGNORE " + +configopts += "-DOPENGL_opengl_LIBRARY=${EBROOTOPENGL}/lib/libOpenGL.so.0 " +configopts += "-DOPENGL_gl_LIBRARY=${EBROOTOPENGL}/lib/libGL.so " +configopts += "-DOPENGL_glx_LIBRARY=${EBROOTOPENGL}/lib/libGLX.so.0 " +configopts += "-DOPENGL_glu_LIBRARY=${EBROOTOPENGL}/lib/libGLU.so " +configopts += "-DOPENGL_egl_LIBRARY=${EBROOTOPENGL}/lib/libEGL.so.1 " + +# OpenGL over X +# configopts += '-DVTK_USE_X=ON ' # OFF:headless rendering +# already considered by Qt (https://gitlab.kitware.com/lorensen/vtk/commit/b29f6db3f746d84f830c81e4212e48db192e4dbb) +# configopts += '-DVTK_DEFAULT_RENDER_WINDOW_OFFSCREEN=OFF ' +# configopts += '-DVTK_OPENGL_HAS_OSMESA=OFF ' # http://www.paraview.org/Wiki/ParaView_And_Mesa_3D + +# EGL (off-screen rendering with OpenGL, but without the need for X) +# call pvserver with –egl-device-index=0 or 1 and –disable-xdisplay-test +configopts += '-DVTK_OPENGL_HAS_EGL=ON ' +# http://www.paraview.org/Wiki/ParaView_And_Mesa_3D +configopts += '-DVTK_OPENGL_HAS_OSMESA=OFF ' +configopts += '-DVTK_USE_X=OFF ' +configopts += '-DVTK_DEFAULT_EGL_DEVICE_INDEX=0 ' +# configopts += '-DEGL_INCLUDE_DIR=${EBROOTOPENGL}/include/EGL/ ' # https://www.khronos.org/registry/EGL/ +# configopts += '-DEGL_LIBRARY=${EBROOTOPENGL}/lib/libEGL.so.1 ' +# configopts += '-DEGL_opengl_LIBRARY=${EBROOTOPENGL}/lib/libOpenGL.so.0 ' +# configopts += '-DEGL_gldispatch_LIBRARY=${EBROOTOPENGL}/lib/libGLdispatch.so.0 ' # <path_to_libGLdispatch.so.0> + +# OSMesa (software) +# With OSMesa the DISPLAY variable has no meaning and is not needed +# When ON, implies that ParaView can use OSMesa to support headless modes of operation. +# configopts += '-DVTK_OPENGL_HAS_OSMESA=ON ' # http://www.paraview.org/Wiki/ParaView_And_Mesa_3D +# configopts += '-DVTK_USE_X=OFF ' +# configopts += '-DVTK_DEFAULT_RENDER_WINDOW_OFFSCREEN=ON ' +# configopts += '-DOSMESA_INCLUDE_DIR=${EBROOTOPENGL}/include ' +# configopts += '-DOSMESA_LIBRARY=${EBROOTOPENGL}/lib/libOSMesa.so ' + +# Raytracing +configopts += '-DPARAVIEW_ENABLE_RAYTRACING=ON ' +configopts += '-DVTK_ENABLE_OSPRAY=ON ' +configopts += '-DVTK_ENABLE_VISRTX=OFF ' + +configopts += "-Dospray_DIR=${EBROOTOSPRAY} " +configopts += "-Dembree_DIR=${EBROOTEMBREE}/lib64/cmake/embree-3.13.5 " +configopts += '-DVTKOSPRAY_ENABLE_DENOISER=ON ' + +# configopts += '-DPARAVIEW_PLUGIN_ENABLE_pvNVIDIAIndeX=YES ' + +# --- extra features --- # +configopts += '-DPARAVIEW_PLUGIN_ENABLE_GeographicalMap=ON ' + +configopts += "-DFFMPEG_ROOT=$EBROOTFFMPEG " +configopts += '-DPARAVIEW_ENABLE_FFMPEG=ON ' +configopts += '-DVTK_MODULE_ENABLE_VTK_IOFFMPEG=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_IOVideo=YES ' + +configopts += '-DVTK_MODULE_ENABLE_VTK_DICOMParser=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersReebGraph=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersSMP=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersSelection=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersTopology=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersTexture=YES ' +# configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersStatisticsGnu=YES ' +# configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersMatlab=YES ' + +# --- coupling --- # +configopts += '-DPARAVIEW_ENABLE_CATALYST=ON ' +configopts += '-DVTK_MODULE_ENABLE_ParaView_InSitu=YES ' +# configopts += '-DVTK_MODULE_USE_EXTERNAL_ParaView_vtkcatalyst=ON ' +configopts += '-Dcatalyst_DIR=${EBROOTCATALYST}/lib64/cmake/catalyst-2.0/ ' + +# --- development & testing --- # +configopts += '-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON ' +configopts += '-DPARAVIEW_BUILD_DEVELOPER_DOCUMENTATION=OFF ' +configopts += '-DPARAVIEW_ENABLE_EXAMPLES=OFF ' +configopts += '-DPARAVIEW_BUILD_TESTING=OFF ' +configopts += '-DPARAVIEW_BUILD_VTK_TESTING=OFF ' + +# --- external data --- # +# https://cmake.org/cmake/help/latest/module/ExternalData.html +# https://gitlab.kitware.com/vtk/vtk/blob/master/Documentation/dev/git/data.md +# configopts += '-DCTEST_TEST_TIMEOUT=10800 ' # unknown setting +# download inactivity, 0 = no timeout +configopts += '-DExternalData_TIMEOUT_INACTIVITY=10 ' +# download abs. time, 0 = no timeout +configopts += '-DExternalData_TIMEOUT_ABSOLUTE=60 ' +# Exclude test data download from default 'all' target. +configopts += '-DPARAVIEW_DATA_EXCLUDE_FROM_ALL=ON ' +# Local directory holding ExternalData objects in the layout %(algo)/%(hash). +configopts += '-DPARAVIEW_DATA_STORE=${EBROOTPARAVIEWDATA}/.ExternalData ' +configopts += '-DVTK_DATA_STORE=${EBROOTVTKDATA}/.ExternalData ' +# Local directory holding the real data files of ExternalData. +configopts += '-DExternalData_BINARY_ROOT=${EBROOTPARAVIEWDATA} ' +# we need to combine VTK and ParaView's External data files as there can only be one ExternalData_BINARY_ROOT + +# --- XDMF options --- # +configopts += '-DXDMF_USE_BZIP2=ON ' +configopts += '-DXDMF_USE_GZIP=ON ' + +# --- VTK external libraries --- # +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_expat=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_freetype=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_hdf5=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_jpeg=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_libxml2=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_mpi4py=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_netcdf=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_png=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_tiff=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_zlib=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_doubleconversion=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_eigen=ON ' + +# --- ParaView Extra-Reader --- # +configopts += '-DPARAVIEW_PLUGIN_ENABLE_CDIReader=ON ' +configopts += '-DPARAVIEW_PLUGIN_ENABLE_ParFlow=ON ' +configopts += '-DPARAVIEW_ENABLE_MOTIONFX=ON ' +# configopts += '-DPARAVIEW_ENABLE_FIDES=ON ' # req. ADIOS2 as dependency +# configopts += '-DPARAVIEW_ENABLE_GDAL=ON ' # req. GDAL as dependency +# configopts += '-DPARAVIEW_ENABLE_LAS=ON ' # req. LAS as dependency +# configopts += '-DPARAVIEW_ENABLE_PDAL=ON ' # req. PDAL as dependency +# configopts += '-DPARAVIEW_ENABLE_OPENVDB=ON ' # req. OpenVDB as dependency + +# https://gitlab.kitware.com/paraview/visitbridge/-/blob/master/databases/CMakeLists.txt +configopts += '-DPARAVIEW_ENABLE_VISITBRIDGE=ON ' +configopts += '-DVTK_MODULE_ENABLE_ParaView_IOVisItBridge=YES ' +# configopts += '-DVISIT_BUILD_READER_Boxlib3D=ON ' # req. external dependency +# configopts += '-DVISIT_BUILD_READER_Mili=ON ' # req. external dependency +# configopts += '-DVISIT_BUILD_READER_Silo=ON ' # req. external dependency +# https://gitlab.kitware.com/vtk/vtk/-/merge_requests/7503 +# configopts += '-DVISIT_BUILD_READER_Nek5000=ON ' # MR still open + +postinstallcmds = [ + 'python -m compileall %(installdir)s/lib64/python%(pyshortver)s/site-packages/', + # 'cp -a %s %s' % (local_buildsrc, local_installsrc), # copy source from build dir to install dir + # '', # move debug info to separate files: + # http://stackoverflow.com/questions/866721/how-to-generate-gcc-debug-symbol-outside-the-build-target + # '', # debugedit -i --base-dir=%(builddir)s/ParaView-v%(version)s --dest-dir= %(installdir)s/src <file.debug> + # # change path to source in debug info +] + +modextravars = { + 'PARAVIEW_VTK_DIR': '%(installdir)s/lib64/cmake/paraview-%(version_major_minor)/vtk', + # 'CUDA_VISIBLE_DEVICES': '0,1', + # OpenSWR fully supports OpenGL 3.0 and most of 3.3, but ParaView requires 3.3 -> clame to fully support 3.3 + 'MESA_GL_VERSION_OVERRIDE': '3.3', + 'MESA_GLSL_VERSION_OVERRIDE': '330', + # OpenMP will choose an optimum number of threads by default, which is usually the number of cores + # 'OMP_NUM_THREADS': '28', # fix number of threads used by paraview filters and parallel sections in the code + # threads used by ospray - details https://github.com/ospray/ospray/blob/release-2.0.x/ospray/api/Device.cpp#L88 + # unset => OSPRAY uses all hardware threads + # 'OSPRAY_THREADS': '14', # OSPRay < 2.0 + # 'OSPRAY_NUM_THREADS': '14', # OSPRay >= 2.0 + # When TBB is used for OSPRAY: tbb::task_scheduler_init::default_num_threads() is default if no OSPRAY_NUM_THREADS + # https://github.com/ospray/ospcommon/blob/master/ospcommon/tasking/detail/tasking_system_init.cpp#L47 + # https://www.threadingbuildingblocks.org/docs/doxygen/a00150.html + # more ospray definitions: https://www.ospray.org/documentation.html#environment-variables + # max. threads used by OpenSWR (limited by number of hardware threads) + 'KNOB_MAX_WORKER_THREADS': '65535', + # details in https://gitlab.version.fz-juelich.de/vis/vis-software/issues/14 + # more knob defs: https://github.com/mesa3d/mesa/blob/master/src/gallium/docs/source/drivers/openswr/knobs.rst + 'CATALYST_IMPLEMENTATION_NAME': 'paraview', + 'CATALYST_IMPLEMENTATION_PATHS': '%(installdir)s/lib64/catalyst', + # details in https://catalyst-in-situ.readthedocs.io/en/latest/for_simulation_developers.html#catalyst-initialize +} + +modextrapaths = { + 'PYTHONPATH': [ + 'lib64/python%(pyshortver)s/site-packages', + 'lib64/python%(pyshortver)s/site-packages/vtkmodules' # required by Trilinos Catalyst adapter + ], +} + +moduleclass = 'vis' diff --git a/Golden_Repo/p/ParaView/ParaView-5.11.0-gpsmkl-2022a.eb b/Golden_Repo/p/ParaView/ParaView-5.11.0-gpsmkl-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..680fbdd7e6f7f765ae92ecfa6e6f9bbe151f948e --- /dev/null +++ b/Golden_Repo/p/ParaView/ParaView-5.11.0-gpsmkl-2022a.eb @@ -0,0 +1,350 @@ +easyblock = 'CMakeMake' + +name = 'ParaView' +version = '5.11.0' + +homepage = "http://www.paraview.org" +description = "Paraview is a scientific parallel visualizer." + +toolchain = {'name': 'gpsmkl', 'version': '2022a'} +toolchainopts = {'pic': True, 'usempi': True} + +local_dwnlsfx_src = 'download.php?submit=Download&version=v%(version_major_minor)s&type=source&os=Sources&downloadFile=' +source_urls = [('http://www.paraview.org/paraview-downloads/%s' % + local_dwnlsfx_src)] +sources = [("ParaView-v%(version)s.tar.gz")] + +patches = [ + 'cdireader_update_issue5715.patch', + 'parflowreader_fix-nlohmann_merge6050.patch', +] + +checksums = [ + '68b1c6d15dd67ec442f964460c56212417e8af2a96763001f8548eb3cbc5ce87', + '064d6878409d9133ad56ce363503a000f7b4617d0c912fd81dd772994f6b5ac2', # cdireader patch + 'eb8b6967782bb47e81df129b0d8e192bbf31f11f815d0f53d1c5b4e53da95fd6', # parflowreader patch +] + +builddependencies = [ + ('CMake', '3.23.1'), + ('git', '2.36.0', '-nodocs'), + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('Boost', '1.79.0'), + ('X11', '20220504'), + ('bzip2', '1.0.8'), + ('HDF5', '1.12.2'), + ('ADIOS2', '2.8.3'), + ('FFmpeg', '4.4.2'), + ('Embree', '3.13.5'), + ('OSPRay', '2.10.0'), + ('libpng', '1.6.37'), + ('expat', '2.4.8'), + ('freetype', '2.12.1'), + ('libjpeg-turbo', '2.1.3'), + ('libxml2', '2.9.13'), + ('LibTIFF', '4.3.0'), + ('zlib', '1.2.12'), + ('netCDF', '4.9.0'), + ('netCDF-C++4', '4.3.1'), + ('netCDF-Fortran', '4.6.0'), + ('nlohmann_json', '3.10.5'), # for ParFlow plugin + ('libcdi', '2.1.1', '', ('gcccoremkl', '11.3.0-2022.1.0')), # for CDI plugin + ('mpi4py', '3.1.4'), + ('double-conversion', '3.2.0'), + ('Eigen', '3.4.0'), + ('Qt5', '5.15.5'), + ('SciPy-Stack', '2022a', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('OpenGL', '2022a'), + ('Catalyst', '2.0.0-rc3'), + ('ParaViewData', '5.11.0'), + ('VTKData', '9.2.5'), +] + +separate_build_dir = True + +# ensure we do not use a too advanced GL-version at config/build-time, which might not be available at run-time +preconfigopts = "export __EGL_VENDOR_LIBRARY_FILENAMES=${EBROOTOPENGL}/share/glvnd/egl_vendor.d/50_mesa.json && " +prebuildopts = "export __EGL_VENDOR_LIBRARY_FILENAMES=${EBROOTOPENGL}/share/glvnd/egl_vendor.d/50_mesa.json && " + +######################################################################################## +# check ParaView Superbuild options # +# https://gitlab.kitware.com/paraview/paraview-superbuild/tree/master # +# # +# check ParaView Spack options # +# https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/paraview/package.py +# # +# check ParaView Build documenation # +# https://gitlab.kitware.com/paraview/paraview/blob/master/Documentation/dev/build.md # +######################################################################################## + +local_buildsrc = '%(builddir)s/easybuild_obj' +local_installsrc = '%(installdir)s/debugsrc' + +# --- general settings --- # +configopts = '-DCMAKE_VERBOSE_MAKEFILE=ON ' +configopts += '-DCMAKE_CXX_FLAGS="-fdebug-prefix-map=%s=%s $CMAKE_CXX_FLAGS" ' % (local_buildsrc, local_installsrc) +configopts += '-DCMAKE_C_FLAGS="-fdebug-prefix-map=%s=%s $CMAKE_C_FLAGS" ' % (local_buildsrc, local_installsrc) +configopts += '-DCMAKE_CXX_STANDARD=11 ' +configopts += '-DPARAVIEW_BUILD_LEGACY_SILENT=ON ' + +# https://forum.openframeworks.cc/t/nvidia-drivers-pthreads-and-segfaults/2524 +# configopts += '-DCMAKE_CXX_FLAGS="-lpthread $CMAKE_CXX_FLAGS" ' +# configopts += '-DCMAKE_C_FLAGS="-lpthread $CMAKE_C_FLAGS" ' + +configopts += '-DPARAVIEW_BUILD_EDITION=CANONICAL ' +configopts += '-DPARAVIEW_BUILD_WITH_KITS=OFF ' +configopts += '-DPARAVIEW_USE_QT=ON ' + +# --- tuning --- # +# better disable for now: https://discourse.paraview.org/t/array-dispatch-issues/10328 +# configopts += '-DVTK_BUILD_SCALED_SOA_ARRAYS=OFF ' +# configopts += '-DVTK_DISPATCH_SOA_ARRAYS=OFF ' +# configopts += '-DVTK_DISPATCH_TYPED_ARRAYS=OFF ' + +# --- web --- # +configopts += '-DPARAVIEW_ENABLE_WEB=ON ' +configopts += '-DPARAVIEW_USE_QTWEBENGINE=ON ' +configopts += '-DVTK_MODULE_ENABLE_ParaView_PVWebPython=YES ' + +# --- python --- # +configopts += '-DPARAVIEW_USE_PYTHON=ON ' +configopts += "-DPython3_EXECUTABLE=$EBROOTPYTHON/bin/python " + +configopts += '-DVTK_PYTHON_VERSION=3 ' +configopts += '-DVTK_NO_PYTHON_THREADS=OFF ' +# visibility depends on VTK_NO_PYTHON_THREADS=OFF +configopts += '-DVTK_PYTHON_FULL_THREADSAFE=OFF ' +# If you pass VTK_PYTHON_FULL_THREADSAFE to true, then each and every call to python will be protected with GIL, +# ensuring that you can have eg. other python interpreter in your application and still use python wrapping in vtk. + +# --- VTKm --- # +configopts += '-DPARAVIEW_USE_VTKM=ON ' +configopts += '-DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmCore=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmDataModel=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmFilters=YES ' +configopts += '-DVTKm_Vectorization=AVX2 ' +# configopts += '-DVTKm_ENABLE_KOKKOS=OFF ' +# configopts += '-DVTKm_ENABLE_TBB=OFF ' +# configopts += '-DVTKm_ENABLE_CUDA=ON ' +# configopts += '-DVTKm_ENABLE_LOGGING=ON ' + +# --- parallel (on-node) --- # +# https://blog.kitware.com/simple-parallel-computing-with-vtksmptools-2/ +configopts += '-DVTK_SMP_IMPLEMENTATION_TYPE=OpenMP ' +configopts += '-DVTK_MAX_THREADS=64 ' +configopts += '-DVTKm_ENABLE_OPENMP=ON ' + +# --- parallel (distributed) --- # +configopts += '-DMPIEXEC_MAX_NUMPROCS=24 ' +configopts += '-DPARAVIEW_USE_MPI=ON ' +configopts += '-DVTKm_ENABLE_MPI=ON ' + +# --- IO --- # +configopts += '-DXDMF_BUILD_MPI=ON ' +configopts += '-DPARAVIEW_ENABLE_XDMF3=ON ' +configopts += '-DPARAVIEW_ENABLE_ADIOS2=OFF ' # error: adios2.h not found +# configopts += '-DPARAVIEW_PLUGIN_ENABLE_AdiosReaderPixie=ON ' # req. ADIOS1 +# configopts += '-DPARAVIEW_PLUGIN_ENABLE_AdiosReaderStaging=ON ' # req. ADIOS1 +configopts += '-DVTKm_ENABLE_HDF5_IO=ON ' + +# --- large data --- # +configopts += '-DVTK_USE_64BIT_IDS=ON ' + +# --- rendering --- # + +# OpenGL (hardware) +# https://kitware.github.io/paraview-docs/latest/cxx/Offscreen.html +# If VTK_OPENGL_HAS_EGL or VTK_OPENGL_HAS_OSMESA is ON, the build supports headless rendering, +# otherwise VTK_USE_X must be ON and the build does not support headless, +# but can still support offscreen rendering. +# If VTK_USE_X is OFF, then either VTK_OPENGL_HAS_OSMESA or VTK_OPENGL_HAS_EGL must be ON. +# Then the build does not support onscreen rendering, but only headless rendering. +# If PARAVIEW_BUILD_QT_GUI is ON and VTK_USE_X is ON, while ParaView command line tools won't link against +# or use X calls, Qt will and hence an accessible X server is still needed to run the desktop client. +# If VTK_OPENGL_HAS_OSMESA is ON, and VTK_USE_X is ON, +# then all the OpenGL and OSMesa variables should point to the Mesa libraries. +# Likewise, if VTK_OPENGL_HAS_EGL is ON and VTK_USE_X is ON, then all the OpenGL and EGL variables +# should point to the system libraries providing both, typically the NVidia libraries. + +configopts += '-DOpenGL_GL_PREFERENCE=GLVND ' +configopts += '-DVTK_REPORT_OPENGL_ERRORS_IN_RELEASE_BUILDS=OFF ' + +configopts += "-DOPENGL_INCLUDE_DIR=${EBROOTOPENGL}/include " +configopts += "-DOPENGL_GLX_INCLUDE_DIR=${EBROOTOPENGL}/include " +configopts += "-DOPENGL_EGL_INCLUDE_DIR=${EBROOTOPENGL}/include " +# configopts += "-DOPENGL_xmesa_INCLUDE_DIR=IGNORE " + +configopts += "-DOPENGL_opengl_LIBRARY=${EBROOTOPENGL}/lib/libOpenGL.so.0 " +configopts += "-DOPENGL_gl_LIBRARY=${EBROOTOPENGL}/lib/libGL.so " +configopts += "-DOPENGL_glx_LIBRARY=${EBROOTOPENGL}/lib/libGLX.so.0 " +configopts += "-DOPENGL_glu_LIBRARY=${EBROOTOPENGL}/lib/libGLU.so " +configopts += "-DOPENGL_egl_LIBRARY=${EBROOTOPENGL}/lib/libEGL.so.1 " + +# OpenGL over X +configopts += '-DVTK_USE_X=ON ' # OFF:headless rendering +# already considered by Qt (https://gitlab.kitware.com/lorensen/vtk/commit/b29f6db3f746d84f830c81e4212e48db192e4dbb) +configopts += '-DVTK_DEFAULT_RENDER_WINDOW_OFFSCREEN=OFF ' +# http://www.paraview.org/Wiki/ParaView_And_Mesa_3D +configopts += '-DVTK_OPENGL_HAS_OSMESA=OFF ' + +# EGL (off-screen rendering with OpenGL, but without the need for X) +# call pvserver with –egl-device-index=0 or 1 and –disable-xdisplay-test +# configopts += '-DVTK_OPENGL_HAS_EGL=ON ' +# configopts += '-DVTK_OPENGL_HAS_OSMESA=OFF ' # http://www.paraview.org/Wiki/ParaView_And_Mesa_3D +# configopts += '-DVTK_USE_X=OFF ' +# configopts += '-DVTK_DEFAULT_EGL_DEVICE_INDEX=0 ' +# #configopts += '-DEGL_INCLUDE_DIR=${EBROOTOPENGL}/include/EGL/ ' # https://www.khronos.org/registry/EGL/ +# #configopts += '-DEGL_LIBRARY=${EBROOTOPENGL}/lib/libEGL.so.1 ' +# #configopts += '-DEGL_opengl_LIBRARY=${EBROOTOPENGL}/lib/libOpenGL.so.0 ' +# #configopts += '-DEGL_gldispatch_LIBRARY=${EBROOTOPENGL}/lib/libGLdispatch.so.0 ' # <path_to_libGLdispatch.so.0> + +# OSMesa (software) +# With OSMesa the DISPLAY variable has no meaning and is not needed +# When ON, implies that ParaView can use OSMesa to support headless modes of operation. +# configopts += '-DVTK_OPENGL_HAS_OSMESA=ON ' # http://www.paraview.org/Wiki/ParaView_And_Mesa_3D +# configopts += '-DVTK_USE_X=OFF ' +# configopts += '-DVTK_DEFAULT_RENDER_WINDOW_OFFSCREEN=ON ' +# configopts += '-DOSMESA_INCLUDE_DIR=${EBROOTOPENGL}/include ' +# configopts += '-DOSMESA_LIBRARY=${EBROOTOPENGL}/lib/libOSMesa.so ' + +# Raytracing +configopts += '-DPARAVIEW_ENABLE_RAYTRACING=ON ' +configopts += '-DVTK_ENABLE_OSPRAY=ON ' +configopts += '-DVTK_ENABLE_VISRTX=OFF ' + +configopts += "-Dospray_DIR=${EBROOTOSPRAY} " +configopts += "-Dembree_DIR=${EBROOTEMBREE}/lib64/cmake/embree-3.13.5 " +configopts += '-DVTKOSPRAY_ENABLE_DENOISER=ON ' + +# configopts += '-DPARAVIEW_PLUGIN_ENABLE_pvNVIDIAIndeX=YES ' + +# --- extra features --- # +configopts += '-DPARAVIEW_PLUGIN_ENABLE_GeographicalMap=ON ' + +configopts += "-DFFMPEG_ROOT=$EBROOTFFMPEG " +configopts += '-DPARAVIEW_ENABLE_FFMPEG=ON ' +configopts += '-DVTK_MODULE_ENABLE_VTK_IOFFMPEG=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_IOVideo=YES ' + +configopts += '-DVTK_MODULE_ENABLE_VTK_DICOMParser=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersReebGraph=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersSMP=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersSelection=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersTopology=YES ' +configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersTexture=YES ' +# configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersStatisticsGnu=YES ' +# configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersMatlab=YES ' + +# --- coupling --- # +configopts += '-DPARAVIEW_ENABLE_CATALYST=ON ' +configopts += '-DVTK_MODULE_ENABLE_ParaView_InSitu=YES ' +# configopts += '-DVTK_MODULE_USE_EXTERNAL_ParaView_vtkcatalyst=ON ' +configopts += '-Dcatalyst_DIR=${EBROOTCATALYST}/lib64/cmake/catalyst-2.0/ ' + +# --- development & testing --- # +configopts += '-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON ' +configopts += '-DPARAVIEW_BUILD_DEVELOPER_DOCUMENTATION=OFF ' +configopts += '-DPARAVIEW_ENABLE_EXAMPLES=OFF ' +configopts += '-DPARAVIEW_BUILD_TESTING=OFF ' +configopts += '-DPARAVIEW_BUILD_VTK_TESTING=OFF ' + +# --- external data --- # +# https://cmake.org/cmake/help/latest/module/ExternalData.html +# https://gitlab.kitware.com/vtk/vtk/blob/master/Documentation/dev/git/data.md +# configopts += '-DCTEST_TEST_TIMEOUT=10800 ' # unknown setting +# download inactivity, 0 = no timeout +configopts += '-DExternalData_TIMEOUT_INACTIVITY=10 ' +# download abs. time, 0 = no timeout +configopts += '-DExternalData_TIMEOUT_ABSOLUTE=60 ' +# Exclude test data download from default 'all' target. +configopts += '-DPARAVIEW_DATA_EXCLUDE_FROM_ALL=ON ' +# Local directory holding ExternalData objects in the layout %(algo)/%(hash). +configopts += '-DPARAVIEW_DATA_STORE=${EBROOTPARAVIEWDATA}/.ExternalData ' +configopts += '-DVTK_DATA_STORE=${EBROOTVTKDATA}/.ExternalData ' +# Local directory holding the real data files of ExternalData. +configopts += '-DExternalData_BINARY_ROOT=${EBROOTPARAVIEWDATA} ' +# we need to combine VTK and ParaView's External data files as there can only be one ExternalData_BINARY_ROOT + +# --- XDMF options --- # +configopts += '-DXDMF_USE_BZIP2=ON ' +configopts += '-DXDMF_USE_GZIP=ON ' + +# --- VTK external libraries --- # +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_expat=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_freetype=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_hdf5=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_jpeg=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_libxml2=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_mpi4py=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_netcdf=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_png=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_tiff=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_zlib=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_doubleconversion=ON ' +configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_eigen=ON ' + +# --- ParaView Extra-Reader --- # +configopts += '-DPARAVIEW_PLUGIN_ENABLE_CDIReader=ON ' +configopts += '-DPARAVIEW_PLUGIN_ENABLE_ParFlow=ON ' +configopts += '-DPARAVIEW_ENABLE_MOTIONFX=ON ' +# configopts += '-DPARAVIEW_ENABLE_FIDES=ON ' # req. ADIOS2 as dependency +# configopts += '-DPARAVIEW_ENABLE_GDAL=ON ' # req. GDAL as dependency +# configopts += '-DPARAVIEW_ENABLE_LAS=ON ' # req. LAS as dependency +# configopts += '-DPARAVIEW_ENABLE_PDAL=ON ' # req. PDAL as dependency +# configopts += '-DPARAVIEW_ENABLE_OPENVDB=ON ' # req. OpenVDB as dependency + +# https://gitlab.kitware.com/paraview/visitbridge/-/blob/master/databases/CMakeLists.txt +configopts += '-DPARAVIEW_ENABLE_VISITBRIDGE=ON ' +configopts += '-DVTK_MODULE_ENABLE_ParaView_IOVisItBridge=YES ' +# configopts += '-DVISIT_BUILD_READER_Boxlib3D=ON ' # req. external dependency +# configopts += '-DVISIT_BUILD_READER_Mili=ON ' # req. external dependency +# configopts += '-DVISIT_BUILD_READER_Silo=ON ' # req. external dependency +# https://gitlab.kitware.com/vtk/vtk/-/merge_requests/7503 +# configopts += '-DVISIT_BUILD_READER_Nek5000=ON ' # MR still open + +postinstallcmds = [ + 'python -m compileall %(installdir)s/lib64/python%(pyshortver)s/site-packages/', + # 'cp -a %s %s' % (local_buildsrc, local_installsrc), # copy source from build dir to install dir + # '', # move debug info to separate files: + # http://stackoverflow.com/questions/866721/how-to-generate-gcc-debug-symbol-outside-the-build-target + # '', # debugedit -i --base-dir=%(builddir)s/ParaView-v%(version)s --dest-dir= %(installdir)s/src <file.debug> + # # change path to source in debug info +] + +modextravars = { + 'PARAVIEW_VTK_DIR': '%(installdir)s/lib64/cmake/paraview-%(version_major_minor)/vtk', + # 'CUDA_VISIBLE_DEVICES': '0,1', + # OpenSWR fully supports OpenGL 3.0 and most of 3.3, but ParaView requires 3.3 -> clame to fully support 3.3 + 'MESA_GL_VERSION_OVERRIDE': '3.3', + 'MESA_GLSL_VERSION_OVERRIDE': '330', + # OpenMP will choose an optimum number of threads by default, which is usually the number of cores + # 'OMP_NUM_THREADS': '28', # fix number of threads used by paraview filters and parallel sections in the code + # threads used by ospray - details https://github.com/ospray/ospray/blob/release-2.0.x/ospray/api/Device.cpp#L88 + # unset => OSPRAY uses all hardware threads + # 'OSPRAY_THREADS': '14', # OSPRay < 2.0 + # 'OSPRAY_NUM_THREADS': '14', # OSPRay >= 2.0 + # When TBB is used for OSPRAY: tbb::task_scheduler_init::default_num_threads() is default if no OSPRAY_NUM_THREADS + # https://github.com/ospray/ospcommon/blob/master/ospcommon/tasking/detail/tasking_system_init.cpp#L47 + # https://www.threadingbuildingblocks.org/docs/doxygen/a00150.html + # more ospray definitions: https://www.ospray.org/documentation.html#environment-variables + # max. threads used by OpenSWR (limited by number of hardware threads) + 'KNOB_MAX_WORKER_THREADS': '65535', + # details in https://gitlab.version.fz-juelich.de/vis/vis-software/issues/14 + # more knob defs: https://github.com/mesa3d/mesa/blob/master/src/gallium/docs/source/drivers/openswr/knobs.rst + 'CATALYST_IMPLEMENTATION_NAME': 'paraview', + 'CATALYST_IMPLEMENTATION_PATHS': '%(installdir)s/lib64/catalyst', + # details in https://catalyst-in-situ.readthedocs.io/en/latest/for_simulation_developers.html#catalyst-initialize +} + +modextrapaths = { + 'PYTHONPATH': [ + 'lib64/python%(pyshortver)s/site-packages', + 'lib64/python%(pyshortver)s/site-packages/vtkmodules' # required by Trilinos Catalyst adapter + ], +} + +moduleclass = 'vis' diff --git a/Golden_Repo/p/ParaView/cdireader_update_issue5715.patch b/Golden_Repo/p/ParaView/cdireader_update_issue5715.patch new file mode 100644 index 0000000000000000000000000000000000000000..102dab4802da16080a50703f159a3d51f1fd343a --- /dev/null +++ b/Golden_Repo/p/ParaView/cdireader_update_issue5715.patch @@ -0,0 +1,3165 @@ +From 26251ad52273fc9d3aad86faa7cb0f56d6ebbdef Mon Sep 17 00:00:00 2001 +From: Florian Ziemen <ziemen@dkrz.de> +Date: Fri, 22 Apr 2022 17:00:09 +0200 +Subject: [PATCH 1/5] Added support for multiple 2d levels in one file. + +CDI can assign different vertical axis id to 2d fields depending on +netcdf atrribues of the variable (level_type=abc). +We better accept that they all are 2d and merge them into one 2D thing. + +working towards support for multiple grids -- problems w/ ext grids. + +External grid files currently are trouble. + +Basically, the grid ids are diffent in the files, and we need to keep +track of that and of which file we are looking at. + +Will be solved by having the grid and the data open simultaneously in +commits to come. + +Starting to move file related things outside the main reader. + +Fixups for grid handling + +fixed a segfault in parallel mode on large grids + +double clon_vert[size2] is illegal in c++, as size2 is not known at +compile time. On DKRZ's levante it leads to a segfault when accessing this +for large (5km global) grids in parallel operation. + +Do not use BuildVarArrays for checking whether the variables are valid + +BuildVarArrays enables all variables in the SelectionStatus + +Caught a SetDimensions in statefile loading + +SetDimensinos gets called before setting the file name when loading a +state file. This gets rid of a warning message in that case. +--- + Plugins/CDIReader/Reader/CMakeLists.txt | 1 + + Plugins/CDIReader/Reader/DataSource.cxx | 56 +++ + Plugins/CDIReader/Reader/DataSource.h | 39 ++ + Plugins/CDIReader/Reader/vtkCDIReader.cxx | 572 +++++++++++----------- + Plugins/CDIReader/Reader/vtkCDIReader.h | 26 +- + 5 files changed, 417 insertions(+), 277 deletions(-) + create mode 100644 Plugins/CDIReader/Reader/DataSource.cxx + create mode 100644 Plugins/CDIReader/Reader/DataSource.h + +diff --git a/Plugins/CDIReader/Reader/CMakeLists.txt b/Plugins/CDIReader/Reader/CMakeLists.txt +index 274104664b..7a1a985fe0 100644 +--- a/Plugins/CDIReader/Reader/CMakeLists.txt ++++ b/Plugins/CDIReader/Reader/CMakeLists.txt +@@ -4,6 +4,7 @@ set(classes + set (sources + cdi_tools.cxx + projections.cxx ++ DataSource.cxx + ) + set (private_headers + cdi_tools.h +diff --git a/Plugins/CDIReader/Reader/DataSource.cxx b/Plugins/CDIReader/Reader/DataSource.cxx +new file mode 100644 +index 0000000000..4f5075bb58 +--- /dev/null ++++ b/Plugins/CDIReader/Reader/DataSource.cxx +@@ -0,0 +1,56 @@ ++//#include "cdi_tools.h" ++#include "DataSource.h" ++#include "cdi.h" ++ ++namespace DataSource ++{ ++ ++CDIObject::CDIObject(std::string newURI) ++{ ++ this->openURI(newURI); ++} ++ ++int CDIObject::openURI(std::string newURI) ++{ ++ this->setVoid(); ++ this->URI = newURI; ++ ++ // check if we got either *.Grib or *.nc data ++ std::string check = this->URI.substr((URI.size() - 4), this->URI.size()); ++ if (check == "grib" || check == ".grb") ++ { ++ this->type = GRIB; ++ } ++ else ++ { ++ this->type = NC; ++ } ++ ++ this->StreamID = streamOpenRead(this->URI.c_str()); ++ if (this->StreamID < 0) ++ { ++ this->setVoid(); ++ return 0; ++ } ++ ++ this->VListID = streamInqVlist(this->StreamID); ++ return 1; ++} ++ ++void CDIObject::setVoid() ++{ ++ if (this->StreamID > -1) ++ streamClose(this->StreamID); ++ ++ StreamID = -1; ++ VListID = -1; ++ type = VOID; ++} ++ ++CDIObject::~CDIObject() ++{ ++ URI = ""; ++ this->setVoid(); ++} ++ ++}; +diff --git a/Plugins/CDIReader/Reader/DataSource.h b/Plugins/CDIReader/Reader/DataSource.h +new file mode 100644 +index 0000000000..f3749f2f21 +--- /dev/null ++++ b/Plugins/CDIReader/Reader/DataSource.h +@@ -0,0 +1,39 @@ ++#ifndef CDI_DATA_SOURCE ++#define CDI_DATA_SOURCE ++ ++#include <string> ++ ++namespace DataSource ++{ ++class CDIObject ++{ ++ enum stype ++ { ++ VOID, ++ GRIB, ++ NC ++ }; ++ std::string URI; ++ int StreamID; ++ int VListID; ++ stype type; ++ ++public: ++ void setVoid(); ++ CDIObject(std::string URI); ++ CDIObject() ++ { ++ this->StreamID = -1; ++ this->setVoid(); ++ } ++ ~CDIObject(); ++ int openURI(std::string URI); ++ std::string getURI() const { return URI; } ++ int getStreamID() const { return StreamID; } ++ int getVListID() const { return VListID; } ++ stype getType() const { return type; } ++ bool isVoid() const { return this->type == VOID; } ++}; ++ ++}; ++#endif // CDI_DATA_SOURCE +diff --git a/Plugins/CDIReader/Reader/vtkCDIReader.cxx b/Plugins/CDIReader/Reader/vtkCDIReader.cxx +index 2a1916bb61..28bd568721 100644 +--- a/Plugins/CDIReader/Reader/vtkCDIReader.cxx ++++ b/Plugins/CDIReader/Reader/vtkCDIReader.cxx +@@ -57,6 +57,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + #include "vtksys/FStream.hxx" + #include "vtksys/SystemTools.hxx" + ++#include "DataSource.h" + #include "cdi_tools.h" + + #include <set> +@@ -176,8 +177,6 @@ vtkCDIReader::vtkCDIReader() + this->SetNumberOfInputPorts(0); + this->SetNumberOfOutputPorts(1); + +- this->StreamID = -1; +- this->VListID = -1; + this->VariableDimensions = vtkSmartPointer<vtkStringArray>::New(); + this->AllDimensions = vtkSmartPointer<vtkStringArray>::New(); + this->AllVariableArrayNames = vtkSmartPointer<vtkStringArray>::New(); +@@ -231,13 +230,6 @@ void vtkCDIReader::DestroyData() + vtkCDIReader::~vtkCDIReader() + { + vtkDebugMacro("Destructing vtkCDIReader..."); +- this->SetFileName(nullptr); +- +- if (this->StreamID >= 0) +- { +- streamClose(this->StreamID); +- this->StreamID = -1; +- } + + this->DestroyData(); + +@@ -307,9 +299,13 @@ int vtkCDIReader::RequestInformation( + + vtkDebugMacro("In vtkCDIReader::RequestInformation setting VerticalLevelRange"); + this->VerticalLevelRange[0] = 0; +- this->VerticalLevelRange[1] = this->MaximumNVertLevels - 1; ++ if (VerticalLevelRange[1] != this->MaximumNVertLevels - 1) ++ { ++ this->VerticalLevelRange[1] = this->MaximumNVertLevels - 1; ++ this->Modified(); ++ } + +- if (!this->BuildVarArrays()) ++ if (!this->GetVars()) + { + return 0; + } +@@ -334,9 +330,9 @@ vtkSmartPointer<vtkDoubleArray> vtkCDIReader::ReadTimeAxis() + if ((this->FileSeriesNumber == 0) && (!this->TimeSet)) + { + +- int taxisID = vlistInqTaxis(this->VListID); ++ int taxisID = vlistInqTaxis(this->DataFile.getVListID()); + int calendar = taxisInqCalendar(taxisID); +- streamInqTimestep(this->StreamID, 0); ++ streamInqTimestep(this->DataFile.getStreamID(), 0); + int vdate = taxisInqVdate(taxisID); + int vtime = taxisInqVtime(taxisID); + +@@ -371,9 +367,9 @@ vtkSmartPointer<vtkDoubleArray> vtkCDIReader::ReadTimeAxis() + int end = start + this->NumberOfTimeSteps; + for (int step = start; step < end; step++) + { +- int taxisID = vlistInqTaxis(this->VListID); ++ int taxisID = vlistInqTaxis(this->DataFile.getVListID()); + int calendar = taxisInqCalendar(taxisID); +- streamInqTimestep(this->StreamID, counter); ++ streamInqTimestep(this->DataFile.getStreamID(), counter); + int vdate = taxisInqVdate(taxisID); + int vtime = taxisInqVtime(taxisID); + double timevalue = date_to_julday(calendar, vdate); +@@ -629,7 +625,7 @@ int vtkCDIReader::RegenerateVariables() + this->NumberOfCellVars = 0; + this->NumberOfDomainVars = 0; + +- if (!this->GetDims()) ++ if (this->FileName.empty() || !this->GetDims()) + { + return 0; + } +@@ -769,9 +765,8 @@ void vtkCDIReader::SetDefaults() + this->DTime = 0; + this->FileSeriesNumber = 0; + this->NumberOfFiles = 1; +- this->NeedHorizontalGridFile = false; + this->NeedVerticalGridFile = false; +- ++ this->GridID = -1; + this->NumberOfProcesses = 1; + + this->BuildDomainArrays = false; +@@ -786,50 +781,14 @@ void vtkCDIReader::SetDefaults() + //---------------------------------------------------------------------------- + // Get dimensions of key NetCDF variables + //---------------------------------------------------------------------------- +-int vtkCDIReader::OpenFile() +-{ +- // check if we got either *.Grib or *.nc data +- std::string file = this->FileName; +- std::string check = file.substr((file.size() - 4), file.size()); +- if (check == "grib" || check == ".grb") +- { +- this->Grib = true; +- } +- else +- { +- this->Grib = false; +- } +- +- if (this->StreamID >= 0) +- { +- streamClose(this->StreamID); +- this->StreamID = -1; +- this->VListID = -1; +- } +- +- this->StreamID = streamOpenRead(this->FileNameGrid.c_str()); +- if (this->StreamID < 0) +- { +- return 0; +- } +- +- vtkDebugMacro("In vtkCDIReader::RequestInformation read file okay"); +- this->VListID = streamInqVlist(this->StreamID); +- +- int nvars = vlistNvars(this->VListID); +- char varname[CDI_MAX_NAME]; +- for (int varID = 0; varID < nvars; ++varID) +- { +- vlistInqVarName(this->VListID, varID, varname); +- } +- +- return 1; +-} + + //---------------------------------------------------------------------------- + void vtkCDIReader::GuessGridFile() + { +- std::string fallback = vtksys::SystemTools::GetParentDirectory(this->FileName) + "/grid.nc"; ++ std::string fallback = vtksys::SystemTools::GetParentDirectory(this->FileName); ++ if (fallback.empty()) ++ fallback = "."; ++ fallback += "/grid.nc"; + + std::string guess; + if (!this->Grib) +@@ -839,15 +798,22 @@ void vtkCDIReader::GuessGridFile() + { + if (vtksys::SystemTools::TestFileAccess(guess, vtksys::TEST_FILE_READ)) + { +- this->FileNameGrid = guess; +- return; ++ this->GridFile.openURI(guess); ++ if (this->GridFile.isVoid()) ++ { ++ vtkWarningMacro("Cannot handle grid file " ++ << guess << " indicated by grid_file_uri attribute in " << this->FileName ++ << " Trying fallback guess " << fallback); ++ } ++ else ++ return; + } + else +- vtkWarningMacro("Could not find grid file " ++ vtkWarningMacro("Cannot open grid file " + << guess << " indicated by grid_file_uri attribute in " << this->FileName + << " Trying fallback guess " << fallback); + } +- this->FileNameGrid = fallback; ++ this->GridFile.openURI(fallback); + } + + //---------------------------------------------------------------------------- +@@ -855,147 +821,132 @@ void vtkCDIReader::GuessGridFile() + //---------------------------------------------------------------------------- + int vtkCDIReader::GetDims() + { +- if (!this->FileName.empty()) ++ if (this->FileName.empty()) + { +- this->FileNameGrid = this->FileName; +- if (this->VListID < 0 || this->StreamID < 0) +- { +- if (!this->OpenFile()) +- { +- return 0; +- } +- } +- +- this->ReadHorizontalGridData(); +- if (this->NeedHorizontalGridFile) +- { +- // if there is no grid information in the data file, try opening +- // an additional grid file named grid.nc in the same directory to +- // read in the grid information +- if (this->StreamID >= 0) +- { +- streamClose(this->StreamID); +- this->StreamID = -1; +- this->VListID = -1; +- } ++ vtkErrorMacro("No file name provided. Cannot get dimensions"); ++ return 0; ++ } + +- char* directory = new char[strlen(this->FileName.c_str()) + 1]; +- strcpy(directory, this->FileName.c_str()); ++ DataFile.openURI(FileName); ++ if (DataFile.isVoid()) ++ { ++ vtkErrorMacro("GetDims: Could not open " << DataFile.getURI()); ++ return 0; ++ } + +- this->GuessGridFile(); +- if (!this->OpenFile()) +- { +- return 0; +- } +- if (!this->ReadHorizontalGridData()) +- { +- vtkErrorMacro("Couldn't open grid information in data nor in the grid file."); +- return 0; +- } ++ if (GridFile.isVoid()) ++ GridFile.openURI(FileName); ++ if (GridFile.isVoid()) ++ { ++ vtkErrorMacro("GetDims: Could not open horizontal grid file.\nTried " << GridFile.getURI()); ++ return 0; ++ } + +- this->FileNameGrid = this->FileName; +- if (!this->OpenFile()) +- { +- return 0; +- } ++ if (!this->ReadHorizontalGridData()) ++ { ++ this->GuessGridFile(); ++ if (!this->ReadHorizontalGridData()) ++ { ++ vtkErrorMacro("Could not get horizontal Grid. \nTried " << GridFile.getURI()); ++ return 0; + } ++ } + +- this->ReadVerticalGridData(); +- if (this->NeedVerticalGridFile) +- { +- // if there is no grid information in the data file, try opening +- // an additional grid file named grid.nc in the same directory to +- // read in the grid information +- if (this->StreamID >= 0) +- { +- streamClose(this->StreamID); +- this->StreamID = -1; +- this->VListID = -1; +- } ++ VGridFile.openURI(FileName); ++ int found = ReadVerticalGridData(); ++ if (!found) ++ { ++ VGridFile.openURI(GridFile.getURI()); ++ found = ReadVerticalGridData(); ++ } + +- char* directory = new char[strlen(this->FileName.c_str()) + 1]; +- strcpy(directory, this->FileName.c_str()); +- if (!this->OpenFile()) +- { +- return 0; +- } ++ if (!found) ++ { ++ vtkErrorMacro("Could not get Vertical grid"); ++ return 0; ++ } + +- if (!this->ReadVerticalGridData()) +- { +- vtkDebugMacro("Couldn't neither open grid information within the data netCDF file, nor " +- "in the grid.nc file."); +- vtkErrorMacro("Couldn't neither open grid information within the data netCDF file, nor " +- "in the grid.nc file."); +- return 0; +- } ++ this->FillGridDimensions(); + +- this->FileNameGrid = this->FileName; +- if (!this->OpenFile()) ++ try ++ { ++ if (this->DimensionSelection >= 0) ++ { ++ if (DimensionSelection >= DimensionSets.size()) + { ++ vtkErrorMacro("Trying to select inexistent dimensionset " ++ << DimensionSelection << " " << DimensionSets.size() << " are available."); + return 0; + } ++ for (int i = 0; i < Grids.size(); i++) ++ if (this->DimensionSets.at(this->DimensionSelection).GridSize == Grids.at(i).Size) ++ { ++ this->DimensionSets.at(this->DimensionSelection).GridID = Grids.at(i).GridID; ++ this->GridID = i; ++ } ++ this->ZAxisID = this->DimensionSets.at(this->DimensionSelection).ZAxisID; ++ vtkDebugMacro("NEW ZAxisID" << ZAxisID << " from " ++ << this->DimensionSets.at(this->DimensionSelection).ZAxisID); + } ++ } ++ catch (const std::out_of_range& oor) ++ { ++ vtkErrorMacro("Out of Range error in GetDims trying to set Grid and ZAxisID: " << oor.what()); ++ return 0; ++ } + +- if (this->DimensionSelection > 0) +- { +- vlistNgrids(this->VListID); +- int nzaxis = vlistNzaxis(this->VListID); +- +- this->GridID = vlistGrid(this->VListID, this->DimensionSelection / nzaxis); +- this->ZAxisID = vlistZaxis( +- this->VListID, this->DimensionSelection - (nzaxis * this->DimensionSelection / nzaxis)); +- } +- +- if (this->GridID != -1) +- { +- this->NumberOfCells = static_cast<int>(gridInqSize(this->GridID)); +- +- if (this->NumberOfPoints and +- this->NumberOfPoints != static_cast<int>(gridInqSize(this->GridID))) +- vtkDebugMacro("GetDims: Changing number of points from " +- << this->NumberOfPoints << " to " << static_cast<int>(gridInqSize(this->GridID))); +- this->NumberOfPoints = static_cast<int>(gridInqSize(this->GridID)); +- this->PointsPerCell = gridInqNvertex(this->GridID); +- } +- +- int ntsteps = 0; +- if (this->Grib) +- { +- while (streamInqTimestep(this->StreamID, ntsteps)) +- ntsteps++; +- } +- else ++ try ++ { ++ if (GridID != -1 && Grids.at(this->GridID).GridID != -1) + { +- ntsteps = vlistNtsteps(this->VListID); +- } +- this->NumberOfTimeSteps = ntsteps; ++ this->NumberOfCells = static_cast<int>(Grids.at(GridID).Size); + +- this->MaximumNVertLevels = 1; +- if (this->ZAxisID != -1) +- { +- this->MaximumNVertLevels = zaxisInqSize(this->ZAxisID); ++ if (this->NumberOfPoints and this->NumberOfPoints != this->NumberOfCells) ++ vtkDebugMacro("GetDims: Changing number of points from " << this->NumberOfPoints << " to " ++ << this->NumberOfCells); ++ this->NumberOfPoints = this->NumberOfCells; ++ this->PointsPerCell = Grids.at(this->GridID).PointsPerCell; ++ vtkDebugMacro("GetDims: Found PointsPerCell to be " << this->PointsPerCell << " for grid " ++ << this->GridID); + } ++ } ++ catch (const std::out_of_range& oor) ++ { ++ vtkErrorMacro("Out of Range error in GetDims trying to set NumberOfPoints " << oor.what()); ++ vtkErrorMacro("Grids.size " << Grids.size() << "\t GridID " << GridID); ++ return 0; ++ } + +- this->FillGridDimensions(); ++ int ntsteps = 0; ++ if (this->Grib) ++ { ++ while (streamInqTimestep(this->DataFile.getStreamID(), ntsteps)) ++ ntsteps++; + } + else + { +- vtkDebugMacro("No Filename yet set!"); ++ ntsteps = vlistNtsteps(this->DataFile.getVListID()); ++ } ++ this->NumberOfTimeSteps = ntsteps; ++ ++ this->MaximumNVertLevels = 1; ++ if (this->ZAxisID != -1) ++ { ++ this->MaximumNVertLevels = zaxisInqSize(this->ZAxisID); + } + + return 1; + } + +-//---------------------------------------------------------------------------- ++//--------------------------------------------------------------------------------------------------- + // Read Horizontal Grid Data +-//---------------------------------------------------------------------------- ++// Checks if there is at least one grid with >= 3 vertices, and if yes, sets GridID to this grid's ++// ID ++//--------------------------------------------------------------------------------------------------- + int vtkCDIReader::ReadHorizontalGridData() + { +- int vlistID_l = this->VListID; +- this->GridID = -1; +- this->ZAxisID = -1; +- this->SurfID = -1; +- ++ Grids.resize(0); ++ int vlistID_l = this->GridFile.getVListID(); + int ngrids = vlistNgrids(vlistID_l); + for (int i = 0; i < ngrids; ++i) + { +@@ -1004,17 +955,13 @@ int vtkCDIReader::ReadHorizontalGridData() + + if (nv >= 3) // ((nv == 3 || nv == 4)) // && gridInqType(gridID_l) == GRID_UNSTRUCTURED) + { +- this->GridID = gridID_l; +- break; ++ Grid grid{ .GridID = gridID_l, .Size = gridInqSize(gridID_l), .PointsPerCell = nv }; ++ Grids.push_back(grid); + } + } + +- if (this->GridID == -1) +- { +- this->NeedHorizontalGridFile = true; ++ if (Grids.size() == 0) + return 0; +- } +- + return 1; + } + +@@ -1024,37 +971,30 @@ int vtkCDIReader::ReadHorizontalGridData() + int vtkCDIReader::ReadVerticalGridData() + { + this->ZAxisID = -1; +- this->SurfID = -1; +- int nzaxis = vlistNzaxis(this->VListID); +- ++ int nzaxis = vlistNzaxis(this->VGridFile.getVListID()); ++ int found = 0; + for (int i = 0; i < nzaxis; ++i) + { +- int zaxisID_l = vlistZaxis(this->VListID, i); ++ int zaxisID_l = vlistZaxis(this->VGridFile.getVListID(), i); + if (zaxisInqSize(zaxisID_l) == 1 || zaxisInqType(zaxisID_l) == ZAXIS_SURFACE) + { +- this->SurfID = zaxisID_l; +- this->ZAxisID = zaxisID_l; +- break; ++ this->SurfIDs.insert(zaxisID_l); ++ ++ found = 1; + } + } + + for (int i = 0; i < nzaxis; ++i) + { +- int zaxisID_l = vlistZaxis(this->VListID, i); ++ int zaxisID_l = vlistZaxis(this->VGridFile.getVListID(), i); + if (zaxisInqSize(zaxisID_l) > 1) + { +- this->ZAxisID = zaxisID_l; ++ found = 1; + break; + } + } + +- if (this->ZAxisID == -1) +- { +- this->NeedVerticalGridFile = true; +- return 0; +- } +- +- return 1; ++ return found; + } + + //---------------------------------------------------------------------------- +@@ -1065,37 +1005,42 @@ int vtkCDIReader::GetVars() + int cellVarIndex = -1; + int pointVarIndex = -1; + int domainVarIndex = -1; ++ int numVars = vlistNvars(this->DataFile.getVListID()); ++ ++ vtkDebugMacro("Found " << numVars << " as Variables for VListID " << this->DataFile.getVListID()); + +- int numVars = vlistNvars(this->VListID); + for (int i = 0; i < numVars; i++) + { + int varID = i; + cdi_tools::CDIVar aVar; + +- aVar.StreamID = this->StreamID; ++ aVar.StreamID = this->DataFile.getStreamID(); + aVar.VarID = varID; +- aVar.GridID = vlistInqVarGrid(this->VListID, varID); +- aVar.ZAxisID = vlistInqVarZaxis(this->VListID, varID); ++ aVar.GridID = vlistInqVarGrid(this->DataFile.getVListID(), varID); ++ aVar.ZAxisID = vlistInqVarZaxis(this->DataFile.getVListID(), varID); + aVar.GridSize = static_cast<int>(gridInqSize(aVar.GridID)); + aVar.NLevel = zaxisInqSize(aVar.ZAxisID); + aVar.Type = 0; + aVar.ConstTime = 0; ++ vlistInqVarName(this->DataFile.getVListID(), varID, aVar.Name); ++ vtkDebugMacro("Processing variable " << i << '\t' << aVar.Name); + + // to do multiple grids: + // - Check how many grids are available + // - Check if all grids can be reconstructed, or if bnds are all zero + // - Reform gui to load either Cell, Point or Edge data + +- if (vlistInqVarTsteptype(this->VListID, varID) == TIME_CONSTANT) ++ if (vlistInqVarTsteptype(this->DataFile.getVListID(), varID) == TIME_CONSTANT) + { + aVar.ConstTime = 1; + } +- if (aVar.ZAxisID != this->ZAxisID && aVar.ZAxisID != this->SurfID) ++ if (aVar.ZAxisID != this->ZAxisID && SurfIDs.count(aVar.ZAxisID) == 0) ++ // We are handling a different 3D Axis. + { ++ vtkDebugMacro("Skipping " << aVar.Name << " as it has the wrong ZAxis " << aVar.ZAxisID); + continue; + } + +- vlistInqVarName(this->VListID, varID, aVar.Name); + aVar.Type = 2; + if (aVar.NLevel > 1) + { +@@ -1112,19 +1057,23 @@ int vtkCDIReader::GetVars() + } + else if ((aVar.GridSize < this->NumberOfCells) && (this->PointsPerCell == 3)) + { ++ vtkDebugMacro("Skipping " << aVar.Name << " as it has the wrong GridSize " << aVar.GridSize ++ << " != " << this->NumberOfCells); + if (this->NumberOfPoints and this->NumberOfPoints != aVar.GridSize) + { + vtkWarningMacro("Not adding " + << aVar.Name << " as point var, as it's size " << aVar.GridSize + << " does not correspond to our understanding of the correct size for 'the' point grid: " + << this->NumberOfPoints); +- break; ++ continue; + } + isPointData = true; + this->NumberOfPoints = aVar.GridSize; + } + else + { ++ vtkDebugMacro("Skipping " << aVar.Name << " as it has the wrong GridSize " << aVar.GridSize ++ << " != " << this->NumberOfCells); + continue; + } + +@@ -1240,7 +1189,7 @@ int vtkCDIReader::BuildVarArrays() + << " NumberOfPointVars: " << this->NumberOfPointVars); + if (this->NumberOfCellVars == 0) + { +- vtkErrorMacro("No cell variables found!"); ++ vtkDebugMacro("No cell variables found!"); + } + + for (int var = 0; var < this->NumberOfPointVars; var++) +@@ -1443,39 +1392,63 @@ int vtkCDIReader::ConstructGridGeometry() + CHECK_NEW(this->DepthVar); + + vtkDebugMacro("Start reading Vertices"); +- gridInqXboundsPart( +- this->GridID, (this->BeginCell * this->PointsPerCell), size, cLonVertices.data()); +- gridInqYboundsPart( +- this->GridID, (this->BeginCell * this->PointsPerCell), size, cLatVertices.data()); ++ try ++ { ++ gridInqXboundsPart(Grids.at(this->GridID).GridID, (this->BeginCell * this->PointsPerCell), size, ++ cLonVertices.data()); ++ gridInqYboundsPart(Grids.at(this->GridID).GridID, (this->BeginCell * this->PointsPerCell), size, ++ cLatVertices.data()); ++ } ++ catch (const std::out_of_range& oor) ++ { ++ vtkErrorMacro( ++ "Out of Range error trying to get the grid id for reading vertices: " << oor.what()); ++ return 0; ++ } + vtkDebugMacro("Done reading Vertices"); ++ vtkDebugMacro("Getting vertical axis" << this->ZAxisID << " expecting up to " ++ << this->MaximumNVertLevels << " levels."); + zaxisInqLevels(this->ZAxisID, this->DepthVar); ++ vtkDebugMacro("Got vertical axis" << this->ZAxisID); + char units[CDI_MAX_NAME]; + this->OrigConnections.resize(size); + int new_cells[2]; +- +- if (this->ProjectionMode != projection::CATALYST) ++ try + { +- gridInqXunits(this->GridID, units); +- if (strncmp(units, "degree", 6) == 0) ++ if (this->ProjectionMode != projection::CATALYST) + { +- for (int i = 0; i < size; i++) ++ gridInqXunits(Grids.at(this->GridID).GridID, units); ++ if (strncmp(units, "degree", 6) == 0) + { +- cLonVertices[i] = vtkMath::RadiansFromDegrees(cLonVertices[i]); ++ for (int i = 0; i < size; i++) ++ { ++ cLonVertices[i] = vtkMath::RadiansFromDegrees(cLonVertices[i]); ++ } + } +- } +- gridInqYunits(this->GridID, units); +- if (strncmp(units, "degree", 6) == 0) +- { +- for (int i = 0; i < size; i++) ++ gridInqYunits(Grids.at(this->GridID).GridID, units); ++ if (strncmp(units, "degree", 6) == 0) + { +- cLatVertices[i] = vtkMath::RadiansFromDegrees(cLatVertices[i]); ++ for (int i = 0; i < size; i++) ++ { ++ cLatVertices[i] = vtkMath::RadiansFromDegrees(cLatVertices[i]); ++ } + } + } + } ++ catch (const std::out_of_range& oor) ++ { ++ vtkErrorMacro("Out of Range error trying to get the grid id for getting the coordinate units " ++ "for projecting: " ++ << oor.what()); ++ return 0; ++ } + + // check for duplicates in the Point list and update the triangle list ++ vtkDebugMacro("Removing duplicates for clon/clat, size = " << size); ++ + this->RemoveDuplicates( + cLonVertices.data(), cLatVertices.data(), size, &this->OrigConnections[0], new_cells); ++ vtkDebugMacro("Removed duplicates for clon/clat"); + this->NumberLocalCells = new_cells[0] / this->PointsPerCell; + this->NumberLocalPoints = new_cells[1]; + if (this->NumberOfPoints and this->NumberOfPoints != new_cells[1]) +@@ -1524,31 +1497,43 @@ int vtkCDIReader::ConstructGridGeometry() + if (this->Piece == 0) + { + int new_cells2[2]; +- double clon_vert2[size2]; +- double clat_vert2[size2]; +- +- gridInqXboundsPart(this->GridID, 0, size2, clon_vert2); +- gridInqYboundsPart(this->GridID, 0, size2, clat_vert2); +- +- gridInqXunits(this->GridID, units); +- if (strncmp(units, "degree", 6) == 0) ++ std::vector<double> clon_vert2(size2); ++ std::vector<double> clat_vert2(size2); ++ try + { +- for (int i = 0; i < size2; i++) ++ gridInqXboundsPart(Grids.at(this->GridID).GridID, 0, size2, clon_vert2.data()); ++ gridInqYboundsPart(Grids.at(this->GridID).GridID, 0, size2, clat_vert2.data()); ++ ++ gridInqXunits(Grids.at(this->GridID).GridID, units); ++ if (strncmp(units, "degree", 6) == 0) + { +- clon_vert2[i] = vtkMath::RadiansFromDegrees(clon_vert2[i]); ++ for (int i = 0; i < size2; i++) ++ { ++ clon_vert2[i] = vtkMath::RadiansFromDegrees(clon_vert2[i]); ++ } + } +- } + +- gridInqYunits(this->GridID, units); +- if (strncmp(units, "degree", 6) == 0) +- { +- for (int i = 0; i < size2; i++) ++ gridInqYunits(Grids.at(this->GridID).GridID, units); ++ if (strncmp(units, "degree", 6) == 0) + { +- clat_vert2[i] = vtkMath::RadiansFromDegrees(clat_vert2[i]); ++ for (int i = 0; i < size2; i++) ++ { ++ clat_vert2[i] = vtkMath::RadiansFromDegrees(clat_vert2[i]); ++ } + } + } ++ catch (const std::out_of_range& oor) ++ { ++ vtkErrorMacro( ++ "Out of Range error trying to get the grid id for converting lat/lon in parallel: " ++ << oor.what()); ++ return 0; ++ } ++ ++ vtkDebugMacro("Removing duplicates for clon/clat2"); + +- this->RemoveDuplicates(clon_vert2, clat_vert2, size2, vertex_ids2.data(), new_cells2); ++ this->RemoveDuplicates( ++ clon_vert2.data(), clat_vert2.data(), size2, vertex_ids2.data(), new_cells2); + for (int i = 1; i < this->NumPieces; i++) + { + this->Controller->Send(vertex_ids2.data(), size2, i, 101); +@@ -1676,25 +1661,38 @@ int vtkCDIReader::LoadClonClatVars() + std::vector<double> cLon_l(this->NumberLocalCells); + std::vector<double> cLat_l(this->NumberLocalCells); + +- gridInqXvalsPart(this->GridID, this->BeginCell, this->NumberLocalCells, cLon_l.data()); +- gridInqYvalsPart(this->GridID, this->BeginCell, this->NumberLocalCells, cLat_l.data()); ++ gridInqXvalsPart( ++ Grids.at(this->GridID).GridID, this->BeginCell, this->NumberLocalCells, cLon_l.data()); ++ gridInqYvalsPart( ++ Grids.at(this->GridID).GridID, this->BeginCell, this->NumberLocalCells, cLat_l.data()); + + char units[CDI_MAX_NAME]; +- gridInqXunits(this->GridID, units); +- if (strncmp(units, "degree", 6) == 0) ++ ++ try + { +- for (int i = 0; i < this->NumberLocalCells; i++) ++ gridInqXunits(Grids.at(this->GridID).GridID, units); ++ if (strncmp(units, "degree", 6) == 0) ++ { ++ for (int i = 0; i < this->NumberLocalCells; i++) ++ { ++ cLon_l[i] = vtkMath::RadiansFromDegrees(cLon_l[i]); ++ } ++ } ++ gridInqYunits(Grids.at(this->GridID).GridID, units); ++ if (strncmp(units, "degree", 6) == 0) + { +- cLon_l[i] = vtkMath::RadiansFromDegrees(cLon_l[i]); ++ for (int i = 0; i < this->NumberLocalCells; i++) ++ { ++ cLat_l[i] = vtkMath::RadiansFromDegrees(cLat_l[i]); ++ } + } + } +- gridInqYunits(this->GridID, units); +- if (strncmp(units, "degree", 6) == 0) ++ catch (const std::out_of_range& oor) + { +- for (int i = 0; i < this->NumberLocalCells; i++) +- { +- cLat_l[i] = vtkMath::RadiansFromDegrees(cLat_l[i]); +- } ++ vtkErrorMacro( ++ "Out of Range error trying to get the grid id for converting lat/lon in LoadClonClatVars: " ++ << oor.what()); ++ return 0; + } + + if (this->ShowMultilayerView) +@@ -1823,7 +1821,7 @@ int vtkCDIReader::CheckForMaskData() + { + const double maskVal = this->UseCustomMaskValue + ? this->CustomMaskValue +- : vlistInqVarMissval(this->VListID, this->Internals->CellVars[mask_pos].VarID); ++ : vlistInqVarMissval(this->DataFile.getVListID(), this->Internals->CellVars[mask_pos].VarID); + + cdi_tools::CDIVar* cdiVar = &(this->Internals->CellVars[mask_pos]); + if (this->ShowMultilayerView) +@@ -1923,7 +1921,7 @@ bool vtkCDIReader::BuildDomainCellVars() + CHECK_NEW(this->DomainCellVar); + double val = 0; + int mask_pos = 0; +- int numVars = vlistNvars(this->VListID); ++ int numVars = vlistNvars(this->DataFile.getVListID()); + + for (int i = 0; i < numVars; i++) + { +@@ -2780,7 +2778,7 @@ int vtkCDIReader::LoadCellVarDataTemplate( + //------------------------------------------------------------------------------ + int vtkCDIReader::ReplaceFillWithNan(const int varID, vtkDataArray* dataArray) + { +- double miss = vlistInqVarMissval(this->VListID, varID); ++ double miss = vlistInqVarMissval(this->DataFile.getVListID(), varID); + + // NaN only available with float and double. + if (dataArray->GetDataType() == VTK_FLOAT) +@@ -3093,11 +3091,11 @@ int vtkCDIReader::LoadDomainVarData(int variableIndex) + //----------------------------------------------------------------------------- + int vtkCDIReader::FillGridDimensions() + { +- int ngrids = vlistNgrids(this->VListID); +- int nzaxis = vlistNzaxis(this->VListID); +- int nvars = vlistNvars(this->VListID); +- this->AllDimensions->SetNumberOfValues(0); +- this->VariableDimensions->SetNumberOfValues(ngrids * nzaxis); ++ this->DimensionSets.resize(0); ++ ++ int ngrids = vlistNgrids(this->DataFile.getVListID()); ++ int nzaxis = vlistNzaxis(this->DataFile.getVListID()); ++ int nvars = vlistNvars(this->DataFile.getVListID()); + char nameGridX[CDI_MAX_NAME]; + char nameGridY[CDI_MAX_NAME]; + char nameLev[CDI_MAX_NAME]; +@@ -3106,40 +3104,59 @@ int vtkCDIReader::FillGridDimensions() + + for (int k = 0; k < nvars; k++) + { +- int i = vlistInqVarGrid(this->VListID, k); +- int j = vlistInqVarZaxis(this->VListID, k); ++ int i = vlistInqVarGrid(this->DataFile.getVListID(), k); ++ int j = vlistInqVarZaxis(this->DataFile.getVListID(), k); + hits.insert(std::to_string(i) + "x" + std::to_string(j)); + // IDs are not 0 to n-1 but can be 30-ish for a file with 3 grids. + // they map to the gridID_l and zaxisID_l values below. + // Thus we need to a map to catch rather unpredictable values. + } +- ++ size_t counter = 0; + for (int i = 0; i < ngrids; ++i) + { + for (int j = 0; j < nzaxis; ++j) + { + std::string dimEncoding("("); +- int gridID_l = vlistGrid(this->VListID, i); ++ int gridID_l = vlistGrid(this->DataFile.getVListID(), i); + gridInqXname(gridID_l, nameGridX); + gridInqYname(gridID_l, nameGridY); + dimEncoding += nameGridX; + dimEncoding += ", "; + dimEncoding += nameGridY; + dimEncoding += ", "; +- int zaxisID_l = vlistZaxis(this->VListID, j); ++ int zaxisID_l = vlistZaxis(this->DataFile.getVListID(), j); + zaxisInqName(zaxisID_l, nameLev); + dimEncoding += nameLev; + dimEncoding += ")"; + + if (hits.count(std::to_string(gridID_l) + "x" + std::to_string(zaxisID_l)) == 0) + { ++ vtkDebugMacro("vtkCDIReader::FillGridDimensions: i, j, dimEncoding: " ++ << i << '\t' << j << "\t" << gridID_l << '\t' << zaxisID_l << "\t" << dimEncoding ++ << " - has no hits.\n"); + continue; // skip empty grid combinations + } ++ vtkDebugMacro("vtkCDIReader::FillGridDimensions: i, j, GridID, ZAxisID, dimEncoding: " ++ << i << '\t' << j << "\t" << gridID_l << '\t' << zaxisID_l << "\t" << dimEncoding ++ << " - has hits.\n"); + +- this->AllDimensions->InsertNextValue(dimEncoding); +- this->VariableDimensions->SetValue(i * nzaxis + j, dimEncoding.c_str()); ++ dimset ds{ .DimsetID = counter, ++ .GridID = -1, ++ .ZAxisID = zaxisID_l, ++ .GridSize = gridInqSize(gridID_l), ++ .NLevel = zaxisInqSize(zaxisID_l), ++ .label = dimEncoding }; ++ DimensionSets.push_back(ds); ++ counter++; + } + } ++ this->AllDimensions->SetNumberOfValues(0); ++ this->VariableDimensions->SetNumberOfValues(counter); ++ for (int i = 0; i < counter; i++) ++ { ++ this->AllDimensions->InsertNextValue(DimensionSets[i].label); ++ this->VariableDimensions->SetValue(i, DimensionSets[i].label.c_str()); ++ } + + return 1; + } +@@ -3149,6 +3166,7 @@ int vtkCDIReader::FillGridDimensions() + //----------------------------------------------------------------------------- + void vtkCDIReader::SetDimensions(const char* dimensions) + { ++ vtkDebugMacro("In SetDimensions"); + for (vtkIdType i = 0; i < this->VariableDimensions->GetNumberOfValues(); i++) + { + if (this->VariableDimensions->GetValue(i) == dimensions) +@@ -3172,7 +3190,10 @@ void vtkCDIReader::SetDimensions(const char* dimensions) + this->DestroyData(); + this->RegenerateVariables(); + if (this->GridReconstructed) ++ { + this->RegenerateGeometry(); ++ } ++ vtkDebugMacro("Out SetDimensions"); + } + + //---------------------------------------------------------------------------- +@@ -3319,18 +3340,13 @@ const char* vtkCDIReader::GetDomainArrayName(int index) + } + + //---------------------------------------------------------------------------- +-// Set to lat/lon (equidistant cylindrical) projection. ++// Load a new file. + //---------------------------------------------------------------------------- + void vtkCDIReader::SetFileName(const char* val) + { + if (this->FileName.empty() || val == nullptr || strcmp(this->FileName.c_str(), val) != 0) + { +- if (this->StreamID >= 0) +- { +- streamClose(this->StreamID); +- this->StreamID = -1; +- this->VListID = -1; +- } ++ this->DataFile.setVoid(); + this->Modified(); + if (val == nullptr) + { +@@ -3351,13 +3367,21 @@ void vtkCDIReader::SetVerticalLevel(int level) + { + if (this->VerticalLevelSelected != level) + { +- if (level < 0 || level > this->MaximumNVertLevels - 1) ++ if (level < 0) + { + vtkErrorMacro("Requested inexistent vertical level: " + << level << ".\nThe level must be the in range [ 0 ; " << this->MaximumNVertLevels - 1 + << " ]."); + return; + } ++ ++ if (level > this->MaximumNVertLevels - 1) ++ { ++ vtkWarningMacro("Requested inexistent vertical level: " ++ << level << ".\nThe level must be the in range [ 0 ; " << this->MaximumNVertLevels - 1 ++ << " ]. \nTriying with 0."); ++ level = 0; ++ } + this->VerticalLevelSelected = level; + this->Modified(); + vtkDebugMacro("Set VerticalLevelSelected to: " << level); +diff --git a/Plugins/CDIReader/Reader/vtkCDIReader.h b/Plugins/CDIReader/Reader/vtkCDIReader.h +index 0e1001694c..44f9073a97 100644 +--- a/Plugins/CDIReader/Reader/vtkCDIReader.h ++++ b/Plugins/CDIReader/Reader/vtkCDIReader.h +@@ -46,7 +46,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + #include "projections.h" // for projection enum + ++#include "DataSource.h" + #include <memory> // for unique_ptr ++#include <unordered_set> + #include <vector> // for std::vector + + class vtkCallbackCommand; +@@ -54,6 +56,23 @@ class vtkDoubleArray; + class vtkFieldData; + class vtkMultiProcessController; + ++struct dimset ++{ ++ size_t DimsetID; ++ int GridID; ++ int ZAxisID; ++ size_t GridSize; ++ int NLevel; ++ std::string label; ++}; ++ ++struct Grid ++{ ++ int GridID; ++ size_t Size; ++ int PointsPerCell; ++}; ++ + /** + * + * @class vtkCDIReader +@@ -326,6 +345,8 @@ protected: + double Layer0OffsetRange[2]; + + int DimensionSelection; ++ std::vector<dimset> DimensionSets; ++ std::vector<Grid> Grids; + bool InvertZAxis; + bool AddCoordinateVars; + projection::Projection ProjectionMode; +@@ -370,11 +391,10 @@ protected: + int NumberOfDomainVars; + bool GridReconstructed; + +- int StreamID; +- int VListID; ++ DataSource::CDIObject DataFile, GridFile, VGridFile; + int GridID; + int ZAxisID; +- int SurfID; ++ std::unordered_set<int> SurfIDs; + + std::string TimeUnits; + std::string Calendar; +-- +GitLab + + +From 772c2460e34deeb47c3d716283299190f3d51e7a Mon Sep 17 00:00:00 2001 +From: Nils-Arne Dreier <dreier@dkrz.de> +Date: Wed, 2 Nov 2022 19:38:06 +0100 +Subject: [PATCH 2/5] clean up and formating + +including: +- move internal things to unnamed namespace in vtkCDIReader.cxx +- move structs to unnamed namespace +- captitalize struct name Dimset +- add missing braces +- add `this->` where appropriate +- no need to clear std::vector before they go out of scope +- explicit cast int to `size_t` to avoid narrowing conversion warning +- move variables which type is in unnamed namespace to Internals +- prevent crash if no grid file is available +- capitalize member variable `Type` +- fix warning `size()==0` -> `empty()` +- add some braces +--- + Plugins/CDIReader/Reader/CMakeLists.txt | 1 - + Plugins/CDIReader/Reader/DataSource.cxx | 56 ---- + Plugins/CDIReader/Reader/DataSource.h | 39 --- + Plugins/CDIReader/Reader/vtkCDIReader.cxx | 336 +++++++++++++++------- + Plugins/CDIReader/Reader/vtkCDIReader.h | 21 -- + 5 files changed, 239 insertions(+), 214 deletions(-) + delete mode 100644 Plugins/CDIReader/Reader/DataSource.cxx + delete mode 100644 Plugins/CDIReader/Reader/DataSource.h + +diff --git a/Plugins/CDIReader/Reader/CMakeLists.txt b/Plugins/CDIReader/Reader/CMakeLists.txt +index 7a1a985fe0..274104664b 100644 +--- a/Plugins/CDIReader/Reader/CMakeLists.txt ++++ b/Plugins/CDIReader/Reader/CMakeLists.txt +@@ -4,7 +4,6 @@ set(classes + set (sources + cdi_tools.cxx + projections.cxx +- DataSource.cxx + ) + set (private_headers + cdi_tools.h +diff --git a/Plugins/CDIReader/Reader/DataSource.cxx b/Plugins/CDIReader/Reader/DataSource.cxx +deleted file mode 100644 +index 4f5075bb58..0000000000 +--- a/Plugins/CDIReader/Reader/DataSource.cxx ++++ /dev/null +@@ -1,56 +0,0 @@ +-//#include "cdi_tools.h" +-#include "DataSource.h" +-#include "cdi.h" +- +-namespace DataSource +-{ +- +-CDIObject::CDIObject(std::string newURI) +-{ +- this->openURI(newURI); +-} +- +-int CDIObject::openURI(std::string newURI) +-{ +- this->setVoid(); +- this->URI = newURI; +- +- // check if we got either *.Grib or *.nc data +- std::string check = this->URI.substr((URI.size() - 4), this->URI.size()); +- if (check == "grib" || check == ".grb") +- { +- this->type = GRIB; +- } +- else +- { +- this->type = NC; +- } +- +- this->StreamID = streamOpenRead(this->URI.c_str()); +- if (this->StreamID < 0) +- { +- this->setVoid(); +- return 0; +- } +- +- this->VListID = streamInqVlist(this->StreamID); +- return 1; +-} +- +-void CDIObject::setVoid() +-{ +- if (this->StreamID > -1) +- streamClose(this->StreamID); +- +- StreamID = -1; +- VListID = -1; +- type = VOID; +-} +- +-CDIObject::~CDIObject() +-{ +- URI = ""; +- this->setVoid(); +-} +- +-}; +diff --git a/Plugins/CDIReader/Reader/DataSource.h b/Plugins/CDIReader/Reader/DataSource.h +deleted file mode 100644 +index f3749f2f21..0000000000 +--- a/Plugins/CDIReader/Reader/DataSource.h ++++ /dev/null +@@ -1,39 +0,0 @@ +-#ifndef CDI_DATA_SOURCE +-#define CDI_DATA_SOURCE +- +-#include <string> +- +-namespace DataSource +-{ +-class CDIObject +-{ +- enum stype +- { +- VOID, +- GRIB, +- NC +- }; +- std::string URI; +- int StreamID; +- int VListID; +- stype type; +- +-public: +- void setVoid(); +- CDIObject(std::string URI); +- CDIObject() +- { +- this->StreamID = -1; +- this->setVoid(); +- } +- ~CDIObject(); +- int openURI(std::string URI); +- std::string getURI() const { return URI; } +- int getStreamID() const { return StreamID; } +- int getVListID() const { return VListID; } +- stype getType() const { return type; } +- bool isVoid() const { return this->type == VOID; } +-}; +- +-}; +-#endif // CDI_DATA_SOURCE +diff --git a/Plugins/CDIReader/Reader/vtkCDIReader.cxx b/Plugins/CDIReader/Reader/vtkCDIReader.cxx +index 28bd568721..c44e81f6bb 100644 +--- a/Plugins/CDIReader/Reader/vtkCDIReader.cxx ++++ b/Plugins/CDIReader/Reader/vtkCDIReader.cxx +@@ -57,13 +57,79 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + #include "vtksys/FStream.hxx" + #include "vtksys/SystemTools.hxx" + +-#include "DataSource.h" + #include "cdi_tools.h" + + #include <set> + #include <sstream> + +-constexpr static int MAX_VARS = 100; ++namespace ++{ ++class CDIObject ++{ ++ enum stype ++ { ++ VOID, ++ GRIB, ++ NC ++ }; ++ std::string URI; ++ int StreamID; ++ int VListID; ++ stype Type; ++ ++public: ++ CDIObject(std::string URI) { this->openURI(URI); } ++ CDIObject() ++ { ++ this->StreamID = -1; ++ this->setVoid(); ++ } ++ ~CDIObject() { this->setVoid(); } ++ int openURI(std::string URI) ++ { ++ this->setVoid(); ++ this->URI = URI; ++ ++ // check if we got either *.Grib or *.nc data ++ std::string check = this->URI.substr((URI.size() - 4), this->URI.size()); ++ if (check == "grib" || check == ".grb") ++ { ++ this->Type = GRIB; ++ } ++ else ++ { ++ this->Type = NC; ++ } ++ ++ this->StreamID = streamOpenRead(this->URI.c_str()); ++ if (this->StreamID < 0) ++ { ++ this->setVoid(); ++ return 0; ++ } ++ ++ this->VListID = streamInqVlist(this->StreamID); ++ return 1; ++ } ++ ++ std::string getURI() const { return this->URI; } ++ int getStreamID() const { return this->StreamID; } ++ int getVListID() const { return this->VListID; } ++ stype getType() const { return this->Type; } ++ void setVoid() ++ { ++ if (this->StreamID > -1) ++ { ++ streamClose(this->StreamID); ++ } ++ ++ this->StreamID = -1; ++ this->VListID = -1; ++ this->Type = VOID; ++ } ++ ++ bool isVoid() const { return this->Type == VOID; } ++}; + + struct Point + { +@@ -77,6 +143,26 @@ struct PointWithIndex + int Idx; + }; + ++constexpr static int MAX_VARS = 100; ++ ++struct Dimset ++{ ++ size_t DimsetID; ++ int GridID; ++ int ZAxisID; ++ size_t GridSize; ++ int NLevel; ++ std::string label; ++}; ++ ++struct Grid ++{ ++ int GridID; ++ size_t Size; ++ int PointsPerCell; ++}; ++} ++ + //---------------------------------------------------------------------------- + // Internal class to avoid name pollution + //---------------------------------------------------------------------------- +@@ -106,6 +192,10 @@ public: + vtkSmartPointer<vtkIdTypeArray> PointsToSendToProcesses; + vtkSmartPointer<vtkIdTypeArray> PointsToSendToProcessesLengths; + vtkSmartPointer<vtkIdTypeArray> PointsToSendToProcessesOffsets; ++ ++ std::vector<Dimset> DimensionSets; ++ std::vector<Grid> Grids; ++ CDIObject DataFile, GridFile, VGridFile; + }; + + namespace +@@ -299,7 +389,7 @@ int vtkCDIReader::RequestInformation( + + vtkDebugMacro("In vtkCDIReader::RequestInformation setting VerticalLevelRange"); + this->VerticalLevelRange[0] = 0; +- if (VerticalLevelRange[1] != this->MaximumNVertLevels - 1) ++ if (this->VerticalLevelRange[1] != this->MaximumNVertLevels - 1) + { + this->VerticalLevelRange[1] = this->MaximumNVertLevels - 1; + this->Modified(); +@@ -330,9 +420,9 @@ vtkSmartPointer<vtkDoubleArray> vtkCDIReader::ReadTimeAxis() + if ((this->FileSeriesNumber == 0) && (!this->TimeSet)) + { + +- int taxisID = vlistInqTaxis(this->DataFile.getVListID()); ++ int taxisID = vlistInqTaxis(this->Internals->DataFile.getVListID()); + int calendar = taxisInqCalendar(taxisID); +- streamInqTimestep(this->DataFile.getStreamID(), 0); ++ streamInqTimestep(this->Internals->DataFile.getStreamID(), 0); + int vdate = taxisInqVdate(taxisID); + int vtime = taxisInqVtime(taxisID); + +@@ -345,7 +435,9 @@ vtkSmartPointer<vtkDoubleArray> vtkCDIReader::ReadTimeAxis() + if (!this->TimeSeriesTimeStepsAllSet) + { + if (this->TimeSeriesTimeSteps.size() < this->FileSeriesNumber + 1) ++ { + this->TimeSeriesTimeSteps.resize(this->FileSeriesNumber + 1); ++ } + this->TimeSeriesTimeSteps[this->FileSeriesNumber] = this->NumberOfTimeSteps; + } + +@@ -367,9 +459,9 @@ vtkSmartPointer<vtkDoubleArray> vtkCDIReader::ReadTimeAxis() + int end = start + this->NumberOfTimeSteps; + for (int step = start; step < end; step++) + { +- int taxisID = vlistInqTaxis(this->DataFile.getVListID()); ++ int taxisID = vlistInqTaxis(this->Internals->DataFile.getVListID()); + int calendar = taxisInqCalendar(taxisID); +- streamInqTimestep(this->DataFile.getStreamID(), counter); ++ streamInqTimestep(this->Internals->DataFile.getStreamID(), counter); + int vdate = taxisInqVdate(taxisID); + int vtime = taxisInqVtime(taxisID); + double timevalue = date_to_julday(calendar, vdate); +@@ -383,8 +475,10 @@ vtkSmartPointer<vtkDoubleArray> vtkCDIReader::ReadTimeAxis() + timeValues->InsertNextTuple1(timevalue); + if (!this->TimeSeriesTimeStepsAllSet) + { +- if (TimeSteps.size() < step + 1) +- TimeSteps.resize(step + 1); ++ if (this->TimeSteps.size() < step + 1) ++ { ++ this->TimeSteps.resize(step + 1); ++ } + this->TimeSteps[step] = timevalue; + } + } +@@ -438,7 +532,9 @@ int vtkCDIReader::GetTimeIndex(double dataTimeStep) + for (int step = start; step < end; step++) + { + if (this->TimeSteps[step] == dataTimeStep) ++ { + return (step - start); ++ } + } + return 0; + } +@@ -787,33 +883,41 @@ void vtkCDIReader::GuessGridFile() + { + std::string fallback = vtksys::SystemTools::GetParentDirectory(this->FileName); + if (fallback.empty()) ++ { + fallback = "."; ++ } + fallback += "/grid.nc"; + + std::string guess; + if (!this->Grib) ++ { + guess = cdi_tools::GuessGridFileFromUri(this->FileName); ++ } + + if (!guess.empty()) + { + if (vtksys::SystemTools::TestFileAccess(guess, vtksys::TEST_FILE_READ)) + { +- this->GridFile.openURI(guess); +- if (this->GridFile.isVoid()) ++ this->Internals->GridFile.openURI(guess); ++ if (this->Internals->GridFile.isVoid()) + { + vtkWarningMacro("Cannot handle grid file " + << guess << " indicated by grid_file_uri attribute in " << this->FileName + << " Trying fallback guess " << fallback); + } + else ++ { + return; ++ } + } + else ++ { + vtkWarningMacro("Cannot open grid file " + << guess << " indicated by grid_file_uri attribute in " << this->FileName + << " Trying fallback guess " << fallback); ++ } + } +- this->GridFile.openURI(fallback); ++ this->Internals->GridFile.openURI(fallback); + } + + //---------------------------------------------------------------------------- +@@ -827,18 +931,22 @@ int vtkCDIReader::GetDims() + return 0; + } + +- DataFile.openURI(FileName); +- if (DataFile.isVoid()) ++ this->Internals->DataFile.openURI(this->FileName); ++ if (this->Internals->DataFile.isVoid()) + { +- vtkErrorMacro("GetDims: Could not open " << DataFile.getURI()); ++ vtkErrorMacro("GetDims: Could not open " << this->Internals->DataFile.getURI()); + return 0; + } + +- if (GridFile.isVoid()) +- GridFile.openURI(FileName); +- if (GridFile.isVoid()) ++ if (this->Internals->GridFile.isVoid()) ++ { ++ this->Internals->GridFile.openURI(this->FileName); ++ } ++ ++ if (this->Internals->GridFile.isVoid()) + { +- vtkErrorMacro("GetDims: Could not open horizontal grid file.\nTried " << GridFile.getURI()); ++ vtkErrorMacro("GetDims: Could not open horizontal grid file.\nTried " ++ << this->Internals->GridFile.getURI()); + return 0; + } + +@@ -847,17 +955,18 @@ int vtkCDIReader::GetDims() + this->GuessGridFile(); + if (!this->ReadHorizontalGridData()) + { +- vtkErrorMacro("Could not get horizontal Grid. \nTried " << GridFile.getURI()); ++ vtkErrorMacro( ++ "Could not get horizontal Grid. \nTried " << this->Internals->GridFile.getURI()); + return 0; + } + } + +- VGridFile.openURI(FileName); +- int found = ReadVerticalGridData(); ++ this->Internals->VGridFile.openURI(this->FileName); ++ int found = this->ReadVerticalGridData(); + if (!found) + { +- VGridFile.openURI(GridFile.getURI()); +- found = ReadVerticalGridData(); ++ this->Internals->VGridFile.openURI(this->Internals->GridFile.getURI()); ++ found = this->ReadVerticalGridData(); + } + + if (!found) +@@ -872,21 +981,25 @@ int vtkCDIReader::GetDims() + { + if (this->DimensionSelection >= 0) + { +- if (DimensionSelection >= DimensionSets.size()) ++ if (this->DimensionSelection >= this->Internals->DimensionSets.size()) + { + vtkErrorMacro("Trying to select inexistent dimensionset " +- << DimensionSelection << " " << DimensionSets.size() << " are available."); ++ << this->DimensionSelection << " " << this->Internals->DimensionSets.size() ++ << " are available."); + return 0; + } +- for (int i = 0; i < Grids.size(); i++) +- if (this->DimensionSets.at(this->DimensionSelection).GridSize == Grids.at(i).Size) ++ for (int i = 0; i < this->Internals->Grids.size(); i++) ++ if (this->Internals->DimensionSets.at(this->DimensionSelection).GridSize == ++ this->Internals->Grids.at(i).Size) + { +- this->DimensionSets.at(this->DimensionSelection).GridID = Grids.at(i).GridID; ++ this->Internals->DimensionSets.at(this->DimensionSelection).GridID = ++ this->Internals->Grids.at(i).GridID; + this->GridID = i; + } +- this->ZAxisID = this->DimensionSets.at(this->DimensionSelection).ZAxisID; +- vtkDebugMacro("NEW ZAxisID" << ZAxisID << " from " +- << this->DimensionSets.at(this->DimensionSelection).ZAxisID); ++ this->ZAxisID = this->Internals->DimensionSets.at(this->DimensionSelection).ZAxisID; ++ vtkDebugMacro( ++ "NEW ZAxisID" << this->ZAxisID << " from " ++ << this->Internals->DimensionSets.at(this->DimensionSelection).ZAxisID); + } + } + catch (const std::out_of_range& oor) +@@ -897,15 +1010,17 @@ int vtkCDIReader::GetDims() + + try + { +- if (GridID != -1 && Grids.at(this->GridID).GridID != -1) ++ if (this->GridID != -1 && this->Internals->Grids.at(this->GridID).GridID != -1) + { +- this->NumberOfCells = static_cast<int>(Grids.at(GridID).Size); ++ this->NumberOfCells = static_cast<int>(this->Internals->Grids.at(GridID).Size); + + if (this->NumberOfPoints and this->NumberOfPoints != this->NumberOfCells) ++ { + vtkDebugMacro("GetDims: Changing number of points from " << this->NumberOfPoints << " to " + << this->NumberOfCells); ++ } + this->NumberOfPoints = this->NumberOfCells; +- this->PointsPerCell = Grids.at(this->GridID).PointsPerCell; ++ this->PointsPerCell = this->Internals->Grids.at(this->GridID).PointsPerCell; + vtkDebugMacro("GetDims: Found PointsPerCell to be " << this->PointsPerCell << " for grid " + << this->GridID); + } +@@ -913,19 +1028,21 @@ int vtkCDIReader::GetDims() + catch (const std::out_of_range& oor) + { + vtkErrorMacro("Out of Range error in GetDims trying to set NumberOfPoints " << oor.what()); +- vtkErrorMacro("Grids.size " << Grids.size() << "\t GridID " << GridID); ++ vtkErrorMacro("Grids.size " << this->Internals->Grids.size() << "\t GridID " << this->GridID); + return 0; + } + + int ntsteps = 0; + if (this->Grib) + { +- while (streamInqTimestep(this->DataFile.getStreamID(), ntsteps)) ++ while (streamInqTimestep(this->Internals->DataFile.getStreamID(), ntsteps)) ++ { + ntsteps++; ++ } + } + else + { +- ntsteps = vlistNtsteps(this->DataFile.getVListID()); ++ ntsteps = vlistNtsteps(this->Internals->DataFile.getVListID()); + } + this->NumberOfTimeSteps = ntsteps; + +@@ -945,8 +1062,13 @@ int vtkCDIReader::GetDims() + //--------------------------------------------------------------------------------------------------- + int vtkCDIReader::ReadHorizontalGridData() + { +- Grids.resize(0); +- int vlistID_l = this->GridFile.getVListID(); ++ this->Internals->Grids.resize(0); ++ int vlistID_l = this->Internals->GridFile.getVListID(); ++ if (vlistID_l == CDI_UNDEFID) ++ { ++ vtkErrorMacro("No VList found in Grid file."); ++ return 0; ++ } + int ngrids = vlistNgrids(vlistID_l); + for (int i = 0; i < ngrids; ++i) + { +@@ -955,13 +1077,17 @@ int vtkCDIReader::ReadHorizontalGridData() + + if (nv >= 3) // ((nv == 3 || nv == 4)) // && gridInqType(gridID_l) == GRID_UNSTRUCTURED) + { +- Grid grid{ .GridID = gridID_l, .Size = gridInqSize(gridID_l), .PointsPerCell = nv }; +- Grids.push_back(grid); ++ Grid grid{ ++ .GridID = gridID_l, .Size = static_cast<size_t>(gridInqSize(gridID_l)), .PointsPerCell = nv ++ }; ++ this->Internals->Grids.push_back(grid); + } + } + +- if (Grids.size() == 0) ++ if (this->Internals->Grids.empty()) ++ { + return 0; ++ } + return 1; + } + +@@ -971,11 +1097,11 @@ int vtkCDIReader::ReadHorizontalGridData() + int vtkCDIReader::ReadVerticalGridData() + { + this->ZAxisID = -1; +- int nzaxis = vlistNzaxis(this->VGridFile.getVListID()); ++ int nzaxis = vlistNzaxis(this->Internals->VGridFile.getVListID()); + int found = 0; + for (int i = 0; i < nzaxis; ++i) + { +- int zaxisID_l = vlistZaxis(this->VGridFile.getVListID(), i); ++ int zaxisID_l = vlistZaxis(this->Internals->VGridFile.getVListID(), i); + if (zaxisInqSize(zaxisID_l) == 1 || zaxisInqType(zaxisID_l) == ZAXIS_SURFACE) + { + this->SurfIDs.insert(zaxisID_l); +@@ -986,7 +1112,7 @@ int vtkCDIReader::ReadVerticalGridData() + + for (int i = 0; i < nzaxis; ++i) + { +- int zaxisID_l = vlistZaxis(this->VGridFile.getVListID(), i); ++ int zaxisID_l = vlistZaxis(this->Internals->VGridFile.getVListID(), i); + if (zaxisInqSize(zaxisID_l) > 1) + { + found = 1; +@@ -1005,24 +1131,25 @@ int vtkCDIReader::GetVars() + int cellVarIndex = -1; + int pointVarIndex = -1; + int domainVarIndex = -1; +- int numVars = vlistNvars(this->DataFile.getVListID()); ++ int numVars = vlistNvars(this->Internals->DataFile.getVListID()); + +- vtkDebugMacro("Found " << numVars << " as Variables for VListID " << this->DataFile.getVListID()); ++ vtkDebugMacro( ++ "Found " << numVars << " as Variables for VListID " << this->Internals->DataFile.getVListID()); + + for (int i = 0; i < numVars; i++) + { + int varID = i; + cdi_tools::CDIVar aVar; + +- aVar.StreamID = this->DataFile.getStreamID(); ++ aVar.StreamID = this->Internals->DataFile.getStreamID(); + aVar.VarID = varID; +- aVar.GridID = vlistInqVarGrid(this->DataFile.getVListID(), varID); +- aVar.ZAxisID = vlistInqVarZaxis(this->DataFile.getVListID(), varID); ++ aVar.GridID = vlistInqVarGrid(this->Internals->DataFile.getVListID(), varID); ++ aVar.ZAxisID = vlistInqVarZaxis(this->Internals->DataFile.getVListID(), varID); + aVar.GridSize = static_cast<int>(gridInqSize(aVar.GridID)); + aVar.NLevel = zaxisInqSize(aVar.ZAxisID); + aVar.Type = 0; + aVar.ConstTime = 0; +- vlistInqVarName(this->DataFile.getVListID(), varID, aVar.Name); ++ vlistInqVarName(this->Internals->DataFile.getVListID(), varID, aVar.Name); + vtkDebugMacro("Processing variable " << i << '\t' << aVar.Name); + + // to do multiple grids: +@@ -1030,11 +1157,11 @@ int vtkCDIReader::GetVars() + // - Check if all grids can be reconstructed, or if bnds are all zero + // - Reform gui to load either Cell, Point or Edge data + +- if (vlistInqVarTsteptype(this->DataFile.getVListID(), varID) == TIME_CONSTANT) ++ if (vlistInqVarTsteptype(this->Internals->DataFile.getVListID(), varID) == TIME_CONSTANT) + { + aVar.ConstTime = 1; + } +- if (aVar.ZAxisID != this->ZAxisID && SurfIDs.count(aVar.ZAxisID) == 0) ++ if (aVar.ZAxisID != this->ZAxisID && this->SurfIDs.count(aVar.ZAxisID) == 0) + // We are handling a different 3D Axis. + { + vtkDebugMacro("Skipping " << aVar.Name << " as it has the wrong ZAxis " << aVar.ZAxisID); +@@ -1180,7 +1307,7 @@ int vtkCDIReader::BuildVarArrays() + + if (!this->FileName.empty()) + { +- if (!GetVars()) ++ if (!this->GetVars()) + { + return 0; + } +@@ -1394,10 +1521,10 @@ int vtkCDIReader::ConstructGridGeometry() + vtkDebugMacro("Start reading Vertices"); + try + { +- gridInqXboundsPart(Grids.at(this->GridID).GridID, (this->BeginCell * this->PointsPerCell), size, +- cLonVertices.data()); +- gridInqYboundsPart(Grids.at(this->GridID).GridID, (this->BeginCell * this->PointsPerCell), size, +- cLatVertices.data()); ++ gridInqXboundsPart(Internals->Grids.at(this->GridID).GridID, ++ (this->BeginCell * this->PointsPerCell), size, cLonVertices.data()); ++ gridInqYboundsPart(Internals->Grids.at(this->GridID).GridID, ++ (this->BeginCell * this->PointsPerCell), size, cLatVertices.data()); + } + catch (const std::out_of_range& oor) + { +@@ -1417,7 +1544,7 @@ int vtkCDIReader::ConstructGridGeometry() + { + if (this->ProjectionMode != projection::CATALYST) + { +- gridInqXunits(Grids.at(this->GridID).GridID, units); ++ gridInqXunits(this->Internals->Grids.at(this->GridID).GridID, units); + if (strncmp(units, "degree", 6) == 0) + { + for (int i = 0; i < size; i++) +@@ -1425,7 +1552,7 @@ int vtkCDIReader::ConstructGridGeometry() + cLonVertices[i] = vtkMath::RadiansFromDegrees(cLonVertices[i]); + } + } +- gridInqYunits(Grids.at(this->GridID).GridID, units); ++ gridInqYunits(this->Internals->Grids.at(this->GridID).GridID, units); + if (strncmp(units, "degree", 6) == 0) + { + for (int i = 0; i < size; i++) +@@ -1452,8 +1579,10 @@ int vtkCDIReader::ConstructGridGeometry() + this->NumberLocalCells = new_cells[0] / this->PointsPerCell; + this->NumberLocalPoints = new_cells[1]; + if (this->NumberOfPoints and this->NumberOfPoints != new_cells[1]) ++ { + vtkDebugMacro("ConstructGridGeometry: Changing number of points from " + << this->NumberOfPoints << " to " << new_cells[1]); ++ } + + this->NumberOfPoints = new_cells[1]; + +@@ -1470,8 +1599,8 @@ int vtkCDIReader::ConstructGridGeometry() + // now get the individual coordinates out of the clon/clat vertices + for (int i = 0; i < this->NumberLocalPoints; i++) + { +- projection::longLatToCartesian( +- cLonVertices[i], cLatVertices[i], &PointX[i], &PointY[i], &PointZ[i], this->ProjectionMode); ++ projection::longLatToCartesian(cLonVertices[i], cLatVertices[i], &this->PointX[i], ++ &this->PointY[i], &this->PointZ[i], this->ProjectionMode); + } + + // mirror the mesh if needed +@@ -1501,10 +1630,12 @@ int vtkCDIReader::ConstructGridGeometry() + std::vector<double> clat_vert2(size2); + try + { +- gridInqXboundsPart(Grids.at(this->GridID).GridID, 0, size2, clon_vert2.data()); +- gridInqYboundsPart(Grids.at(this->GridID).GridID, 0, size2, clat_vert2.data()); ++ gridInqXboundsPart( ++ this->Internals->Grids.at(this->GridID).GridID, 0, size2, clon_vert2.data()); ++ gridInqYboundsPart( ++ this->Internals->Grids.at(this->GridID).GridID, 0, size2, clat_vert2.data()); + +- gridInqXunits(Grids.at(this->GridID).GridID, units); ++ gridInqXunits(this->Internals->Grids.at(this->GridID).GridID, units); + if (strncmp(units, "degree", 6) == 0) + { + for (int i = 0; i < size2; i++) +@@ -1513,7 +1644,7 @@ int vtkCDIReader::ConstructGridGeometry() + } + } + +- gridInqYunits(Grids.at(this->GridID).GridID, units); ++ gridInqYunits(this->Internals->Grids.at(this->GridID).GridID, units); + if (strncmp(units, "degree", 6) == 0) + { + for (int i = 0; i < size2; i++) +@@ -1556,8 +1687,6 @@ int vtkCDIReader::ConstructGridGeometry() + this->CurrentExtraPoint = this->NumberLocalPoints; + this->CurrentExtraCell = this->NumberLocalCells; + +- cLonVertices.clear(); +- cLatVertices.clear(); + vtkDebugMacro("Grid Reconstruction complete..."); + return 1; + } +@@ -1587,7 +1716,7 @@ int vtkCDIReader::AllocSphereGeometry() + { + vtkDebugMacro("In AllocSphereGeometry..."); + +- if (!GridReconstructed || this->ReconstructNew) ++ if (!this->GridReconstructed || this->ReconstructNew) + { + this->ConstructGridGeometry(); + } +@@ -1624,7 +1753,7 @@ int vtkCDIReader::AllocLatLonGeometry() + return 0; + } + +- if (!GridReconstructed || this->ReconstructNew) ++ if (!this->GridReconstructed || this->ReconstructNew) + { + this->ConstructGridGeometry(); + } +@@ -1661,16 +1790,16 @@ int vtkCDIReader::LoadClonClatVars() + std::vector<double> cLon_l(this->NumberLocalCells); + std::vector<double> cLat_l(this->NumberLocalCells); + +- gridInqXvalsPart( +- Grids.at(this->GridID).GridID, this->BeginCell, this->NumberLocalCells, cLon_l.data()); +- gridInqYvalsPart( +- Grids.at(this->GridID).GridID, this->BeginCell, this->NumberLocalCells, cLat_l.data()); ++ gridInqXvalsPart(this->Internals->Grids.at(this->GridID).GridID, this->BeginCell, ++ this->NumberLocalCells, cLon_l.data()); ++ gridInqYvalsPart(this->Internals->Grids.at(this->GridID).GridID, this->BeginCell, ++ this->NumberLocalCells, cLat_l.data()); + + char units[CDI_MAX_NAME]; + + try + { +- gridInqXunits(Grids.at(this->GridID).GridID, units); ++ gridInqXunits(this->Internals->Grids.at(this->GridID).GridID, units); + if (strncmp(units, "degree", 6) == 0) + { + for (int i = 0; i < this->NumberLocalCells; i++) +@@ -1678,7 +1807,7 @@ int vtkCDIReader::LoadClonClatVars() + cLon_l[i] = vtkMath::RadiansFromDegrees(cLon_l[i]); + } + } +- gridInqYunits(Grids.at(this->GridID).GridID, units); ++ gridInqYunits(this->Internals->Grids.at(this->GridID).GridID, units); + if (strncmp(units, "degree", 6) == 0) + { + for (int i = 0; i < this->NumberLocalCells; i++) +@@ -1821,7 +1950,8 @@ int vtkCDIReader::CheckForMaskData() + { + const double maskVal = this->UseCustomMaskValue + ? this->CustomMaskValue +- : vlistInqVarMissval(this->DataFile.getVListID(), this->Internals->CellVars[mask_pos].VarID); ++ : vlistInqVarMissval( ++ this->Internals->DataFile.getVListID(), this->Internals->CellVars[mask_pos].VarID); + + cdi_tools::CDIVar* cdiVar = &(this->Internals->CellVars[mask_pos]); + if (this->ShowMultilayerView) +@@ -1889,7 +2019,7 @@ int vtkCDIReader::AddMaskHalo() + { + int l = j * this->MaximumNVertLevels; + int k = this->MaximumNVertLevels * this->CellMap[j - this->NumberLocalCells]; +- this->CellMask[l + levelNum] = (CellMask[k + levelNum]); ++ this->CellMask[l + levelNum] = (this->CellMask[k + levelNum]); + } + } + } +@@ -1921,7 +2051,7 @@ bool vtkCDIReader::BuildDomainCellVars() + CHECK_NEW(this->DomainCellVar); + double val = 0; + int mask_pos = 0; +- int numVars = vlistNvars(this->DataFile.getVListID()); ++ int numVars = vlistNvars(this->Internals->DataFile.getVListID()); + + for (int i = 0; i < numVars; i++) + { +@@ -2156,7 +2286,7 @@ int vtkCDIReader::Wrap(int axis) + } + } + +- if (!ShowMultilayerView) ++ if (!this->ShowMultilayerView) + { + this->MaximumCells = static_cast<int>(this->CurrentExtraCell); + this->MaximumPoints = static_cast<int>(this->CurrentExtraPoint); +@@ -2284,8 +2414,10 @@ void vtkCDIReader::OutputPoints(bool init) + { + retval = projection::cartesianToSpherical(x, y, z, &rho, &phi, &theta); + if (!retval) ++ { + retval = projection::sphericalToCartesian( + rho + this->Layer0Offset * adjustedLayerThickness, phi, theta, &x, &y, &z); ++ } + } + } + +@@ -2480,9 +2612,13 @@ void vtkCDIReader::OutputCells(bool init) + polygon[k + this->PointsPerCell] = val; + } + if (cellType == VTK_POLYHEDRON) ++ { + this->InsertPolyhedron(polygon); ++ } + else ++ { + output->InsertNextCell(cellType, pointsPerPolygon, polygon.data()); ++ } + } + } + } +@@ -2568,7 +2704,9 @@ void vtkCDIReader::InsertPolyhedron(std::vector<vtkIdType> polygon) + int vtkCDIReader::LoadPointVarData(int variableIndex, double dTimeStep) + { + if (!(this->PointsPerCell == 3)) ++ { + return 0; ++ } + + this->PointDataSelected = variableIndex; + +@@ -2778,7 +2916,7 @@ int vtkCDIReader::LoadCellVarDataTemplate( + //------------------------------------------------------------------------------ + int vtkCDIReader::ReplaceFillWithNan(const int varID, vtkDataArray* dataArray) + { +- double miss = vlistInqVarMissval(this->DataFile.getVListID(), varID); ++ double miss = vlistInqVarMissval(this->Internals->DataFile.getVListID(), varID); + + // NaN only available with float and double. + if (dataArray->GetDataType() == VTK_FLOAT) +@@ -2914,7 +3052,7 @@ int vtkCDIReader::LoadPointVarDataTemplate( + } + + // layer below, which is repeated ... +- dataBlock[i++] = dataTmp[j + ((MaximumNVertLevels - 1) * this->NumberLocalPoints)]; ++ dataBlock[i++] = dataTmp[j + ((this->MaximumNVertLevels - 1) * this->NumberLocalPoints)]; + } + } + } +@@ -3091,11 +3229,11 @@ int vtkCDIReader::LoadDomainVarData(int variableIndex) + //----------------------------------------------------------------------------- + int vtkCDIReader::FillGridDimensions() + { +- this->DimensionSets.resize(0); ++ this->Internals->DimensionSets.resize(0); + +- int ngrids = vlistNgrids(this->DataFile.getVListID()); +- int nzaxis = vlistNzaxis(this->DataFile.getVListID()); +- int nvars = vlistNvars(this->DataFile.getVListID()); ++ int ngrids = vlistNgrids(this->Internals->DataFile.getVListID()); ++ int nzaxis = vlistNzaxis(this->Internals->DataFile.getVListID()); ++ int nvars = vlistNvars(this->Internals->DataFile.getVListID()); + char nameGridX[CDI_MAX_NAME]; + char nameGridY[CDI_MAX_NAME]; + char nameLev[CDI_MAX_NAME]; +@@ -3104,8 +3242,8 @@ int vtkCDIReader::FillGridDimensions() + + for (int k = 0; k < nvars; k++) + { +- int i = vlistInqVarGrid(this->DataFile.getVListID(), k); +- int j = vlistInqVarZaxis(this->DataFile.getVListID(), k); ++ int i = vlistInqVarGrid(this->Internals->DataFile.getVListID(), k); ++ int j = vlistInqVarZaxis(this->Internals->DataFile.getVListID(), k); + hits.insert(std::to_string(i) + "x" + std::to_string(j)); + // IDs are not 0 to n-1 but can be 30-ish for a file with 3 grids. + // they map to the gridID_l and zaxisID_l values below. +@@ -3117,14 +3255,14 @@ int vtkCDIReader::FillGridDimensions() + for (int j = 0; j < nzaxis; ++j) + { + std::string dimEncoding("("); +- int gridID_l = vlistGrid(this->DataFile.getVListID(), i); ++ int gridID_l = vlistGrid(this->Internals->DataFile.getVListID(), i); + gridInqXname(gridID_l, nameGridX); + gridInqYname(gridID_l, nameGridY); + dimEncoding += nameGridX; + dimEncoding += ", "; + dimEncoding += nameGridY; + dimEncoding += ", "; +- int zaxisID_l = vlistZaxis(this->DataFile.getVListID(), j); ++ int zaxisID_l = vlistZaxis(this->Internals->DataFile.getVListID(), j); + zaxisInqName(zaxisID_l, nameLev); + dimEncoding += nameLev; + dimEncoding += ")"; +@@ -3140,13 +3278,13 @@ int vtkCDIReader::FillGridDimensions() + << i << '\t' << j << "\t" << gridID_l << '\t' << zaxisID_l << "\t" << dimEncoding + << " - has hits.\n"); + +- dimset ds{ .DimsetID = counter, ++ Dimset ds{ .DimsetID = counter, + .GridID = -1, + .ZAxisID = zaxisID_l, +- .GridSize = gridInqSize(gridID_l), ++ .GridSize = static_cast<size_t>(gridInqSize(gridID_l)), + .NLevel = zaxisInqSize(zaxisID_l), + .label = dimEncoding }; +- DimensionSets.push_back(ds); ++ this->Internals->DimensionSets.push_back(ds); + counter++; + } + } +@@ -3154,8 +3292,8 @@ int vtkCDIReader::FillGridDimensions() + this->VariableDimensions->SetNumberOfValues(counter); + for (int i = 0; i < counter; i++) + { +- this->AllDimensions->InsertNextValue(DimensionSets[i].label); +- this->VariableDimensions->SetValue(i, DimensionSets[i].label.c_str()); ++ this->AllDimensions->InsertNextValue(this->Internals->DimensionSets[i].label); ++ this->VariableDimensions->SetValue(i, this->Internals->DimensionSets[i].label.c_str()); + } + + return 1; +@@ -3281,7 +3419,9 @@ void vtkCDIReader::SetMaskingVariable(const char* name) + void vtkCDIReader::SetUseCustomMaskValue(bool val) + { + if (val == this->UseCustomMaskValue) ++ { + return; ++ } + + this->UseCustomMaskValue = val; + +@@ -3301,7 +3441,9 @@ void vtkCDIReader::SetUseCustomMaskValue(bool val) + void vtkCDIReader::SetCustomMaskValue(double val) + { + if (val == this->CustomMaskValue) ++ { + return; ++ } + + this->CustomMaskValue = val; + +@@ -3346,7 +3488,7 @@ void vtkCDIReader::SetFileName(const char* val) + { + if (this->FileName.empty() || val == nullptr || strcmp(this->FileName.c_str(), val) != 0) + { +- this->DataFile.setVoid(); ++ this->Internals->DataFile.setVoid(); + this->Modified(); + if (val == nullptr) + { +diff --git a/Plugins/CDIReader/Reader/vtkCDIReader.h b/Plugins/CDIReader/Reader/vtkCDIReader.h +index 44f9073a97..fa90313d4d 100644 +--- a/Plugins/CDIReader/Reader/vtkCDIReader.h ++++ b/Plugins/CDIReader/Reader/vtkCDIReader.h +@@ -46,7 +46,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + #include "projections.h" // for projection enum + +-#include "DataSource.h" + #include <memory> // for unique_ptr + #include <unordered_set> + #include <vector> // for std::vector +@@ -56,23 +55,6 @@ class vtkDoubleArray; + class vtkFieldData; + class vtkMultiProcessController; + +-struct dimset +-{ +- size_t DimsetID; +- int GridID; +- int ZAxisID; +- size_t GridSize; +- int NLevel; +- std::string label; +-}; +- +-struct Grid +-{ +- int GridID; +- size_t Size; +- int PointsPerCell; +-}; +- + /** + * + * @class vtkCDIReader +@@ -345,8 +327,6 @@ protected: + double Layer0OffsetRange[2]; + + int DimensionSelection; +- std::vector<dimset> DimensionSets; +- std::vector<Grid> Grids; + bool InvertZAxis; + bool AddCoordinateVars; + projection::Projection ProjectionMode; +@@ -391,7 +371,6 @@ protected: + int NumberOfDomainVars; + bool GridReconstructed; + +- DataSource::CDIObject DataFile, GridFile, VGridFile; + int GridID; + int ZAxisID; + std::unordered_set<int> SurfIDs; +-- +GitLab + + +From 751b0f14bdfbde85a79e6c06dda1aeff6e36e495 Mon Sep 17 00:00:00 2001 +From: Nils-Arne Dreier <dreier@dkrz.de> +Date: Mon, 21 Nov 2022 16:10:42 +0100 +Subject: [PATCH 3/5] store DimensionSelection as string instead of an index + +When the reader object is restored from a state file the +`VariableDimensions` is not initialized when `SetDimensions` is +called. We therefore need to store the actuall string representation +of the dimension. +--- + Plugins/CDIReader/Reader/vtkCDIReader.cxx | 63 ++++++++--------------- + Plugins/CDIReader/Reader/vtkCDIReader.h | 2 +- + 2 files changed, 23 insertions(+), 42 deletions(-) + +diff --git a/Plugins/CDIReader/Reader/vtkCDIReader.cxx b/Plugins/CDIReader/Reader/vtkCDIReader.cxx +index c44e81f6bb..763b6e6602 100644 +--- a/Plugins/CDIReader/Reader/vtkCDIReader.cxx ++++ b/Plugins/CDIReader/Reader/vtkCDIReader.cxx +@@ -193,7 +193,7 @@ public: + vtkSmartPointer<vtkIdTypeArray> PointsToSendToProcessesLengths; + vtkSmartPointer<vtkIdTypeArray> PointsToSendToProcessesOffsets; + +- std::vector<Dimset> DimensionSets; ++ std::map<std::string, Dimset> DimensionSets; + std::vector<Grid> Grids; + CDIObject DataFile, GridFile, VGridFile; + }; +@@ -828,7 +828,7 @@ void vtkCDIReader::SetDefaults() + this->HaveDomainVariable = false; + this->HaveDomainData = false; + +- this->DimensionSelection = 0; ++ this->DimensionSelection = ""; + this->InvertZAxis = false; + this->DoublePrecision = false; + this->ShowClonClat = false; +@@ -977,36 +977,20 @@ int vtkCDIReader::GetDims() + + this->FillGridDimensions(); + +- try ++ if (this->DimensionSelection.empty()) + { +- if (this->DimensionSelection >= 0) ++ // select first by default ++ this->DimensionSelection = this->Internals->DimensionSets.begin()->first; ++ } ++ for (int i = 0; i < this->Internals->Grids.size(); i++) ++ if (this->Internals->DimensionSets.at(this->DimensionSelection).GridSize == ++ this->Internals->Grids.at(i).Size) + { +- if (this->DimensionSelection >= this->Internals->DimensionSets.size()) +- { +- vtkErrorMacro("Trying to select inexistent dimensionset " +- << this->DimensionSelection << " " << this->Internals->DimensionSets.size() +- << " are available."); +- return 0; +- } +- for (int i = 0; i < this->Internals->Grids.size(); i++) +- if (this->Internals->DimensionSets.at(this->DimensionSelection).GridSize == +- this->Internals->Grids.at(i).Size) +- { +- this->Internals->DimensionSets.at(this->DimensionSelection).GridID = +- this->Internals->Grids.at(i).GridID; +- this->GridID = i; +- } +- this->ZAxisID = this->Internals->DimensionSets.at(this->DimensionSelection).ZAxisID; +- vtkDebugMacro( +- "NEW ZAxisID" << this->ZAxisID << " from " +- << this->Internals->DimensionSets.at(this->DimensionSelection).ZAxisID); ++ this->Internals->DimensionSets.at(this->DimensionSelection).GridID = ++ this->Internals->Grids.at(i).GridID; ++ this->GridID = i; + } +- } +- catch (const std::out_of_range& oor) +- { +- vtkErrorMacro("Out of Range error in GetDims trying to set Grid and ZAxisID: " << oor.what()); +- return 0; +- } ++ this->ZAxisID = this->Internals->DimensionSets.at(this->DimensionSelection).ZAxisID; + + try + { +@@ -3229,7 +3213,7 @@ int vtkCDIReader::LoadDomainVarData(int variableIndex) + //----------------------------------------------------------------------------- + int vtkCDIReader::FillGridDimensions() + { +- this->Internals->DimensionSets.resize(0); ++ this->Internals->DimensionSets.clear(); + + int ngrids = vlistNgrids(this->Internals->DataFile.getVListID()); + int nzaxis = vlistNzaxis(this->Internals->DataFile.getVListID()); +@@ -3284,16 +3268,19 @@ int vtkCDIReader::FillGridDimensions() + .GridSize = static_cast<size_t>(gridInqSize(gridID_l)), + .NLevel = zaxisInqSize(zaxisID_l), + .label = dimEncoding }; +- this->Internals->DimensionSets.push_back(ds); ++ this->Internals->DimensionSets[dimEncoding] = ds; + counter++; + } + } + this->AllDimensions->SetNumberOfValues(0); + this->VariableDimensions->SetNumberOfValues(counter); +- for (int i = 0; i < counter; i++) ++ ++ int i = 0; ++ for (const auto& label_diset_tuple : this->Internals->DimensionSets) + { +- this->AllDimensions->InsertNextValue(this->Internals->DimensionSets[i].label); +- this->VariableDimensions->SetValue(i, this->Internals->DimensionSets[i].label.c_str()); ++ this->AllDimensions->InsertNextValue(label_diset_tuple.first); ++ this->VariableDimensions->SetValue(i, label_diset_tuple.first.c_str()); ++ ++i; + } + + return 1; +@@ -3305,13 +3292,7 @@ int vtkCDIReader::FillGridDimensions() + void vtkCDIReader::SetDimensions(const char* dimensions) + { + vtkDebugMacro("In SetDimensions"); +- for (vtkIdType i = 0; i < this->VariableDimensions->GetNumberOfValues(); i++) +- { +- if (this->VariableDimensions->GetValue(i) == dimensions) +- { +- this->DimensionSelection = i; +- } +- } ++ this->DimensionSelection = dimensions; + + this->PointDataArraySelection->RemoveAllArrays(); + this->CellDataArraySelection->RemoveAllArrays(); +diff --git a/Plugins/CDIReader/Reader/vtkCDIReader.h b/Plugins/CDIReader/Reader/vtkCDIReader.h +index fa90313d4d..3bbee37929 100644 +--- a/Plugins/CDIReader/Reader/vtkCDIReader.h ++++ b/Plugins/CDIReader/Reader/vtkCDIReader.h +@@ -326,7 +326,7 @@ protected: + double Layer0Offset; + double Layer0OffsetRange[2]; + +- int DimensionSelection; ++ std::string DimensionSelection; + bool InvertZAxis; + bool AddCoordinateVars; + projection::Projection ProjectionMode; +-- +GitLab + + +From 622ba89edcd743d5603dbda519fb3c4bafe2c1cd Mon Sep 17 00:00:00 2001 +From: Nils-Arne Dreier <dreier@dkrz.de> +Date: Tue, 22 Nov 2022 08:08:36 +0100 +Subject: [PATCH 4/5] clean up variable initialization + +use `vtkNew` instead of `vtkSmartPointer` + +remove initialization of std containers + +add CDIDimensionsTest + +use SetValue instead of InsertNextValue + +minor formating fixes +--- + Plugins/CDIReader/Reader/vtkCDIReader.cxx | 115 ++--------- + Plugins/CDIReader/Reader/vtkCDIReader.h | 183 +++++++++--------- + .../CDIReader/Testing/CDIDimensionsTest.xml | 25 +++ + Plugins/CDIReader/Testing/CMakeLists.txt | 2 + + 4 files changed, 130 insertions(+), 195 deletions(-) + create mode 100644 Plugins/CDIReader/Testing/CDIDimensionsTest.xml + +diff --git a/Plugins/CDIReader/Reader/vtkCDIReader.cxx b/Plugins/CDIReader/Reader/vtkCDIReader.cxx +index 763b6e6602..7df87eff14 100644 +--- a/Plugins/CDIReader/Reader/vtkCDIReader.cxx ++++ b/Plugins/CDIReader/Reader/vtkCDIReader.cxx +@@ -41,7 +41,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + #include "vtkCellData.h" + #include "vtkCellType.h" + #include "vtkDataObject.h" +-#include "vtkDoubleArray.h" + #include "vtkDummyController.h" + #include "vtkFieldData.h" + #include "vtkFileSeriesReader.h" +@@ -262,18 +261,10 @@ vtkCDIReader::vtkCDIReader() + : Internals(new Internal()) + { + vtkDebugMacro("Starting to create vtkCDIReader..."); +- this->Initialized = false; + + this->SetNumberOfInputPorts(0); + this->SetNumberOfOutputPorts(1); + +- this->VariableDimensions = vtkSmartPointer<vtkStringArray>::New(); +- this->AllDimensions = vtkSmartPointer<vtkStringArray>::New(); +- this->AllVariableArrayNames = vtkSmartPointer<vtkStringArray>::New(); +- this->InfoRequested = false; +- this->DataRequested = false; +- this->HaveDomainData = false; +- + // Setup selection callback to modify this object when array selection changes + this->SelectionObserver->SetCallback(&vtkCDIReader::SelectionCallback); + this->SelectionObserver->SetClientData(this); +@@ -281,7 +272,6 @@ vtkCDIReader::vtkCDIReader() + this->PointDataArraySelection->AddObserver(vtkCommand::ModifiedEvent, this->SelectionObserver); + this->DomainDataArraySelection->AddObserver(vtkCommand::ModifiedEvent, this->SelectionObserver); + +- this->Controller = nullptr; + this->SetController(vtkMultiProcessController::GetGlobalController()); + if (!this->Controller) + { +@@ -289,8 +279,6 @@ vtkCDIReader::vtkCDIReader() + this->SetController(dummyController); + } + +- this->SetDefaults(); +- + vtkDebugMacro("MAX_VARS:" << MAX_VARS); + vtkDebugMacro("Created vtkCDIReader"); + } +@@ -802,78 +790,6 @@ int vtkCDIReader::RegenerateGeometry() + return 1; + } + +-//---------------------------------------------------------------------------- +-// Set defaults for various parameters and initialize some variables +-//---------------------------------------------------------------------------- +-void vtkCDIReader::SetDefaults() +-{ +- this->Grib = false; +- +- this->VerticalLevelRange[0] = 0; +- this->VerticalLevelRange[1] = 1; +- this->VerticalLevelSelected = 0; +- this->LayerThicknessRange[0] = 0; +- this->LayerThicknessRange[1] = 100; +- this->LayerThickness = 50; +- this->Bloat = 2.0; +- +- this->Layer0OffsetRange[0] = -50; +- this->Layer0OffsetRange[1] = 51; +- this->Layer0Offset = 1e-30; +- +- // this is hard coded for now but will change when data generation gets more mature +- this->PerformanceDataFile = "timer.atmo."; +- this->DomainVarName = "cell_owner"; +- this->DomainDimension = "domains"; +- this->HaveDomainVariable = false; +- this->HaveDomainData = false; +- +- this->DimensionSelection = ""; +- this->InvertZAxis = false; +- this->DoublePrecision = false; +- this->ShowClonClat = false; +- this->ProjectionMode = projection::SPHERICAL; +- this->ShowMultilayerView = false; +- this->ReconstructNew = false; +- this->CellDataSelected = 0; +- this->PointDataSelected = 0; +- this->MaskingVarname = ""; +- this->GotMask = false; +- this->AddCoordinateVars = false; +- this->NumberOfTimeSteps = 0; +- this->NumberOfAllTimeSteps = 0; +- this->TimeSeriesTimeSteps.reserve(5); +- this->TimeSteps.reserve(100 * 250 + 25); +- this->TimeSeriesTimeStepsAllSet = false; +- this->GridReconstructed = false; +- this->CustomMaskValue = 0.0; +- this->InvertMask = false; +- this->UseMask = false; +- this->UseCustomMaskValue = false; +- this->Decomposition = false; +- +- this->SkipGrid = false; +- +- this->BeginCell = 0; +- this->FirstDay = -1; +- this->TimeSet = false; +- +- this->DTime = 0; +- this->FileSeriesNumber = 0; +- this->NumberOfFiles = 1; +- this->NeedVerticalGridFile = false; +- this->GridID = -1; +- this->NumberOfProcesses = 1; +- +- this->BuildDomainArrays = false; +- this->MaximumNVertLevels = 0; +- this->MaximumPoints = 0; +- this->MaximumCells = 0; +- this->DepthVar = nullptr; +- +- this->NumberOfPoints = 0; +-} +- + //---------------------------------------------------------------------------- + // Get dimensions of key NetCDF variables + //---------------------------------------------------------------------------- +@@ -983,6 +899,7 @@ int vtkCDIReader::GetDims() + this->DimensionSelection = this->Internals->DimensionSets.begin()->first; + } + for (int i = 0; i < this->Internals->Grids.size(); i++) ++ { + if (this->Internals->DimensionSets.at(this->DimensionSelection).GridSize == + this->Internals->Grids.at(i).Size) + { +@@ -990,6 +907,7 @@ int vtkCDIReader::GetDims() + this->Internals->Grids.at(i).GridID; + this->GridID = i; + } ++ } + this->ZAxisID = this->Internals->DimensionSets.at(this->DimensionSelection).ZAxisID; + + try +@@ -1047,16 +965,16 @@ int vtkCDIReader::GetDims() + int vtkCDIReader::ReadHorizontalGridData() + { + this->Internals->Grids.resize(0); +- int vlistID_l = this->Internals->GridFile.getVListID(); +- if (vlistID_l == CDI_UNDEFID) ++ int vListID = this->Internals->GridFile.getVListID(); ++ if (vListID == CDI_UNDEFID) + { + vtkErrorMacro("No VList found in Grid file."); + return 0; + } +- int ngrids = vlistNgrids(vlistID_l); ++ int ngrids = vlistNgrids(vListID); + for (int i = 0; i < ngrids; ++i) + { +- int gridID_l = vlistGrid(vlistID_l, i); ++ int gridID_l = vlistGrid(vListID, i); + int nv = gridInqNvertex(gridID_l); + + if (nv >= 3) // ((nv == 3 || nv == 4)) // && gridInqType(gridID_l) == GRID_UNSTRUCTURED) +@@ -1499,8 +1417,7 @@ int vtkCDIReader::ConstructGridGeometry() + } + cLonVertices.resize(size); + cLatVertices.resize(size); +- this->DepthVar = new double[this->MaximumNVertLevels]; +- CHECK_NEW(this->DepthVar); ++ this->DepthVar.resize(this->MaximumNVertLevels); + + vtkDebugMacro("Start reading Vertices"); + try +@@ -1519,7 +1436,7 @@ int vtkCDIReader::ConstructGridGeometry() + vtkDebugMacro("Done reading Vertices"); + vtkDebugMacro("Getting vertical axis" << this->ZAxisID << " expecting up to " + << this->MaximumNVertLevels << " levels."); +- zaxisInqLevels(this->ZAxisID, this->DepthVar); ++ zaxisInqLevels(this->ZAxisID, this->DepthVar.data()); + vtkDebugMacro("Got vertical axis" << this->ZAxisID); + char units[CDI_MAX_NAME]; + this->OrigConnections.resize(size); +@@ -2030,9 +1947,8 @@ int vtkCDIReader::AddMaskHalo() + //---------------------------------------------------------------------------- + bool vtkCDIReader::BuildDomainCellVars() + { +- this->DomainCellVar = new double[this->NumberOfCells * this->NumberOfDomainVars]; ++ this->DomainCellVar.resize(this->NumberOfCells * this->NumberOfDomainVars); + std::vector<double> domainTMP(this->NumberOfCells); +- CHECK_NEW(this->DomainCellVar); + double val = 0; + int mask_pos = 0; + int numVars = vlistNvars(this->Internals->DataFile.getVListID()); +@@ -2058,7 +1974,7 @@ bool vtkCDIReader::BuildDomainCellVars() + val = this->DomainVarDataArray->GetArray(j)->GetComponent(domainTMP[k], 0l); + this->DomainCellVar[k + (j * this->NumberOfCells)] = val; + } +- domainVar->SetArray(this->DomainCellVar + (j * this->NumberOfCells), this->NumberLocalCells, 0, ++ domainVar->SetArray(&(this->DomainCellVar[j * this->NumberOfCells]), this->NumberLocalCells, 0, + vtkDoubleArray::VTK_DATA_ARRAY_FREE); + domainVar->SetName(this->Internals->DomainVars[j].c_str()); + this->Output->GetCellData()->AddArray(domainVar); +@@ -2364,7 +2280,7 @@ void vtkCDIReader::OutputPoints(bool init) + points->Allocate(this->MaximumPoints, this->MaximumPoints); + } + +- if (this->DepthVar == nullptr) ++ if (this->DepthVar.empty()) + { + vtkDebugMacro("OutputPoints: this->MaximumPoints: " + << this->MaximumPoints << " this->MaximumNVertLevels: " << this->MaximumNVertLevels +@@ -2507,7 +2423,7 @@ void vtkCDIReader::OutputCells(bool init) + << " ShowMultilayerView: " << this->ShowMultilayerView + << " CurrentExtraCell: " << this->CurrentExtraCell); + +- if (this->DepthVar == nullptr) ++ if (this->DepthVar.empty()) + { + vtkErrorMacro( + "File " << this->FileName << " OutputCells: this->MaximumCells: " << this->MaximumCells +@@ -2610,10 +2526,8 @@ void vtkCDIReader::OutputCells(bool init) + + if (this->AddCoordinateVars && this->ShowClonClat) + { +- this->ClonArray = vtkSmartPointer<vtkDoubleArray>::New(); + this->ClonArray->SetName("Center Longitude (CLON)"); + this->ClonArray->SetNumberOfTuples(this->NumberLocalCells * this->MaximumNVertLevels); +- this->ClatArray = vtkSmartPointer<vtkDoubleArray>::New(); + this->ClatArray->SetName("Center Latitude (CLAT)"); + this->ClatArray->SetNumberOfTuples(this->NumberLocalCells * this->MaximumNVertLevels); + if (this->ShowMultilayerView) +@@ -3132,7 +3046,6 @@ int vtkCDIReader::LoadDomainVarData(int variableIndex) + // the data available. Needs to be improved together with the modellers. + vtkDebugMacro("In vtkCDIReader::LoadDomainVarData"); + std::string variable = this->Internals->DomainVars[variableIndex]; +- this->DomainDataSelected = variableIndex; + + // Allocate data array for this variable + if (!this->DomainVarDataArray->HasArray(variable.c_str())) +@@ -3272,13 +3185,13 @@ int vtkCDIReader::FillGridDimensions() + counter++; + } + } +- this->AllDimensions->SetNumberOfValues(0); ++ this->AllDimensions->SetNumberOfValues(counter); + this->VariableDimensions->SetNumberOfValues(counter); + + int i = 0; + for (const auto& label_diset_tuple : this->Internals->DimensionSets) + { +- this->AllDimensions->InsertNextValue(label_diset_tuple.first); ++ this->AllDimensions->SetValue(i, label_diset_tuple.first); + this->VariableDimensions->SetValue(i, label_diset_tuple.first.c_str()); + ++i; + } +diff --git a/Plugins/CDIReader/Reader/vtkCDIReader.h b/Plugins/CDIReader/Reader/vtkCDIReader.h +index 3bbee37929..087fe35a54 100644 +--- a/Plugins/CDIReader/Reader/vtkCDIReader.h ++++ b/Plugins/CDIReader/Reader/vtkCDIReader.h +@@ -41,8 +41,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + #include "vtkUnstructuredGridAlgorithm.h" + + #include "vtkDataArraySelection.h" // for ivars +-#include "vtkSmartPointer.h" // for ivars +-#include "vtkStringArray.h" // for ivars ++#include "vtkDoubleArray.h" ++#include "vtkSmartPointer.h" // for ivars ++#include "vtkStringArray.h" // for ivars + + #include "projections.h" // for projection enum + +@@ -94,11 +95,11 @@ public: + vtkGetMacro(NumberOfCellVars, int); + vtkGetMacro(NumberOfPointVars, int); + +- vtkSmartPointer<vtkStringArray> VariableDimensions; +- vtkSmartPointer<vtkStringArray> AllDimensions; ++ vtkNew<vtkStringArray> VariableDimensions; ++ vtkNew<vtkStringArray> AllDimensions; + void SetDimensions(const char* dimensions); + vtkStringArray* GetAllVariableArrayNames(); +- vtkSmartPointer<vtkStringArray> AllVariableArrayNames; ++ vtkNew<vtkStringArray> AllVariableArrayNames; + vtkGetObjectMacro(AllDimensions, vtkStringArray); + vtkGetObjectMacro(VariableDimensions, vtkStringArray); + +@@ -200,7 +201,6 @@ protected: + + int OpenFile(); + void DestroyData(); +- void SetDefaults(); + int CheckForMaskData(); + int AddMaskHalo(); + int GetVars(); +@@ -259,54 +259,52 @@ protected: + int AddMirrorPointX(int index, double dividerX, double offset); + int AddMirrorPointY(int index, double dividerY, double offset); + +- vtkMultiProcessController* Controller; +- +- bool Initialized; +- +- int NumberOfProcesses; +- double CustomMaskValue; +- int BeginPoint, EndPoint, BeginCell, EndCell; +- int Piece, NumPieces; +- int NumberLocalCells; +- int NumberAllCells; +- int NumberLocalPoints; +- int NumberAllPoints; +- bool Decomposition; +- long FirstDay; +- int ModNumPoints; +- int ModNumCells; +- unsigned int CurrentExtraPoint; // current extra point +- unsigned int CurrentExtraCell; // current extra cell ++ vtkMultiProcessController* Controller = nullptr; ++ ++ bool Initialized = false; ++ ++ int NumberOfProcesses = 1; ++ double CustomMaskValue = 0.0; ++ int BeginPoint = 0, EndPoint = 0, BeginCell = 0, EndCell = 0; ++ int Piece = 0, NumPieces = 0; ++ int NumberLocalCells = 0; ++ int NumberAllCells = 0; ++ int NumberLocalPoints = 0; ++ int NumberAllPoints = 0; ++ bool Decomposition = false; ++ long FirstDay = -1; ++ int ModNumPoints = 0; ++ int ModNumCells = 0; ++ unsigned int CurrentExtraPoint = 0; // current extra point ++ unsigned int CurrentExtraCell = 0; // current extra cell + std::vector<unsigned int> CellMap; // maps from added cell to original cell # + std::vector<unsigned int> PointMap; // maps from added point to original point # + +- std::string FileName; +- std::string FileNameGrid; +- std::string FileNameGridSelect; +- std::string FileSeriesFirstName; +- std::string MaskingVarname; +- int NumberOfTimeSteps; +- int NumberOfAllTimeSteps; ++ std::string FileName = ""; ++ std::string FileSeriesFirstName = ""; ++ std::string MaskingVarname = ""; ++ int NumberOfTimeSteps = 0; ++ int NumberOfAllTimeSteps = 0; + std::vector<int> TimeSeriesTimeSteps; +- bool TimeSeriesTimeStepsAllSet; +- bool TimeSet; +- double DTime; ++ bool TimeSeriesTimeStepsAllSet = false; ++ bool TimeSet = false; ++ double DTime = 0; + std::vector<double> TimeSteps; +- int FileSeriesNumber; +- int NumberOfFiles; +- double Bloat; ++ int FileSeriesNumber = 0; ++ int NumberOfFiles = 1; ++ double Bloat = 2.0; + +- bool UseMask; +- bool InvertMask; +- bool GotMask; +- bool UseCustomMaskValue; ++ bool UseMask = false; ++ bool InvertMask = false; ++ bool GotMask = false; ++ bool UseCustomMaskValue = false; + +- bool SkipGrid; ++ bool SkipGrid = false; + + vtkNew<vtkCallbackCommand> SelectionObserver; +- bool InfoRequested; +- bool DataRequested; +- bool Grib; ++ bool InfoRequested = false; ++ bool DataRequested = false; ++ bool Grib = false; + + vtkNew<vtkDataArraySelection> CellDataArraySelection; + vtkNew<vtkDataArraySelection> PointDataArraySelection; +@@ -316,69 +314,66 @@ protected: + vtkNew<vtkFieldData> PointVarDataArray; + vtkNew<vtkFieldData> DomainVarDataArray; + +- int VerticalLevelSelected; +- int VerticalLevelRange[2]; +- int CellDataSelected; +- int PointDataSelected; +- int DomainDataSelected; +- int LayerThickness; +- int LayerThicknessRange[2]; +- double Layer0Offset; +- double Layer0OffsetRange[2]; +- +- std::string DimensionSelection; +- bool InvertZAxis; +- bool AddCoordinateVars; +- projection::Projection ProjectionMode; +- bool DoublePrecision; +- bool ShowClonClat; +- bool ShowMultilayerView; +- bool HaveDomainData; +- bool HaveDomainVariable; +- bool BuildDomainArrays; +- std::string DomainVarName; +- std::string DomainDimension; +- std::string PerformanceDataFile; +- +- int MaximumNVertLevels; +- int NumberOfCells; +- int NumberOfVertices; +- int NumberOfPoints; +- int NumberOfTriangles; +- int NumberOfDomains; +- int PointsPerCell; +- bool ReconstructNew; +- bool NeedHorizontalGridFile; +- bool NeedVerticalGridFile; +- bool WrapOn; ++ int VerticalLevelSelected = 0; ++ int VerticalLevelRange[2] = { 0, 1 }; ++ int CellDataSelected = 0; ++ int PointDataSelected = 0; ++ int LayerThickness = 50; ++ int LayerThicknessRange[2] = { 0, 100 }; ++ double Layer0Offset = 1e-30; ++ double Layer0OffsetRange[2] = { -50, 51 }; ++ ++ std::string DimensionSelection = ""; ++ bool InvertZAxis = false; ++ bool AddCoordinateVars = false; ++ projection::Projection ProjectionMode = projection::SPHERICAL; ++ bool DoublePrecision = false; ++ bool ShowClonClat = false; ++ bool ShowMultilayerView = false; ++ bool HaveDomainData = false; ++ bool HaveDomainVariable = false; ++ bool BuildDomainArrays = false; ++ ++ // this is hard coded for now but will change when data generation gets more mature ++ std::string DomainVarName = "cell_owner"; ++ std::string DomainDimension = "domains"; ++ std::string PerformanceDataFile = "timer.atmo."; ++ ++ int MaximumNVertLevels = 0; ++ int NumberOfCells = 0; ++ int NumberOfPoints = 0; ++ int NumberOfDomains = 0; ++ int PointsPerCell = 0; ++ bool ReconstructNew = false; ++ bool WrapOn = false; + + std::vector<double> CLon; + std::vector<double> CLat; +- double* DepthVar; ++ std::vector<double> DepthVar; + std::vector<double> PointX; + std::vector<double> PointY; + std::vector<double> PointZ; + std::vector<int> OrigConnections; + std::vector<int> ModConnections; + std::vector<bool> CellMask; +- double* DomainCellVar; +- int MaximumCells; +- int MaximumPoints; ++ std::vector<double> DomainCellVar; ++ int MaximumCells = 0; ++ int MaximumPoints = 0; + std::vector<int> VertexIds; + +- int NumberOfCellVars; +- int NumberOfPointVars; +- int NumberOfDomainVars; +- bool GridReconstructed; ++ int NumberOfCellVars = 0; ++ int NumberOfPointVars = 0; ++ int NumberOfDomainVars = 0; ++ bool GridReconstructed = false; + +- int GridID; +- int ZAxisID; ++ int GridID = -1; ++ int ZAxisID = -1; + std::unordered_set<int> SurfIDs; + +- std::string TimeUnits; +- std::string Calendar; +- vtkSmartPointer<vtkDoubleArray> ClonArray; +- vtkSmartPointer<vtkDoubleArray> ClatArray; ++ std::string TimeUnits = ""; ++ std::string Calendar = ""; ++ vtkNew<vtkDoubleArray> ClonArray; ++ vtkNew<vtkDoubleArray> ClatArray; + vtkNew<vtkUnstructuredGrid> Output; + + private: +diff --git a/Plugins/CDIReader/Testing/CDIDimensionsTest.xml b/Plugins/CDIReader/Testing/CDIDimensionsTest.xml +new file mode 100644 +index 0000000000..4b71e0824b +--- /dev/null ++++ b/Plugins/CDIReader/Testing/CDIDimensionsTest.xml +@@ -0,0 +1,25 @@ ++<?xml version="1.0" ?> ++<pqevents> ++ <pqevent object="pqClientMainWindow/MainControlsToolbar/actionOpenData" command="activate" arguments="" /> ++ <pqevent object="pqClientMainWindow/FileOpenDialog" command="filesSelected" arguments="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/NetCDF/edges.nc" /> ++ <pqevent object="pqClientMainWindow/pqSelectReaderDialog/okButton" command="activate" arguments="" /> ++ <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/PropertiesFrame/ProxyPanel/Show3DSurface/CheckBox" command="set_boolean" arguments="true" /> ++ <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/Accept" command="activate" arguments="" /> ++ <pqevent object="pqClientMainWindow/variableToolbar/displayColor/Variables" command="activated" arguments="p_ice_Tsurf" /> ++ <pqevent object="pqClientMainWindow/cameraToolbar/actionIsometricView" command="activate" arguments="" /> ++ <pqevent object="pqClientMainWindow/cameraToolbar/actionResetCamera" command="activate" arguments="" /> ++ <pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Container/Frame.0/CentralWidgetFrame/Viewport" baseline="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/Baseline/CDIDimensionTest_0.png" width="300" height="300" /> ++ ++ <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/Accept" command="activate" arguments="" /> ++ <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/PropertiesFrame/ProxyPanel/Dimensions/ComboBox" command="activated" arguments="(clon, clat, depth_2)" /> ++ <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/Accept" command="activate" arguments="" /> ++ <pqevent object="pqClientMainWindow/cameraToolbar/actionIsometricView" command="activate" arguments="" /> ++ <pqevent object="pqClientMainWindow/cameraToolbar/actionResetCamera" command="activate" arguments="" /> ++ <pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Container/Frame.0/CentralWidgetFrame/Viewport" baseline="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/Baseline/CDIDimensionTest_1.png" width="300" height="300" /> ++ ++ <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/PropertiesFrame/ProxyPanel/Dimensions/ComboBox" command="activated" arguments="(elon, elat, depth)" /> ++ <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/Accept" command="activate" arguments="" /> ++ <pqevent object="pqClientMainWindow/variableToolbar/displayColor/Variables" command="activated" arguments="VN" /> ++ <pqevent object="pqClientMainWindow/cameraToolbar/actionIsometricView" command="activate" arguments="" /> ++ <pqevent object="pqClientMainWindow/cameraToolbar/actionResetCamera" command="activate" arguments="" /> ++</pqevents> +diff --git a/Plugins/CDIReader/Testing/CMakeLists.txt b/Plugins/CDIReader/Testing/CMakeLists.txt +index 1862dff5b2..7e3628e39d 100644 +--- a/Plugins/CDIReader/Testing/CMakeLists.txt ++++ b/Plugins/CDIReader/Testing/CMakeLists.txt +@@ -10,11 +10,13 @@ ExternalData_Expand_Arguments(ParaViewData _ + "DATA{${CMAKE_CURRENT_SOURCE_DIR}/Data/NetCDF/fesom.nc}" + "DATA{${CMAKE_CURRENT_SOURCE_DIR}/Data/Baseline/CDISimpleRead.png,:}" + "DATA{${CMAKE_CURRENT_SOURCE_DIR}/Data/Baseline/CDIUseMask.png,:}" ++ "DATA{${CMAKE_CURRENT_SOURCE_DIR}/Data/Baseline/CDIDimensionsTest.png,:}" + ) + + set (xml_tests + CDISimpleRead.xml + CDIUseMask.xml ++ CDIDimensionsTest.xml + ) + + paraview_add_client_tests( +-- +GitLab + + +From b3d4bc3426d112567a0072cb8cffa7cf8b2aa42f Mon Sep 17 00:00:00 2001 +From: Mathieu Westphal <mathieu.westphal@kitware.com> +Date: Wed, 23 Nov 2022 13:55:04 +0100 +Subject: [PATCH 5/5] Adding testing data + +Add/fix baselines for testing in CDIReader plugin + +Fix tests +--- + Plugins/CDIReader/Testing/CDIDimensionsTest.xml | 4 ++-- + Plugins/CDIReader/Testing/CDISimpleRead.xml | 10 +++++----- + Plugins/CDIReader/Testing/CDIUseMask.xml | 12 ++++++------ + Plugins/CDIReader/Testing/CMakeLists.txt | 17 ++++++++++++++--- + .../Data/Baseline/CDIDimensionsTest.png.sha512 | 1 + + .../Baseline/CDIDimensionsTest_A.png.sha512 | 1 + + .../Baseline/CDIDimensionsTest_B.png.sha512 | 1 + + ..._0.png.sha512 => CDISimpleRead_A.png.sha512} | 0 + ..._1.png.sha512 => CDISimpleRead_B.png.sha512} | 0 + ..._2.png.sha512 => CDISimpleRead_C.png.sha512} | 0 + ..._3.png.sha512 => CDISimpleRead_D.png.sha512} | 0 + ..._4.png.sha512 => CDISimpleRead_E.png.sha512} | 0 + ...ask_0.png.sha512 => CDIUseMask_A.png.sha512} | 0 + ...ask_1.png.sha512 => CDIUseMask_B.png.sha512} | 0 + ...ask_2.png.sha512 => CDIUseMask_C.png.sha512} | 0 + ...ask_3.png.sha512 => CDIUseMask_D.png.sha512} | 0 + ...ask_4.png.sha512 => CDIUseMask_E.png.sha512} | 0 + ...ask_5.png.sha512 => CDIUseMask_F.png.sha512} | 0 + .../Testing/Data/NetCDF/edges.nc.sha512 | 1 + + 19 files changed, 31 insertions(+), 16 deletions(-) + create mode 100644 Plugins/CDIReader/Testing/Data/Baseline/CDIDimensionsTest.png.sha512 + create mode 100644 Plugins/CDIReader/Testing/Data/Baseline/CDIDimensionsTest_A.png.sha512 + create mode 100644 Plugins/CDIReader/Testing/Data/Baseline/CDIDimensionsTest_B.png.sha512 + rename Plugins/CDIReader/Testing/Data/Baseline/{CDISimpleRead_0.png.sha512 => CDISimpleRead_A.png.sha512} (100%) + rename Plugins/CDIReader/Testing/Data/Baseline/{CDISimpleRead_1.png.sha512 => CDISimpleRead_B.png.sha512} (100%) + rename Plugins/CDIReader/Testing/Data/Baseline/{CDISimpleRead_2.png.sha512 => CDISimpleRead_C.png.sha512} (100%) + rename Plugins/CDIReader/Testing/Data/Baseline/{CDISimpleRead_3.png.sha512 => CDISimpleRead_D.png.sha512} (100%) + rename Plugins/CDIReader/Testing/Data/Baseline/{CDISimpleRead_4.png.sha512 => CDISimpleRead_E.png.sha512} (100%) + rename Plugins/CDIReader/Testing/Data/Baseline/{CDIUseMask_0.png.sha512 => CDIUseMask_A.png.sha512} (100%) + rename Plugins/CDIReader/Testing/Data/Baseline/{CDIUseMask_1.png.sha512 => CDIUseMask_B.png.sha512} (100%) + rename Plugins/CDIReader/Testing/Data/Baseline/{CDIUseMask_2.png.sha512 => CDIUseMask_C.png.sha512} (100%) + rename Plugins/CDIReader/Testing/Data/Baseline/{CDIUseMask_3.png.sha512 => CDIUseMask_D.png.sha512} (100%) + rename Plugins/CDIReader/Testing/Data/Baseline/{CDIUseMask_4.png.sha512 => CDIUseMask_E.png.sha512} (100%) + rename Plugins/CDIReader/Testing/Data/Baseline/{CDIUseMask_5.png.sha512 => CDIUseMask_F.png.sha512} (100%) + create mode 100644 Plugins/CDIReader/Testing/Data/NetCDF/edges.nc.sha512 + +diff --git a/Plugins/CDIReader/Testing/CDIDimensionsTest.xml b/Plugins/CDIReader/Testing/CDIDimensionsTest.xml +index 4b71e0824b..bdcb113c46 100644 +--- a/Plugins/CDIReader/Testing/CDIDimensionsTest.xml ++++ b/Plugins/CDIReader/Testing/CDIDimensionsTest.xml +@@ -8,14 +8,14 @@ + <pqevent object="pqClientMainWindow/variableToolbar/displayColor/Variables" command="activated" arguments="p_ice_Tsurf" /> + <pqevent object="pqClientMainWindow/cameraToolbar/actionIsometricView" command="activate" arguments="" /> + <pqevent object="pqClientMainWindow/cameraToolbar/actionResetCamera" command="activate" arguments="" /> +- <pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Container/Frame.0/CentralWidgetFrame/Viewport" baseline="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/Baseline/CDIDimensionTest_0.png" width="300" height="300" /> ++ <pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Container/Frame.0/CentralWidgetFrame/Viewport" baseline="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/Baseline/CDIDimensionsTest_A.png" width="300" height="300" /> + + <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/Accept" command="activate" arguments="" /> + <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/PropertiesFrame/ProxyPanel/Dimensions/ComboBox" command="activated" arguments="(clon, clat, depth_2)" /> + <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/Accept" command="activate" arguments="" /> + <pqevent object="pqClientMainWindow/cameraToolbar/actionIsometricView" command="activate" arguments="" /> + <pqevent object="pqClientMainWindow/cameraToolbar/actionResetCamera" command="activate" arguments="" /> +- <pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Container/Frame.0/CentralWidgetFrame/Viewport" baseline="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/Baseline/CDIDimensionTest_1.png" width="300" height="300" /> ++ <pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Container/Frame.0/CentralWidgetFrame/Viewport" baseline="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/Baseline/CDIDimensionsTest_B.png" width="300" height="300" /> + + <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/PropertiesFrame/ProxyPanel/Dimensions/ComboBox" command="activated" arguments="(elon, elat, depth)" /> + <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/Accept" command="activate" arguments="" /> +diff --git a/Plugins/CDIReader/Testing/CDISimpleRead.xml b/Plugins/CDIReader/Testing/CDISimpleRead.xml +index 3f787a306b..564721e3f5 100644 +--- a/Plugins/CDIReader/Testing/CDISimpleRead.xml ++++ b/Plugins/CDIReader/Testing/CDISimpleRead.xml +@@ -16,27 +16,27 @@ + <pqevent object="pqClientMainWindow/variableToolbar/actionScalarBarVisibility" command="set_boolean" arguments="false" /> + + <pqevent object="pqClientMainWindow/cameraToolbar/actionResetCamera" command="activate" arguments="" /> +- <pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Container/Frame.0/CentralWidgetFrame/Viewport" baseline="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_0.png" width="300" height="300" /> ++ <pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Container/Frame.0/CentralWidgetFrame/Viewport" baseline="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_A.png" width="300" height="300" /> + + <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/PropertiesFrame/ProxyPanel/SetProjection/ComboBox" command="activated" arguments="Spherical Projection" /> + <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/Accept" command="activate" arguments="" /> + <pqevent object="pqClientMainWindow/cameraToolbar/actionResetCamera" command="activate" arguments="" /> +- <pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Container/Frame.0/CentralWidgetFrame/Viewport" baseline="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_1.png" width="300" height="300" /> ++ <pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Container/Frame.0/CentralWidgetFrame/Viewport" baseline="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_B.png" width="300" height="300" /> + + <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/PropertiesFrame/ProxyPanel/SetProjection/ComboBox" command="activated" arguments="Cassini Projection" /> + <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/Accept" command="activate" arguments="" /> + <pqevent object="pqClientMainWindow/cameraToolbar/actionResetCamera" command="activate" arguments="" /> +- <pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Container/Frame.0/CentralWidgetFrame/Viewport" baseline="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_2.png" width="300" height="300" /> ++ <pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Container/Frame.0/CentralWidgetFrame/Viewport" baseline="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_C.png" width="300" height="300" /> + + <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/PropertiesFrame/ProxyPanel/SetProjection/ComboBox" command="activated" arguments="Mollweide Projection" /> + <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/Accept" command="activate" arguments="" /> + <pqevent object="pqClientMainWindow/cameraToolbar/actionResetCamera" command="activate" arguments="" /> +- <pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Container/Frame.0/CentralWidgetFrame/Viewport" baseline="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_3.png" width="300" height="300" /> ++ <pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Container/Frame.0/CentralWidgetFrame/Viewport" baseline="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_D.png" width="300" height="300" /> + + <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/PropertiesFrame/ProxyPanel/SetProjection/ComboBox" command="activated" arguments="Catalyst (no scaling)" /> + <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/Accept" command="activate" arguments="" /> + <pqevent object="pqClientMainWindow/cameraToolbar/actionResetCamera" command="activate" arguments="" /> +- <pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Container/Frame.0/CentralWidgetFrame/Viewport" baseline="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_4.png" width="300" height="300" /> ++ <pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Container/Frame.0/CentralWidgetFrame/Viewport" baseline="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_E.png" width="300" height="300" /> + + <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/PropertiesFrame/ProxyPanel/SetProjection/ComboBox" command="activated" arguments="Spilhouse Projection" /> + <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/Accept" command="activate" arguments="" /> +diff --git a/Plugins/CDIReader/Testing/CDIUseMask.xml b/Plugins/CDIReader/Testing/CDIUseMask.xml +index f140573c29..b39e4929da 100644 +--- a/Plugins/CDIReader/Testing/CDIUseMask.xml ++++ b/Plugins/CDIReader/Testing/CDIUseMask.xml +@@ -11,31 +11,31 @@ + <pqevent object="pqClientMainWindow/variableToolbar/displayColor/Variables" command="activated" arguments="thetao" /> + <pqevent object="pqClientMainWindow/cameraToolbar/actionNegativeY" command="activate" arguments="" /> + <pqevent object="pqClientMainWindow/cameraToolbar/actionResetCamera" command="activate" arguments="" /> +- <pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Container/Frame.0/CentralWidgetFrame/Viewport" baseline="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_0.png" width="300" height="300" /> ++ <pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Container/Frame.0/CentralWidgetFrame/Viewport" baseline="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_A.png" width="300" height="300" /> + + <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/PropertiesFrame/ProxyPanel/SetProjection/ComboBox" command="activated" arguments="Spherical Projection" /> + <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/Accept" command="activate" arguments="" /> + <pqevent object="pqClientMainWindow/cameraToolbar/actionResetCamera" command="activate" arguments="" /> +- <pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Container/Frame.0/CentralWidgetFrame/Viewport" baseline="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_1.png" width="300" height="300" /> ++ <pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Container/Frame.0/CentralWidgetFrame/Viewport" baseline="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_B.png" width="300" height="300" /> + + <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/PropertiesFrame/ProxyPanel/SetProjection/ComboBox" command="activated" arguments="Cassini Projection" /> + <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/Accept" command="activate" arguments="" /> + <pqevent object="pqClientMainWindow/cameraToolbar/actionResetCamera" command="activate" arguments="" /> +- <pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Container/Frame.0/CentralWidgetFrame/Viewport" baseline="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_2.png" width="300" height="300" /> ++ <pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Container/Frame.0/CentralWidgetFrame/Viewport" baseline="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_C.png" width="300" height="300" /> + + <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/PropertiesFrame/ProxyPanel/SetProjection/ComboBox" command="activated" arguments="Mollweide Projection" /> + <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/Accept" command="activate" arguments="" /> + <pqevent object="pqClientMainWindow/cameraToolbar/actionResetCamera" command="activate" arguments="" /> +- <pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Container/Frame.0/CentralWidgetFrame/Viewport" baseline="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_3.png" width="300" height="300" /> ++ <pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Container/Frame.0/CentralWidgetFrame/Viewport" baseline="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_D.png" width="300" height="300" /> + + <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/PropertiesFrame/ProxyPanel/SetProjection/ComboBox" command="activated" arguments="Catalyst (no scaling)" /> + <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/Accept" command="activate" arguments="" /> + <pqevent object="pqClientMainWindow/cameraToolbar/actionResetCamera" command="activate" arguments="" /> +- <pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Container/Frame.0/CentralWidgetFrame/Viewport" baseline="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_4.png" width="300" height="300" /> ++ <pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Container/Frame.0/CentralWidgetFrame/Viewport" baseline="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_E.png" width="300" height="300" /> + + <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/PropertiesFrame/ProxyPanel/SetProjection/ComboBox" command="activated" arguments="Spilhouse Projection" /> + <pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/Accept" command="activate" arguments="" /> + <pqevent object="pqClientMainWindow/cameraToolbar/actionResetCamera" command="activate" arguments="" /> +- <pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Container/Frame.0/CentralWidgetFrame/Viewport" baseline="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_5.png" width="300" height="300" /> ++ <pqcompareview object="pqClientMainWindow/centralwidget/MultiViewWidget/CoreWidget/qt_tabwidget_stackedwidget/MultiViewWidget1/Container/Frame.0/CentralWidgetFrame/Viewport" baseline="$PARAVIEW_DATA_ROOT/Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_F.png" width="300" height="300" /> + + </pqevents> +diff --git a/Plugins/CDIReader/Testing/CMakeLists.txt b/Plugins/CDIReader/Testing/CMakeLists.txt +index 7e3628e39d..e31c515f2b 100644 +--- a/Plugins/CDIReader/Testing/CMakeLists.txt ++++ b/Plugins/CDIReader/Testing/CMakeLists.txt +@@ -6,11 +6,22 @@ endif() + + set(_paraview_add_tests_default_test_data_target ParaViewData) + ExternalData_Expand_Arguments(ParaViewData _ ++ "DATA{${CMAKE_CURRENT_SOURCE_DIR}/Data/NetCDF/edges.nc}" + "DATA{${CMAKE_CURRENT_SOURCE_DIR}/Data/NetCDF/ts.nc}" + "DATA{${CMAKE_CURRENT_SOURCE_DIR}/Data/NetCDF/fesom.nc}" +- "DATA{${CMAKE_CURRENT_SOURCE_DIR}/Data/Baseline/CDISimpleRead.png,:}" +- "DATA{${CMAKE_CURRENT_SOURCE_DIR}/Data/Baseline/CDIUseMask.png,:}" +- "DATA{${CMAKE_CURRENT_SOURCE_DIR}/Data/Baseline/CDIDimensionsTest.png,:}" ++ "DATA{${CMAKE_CURRENT_SOURCE_DIR}/Data/Baseline/CDISimpleRead_A.png,:}" ++ "DATA{${CMAKE_CURRENT_SOURCE_DIR}/Data/Baseline/CDISimpleRead_B.png,:}" ++ "DATA{${CMAKE_CURRENT_SOURCE_DIR}/Data/Baseline/CDISimpleRead_C.png,:}" ++ "DATA{${CMAKE_CURRENT_SOURCE_DIR}/Data/Baseline/CDISimpleRead_D.png,:}" ++ "DATA{${CMAKE_CURRENT_SOURCE_DIR}/Data/Baseline/CDISimpleRead_E.png,:}" ++ "DATA{${CMAKE_CURRENT_SOURCE_DIR}/Data/Baseline/CDIUseMask_A.png,:}" ++ "DATA{${CMAKE_CURRENT_SOURCE_DIR}/Data/Baseline/CDIUseMask_B.png,:}" ++ "DATA{${CMAKE_CURRENT_SOURCE_DIR}/Data/Baseline/CDIUseMask_C.png,:}" ++ "DATA{${CMAKE_CURRENT_SOURCE_DIR}/Data/Baseline/CDIUseMask_D.png,:}" ++ "DATA{${CMAKE_CURRENT_SOURCE_DIR}/Data/Baseline/CDIUseMask_E.png,:}" ++ "DATA{${CMAKE_CURRENT_SOURCE_DIR}/Data/Baseline/CDIUseMask_F.png,:}" ++ "DATA{${CMAKE_CURRENT_SOURCE_DIR}/Data/Baseline/CDIDimensionsTest_A.png,:}" ++ "DATA{${CMAKE_CURRENT_SOURCE_DIR}/Data/Baseline/CDIDimensionsTest_B.png,:}" + ) + + set (xml_tests +diff --git a/Plugins/CDIReader/Testing/Data/Baseline/CDIDimensionsTest.png.sha512 b/Plugins/CDIReader/Testing/Data/Baseline/CDIDimensionsTest.png.sha512 +new file mode 100644 +index 0000000000..9b8b47efa6 +--- /dev/null ++++ b/Plugins/CDIReader/Testing/Data/Baseline/CDIDimensionsTest.png.sha512 +@@ -0,0 +1 @@ ++11c6513595364e3e3dec4e21f4711745deb4cccf8a0f6d3cf6343a4241cf8bbbbdd21e3390b7313e499fd3669f828548e3e88b0f262cb188735809efbd076e06 +diff --git a/Plugins/CDIReader/Testing/Data/Baseline/CDIDimensionsTest_A.png.sha512 b/Plugins/CDIReader/Testing/Data/Baseline/CDIDimensionsTest_A.png.sha512 +new file mode 100644 +index 0000000000..2b763c05e8 +--- /dev/null ++++ b/Plugins/CDIReader/Testing/Data/Baseline/CDIDimensionsTest_A.png.sha512 +@@ -0,0 +1 @@ ++2b8c39ffbb41b22699a3ec4e84c29ee9dc701171dc31367919b027559c1785a73c772351e0a6fca60781f1aad45c41f0cb3be8f9f165c06c9b9c9ac2ead7877c +diff --git a/Plugins/CDIReader/Testing/Data/Baseline/CDIDimensionsTest_B.png.sha512 b/Plugins/CDIReader/Testing/Data/Baseline/CDIDimensionsTest_B.png.sha512 +new file mode 100644 +index 0000000000..55a1a41256 +--- /dev/null ++++ b/Plugins/CDIReader/Testing/Data/Baseline/CDIDimensionsTest_B.png.sha512 +@@ -0,0 +1 @@ ++a82a7f285150826a49c95253cd7b4ddbe83f138673b7979e00f3e7a137c8f6860a1847e7f5337722ef48cdf94c05654fa1d35b626b82edaf0d7f221d1f515324 +diff --git a/Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_0.png.sha512 b/Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_A.png.sha512 +similarity index 100% +rename from Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_0.png.sha512 +rename to Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_A.png.sha512 +diff --git a/Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_1.png.sha512 b/Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_B.png.sha512 +similarity index 100% +rename from Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_1.png.sha512 +rename to Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_B.png.sha512 +diff --git a/Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_2.png.sha512 b/Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_C.png.sha512 +similarity index 100% +rename from Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_2.png.sha512 +rename to Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_C.png.sha512 +diff --git a/Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_3.png.sha512 b/Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_D.png.sha512 +similarity index 100% +rename from Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_3.png.sha512 +rename to Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_D.png.sha512 +diff --git a/Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_4.png.sha512 b/Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_E.png.sha512 +similarity index 100% +rename from Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_4.png.sha512 +rename to Plugins/CDIReader/Testing/Data/Baseline/CDISimpleRead_E.png.sha512 +diff --git a/Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_0.png.sha512 b/Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_A.png.sha512 +similarity index 100% +rename from Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_0.png.sha512 +rename to Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_A.png.sha512 +diff --git a/Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_1.png.sha512 b/Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_B.png.sha512 +similarity index 100% +rename from Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_1.png.sha512 +rename to Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_B.png.sha512 +diff --git a/Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_2.png.sha512 b/Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_C.png.sha512 +similarity index 100% +rename from Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_2.png.sha512 +rename to Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_C.png.sha512 +diff --git a/Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_3.png.sha512 b/Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_D.png.sha512 +similarity index 100% +rename from Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_3.png.sha512 +rename to Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_D.png.sha512 +diff --git a/Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_4.png.sha512 b/Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_E.png.sha512 +similarity index 100% +rename from Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_4.png.sha512 +rename to Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_E.png.sha512 +diff --git a/Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_5.png.sha512 b/Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_F.png.sha512 +similarity index 100% +rename from Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_5.png.sha512 +rename to Plugins/CDIReader/Testing/Data/Baseline/CDIUseMask_F.png.sha512 +diff --git a/Plugins/CDIReader/Testing/Data/NetCDF/edges.nc.sha512 b/Plugins/CDIReader/Testing/Data/NetCDF/edges.nc.sha512 +new file mode 100644 +index 0000000000..4b3e624b62 +--- /dev/null ++++ b/Plugins/CDIReader/Testing/Data/NetCDF/edges.nc.sha512 +@@ -0,0 +1 @@ ++eb097c55f8df99e7f0be7b387de6c8970ba8255b6c633d3f2c4247ad5a8fe67238db8a98ff6322d4c03133a7c424832f1873f3e219734cdff517e731f60b60b6 +-- +GitLab + diff --git a/Golden_Repo/p/ParaView/parflowreader_fix-nlohmann_merge6050.patch b/Golden_Repo/p/ParaView/parflowreader_fix-nlohmann_merge6050.patch new file mode 100644 index 0000000000000000000000000000000000000000..05b0a99a23f1b7cc4c1ebfcac1477f722d5a92af --- /dev/null +++ b/Golden_Repo/p/ParaView/parflowreader_fix-nlohmann_merge6050.patch @@ -0,0 +1,160 @@ +From 1a32dd6fc394a75b6898b1d692157826ed235015 Mon Sep 17 00:00:00 2001 +From: David Thompson <david.thompson@kitware.com> +Date: Sat, 3 Dec 2022 01:08:56 -0500 +Subject: [PATCH 1/2] Make the ParFlow Plugin work with modern nlohmann::json. + +The previous version worked with nlohmann::json v3.6.1 but +is broken using v3.11.2. Rather than attempt to throw internal +nlohmann::json exception types, throw standard C++ exceptions +for our errors. +--- + Plugins/ParFlow/IO/vtkVectorJSON.h | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/Plugins/ParFlow/IO/vtkVectorJSON.h b/Plugins/ParFlow/IO/vtkVectorJSON.h +index 8e4d23c7e4..fb7fb5ecdb 100644 +--- a/Plugins/ParFlow/IO/vtkVectorJSON.h ++++ b/Plugins/ParFlow/IO/vtkVectorJSON.h +@@ -6,6 +6,8 @@ + + #include "nlohmann/json.hpp" // for json + ++#include <stdexcept> ++ + /// Convert a vtkVector (or any vtkTuple) into a json::array. + template <typename T, int S> + void to_json(nlohmann::json& j, const vtkTuple<T, S>& vec) +@@ -19,12 +21,11 @@ void from_json(const nlohmann::json& j, vtkTuple<T, S>& vec) + { + if (!j.is_array()) + { +- throw nlohmann::detail::type_error::create( +- 302, "type must be array, but is " + std::string(j.type_name())); ++ throw std::invalid_argument("type must be array, but is " + std::string(j.type_name())); + } + if (static_cast<int>(j.size()) != vec.GetSize()) + { +- throw nlohmann::detail::type_error::create(302, "array sizes do not match"); ++ throw std::invalid_argument("array sizes do not match"); + } + int ii = 0; + for (auto it = j.begin(); it != j.end(); ++it, ++ii) +-- +GitLab + + +From e7a0cb1c336fae38c41987e20ee2834eca034ae9 Mon Sep 17 00:00:00 2001 +From: David Thompson <david.thompson@kitware.com> +Date: Sat, 3 Dec 2022 01:28:27 -0500 +Subject: [PATCH 2/2] Switch the ParFlow plugin to VTK's nlohmann::json. + +Using this version allows us to enable the plugin by +default since it doesn't add any external dependencies. +--- + CMakeLists.txt | 2 +- + Plugins/ParFlow/IO/CMakeLists.txt | 7 ------- + Plugins/ParFlow/IO/vtk.module | 1 + + Plugins/ParFlow/IO/vtkParFlowMetaReader.cxx | 7 ++++++- + Plugins/ParFlow/IO/vtkParFlowMetaReader.h | 5 +++++ + Plugins/ParFlow/IO/vtkVectorJSON.h | 5 +++++ + 6 files changed, 18 insertions(+), 9 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 2674a59e83..e28ee1a594 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -312,7 +312,7 @@ set(paraview_default_plugins + PacMan + PanoramicProjectionView + ParametricSurfaces +- # ParFlow - Because of dependency to nlohmann_json ++ ParFlow + SaveStateAndScreenshot + SLACTools + StreamLinesRepresentation +diff --git a/Plugins/ParFlow/IO/CMakeLists.txt b/Plugins/ParFlow/IO/CMakeLists.txt +index ddafa4e6ab..733fd6cfc4 100644 +--- a/Plugins/ParFlow/IO/CMakeLists.txt ++++ b/Plugins/ParFlow/IO/CMakeLists.txt +@@ -7,17 +7,10 @@ set(private_headers + vtkVectorJSON.h + ) + +-vtk_module_find_package( +- PACKAGE nlohmann_json) +- + vtk_module_add_module(ParFlow::IO + CLASSES ${classes} + PRIVATE_HEADERS ${private_headers} + ) +-vtk_module_link(ParFlow::IO +- PUBLIC nlohmann_json::nlohmann_json +-) +- + paraview_add_server_manager_xmls( + XMLS ParFlowIO.xml + ) +diff --git a/Plugins/ParFlow/IO/vtk.module b/Plugins/ParFlow/IO/vtk.module +index ea43242296..2caca0ba91 100644 +--- a/Plugins/ParFlow/IO/vtk.module ++++ b/Plugins/ParFlow/IO/vtk.module +@@ -8,3 +8,4 @@ DEPENDS + VTK::CommonDataModel + VTK::CommonExecutionModel + VTK::ParallelCore ++ VTK::nlohmannjson +diff --git a/Plugins/ParFlow/IO/vtkParFlowMetaReader.cxx b/Plugins/ParFlow/IO/vtkParFlowMetaReader.cxx +index ba33a5eb77..06805bdf7d 100644 +--- a/Plugins/ParFlow/IO/vtkParFlowMetaReader.cxx ++++ b/Plugins/ParFlow/IO/vtkParFlowMetaReader.cxx +@@ -25,7 +25,12 @@ + #include "vtksys/FStream.hxx" + #include "vtksys/SystemTools.hxx" + +-#include "nlohmann/json.hpp" ++#if 0 ++#include "nlohmann/json.hpp" // for json bits ++#else ++#include "vtk_nlohmannjson.h" // Use VTK's mangled version ++#include VTK_NLOHMANN_JSON(json.hpp) // Use VTK's mangled version ++#endif + + #include <algorithm> + #include <cmath> +diff --git a/Plugins/ParFlow/IO/vtkParFlowMetaReader.h b/Plugins/ParFlow/IO/vtkParFlowMetaReader.h +index 3fc07ca58c..ace47939ee 100644 +--- a/Plugins/ParFlow/IO/vtkParFlowMetaReader.h ++++ b/Plugins/ParFlow/IO/vtkParFlowMetaReader.h +@@ -8,7 +8,12 @@ + #include "vtkSmartPointer.h" // for ivars + #include "vtkVector.h" // for vtkVector* + ++#if 0 + #include "nlohmann/json.hpp" // for json bits ++#else ++#include "vtk_nlohmannjson.h" // Use VTK's mangled version ++#include VTK_NLOHMANN_JSON(json.hpp) // Use VTK's mangled version ++#endif + + #include <map> // for std::map + #include <set> // for std::set +diff --git a/Plugins/ParFlow/IO/vtkVectorJSON.h b/Plugins/ParFlow/IO/vtkVectorJSON.h +index fb7fb5ecdb..57b39e94a1 100644 +--- a/Plugins/ParFlow/IO/vtkVectorJSON.h ++++ b/Plugins/ParFlow/IO/vtkVectorJSON.h +@@ -4,7 +4,12 @@ + + #include "vtkVector.h" + ++#if 0 + #include "nlohmann/json.hpp" // for json ++#else ++#include "vtk_nlohmannjson.h" // Use VTK's mangled version ++#include VTK_NLOHMANN_JSON(json.hpp) // Use VTK's mangled version ++#endif + + #include <stdexcept> + +-- +GitLab + diff --git a/Golden_Repo/p/ParaViewData/ParaViewData-5.11.0-GCCcore-11.3.0.eb b/Golden_Repo/p/ParaViewData/ParaViewData-5.11.0-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..181fc925f177107f9ed0ff2aac145de4b3200c30 --- /dev/null +++ b/Golden_Repo/p/ParaViewData/ParaViewData-5.11.0-GCCcore-11.3.0.eb @@ -0,0 +1,28 @@ +easyblock = 'Tarball' + +name = 'ParaViewData' +version = '5.11.0' + +homepage = 'https://www.paraview.org' +description = "Testdata for ParaView" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +local_dwnlsfx_src = 'download.php?submit=Download&version=v%(version_major_minor)s&type=data&os=Sources&downloadFile=' +source_urls = [ + ('https://www.paraview.org/paraview-downloads/%s' % local_dwnlsfx_src)] +sources = [ + ('ParaViewTestingDataFiles-v%(version)s.tar.xz'), + ('ParaViewTestingDataStore-v%(version)s.tar.xz'), +] +checksums = [ + ('sha256', '1fabddc33932986eb84cc7e5e08515aff0b9432d875f48ac87ba0285c856e7a2'), + ('sha256', '48b1e7bc38aac3696073cc6911cfb221832e4cc3787ea0010e80f9feb9f190cf'), +] + +sanity_check_paths = { + 'files': ['.ExternalData/README.rst'], + 'dirs': ['.ExternalData', 'Clients', 'Plugins', 'Remoting', 'Testing', 'VTKExtensions'], +} + +moduleclass = 'vis' diff --git a/Golden_Repo/p/ParaViewPlugin-Nek5000/ParaViewPlugin-Nek5000-20230208-foss-2022a-EGL.eb b/Golden_Repo/p/ParaViewPlugin-Nek5000/ParaViewPlugin-Nek5000-20230208-foss-2022a-EGL.eb new file mode 100644 index 0000000000000000000000000000000000000000..b2cfe635ec66e7a3471162c6e2dd5250a6393fc8 --- /dev/null +++ b/Golden_Repo/p/ParaViewPlugin-Nek5000/ParaViewPlugin-Nek5000-20230208-foss-2022a-EGL.eb @@ -0,0 +1,34 @@ +easyblock = 'CMakeMake' + +name = 'ParaViewPlugin-Nek5000' +version = '20230208' +versionsuffix = '-EGL' + +homepage = "http://www.paraview.org" +description = "Plugin for ParaView. Paraview is a scientific parallel visualizer." + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/jfavre/ParaViewNek5000Plugin/archive/'] +sources = ['bade61018d40d5ad83c1b64f3babaed2bdbe1986.tar.gz'] +checksums = ['c5ad5471299cce305adacfa2748026354628d2cc6b5321a48214a0461f2597ff'] + +builddependencies = [ + ('CMake', '3.23.1'), +] + +dependencies = [ + ('ParaView', '5.11.0', '-EGL'), +] + +separate_build_dir = True + +modextrapaths = {'PV_PLUGIN_PATH': './lib/paraview-5.11/plugins/pvNek5000Reader/'} + +sanity_check_paths = { + 'files': ['include/vtkNek5000Reader.h', 'lib/paraview-5.11/plugins/pvNek5000Reader/libNek5000Reader.so'], + 'dirs': ['include', 'lib', 'lib/paraview-5.11/plugins/pvNek5000Reader'] +} + +moduleclass = 'vis' diff --git a/Golden_Repo/p/ParaViewPlugin-Nek5000/ParaViewPlugin-Nek5000-20230208-foss-2022a.eb b/Golden_Repo/p/ParaViewPlugin-Nek5000/ParaViewPlugin-Nek5000-20230208-foss-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..a4f75618a95e8ffb5470afa138ba660ec48e7356 --- /dev/null +++ b/Golden_Repo/p/ParaViewPlugin-Nek5000/ParaViewPlugin-Nek5000-20230208-foss-2022a.eb @@ -0,0 +1,33 @@ +easyblock = 'CMakeMake' + +name = 'ParaViewPlugin-Nek5000' +version = '20230208' + +homepage = "http://www.paraview.org" +description = "Plugin for ParaView. Paraview is a scientific parallel visualizer." + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/jfavre/ParaViewNek5000Plugin/archive/'] +sources = ['bade61018d40d5ad83c1b64f3babaed2bdbe1986.tar.gz'] +checksums = ['c5ad5471299cce305adacfa2748026354628d2cc6b5321a48214a0461f2597ff'] + +builddependencies = [ + ('CMake', '3.23.1'), +] + +dependencies = [ + ('ParaView', '5.11.0'), +] + +separate_build_dir = True + +modextrapaths = {'PV_PLUGIN_PATH': './lib/paraview-5.11/plugins/pvNek5000Reader/'} + +sanity_check_paths = { + 'files': ['include/vtkNek5000Reader.h', 'lib/paraview-5.11/plugins/pvNek5000Reader/libNek5000Reader.so'], + 'dirs': ['include', 'lib', 'lib/paraview-5.11/plugins/pvNek5000Reader'] +} + +moduleclass = 'vis' diff --git a/Golden_Repo/p/ParaViewPlugin-Nek5000/ParaViewPlugin-Nek5000-20230208-gpsmkl-2022a-EGL.eb b/Golden_Repo/p/ParaViewPlugin-Nek5000/ParaViewPlugin-Nek5000-20230208-gpsmkl-2022a-EGL.eb new file mode 100644 index 0000000000000000000000000000000000000000..fd4b649192f3c574d77ec61716d40486b2567aea --- /dev/null +++ b/Golden_Repo/p/ParaViewPlugin-Nek5000/ParaViewPlugin-Nek5000-20230208-gpsmkl-2022a-EGL.eb @@ -0,0 +1,34 @@ +easyblock = 'CMakeMake' + +name = 'ParaViewPlugin-Nek5000' +version = '20230208' +versionsuffix = '-EGL' + +homepage = "http://www.paraview.org" +description = "Plugin for ParaView. Paraview is a scientific parallel visualizer." + +toolchain = {'name': 'gpsmkl', 'version': '2022a'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/jfavre/ParaViewNek5000Plugin/archive/'] +sources = ['bade61018d40d5ad83c1b64f3babaed2bdbe1986.tar.gz'] +checksums = ['c5ad5471299cce305adacfa2748026354628d2cc6b5321a48214a0461f2597ff'] + +builddependencies = [ + ('CMake', '3.23.1'), +] + +dependencies = [ + ('ParaView', '5.11.0', '-EGL'), +] + +separate_build_dir = True + +modextrapaths = {'PV_PLUGIN_PATH': './lib/paraview-5.11/plugins/pvNek5000Reader/'} + +sanity_check_paths = { + 'files': ['include/vtkNek5000Reader.h', 'lib/paraview-5.11/plugins/pvNek5000Reader/libNek5000Reader.so'], + 'dirs': ['include', 'lib', 'lib/paraview-5.11/plugins/pvNek5000Reader'] +} + +moduleclass = 'vis' diff --git a/Golden_Repo/p/ParaViewPlugin-Nek5000/ParaViewPlugin-Nek5000-20230208-gpsmkl-2022a.eb b/Golden_Repo/p/ParaViewPlugin-Nek5000/ParaViewPlugin-Nek5000-20230208-gpsmkl-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..75d2cbfecb39fb8fea46a5a1daba62a00a1d3235 --- /dev/null +++ b/Golden_Repo/p/ParaViewPlugin-Nek5000/ParaViewPlugin-Nek5000-20230208-gpsmkl-2022a.eb @@ -0,0 +1,33 @@ +easyblock = 'CMakeMake' + +name = 'ParaViewPlugin-Nek5000' +version = '20230208' + +homepage = "http://www.paraview.org" +description = "Plugin for ParaView. Paraview is a scientific parallel visualizer." + +toolchain = {'name': 'gpsmkl', 'version': '2022a'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/jfavre/ParaViewNek5000Plugin/archive/'] +sources = ['bade61018d40d5ad83c1b64f3babaed2bdbe1986.tar.gz'] +checksums = ['c5ad5471299cce305adacfa2748026354628d2cc6b5321a48214a0461f2597ff'] + +builddependencies = [ + ('CMake', '3.23.1'), +] + +dependencies = [ + ('ParaView', '5.11.0'), +] + +separate_build_dir = True + +modextrapaths = {'PV_PLUGIN_PATH': './lib/paraview-5.11/plugins/pvNek5000Reader/'} + +sanity_check_paths = { + 'files': ['include/vtkNek5000Reader.h', 'lib/paraview-5.11/plugins/pvNek5000Reader/libNek5000Reader.so'], + 'dirs': ['include', 'lib', 'lib/paraview-5.11/plugins/pvNek5000Reader'] +} + +moduleclass = 'vis' diff --git a/Golden_Repo/p/PyCairo/PyCairo-1.23.0-GCCcore-11.3.0.eb b/Golden_Repo/p/PyCairo/PyCairo-1.23.0-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..24de7e7fe6121a8a56b9eceedbbcd2adb52991cf --- /dev/null +++ b/Golden_Repo/p/PyCairo/PyCairo-1.23.0-GCCcore-11.3.0.eb @@ -0,0 +1,45 @@ +# Author: Denis Krišťák (INUITS) + +easyblock = 'PythonPackage' + +name = 'PyCairo' +version = '1.23.0' + +homepage = 'https://pycairo.readthedocs.io/' +description = """Python bindings for the cairo library""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +sources = [SOURCELOWER_TAR_GZ] +checksums = ['9b61ac818723adc04367301317eb2e814a83522f07bbd1f409af0dada463c44c'] + +builddependencies = [ + ('binutils', '2.38'), + ('Coreutils', '9.1'), + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('cairo', '1.17.4'), +] + +# PyGTK needs PyCairo installed by pip +use_pip = True +sanity_pip_check = True +download_dep_fail = True + +# remove pyproject.toml, which causes trouble (header files and .pc file are not installed) +preinstallopts = "rm pyproject.toml && " + +# Don't build a wheel or the pkg-cfg file won't be installed +installopts = '--no-binary=%(namelower)s' + +sanity_check_paths = { + 'files': ['%s/py3cairo.%s' % (p, e) for (p, e) in [('include/pycairo', 'h'), ('lib/pkgconfig', 'pc')]], + 'dirs': ['lib/python%(pyshortver)s/site-packages/cairo'], +} + +options = {'modulename': 'cairo'} + +moduleclass = 'vis' diff --git a/Golden_Repo/p/PyGObject/PyGObject-3.42.2-GCCcore-11.3.0.eb b/Golden_Repo/p/PyGObject/PyGObject-3.42.2-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..13599cb11e3011ec3519cb024cb354f1fc0009ea --- /dev/null +++ b/Golden_Repo/p/PyGObject/PyGObject-3.42.2-GCCcore-11.3.0.eb @@ -0,0 +1,47 @@ +easyblock = 'PythonPackage' + +name = 'PyGObject' +version = '3.42.2' + +homepage = 'https://pygobject.readthedocs.io' +description = """PyGObject is a Python package which provides bindings for GObject based +libraries such as GTK, GStreamer, WebKitGTK, GLib, GIO and many more. +""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['21524cef33100c8fd59dc135948b703d79d303e368ce71fa60521cc971cd8aa7'] + +builddependencies = [ + ('binutils', '2.38'), + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('GLib', '2.72.1'), + ('GObject-Introspection', '1.72.0'), + ('PyCairo', '1.23.0'), + ('libffi', '3.4.2'), +] + +use_pip = False +sanity_pip_check = True +download_dep_fail = True + +# install data (pkg-config and include files) +installopts = '--root=/' + +sanity_check_paths = { + 'files': [ + 'include/pygobject-%(version_major)s.0/pygobject.h', + 'lib/pkgconfig/pygobject-%(version_major)s.0.pc', + ], + 'dirs': ['lib/python%(pyshortver)s/site-packages/gi'], +} + +options = {'modulename': 'gi'} + +moduleclass = 'vis' diff --git a/Golden_Repo/p/PyOpenCL/PyOpenCL-2021.2.13-gcccoremkl-11.3.0-2022.1.0.eb b/Golden_Repo/p/PyOpenCL/PyOpenCL-2022.2.4-gcccoremkl-11.3.0-2022.1.0.eb similarity index 100% rename from Golden_Repo/p/PyOpenCL/PyOpenCL-2021.2.13-gcccoremkl-11.3.0-2022.1.0.eb rename to Golden_Repo/p/PyOpenCL/PyOpenCL-2022.2.4-gcccoremkl-11.3.0-2022.1.0.eb diff --git a/Golden_Repo/p/PyQuil/PyQuil-3.3.3-gcccoremkl-11.3.0-2022.1.0.eb b/Golden_Repo/p/PyQuil/PyQuil-3.3.3-gcccoremkl-11.3.0-2022.1.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..cd1a2525d6964372e38a125f7fe2226c1f9a0146 --- /dev/null +++ b/Golden_Repo/p/PyQuil/PyQuil-3.3.3-gcccoremkl-11.3.0-2022.1.0.eb @@ -0,0 +1,101 @@ +easyblock = 'PythonBundle' + +name = 'PyQuil' +version = '3.3.3' + +homepage = 'https://github.com/rigetti/pyquil' +description = """PyQuil is a library for generating and executing Quil programs on the Rigetti Forest platform.""" + +toolchain = {'name': 'gcccoremkl', 'version': '11.3.0-2022.1.0'} +toolchainopts = {'pic': True} + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-Stack', '2022a'), + ('networkx', '2.8.4'), + +] + +exts_default_options = { + 'source_urls': [PYPI_SOURCE], + 'use_pip': True, + 'use_pip_for_deps': False, + 'download_dep_fail': True, + 'sanity_pip_check': True, +} + +exts_list = [ + ('types-python-dateutil', '2.8.19.6', { + 'checksums': ['4a6f4cc19ce4ba1a08670871e297bf3802f55d4f129e6aa2443f540b6cf803d2'], + 'modulename': False, + }), + ('python-rapidjson', '1.9', { + 'modulename': 'rapidjson', + 'checksums': ['be7d351c7112dac608133a23f60e95395668d0981a07f4037f63e0e88afcf01a'], + }), + ('ruamel.yaml', '0.17.21', { + 'checksums': ['8b7ce697a2f212752a35c1ac414471dc16c424c9573be4926b56ff3f5d23b7af'], + }), + ('ruamel.yaml.clib', '0.2.7', { + 'checksums': ['1f08fd5a2bea9c4180db71678e850b995d2a5f4537be0e94557668cf0f5f9497'], + 'modulename': False, + }), + ('msgpack', '0.6.2', { + 'checksums': ['ea3c2f859346fcd55fc46e96885301d9c2f7a36d453f5d8f2967840efa1e1830'], + }), + ('rpcq', '3.10.0', { + 'checksums': ['bf21780a1cb1e8676b988c44004d49a168d8937ce2a458c00beb37fa41023684'], + }), + ('lark', '0.11.3', { + 'checksums': ['3100d9749b5a85735ec428b83100876a5da664804579e729c23a36341f961e7e'], + }), + ('retry', '0.9.2', { + 'checksums': ['f8bfa8b99b69c4506d6f5bd3b0aabf77f98cdb17f3c9fc3f5ca820033336fba4'], + }), + ('types-retry', '0.9.9.1', { + 'checksums': ['344ead4387e0e98c6d603758c1318ee4e5b04429cecb9a342a1cf873de3b510d'], + 'modulename': False, + }), + ('h11', '0.14.0', { + 'checksums': ['8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d'], + }), + ('rfc3986', '1.5.0', { + 'checksums': ['270aaf10d87d0d4e095063c65bf3ddbc6ee3d0b226328ce21e036f946e421835'], + }), + ('sniffio', '1.3.0', { + 'checksums': ['e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101'], + }), + ('httpx', '0.23.3', { + 'checksums': ['9818458eb565bb54898ccb9b8b251a28785dd4a55afbc23d0eb410754fe7d0f9'], + }), + ('iso8601', '1.1.0', { + 'checksums': ['32811e7b81deee2063ea6d2e94f8819a86d1f3811e49d23623a41fa832bef03f'], + }), + ('pydantic', '1.10.4', { + 'checksums': ['b9a3859f24eb4e097502a3be1fb4b2abb79b6103dd9e2e0edb70613a4459a648'], + }), + ('anyio', '3.6.2', { + 'checksums': ['25ea0d673ae30af41a0c442f81cf3b38c7e79fdc7b60335a4c14e05eb0947421'], + }), + ('httpcore', '0.16.3', { + 'checksums': ['c5d6f04e2fc530f39e0c077e6a30caa53f1451096120f1f38b954afd0b17c0cb'], + }), + ('PyJWT', '2.6.0', { + 'checksums': ['69285c7e31fc44f68a1feb309e948e0df53259d579295e6cfe2b1792329f05fd'], + 'modulename': 'jwt', + }), + ('retrying', '1.3.4', { + 'checksums': ['345da8c5765bd982b1d1915deb9102fd3d1f7ad16bd84a9700b85f64d24e8f3e'], + }), + ('rfc3339', '6.2', { + 'checksums': ['d53c3b5eefaef892b7240ba2a91fef012e86faa4d0a0ca782359c490e00ad4d0'], + }), + ('qcs_api_client', '0.21.3', { + 'checksums': ['d219aaef49eb6f515b601467f6c85f20ca52f788d90b3052775e6d12b2f57466'], + }), + ('pyquil', version, { + 'checksums': ['fc78cc0a099ee115f9b9a52e3d56a6a956328aed407030f19636bbae2fae981a'], + }), +] + +moduleclass = 'quantum' diff --git a/Golden_Repo/p/PySCF/PySCF-2.1.1-GCC-11.3.0.eb b/Golden_Repo/p/PySCF/PySCF-2.1.1-GCC-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..77efb7d4b6b272a0204d2152ef677e2f61b019ef --- /dev/null +++ b/Golden_Repo/p/PySCF/PySCF-2.1.1-GCC-11.3.0.eb @@ -0,0 +1,45 @@ +easyblock = 'CMakeMakeCp' + +name = 'PySCF' +version = '2.1.1' + +homepage = 'http://www.pyscf.org' +description = "PySCF is an open-source collection of electronic structure modules powered by Python." + +toolchain = {'name': 'GCC', 'version': '11.3.0'} + +source_urls = ['https://github.com/pyscf/pyscf/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['814240aa73f57ba96aee8264e3914c09f96ebdce1e42784da4b5e9a474ecb280'] + +builddependencies = [('CMake', '3.23.1')] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('h5py', '3.7.0', '-serial'), + ('libcint', '5.1.6', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('libxc', '5.2.3'), + ('XCFun', '2.1.1'), +] + +start_dir = 'pyscf/lib' + +separate_build_dir = True + +configopts = "-DBUILD_LIBCINT=OFF -DBUILD_LIBXC=OFF -DBUILD_XCFUN=OFF" + +prebuildopts = "export PYSCF_INC_DIR=$EBROOTQCINT/include:$EBROOTLIBXC/lib && " + +files_to_copy = ['pyscf'] + +sanity_check_paths = { + 'files': ['pyscf/__init__.py'], + 'dirs': ['pyscf/data', 'pyscf/lib'], +} + +sanity_check_commands = ["python -c 'import pyscf'"] + +modextrapaths = {'PYTHONPATH': ''} + +moduleclass = 'chem' diff --git a/Golden_Repo/p/PyTorch/PyTorch-1.12.0-foss-2022a-CUDA-11.7.eb b/Golden_Repo/p/PyTorch/PyTorch-1.12.0-foss-2022a-CUDA-11.7.eb index f0653e8686933a26ae9c914551d803249d4662c6..845338e1eb567634a6112729b18d58926cea2ccd 100644 --- a/Golden_Repo/p/PyTorch/PyTorch-1.12.0-foss-2022a-CUDA-11.7.eb +++ b/Golden_Repo/p/PyTorch/PyTorch-1.12.0-foss-2022a-CUDA-11.7.eb @@ -27,23 +27,26 @@ patches = [ '%(name)s-1.11.0_increase-distributed-test-timeout.patch', '%(name)s-1.11.0_increase_c10d_gloo_timeout.patch', '%(name)s-1.11.0_disable_failing_jit_cuda_fuser_tests.patch', + '%(name)s-1.12.0_nic-hostname.patch', ] checksums = [ - None, # PyTorch-1.12.0.tar.gz - 'b899aa94d9e60f11ee75a706563312ccefa9cf432756c470caa8e623991c8f18', # PyTorch-1.7.0_avoid-nan-in-test-torch.patch - '622cb1eaeadc06e13128a862d9946bcc1f1edd3d02b259c56a9aecc4d5406b8a', # PyTorch-1.7.0_disable-dev-shm-test.patch - '89ac7a8e9e7df2e64cf8404fe3a279f5e9b759fee41c9de3aaff9c22f385c2c6', # PyTorch-1.8.1_dont-use-gpu-ccc-in-test.patch - # PyTorch-1.9.0_limit-world-size-for-zero-redundancy-opt-test.patch - 'ff573660913ce055e24cfd194ce747ba5685091c631cfd443eae2a99d56b57ea', - # PyTorch-1.10.0_fix-test-dataloader-fixed-affinity.patch - '313dca681f45ce3bc7c4557fdcdcbe0b77216d2c708fa30a2ec0e22c44876707', - 'ac05943bb205623f91ef140aa00869efc5fe844184bd666bebf5405808610448', # PyTorch-1.10.0_skip_cmake_rpath.patch - # PyTorch-1.11.0_increase-distributed-test-timeout.patch - '087ad20163a1291773ae3457569b80523080eb3731e210946459b2333a919f3f', - # PyTorch-1.11.0_increase_c10d_gloo_timeout.patch - '20cd4a8663f74ab326fdb032b926bf5c7e94d9750c515ab9050927ba00cf1953', - # PyTorch-1.11.0_disable_failing_jit_cuda_fuser_tests.patch - 'e7bfe120a8b3fe2b40dac6839852a5fbab3cb3429fbe44a0fc3a1800adaaee51', + {'PyTorch-1.12.0.tar.gz': '3bfc8e0265849dae2bc26601cb872775859d98f25d045d6b1d091c1cb4e51815'}, + {'PyTorch-1.7.0_avoid-nan-in-test-torch.patch': 'b899aa94d9e60f11ee75a706563312ccefa9cf432756c470caa8e623991c8f18'}, + {'PyTorch-1.7.0_disable-dev-shm-test.patch': '622cb1eaeadc06e13128a862d9946bcc1f1edd3d02b259c56a9aecc4d5406b8a'}, + {'PyTorch-1.8.1_dont-use-gpu-ccc-in-test.patch': + '89ac7a8e9e7df2e64cf8404fe3a279f5e9b759fee41c9de3aaff9c22f385c2c6'}, + {'PyTorch-1.9.0_limit-world-size-for-zero-redundancy-opt-test.patch': + 'ff573660913ce055e24cfd194ce747ba5685091c631cfd443eae2a99d56b57ea'}, + {'PyTorch-1.10.0_fix-test-dataloader-fixed-affinity.patch': + '313dca681f45ce3bc7c4557fdcdcbe0b77216d2c708fa30a2ec0e22c44876707'}, + {'PyTorch-1.10.0_skip_cmake_rpath.patch': 'ac05943bb205623f91ef140aa00869efc5fe844184bd666bebf5405808610448'}, + {'PyTorch-1.11.0_increase-distributed-test-timeout.patch': + '087ad20163a1291773ae3457569b80523080eb3731e210946459b2333a919f3f'}, + {'PyTorch-1.11.0_increase_c10d_gloo_timeout.patch': + '20cd4a8663f74ab326fdb032b926bf5c7e94d9750c515ab9050927ba00cf1953'}, + {'PyTorch-1.11.0_disable_failing_jit_cuda_fuser_tests.patch': + 'e7bfe120a8b3fe2b40dac6839852a5fbab3cb3429fbe44a0fc3a1800adaaee51'}, + {'PyTorch-1.12.0_nic-hostname.patch': '01dc31ce0a8acaa509276b17742c5633961fed089f5674119057342d6b448e5b'}, ] builddependencies = [ diff --git a/Golden_Repo/p/PyTorch/PyTorch-1.12.0_nic-hostname.patch b/Golden_Repo/p/PyTorch/PyTorch-1.12.0_nic-hostname.patch new file mode 100644 index 0000000000000000000000000000000000000000..cf766309e3b2d6f15ea0172ad379b41d798f6051 --- /dev/null +++ b/Golden_Repo/p/PyTorch/PyTorch-1.12.0_nic-hostname.patch @@ -0,0 +1,179 @@ +diff -ruN a/torch/distributed/elastic/agent/server/api.py b/torch/distributed/elastic/agent/server/api.py +--- a/torch/distributed/elastic/agent/server/api.py 2023-02-06 13:21:33.000000000 +0100 ++++ b/torch/distributed/elastic/agent/server/api.py 2023-02-06 14:49:52.309003092 +0100 +@@ -8,6 +8,7 @@ + + import abc + import functools ++import ipaddress + import json + import os + import signal +@@ -60,6 +61,8 @@ + if not specified then will chose a random free port + master_addr: fixed master_addr to run the c10d store on rank 0 + if not specified then will chose hostname on agent rank 0 ++ endpoint: original endpoint that is discarded when the static ++ rendezvous backend is specified + redirects: redirect std streams to a file, + selectively redirect for a particular + local rank by passing a map +@@ -80,6 +83,7 @@ + monitor_interval: float = 30.0 + master_port: Optional[int] = None + master_addr: Optional[str] = None ++ endpoint: str = '' + redirects: Union[Std, Dict[int, Std]] = Std.NONE + tee: Union[Std, Dict[int, Std]] = Std.NONE + +@@ -381,8 +385,27 @@ + raise RuntimeError("Failed to create a socket") + + +-def _get_fq_hostname() -> str: +- return socket.getfqdn(socket.gethostname()) ++def _get_fq_hostname(master_addr: Optional[str], endpoint: str) -> str: ++ if master_addr: ++ return master_addr ++ ++ # `master_addr` is None when we don't have the "static" rendezvous backend. ++ # `endpoint` may not be given (i.e. it is an empty string); then ++ # we have to fall back to `socket.gethostname`. ++ if not endpoint: ++ return socket.getfqdn(socket.gethostname()) ++ ++ host = rdzv.utils.parse_rendezvous_endpoint(endpoint, default_port=-1)[0] ++ try: ++ ipaddress.ip_address(host) ++ is_ip = True ++ except ValueError: ++ is_ip = False ++ ++ if is_ip: ++ return socket.gethostbyaddr(host)[0] ++ else: ++ return socket.getfqdn(host) + + + class ElasticAgent(abc.ABC): +@@ -504,15 +527,17 @@ + + @staticmethod + def _set_master_addr_port( +- store: Store, master_addr: Optional[str], master_port: Optional[int] ++ store: Store, ++ master_addr: Optional[str], ++ master_port: Optional[int], ++ endpoint: str, + ): + if master_port is None: + sock = _get_socket_with_port() + with closing(sock): + master_port = sock.getsockname()[1] + +- if master_addr is None: +- master_addr = _get_fq_hostname() ++ master_addr = _get_fq_hostname(master_addr, endpoint) + + store.set("MASTER_ADDR", master_addr.encode(encoding="UTF-8")) + store.set("MASTER_PORT", str(master_port).encode(encoding="UTF-8")) +@@ -545,7 +570,9 @@ + worker_group.group_world_size = group_world_size + + if group_rank == 0: +- self._set_master_addr_port(store, spec.master_addr, spec.master_port) ++ self._set_master_addr_port( ++ store, spec.master_addr, spec.master_port, spec.endpoint ++ ) + master_addr, master_port = self._get_master_addr_port(store) + restart_count = spec.max_restarts - self._remaining_restarts + +@@ -781,7 +808,7 @@ + "group_rank": wg.group_rank, + "worker_id": worker_id, + "role": spec.role, +- "hostname": _get_fq_hostname(), ++ "hostname": _get_fq_hostname(spec.master_addr, spec.endpoint), + "state": state, + "total_run_time": self._total_execution_time, + "rdzv_backend": spec.rdzv_handler.get_backend(), +diff -ruN a/torch/distributed/elastic/rendezvous/utils.py b/torch/distributed/elastic/rendezvous/utils.py +--- a/torch/distributed/elastic/rendezvous/utils.py 2023-02-06 13:21:33.000000000 +0100 ++++ b/torch/distributed/elastic/rendezvous/utils.py 2023-02-06 14:52:10.124904154 +0100 +@@ -4,15 +4,48 @@ + # This source code is licensed under the BSD-style license found in the + # LICENSE file in the root directory of this source tree. + ++import fcntl + import ipaddress + import random + import re + import socket ++import struct + import time + import weakref + from datetime import timedelta + from threading import Event, Thread +-from typing import Any, Callable, Dict, Optional, Tuple, Union ++from typing import Any, Callable, Dict, List, Optional, Tuple, Union ++ ++ ++ ++# From https://stackoverflow.com/a/27494105. ++def nic_ip_address(nic_name): ++ s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) ++ return socket.inet_ntoa(fcntl.ioctl( ++ s.fileno(), ++ 0x8915, # SIOCGIFADDR ++ struct.pack('256s', nic_name[:15].encode("UTF-8")) ++ )[20:24]) ++ ++ ++# Adapted from https://stackoverflow.com/a/27494105. ++def nic_info() -> List[Tuple[str, str]]: ++ """Return a list of tuples containing each NIC's hostname and its IPv4.""" ++ nics: List[Tuple[str, str]] = [] ++ try: ++ if_nameindex = socket.if_nameindex() ++ except OSError: ++ return nics ++ ++ for (_, nic_name) in if_nameindex: ++ try: ++ ip_addr = nic_ip_address(nic_name) ++ except OSError: ++ continue ++ ++ hostname = socket.gethostbyaddr(ip_addr)[0] ++ nics.append((hostname, ip_addr)) ++ return nics + + + def _parse_rendezvous_config(config_str: str) -> Dict[str, str]: +@@ -130,18 +163,26 @@ + if host == this_host: + return True + ++ host_fqdn = socket.getfqdn(host) + addr_list = socket.getaddrinfo( + this_host, None, proto=socket.IPPROTO_TCP, flags=socket.AI_CANONNAME + ) + for addr_info in addr_list: + # If we have an FQDN in the addr_info, compare it to `host`. +- if addr_info[3] and addr_info[3] == host: ++ if addr_info[3] and (addr_info[3] == host or addr_info[3] == host_fqdn): + return True + # Otherwise if `host` represents an IP address, compare it to our IP + # address. + if addr and addr_info[4][0] == str(addr): + return True + ++ for (nic_host, nic_addr) in nic_info(): ++ if ( ++ nic_host == host or nic_host == host_fqdn ++ or addr and nic_addr == str(addr) ++ ): ++ return True ++ + return False + diff --git a/Golden_Repo/p/p7zip/p7zip-17.04-GCCcore-11.3.0.eb b/Golden_Repo/p/p7zip/p7zip-17.04-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..5cc4c0084482621b5179320b0038ea2e3063add2 --- /dev/null +++ b/Golden_Repo/p/p7zip/p7zip-17.04-GCCcore-11.3.0.eb @@ -0,0 +1,50 @@ +easyblock = 'MakeCp' + +name = 'p7zip' +version = '17.04' + +homepage = 'https://github.com/p7zip-project/p7zip' +description = """p7zip is a quick port of 7z.exe and 7za.exe (CLI version of +7zip) for Unix. 7-Zip is a file archiver with highest compression ratio.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +github_account = 'p7zip-project' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%(version)s.tar.gz'] + +# https://github.com/p7zip-project/p7zip/archive/refs/tags/v17.04.tar.gz + +checksums = ['ea029a2e21d2d6ad0a156f6679bd66836204aa78148a4c5e498fe682e77127ef'] + +builddependencies = [ + ('binutils', '2.38'), +] + +prebuildopts = "cp makefile.linux_amd64 makefile.linux &&" +buildopts = 'all3 CC="$CC" CXX="$CXX" OPTFLAGS="$CFLAGS"' + +files_to_copy = [ + (['bin/7za', 'bin/7zr', 'bin/7zCon.sfx'], 'bin'), # stand-alone binaries + (['bin/7z', 'bin/7z.%s' % SHLIB_EXT, 'bin/Codecs'], 'libexec'), # 7z requires 7z.so plugin in same directory +] + +# put script in place for 7z, since it *must* be called full path, to ensure that 7z.so is found in the same directory +# see also http://sourceforge.net/p/p7zip/discussion/383044/thread/5e4085ab/ +postinstallcmds = [ + "echo '#!/bin/sh\n%(installdir)s/libexec/7z $@' > %(installdir)s/bin/7z", + "chmod +x %(installdir)s/bin/7z", # set execution bits according to current umask +] + +sanity_check_paths = { + 'files': ['bin/7z', 'bin/7za', 'bin/7zCon.sfx', 'bin/7zr', 'libexec/7z', 'libexec/7z.%s' % SHLIB_EXT], + 'dirs': ['libexec/Codecs'], +} + +sanity_check_commands = [ + '7z --help', + '7z x || test $? -gt 0', + "! 7z i | grep -q \"Can't load\" ", +] + +moduleclass = 'tools' diff --git a/Golden_Repo/p/psmpi/psmpi-5.8.0-1-GCC-11.3.0.eb b/Golden_Repo/p/psmpi/psmpi-5.8.0-1-GCC-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..79dbaeab0a1d58d2396480a8235c2deb750cdb49 --- /dev/null +++ b/Golden_Repo/p/psmpi/psmpi-5.8.0-1-GCC-11.3.0.eb @@ -0,0 +1,42 @@ +name = 'psmpi' +version = '5.8.0-1' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 3.0 implementation, +based on MPICH v3. It provides extra low level communication libraries and integration with +various batch systems for tighter process control. +""" + +toolchain = {'name': 'GCC', 'version': '11.3.0'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['https://gitlab.jsc.fz-juelich.de/ParTec/psmpi/uploads/762714c8eec01fe59239a52798a70e1c/'] +checksums = [ + # psmpi-5.8.0-1.tar.gz + 'bcebb42f68e062d4cf957c1ec12a8e2e50051265d38715854bafc34855ed3029', + # psmpi-5.5.0-1_ime.patch + 'c2418b9511560dca197242508de9c7b6b117122912b6d3a4aa18398834f465ff', +] + +dependencies = [ + ('pscom', '5.6-default'), + # needed due to the inclusion of hwloc + ('libxml2', '2.9.13'), + # Including CUDA here to trigger the hook to add the gpu property, and because it is actually needed + ('CUDA', '11.7', '', SYSTEM) +] + +patches = [ + 'psmpi-5.5.0-1_ime.patch' +] + +mpich_opts = '--enable-static --with-file-system=ime+ufs+gpfs --enable-romio' + +preconfigopts = 'export CFLAGS="-I/opt/ddn/ime/include $CFLAGS" && ' +preconfigopts += 'export LDFLAGS="$LDFLAGS -L/opt/ddn/ime/lib -lim_client" && ' + +threaded = False + +cuda = True + +moduleclass = 'mpi' diff --git a/Golden_Repo/p/psmpi/psmpi-5.8.0-1-NVHPC-22.11.eb b/Golden_Repo/p/psmpi/psmpi-5.8.0-1-NVHPC-22.11.eb new file mode 100644 index 0000000000000000000000000000000000000000..7b3584281e90504462332b299909a7ee2ebc2c49 --- /dev/null +++ b/Golden_Repo/p/psmpi/psmpi-5.8.0-1-NVHPC-22.11.eb @@ -0,0 +1,42 @@ +name = 'psmpi' +version = '5.8.0-1' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 3.0 implementation, +based on MPICH v3. It provides extra low level communication libraries and integration with +various batch systems for tighter process control. +""" + +toolchain = {'name': 'NVHPC', 'version': '22.11'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['https://gitlab.jsc.fz-juelich.de/ParTec/psmpi/uploads/762714c8eec01fe59239a52798a70e1c/'] +checksums = [ + # psmpi-5.8.0-1.tar.gz + 'bcebb42f68e062d4cf957c1ec12a8e2e50051265d38715854bafc34855ed3029', + # psmpi-5.5.0-1_ime.patch + 'c2418b9511560dca197242508de9c7b6b117122912b6d3a4aa18398834f465ff', +] + +dependencies = [ + ('pscom', '5.6-default'), + # needed due to the inclusion of hwloc + ('libxml2', '2.9.13'), + # Including CUDA here to trigger the hook to add the gpu property, and because it is actually needed + ('CUDA', '11.7', '', SYSTEM) +] + +patches = [ + 'psmpi-5.5.0-1_ime.patch' +] + +mpich_opts = '--enable-static --with-file-system=ime+ufs+gpfs --enable-romio' + +preconfigopts = 'export CFLAGS="-I/opt/ddn/ime/include $CFLAGS" && ' +preconfigopts += 'export LDFLAGS="$LDFLAGS -L/opt/ddn/ime/lib -lim_client" && ' + +threaded = False + +cuda = True + +moduleclass = 'mpi' diff --git a/Golden_Repo/p/psmpi/psmpi-5.8.0-1-intel-compilers-2022.1.0.eb b/Golden_Repo/p/psmpi/psmpi-5.8.0-1-intel-compilers-2022.1.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..b2aa8e9048ed8c6cf5e11dfc594df2879418fc18 --- /dev/null +++ b/Golden_Repo/p/psmpi/psmpi-5.8.0-1-intel-compilers-2022.1.0.eb @@ -0,0 +1,42 @@ +name = 'psmpi' +version = '5.8.0-1' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 3.0 implementation, +based on MPICH v3. It provides extra low level communication libraries and integration with +various batch systems for tighter process control. +""" + +toolchain = {'name': 'intel-compilers', 'version': '2022.1.0'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['https://gitlab.jsc.fz-juelich.de/ParTec/psmpi/uploads/762714c8eec01fe59239a52798a70e1c/'] +checksums = [ + # psmpi-5.8.0-1.tar.gz + 'bcebb42f68e062d4cf957c1ec12a8e2e50051265d38715854bafc34855ed3029', + # psmpi-5.5.0-1_ime.patch + 'c2418b9511560dca197242508de9c7b6b117122912b6d3a4aa18398834f465ff', +] + +dependencies = [ + ('pscom', '5.6-default'), + # needed due to the inclusion of hwloc + ('libxml2', '2.9.13'), + # Including CUDA here to trigger the hook to add the gpu property, and because it is actually needed + ('CUDA', '11.7', '', SYSTEM) +] + +patches = [ + 'psmpi-5.5.0-1_ime.patch' +] + +mpich_opts = '--enable-static --with-file-system=ime+ufs+gpfs --enable-romio' + +preconfigopts = 'export CFLAGS="-I/opt/ddn/ime/include $CFLAGS" && ' +preconfigopts += 'export LDFLAGS="$LDFLAGS -L/opt/ddn/ime/lib -lim_client" && ' + +threaded = False + +cuda = True + +moduleclass = 'mpi' diff --git a/Golden_Repo/q/Qiskit-juqcs/Qiskit-juqcs-0.5.0-gpsmkl-2022a.eb b/Golden_Repo/q/Qiskit-juqcs/Qiskit-juqcs-0.5.0-gpsmkl-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..7f567c04e8b5b1e73f4ab1872ec6f2cc4f61e9d4 --- /dev/null +++ b/Golden_Repo/q/Qiskit-juqcs/Qiskit-juqcs-0.5.0-gpsmkl-2022a.eb @@ -0,0 +1,39 @@ +easyblock = 'PythonBundle' + +name = 'Qiskit-juqcs' +version = '0.5.0' + +homepage = 'https://jugit.fz-juelich.de/qip/juniq-platform/qiskit-juqcs/' +description = """Qiskit provider for JUQCS (Juelich Universal Quantum Computer Simulator).""" + +toolchain = {'name': 'gpsmkl', 'version': '2022a'} +toolchainopts = {'pic': True} + +dependencies = [ + ('Python', '3.10.4'), + ('Qiskit', '0.41.0'), +] + +exts_default_options = { + 'source_urls': [PYPI_SOURCE], + 'use_pip': True, + 'sanity_pip_check': True, + 'download_dep_fail': True, + 'use_pip_for_deps': False, +} + +exts_list = [ + ('PyJWT', '2.6.0', { + 'modulename': 'jwt', + 'checksums': ['69285c7e31fc44f68a1feb309e948e0df53259d579295e6cfe2b1792329f05fd'], + }), + ('pyunicore', '0.14.1', { + 'checksums': ['7efd4784d55ef02c4da4431232b54505814666577165c0f320c922ed2b32af01'], + }), + ('qiskit-juqcs', version, { + 'modulename': False, + 'checksums': ['6d8800986d5924e2e07635a315d15bfbc48297649604c83a4ec282ea7d6ba737'], + }), +] + +moduleclass = 'quantum' diff --git a/Golden_Repo/q/Qiskit/Qiskit-0.41.0-gpsmkl-2022a.eb b/Golden_Repo/q/Qiskit/Qiskit-0.41.0-gpsmkl-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..d594c9ef997065e3874f5c576612915ed3caa93f --- /dev/null +++ b/Golden_Repo/q/Qiskit/Qiskit-0.41.0-gpsmkl-2022a.eb @@ -0,0 +1,153 @@ +easyblock = 'PythonBundle' + +name = 'Qiskit' +version = '0.41.0' + +homepage = 'https://qiskit.org' +description = """Qiskit is an open-source framework for working with noisy quantum computers + at the level of pulses, circuits, and algorithms.""" + +toolchain = {'name': 'gpsmkl', 'version': '2022a'} +toolchainopts = {'pic': True} + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1'), + ('Ninja', '1.10.2'), + ('pkgconf', '1.8.0'), + ('pybind11', '2.9.2'), # for aer + ('Rust', '1.60.0'), # for retworkx +] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-Stack', '2022a', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('scikit-build', '0.15.0'), # for aer + ('scikit-learn', '1.1.2', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('CVXOPT', '1.3.0'), + ('h5py', '3.7.0'), + ('PySCF', '2.1.1'), + ('SymEngine-python', '0.9.2', '', ('GCC', '11.3.0')), + ('numba', '0.56.4', '-CUDA-11.7', ('gcccoremkl', '11.3.0-2022.1.0')), + ('nlohmann_json', '3.10.5'), # for qiskit-aer + ('spdlog', '1.11.0'), + ('muparserx', '4.0.11'), # for qiskit-aer + ('networkx', '2.8.4', '', ('gcccoremkl', '11.3.0-2022.1.0')), +] + +local_common_opts = { + 'req_py_majver': '3', + 'req_py_minver': '0' +} + +# qiskit-aer must not use CONAN to install dependencies +modextravars = {'DISABLE_CONAN': 'YES'} + +exts_default_options = { + 'source_urls': [PYPI_SOURCE], + 'use_pip': True, + # DISABLED: because 'pip check' does not find pyscf (not installed with pip) + 'sanity_pip_check': True, + 'download_dep_fail': True, + 'use_pip_for_deps': False, +} + +exts_list = [ + ('dill', '0.3.5.1', { + 'checksums': ['d75e41f3eff1eee599d738e76ba8f4ad98ea229db8b085318aa2b3333a208c86'], + }), + ('ntlm-auth', '1.5.0', { + 'checksums': ['c9667d361dc09f6b3750283d503c689070ff7d89f2f6ff0d38088d5436ff8543'], + }), + ('retworkx', '0.11.0', { + 'checksums': ['a4c2a5ad3f8402493d41ad20ad91a03777ea214a3636c290272bbfaf36161161'], + }), + ('stevedore', '4.1.1', { + 'checksums': ['7f8aeb6e3f90f96832c301bff21a7eb5eefbe894c88c506483d355565d88cc1a'], + }), + ('rustworkx', '0.12.1', { + 'checksums': ['13a19a2f64dff086b3bffffb294c4630100ecbc13634b4995d9d36a481ae130e'], + }), + ('websockets', '10.4', { + 'checksums': ['eef610b23933c54d5d921c92578ae5f89813438fded840c2e9809d378dc765d3'], + }), + ('websocket-client', '1.3.3', { + 'checksums': ['d58c5f284d6a9bf8379dab423259fe8f85b70d5fa5d2916d5791a84594b122b1'], + 'modulename': False, + }), + ('requests_ntlm', '1.1.0', { + 'checksums': ['9189c92e8c61ae91402a64b972c4802b2457ce6a799d658256ebf084d5c7eb71'], + }), + ('fastdtw', '0.3.4', { + 'checksums': ['2350fa6ec36bcad186eaf81f46eff35181baf04e324f522de8aeb43d0243f64f'], + }), + ('inflection', '0.5.1', { + 'checksums': ['1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417'], + }), + ('beautifulsoup4', '4.11.1', { + 'checksums': ['ad9aa55b65ef2808eb405f46cf74df7fcb7044d5cbc26487f96eb2ef2e436693'], + 'modulename': 'bs4', + }), + ('pytz', '2022.7.1', { + 'checksums': ['01a0681c4b9684a28304615eba55d1ab31ae00bf68ec157ec3708a8182dbbcd0'], + }), + ('multitasking', '0.0.11', { + 'checksums': ['4d6bc3cc65f9b2dca72fb5a787850a88dae8f620c2b36ae9b55248e51bcd6026'], + }), + ('frozendict', '2.3.4', { + 'checksums': ['15b4b18346259392b0d27598f240e9390fafbff882137a9c48a1e0104fb17f78'], + }), + ('Nasdaq_Data_Link', '1.0.4', { + 'source_tmpl': '%(name)s-%(version)s-py2.py3-none-any.whl', + 'checksums': ['214a620551da1c7521476839fb96f932234d4d78e7ba44310722709ca37b0691'], + 'modulename': False, + }), + ('docplex', '2.25.236', { + 'checksums': ['256914b4c0113a4e1c78f32ea20c7d76dc8efe286fe890270e75cfad50fe510f'], + }), + ('yfinance', '0.2.9', { + 'checksums': ['449f9d54ff7868bdbb2d25b628a97d21fdd05e293a0f9975bba7aaa9984d08e6'], + }), + ('qiskit-nature', '0.5.2', { + 'modulename': 'qiskit_nature', + 'checksums': ['1786e1e825c450ae0ae4971246b0ca717bc5285696c3d342313f5cb125ce4202'], + }), + ('qiskit-optimization', '0.5.0', { + 'modulename': 'qiskit_optimization', + 'checksums': ['4804831e590a7159c2bd2be71750cde0c95a3b06e14a4843346e2ebcc7231e01'], + }), + ('qiskit-finance', '0.3.4', { + 'modulename': 'qiskit_finance', + 'checksums': ['b22fc7e0f23837ee659d1dbe974f3d69ec0d291e51486a2ad81dcf17b4ad8a4f'], + }), + ('qiskit-machine-learning', '0.5.0', { + 'modulename': 'qiskit_machine_learning', + 'checksums': ['c332e9d3ea658b2d24b401e5264b239f1093378952a70ba46c73a69a3ce7c727'], + }), + ('qiskit-terra', '0.23.1', { + 'modulename': 'qiskit.qobj', + 'patches': ['qiskit-terra-0.18.3_fix-qiskit-version-env.patch'], + 'checksums': [ + {'qiskit-terra-0.23.1.tar.gz': '71dfb4510b2f1fdb7589b412e8304d928534fa2eece66a65b3f841baf5412afb'}, + {'qiskit-terra-0.18.3_fix-qiskit-version-env.patch': + '1296cc650a7d4d2d908a6a5de6b4ce52106748464a54d47744a4648494f4c24e'}, + ], + }), + ('qiskit-ignis', '0.7.1', { + 'modulename': 'qiskit.ignis', + 'checksums': ['71efb17933717c0b8161a291ebd4f8d4fe8d7dfd1fdc66fa23a0b6d14fd10cf3'], + }), + ('qiskit-aer', '0.11.2', { + 'modulename': 'qiskit.providers.aer', + 'checksums': ['1bc1d3b46f7fc8976084a900cb9a2a80e8b25df6e59a88fd11136f24e1297fc1'], + }), + ('qiskit-ibmq-provider', '0.20.0', { + 'modulename': 'qiskit.providers.ibmq', + 'checksums': ['758938ce13a09f53ada9f4852891d7ca7ba98fddab6b9850417bbcb0efc26c2e'], + }), + ('qiskit', version, { + 'checksums': ['fa613d0312061a654b9b69e21374bac2dc04bb6df872b52370975d6dd51d7d81'], + }), +] + +moduleclass = 'quantum' diff --git a/Golden_Repo/r/ROOT/ROOT-6.26.10-gpsmpi-2022a.eb b/Golden_Repo/r/ROOT/ROOT-6.26.10-gpsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..42c0f18d228ea03148272d7e2a91a02d17aabad7 --- /dev/null +++ b/Golden_Repo/r/ROOT/ROOT-6.26.10-gpsmpi-2022a.eb @@ -0,0 +1,57 @@ +name = 'ROOT' +version = '6.26.10' + +homepage = 'https://root.cern.ch/drupal/' +description = """The ROOT system provides a set of OO frameworks with all the functionality + needed to handle and analyze large amounts of data in a very efficient way.""" + +toolchain = {'name': 'gpsmpi', 'version': '2022a'} +toolchainopts = {'pic': True} + +source_urls = ['https://root.cern.ch/download/'] +sources = ['%(namelower)s_v%(version)s.source.tar.gz'] +checksums = ['8e56bec397104017aa54f9eb554de7a1a134474fe0b3bb0f43a70fc4fabd625f'] + +builddependencies = [ + ('CMake', '3.23.1'), + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('GSL', '2.7'), + ('libxml2', '2.9.13'), + ('PCRE', '8.45'), + ('CFITSIO', '4.2.0'), + ('freetype', '2.12.1'), + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('zlib', '1.2.12'), + ('X11', '20220504'), + ('OpenGL', '2022a'), + ('GL2PS', '1.4.2'), + ('FFTW', '3.3.10'), + ('SQLite', '3.38.3'), + ('XZ', '5.2.5'), + ('libpng', '1.6.37'), + ('tbb', '2021.5.0'), + ('Perl', '5.34.1'), + ('Go', '1.18.3', '', SYSTEM), + ('nlohmann_json', '3.10.5'), + ('LibTIFF', '4.3.0'), +] + +# NOTE: Ensure that each configopts string begins with a blank +# disable some components +configopts = " -Dxrootd=OFF -Dmysql=OFF -Dkrb5=OFF -Dodbc=OFF -Doracle=OFF -Dpgsql=OFF -Dqt=OFF" + +# make sure some components are enabled +configopts += " -Dpcre=ON -Dzlib=ON -Dpyroot=ON" +configopts += " -Dunuran=ON -Dexplicitlink=ON -Dminuit2=ON -Droofit=ON " + +# Add component-specific settings based on dependencies +configopts += ' -Dfftw3=ON -Dgsl=ON -DOpenGL_GL_PREFERENCE=GLVND' + +# Set C++ standard to C++17 for better stability +configopts += ' -DCMAKE_CXX_STANDARD=17' + +moduleclass = 'data' diff --git a/Golden_Repo/r/Ruby/Ruby-3.0.5-GCCcore-11.3.0.eb b/Golden_Repo/r/Ruby/Ruby-3.0.5-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..e156e9472c2cb62cccd4a3f186126ab30223fdfc --- /dev/null +++ b/Golden_Repo/r/Ruby/Ruby-3.0.5-GCCcore-11.3.0.eb @@ -0,0 +1,202 @@ +name = 'Ruby' +version = '3.0.5' + +homepage = 'https://www.ruby-lang.org' +description = """Ruby is a dynamic, open source programming language with + a focus on simplicity and productivity. It has an elegant syntax that is + natural to read and easy to write.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['https://cache.ruby-lang.org/pub/ruby/%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['9afc6380a027a4fe1ae1a3e2eccb6b497b9c5ac0631c12ca56f9b7beb4848776'] + +builddependencies = [('binutils', '2.38')] + +dependencies = [ + ('ZeroMQ', '4.3.4') +] + +exts_default_options = { + 'source_urls': ['https://rubygems.org/downloads/'], + 'source_tmpl': '%(name)s-%(version)s.gem', +} + +# !! order of packages is important !! +# some packages have dependencies with minimum and maximum version requirements +# each version is picked as high as possible to fullfill all requirements +# packages updated on 2022-12-20 +exts_list = [ + ('ffi', '1.15.5', { + 'checksums': ['6f2ed2fa68047962d6072b964420cba91d82ce6fa8ee251950c17fca6af3c2a0'], + }), + ('childprocess', '4.1.0', { + 'checksums': ['3616ce99ccb242361ce7f2b19bf9ff3e6bc1d98b927c7edc29af8ca617ba6cd3'], + }), + ('json', '2.6.3', { + 'checksums': ['86aaea16adf346a2b22743d88f8dcceeb1038843989ab93cda44b5176c845459'], + }), + ('cabin', '0.9.0', { + 'checksums': ['91c5394289e993e7037a6c869e3f212f31a5984d2b1811ac934f591c87446b2c'], + }), + ('backports', '3.23.0', { + 'checksums': ['88fc26a40083a51015faa2ba02cbdc3605cb59f183cf0868f4fb3ac02900148f'], + }), + ('arr-pm', '0.0.12', { + 'checksums': ['fdff482f75239239201f4d667d93424412639aad0b3b0ad4d827e7c637e0ad39'], + }), + ('clamp', '1.3.2', { + 'checksums': ['4f6a99a8678d51abbf1650263a74d1ac50939edc11986271431d2e03a0d7a022'], + }), + ('multipart-post', '2.2.3', { + 'checksums': ['462979de2971b8df33c2ee797fd497731617241f9dcd93960cc3caccb2dd13d8'], + }), + ('ruby2_keywords', '0.0.5', { + 'checksums': ['ffd13740c573b7301cf7a2e61fc857b2a8e3d3aff32545d6f8300d8bae10e3ef'], + }), + ('faraday-net_http', '3.0.2', { + 'checksums': ['6882929abed8094e1ee30344a3369e856fe34530044630d1f652bf70ebd87e8d'], + }), + ('faraday', '1.2.0', { + 'checksums': ['bd5c138304ee53907f8d0747724660c3a1cdf77d530d1cecd70d141299194b99'], + }), + ('faraday_middleware', '1.2.0', { + 'checksums': ['ded15d574d50e92bd04448d5566913af5cb1a01b2fa311ceecc2464fa0ab88af'], + }), + ('highline', '2.0.3', { + 'checksums': ['2ddd5c127d4692721486f91737307236fe005352d12a4202e26c48614f719479'], + }), + ('net-http-pipeline', '1.0.1', { + 'checksums': ['6923ce2f28bfde589a9f385e999395eead48ccfe4376d4a85d9a77e8c7f0b22f'], + }), + ('connection_pool', '2.3.0', { + 'checksums': ['677985be912f33c90f98f229aaa0c0ddb2ef8776f21929a36eeeb25251c944da'], + }), + ('net-http-persistent', '2.9.4', { + 'checksums': ['24274d207ffe66222ef70c78a052c7ea6e66b4ff21e2e8a99e3335d095822ef9'], + }), + ('multi_json', '1.15.0', { + 'checksums': ['1fd04138b6e4a90017e8d1b804c039031399866ff3fbabb7822aea367c78615d'], + }), + ('public_suffix', '5.0.1', { + 'checksums': ['65603917ff4ecb32f499f42c14951aeed2380054fa7fc51758fc0a8d455fe043'], + }), + ('addressable', '2.8.1', { + 'checksums': ['bc724a176ef02118c8a3ed6b5c04c39cf59209607ffcce77b91d0261dbadedfa'], + }), + ('concurrent-ruby', '1.1.10', { + 'checksums': ['244cb1ca0d91ec2c15ca2209507c39fb163336994428e16fbd3f465c87bd8e68'], + }), + ('i18n', '1.12.0', { + 'checksums': ['91e3cc1b97616d308707eedee413d82ee021d751c918661fb82152793e64aced'], + }), + ('minitest', '5.16.3', { + 'checksums': ['60f81ad96ca5518e1457bd29eb826db60f86fbbdf8c05eac63b4824ef1f52614'], + }), + ('thread_safe', '0.3.6', { + 'checksums': ['9ed7072821b51c57e8d6b7011a8e282e25aeea3a4065eab326e43f66f063b05a'], + }), + ('tzinfo', '1.1.0', { + 'checksums': ['715a47c25f8e4c2f106c92d5a97e612f84eb7e85f5822bf3d6cf615b44492abc'], + }), + ('zeitwerk', '2.6.6', { + 'checksums': ['bb397b50c31127f8dab372fa9b21da1e7c453c5b57da172ed858136c6283f826'], + }), + ('activesupport', '5.2.8.1', { + 'checksums': ['f0498c616e1b243c7b56d67920c389f959c186ad7031569e80335b42e1d22564'], + }), + ('gh', '0.18.0', { + 'checksums': ['eb93f18a88db3ba92eb888610fc53fae731d9dacfe55922b58cc3f3aca776a47'], + }), + ('launchy', '2.5.0', { + 'checksums': ['954243c4255920982ce682f89a42e76372dba94770bf09c23a523e204bdebef5'], + }), + ('ethon', '0.16.0', { + 'checksums': ['bba0da1cea8ac3e1f5cdd7cb1cb5fc78d7ac562c33736f18f0c3eb2b63053d9e'], + }), + ('typhoeus', '1.4.0', { + 'checksums': ['fff9880d5dc35950e7706cf132fd297f377c049101794be1cf01c95567f642d4'], + }), + ('websocket', '1.2.9', { + 'checksums': ['884b12dee993217795bb5f58acc89c0121c88bdc99df4d1636c0505dca352b36'], + }), + ('pusher-client', '0.6.2', { + 'checksums': ['c405c931090e126c056d99f6b69a01b1bcb6cbfdde02389c93e7d547c6efd5a3'], + }), + ('diff-lcs', '1.5.0', { + 'checksums': ['49b934001c8c6aedb37ba19daec5c634da27b318a7a3c654ae979d6ba1929b67'], + }), + ('rspec-support', '3.12.0', { + 'checksums': ['dd4d44b247ff679b95b5607ac5641d197a5f9b1d33f916123cb98fc5f917c58b'], + }), + ('rspec-mocks', '3.12.1', { + 'checksums': ['e0dd725c7d1c1417c3a1715ccc4e41c124fab6c05b2de5a91ce22d74ee301801'], + }), + ('rspec-expectations', '3.12.1', { + 'checksums': ['808b29f7f3ef4535fc897c10235b662bb6b58219406fec56158623b3a8e06c9e'], + }), + ('rspec-core', '3.12.0', { + 'checksums': ['c466f4137966526e177d2156ca45c249eeecc7ed519b23ae2fb80c4675406bc5'], + }), + ('rspec', '3.12.0', { + 'checksums': ['ccc41799a43509dc0be84070e3f0410ac95cbd480ae7b6c245543eb64162399c'], + }), + ('rack', '2.2.4', { + 'checksums': ['ea2232b638cbd919129c8c8ad8012ecaccc09f848152a7e705d2139d0137ac2b'], + }), + ('rack-protection', '3.0.5', { + 'checksums': ['3a428f9de18ee2a4080e2fab308f20f9e98d74dcbe06ed407a8035b46ba822a8'], + }), + ('tilt', '2.0.11', { + 'checksums': ['7b180fc472cbdeb186c85d31c0f2d1e61a2c0d77e1d9fd0ca28482a9d972d6a0'], + }), + ('mustermann', '3.0.0', { + 'checksums': ['6d3569aa3c3b2f048c60626f48d9b2d561cc8d2ef269296943b03da181c08b67'], + }), + ('sinatra', '3.0.5', { + 'checksums': ['40ec7643a65d01b9c25ab5f7cafc5c67ca0b9ac523fa728345d88de69392cee7'], + }), + ('rack-test', '2.0.2', { + 'checksums': ['adadd0e957f63a34199a9fdf905a920a0b0a50795735095b4ac4bd3c13385466'], + }), + ('bundler', '2.3.26', { + 'checksums': ['1ee53cdf61e728ad82c6dbff06cfcd8551d5422e88e86203f0e2dbe9ae999e09'], + }), + # for Jupyter kernel + ('mime-types-data', '3.2022.0105', { + 'checksums': ['d8c401ba9ea8b648b7145b90081789ec714e91fd625d82c5040079c5ea696f00'], + }), + ('mime-types', '3.4.1', { + 'checksums': ['6bcf8b0e656b6ae9977bdc1351ef211d0383252d2f759a59ef4bcf254542fc46'], + }), + ('data_uri', '0.1.0', { + 'checksums': ['7eb2f63487ccb943fae0eca561729c48d4d5654d76f8330aa16ed1dcdbebf33b'], + }), + ('io-console', '0.5.11', { + 'checksums': ['7e2418376fd185ad66e7aee2c58c207e9be0f2197aa89bc4c89931995cee3365'], + }), + ('reline', '0.3.1', { + 'checksums': ['b101d93607bf7564657f082f68abfa19ae939d14a709eff89be048eae2d7f4c7'], + }), + ('irb', '1.4.1', { + 'checksums': ['4a6698d9ab9de30ffd2def6fb17327f5d0fc089ace62337eff95396f379bf0a8'], + }), + ('multi_json', '1.15.0', { + 'checksums': ['1fd04138b6e4a90017e8d1b804c039031399866ff3fbabb7822aea367c78615d'], + }), + ('ffi-rzmq-core', '1.0.7', { + 'checksums': ['6541625a0f80016e4cb1b22a68b3870bd711c30de7d77625d8d6c92be95eb32a'], + }), + ('ffi-rzmq', '2.0.7', { + 'checksums': ['2feb3bc5bf46df633e2211514ac408521df0c198f54134fdb38322675d9f4591'], + }), + ('native-package-installer', '1.1.3', { + 'checksums': ['ba899df70489b748a3fe1b48afe6325d1cb8ca67fdff759266c275b911c797dd'], + }), + ('iruby', '0.7.4', { + 'checksums': ['cc219e2ac797c3fbf8c2b937ee7d26547723c8ae0e5ad65f2975aa3325b3a620'], + }), +] + +moduleclass = 'lang' diff --git a/Golden_Repo/r/rencode/rencode-1.0.5-GCCcore-11.3.0.eb b/Golden_Repo/r/rencode/rencode-1.0.5-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..68fd7082e3a9c6a94c0052a4405c72d81546f7b1 --- /dev/null +++ b/Golden_Repo/r/rencode/rencode-1.0.5-GCCcore-11.3.0.eb @@ -0,0 +1,38 @@ +easyblock = 'PythonPackage' + +name = 'rencode' +version = '1.0.5' + +homepage = 'https://pypi.python.org/pypi/rencode/' +description = """ +The rencode module is similar to bencode from the BitTorrent project. +For complex, heterogeneous data structures with many small elements, +r-encodings take up significantly less space than b-encodings. +This version of rencode is a complete rewrite in Cython to attempt to +increase the performance over the pure Python module written by Petru Paler, Connelly Barnes et al. +""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +sources = [SOURCE_TAR_GZ] +source_urls = [PYPI_SOURCE] +checksums = ['fb66c92d35355d6098956204e663ddadf7f2cc8f64962846f67e1e1d036efc57'] + +builddependencies = [ + ('binutils', '2.38'), +] + +dependencies = [ + ('Python', '3.10.4'), +] + +use_pip = True +sanity_pip_check = True +download_dep_fail = True + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/'], +} + +moduleclass = 'lib' diff --git a/Golden_Repo/r/rkcommon/rkcommon-1.10.0-GCC-11.3.0.eb b/Golden_Repo/r/rkcommon/rkcommon-1.10.0-GCC-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..e7cfa7e5c48ad37ff8f86e43af4b3736d482d437 --- /dev/null +++ b/Golden_Repo/r/rkcommon/rkcommon-1.10.0-GCC-11.3.0.eb @@ -0,0 +1,36 @@ +easyblock = 'CMakeMake' + +name = 'rkcommon' +version = '1.10.0' + +homepage = 'http://www.ospray.org/' +description = """ +OSPRay is an open source, scalable, and portable ray tracing engine for +high-performance, high-fidelity visualization on Intel® Architecture CPUs. +""" + +toolchain = {'name': 'GCC', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/ospray/rkcommon/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['57a33ce499a7fc5a5aaffa39ec7597115cf69ed4ff773546b5b71ff475ee4730'] + +builddependencies = [ + ('CMake', '3.23.1'), +] + +dependencies = [ + ('tbb', '2021.5.0'), +] + +separate_build_dir = True + +start_dir = '%(name)s-%(version)s' + +sanity_check_paths = { + 'dirs': ['bin', 'include/rkcommon'], + 'files': ['lib/librkcommon.so'], +} + +moduleclass = 'vis' diff --git a/Golden_Repo/s/SCOTCH/SCOTCH-7.0.1-ipsmpi-2022a.eb b/Golden_Repo/s/SCOTCH/SCOTCH-7.0.1-ipsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..1d47aa91d17ca338eef759973dc9d1f1f503a99f --- /dev/null +++ b/Golden_Repo/s/SCOTCH/SCOTCH-7.0.1-ipsmpi-2022a.eb @@ -0,0 +1,48 @@ +name = 'SCOTCH' + +version = '7.0.1' + +homepage = 'http://gforge.inria.fr/projects/scotch/' + +description = """Software package and libraries for sequential and parallel graph partitioning, + +static mapping, and sparse matrix block ordering, and sequential mesh and hypergraph partitioning. + +""" + +toolchain = {'name': 'ipsmpi', 'version': '2022a'} + +toolchainopts = {'pic': True} + +source_urls = ['https://gitlab.inria.fr/scotch/scotch/-/archive/v%(version)s/'] +sources = ['%(namelower)s-v%(version)s.tar.gz'] +checksums = ['0618e9bc33c02172ea7351600fce4fccd32fe00b3359c4aabb5e415f17c06fed'] + +builddependencies = [ + ('Bison', '3.8.2'), + ('flex', '2.6.4'), +] + +dependencies = [ + ('zlib', '1.2.12'), +] + +configopts = '-DIDXSIZE64 ' + +modloadmsg = """ + +Notice: We do not support the Fortran interface + +""" + +modextravars = { + + 'SCOTCH_ROOT': '%(installdir)s', + + 'SCOTCH_INCLUDE': '%(installdir)s/include/', + + 'SCOTCH_LIB': '%(installdir)s/lib', + +} + +moduleclass = 'math' diff --git a/Golden_Repo/s/SDL2/SDL2-2.26.2-gcccoremkl-11.3.0-2022.1.0.eb b/Golden_Repo/s/SDL2/SDL2-2.26.2-gcccoremkl-11.3.0-2022.1.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..eaf161f79f8b86e6c3f18e5646292544a9d9e317 --- /dev/null +++ b/Golden_Repo/s/SDL2/SDL2-2.26.2-gcccoremkl-11.3.0-2022.1.0.eb @@ -0,0 +1,41 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu, NTUA +# Authors:: Fotis Georgatos <fotis@cern.ch> +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/ +## + +easyblock = 'ConfigureMake' + +name = 'SDL2' +version = '2.26.2' + +homepage = 'http://www.libsdl.org/' +description = "SDL: Simple DirectMedia Layer, a cross-platform multimedia library" + +toolchain = {'name': 'gcccoremkl', 'version': '11.3.0-2022.1.0'} + +source_urls = ['http://www.libsdl.org/release/'] +sources = [SOURCE_TAR_GZ] +checksums = ['95d39bc3de037fbdfa722623737340648de4f180a601b0afad27645d150b99e0'] + +builddependencies = [ + ('binutils', '2.38'), +] + +dependencies = [ + ('X11', '20220504'), + ('CUDA', '11.7', '', SYSTEM), +] + +sanity_check_paths = { + 'files': ['bin/sdl2-config', 'lib/libSDL2.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/Golden_Repo/s/SOCI/SOCI-4.0.3-GCCcore-11.3.0.eb b/Golden_Repo/s/SOCI/SOCI-4.0.3-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..65024521a471b1cc98c901932835d92b24f057ce --- /dev/null +++ b/Golden_Repo/s/SOCI/SOCI-4.0.3-GCCcore-11.3.0.eb @@ -0,0 +1,52 @@ +easyblock = 'CMakeMake' + +name = 'SOCI' +version = '4.0.3' + +homepage = 'http://soci.sourceforge.net/' +description = """SOCI is a database access library for C++ that makes the illusion of embedding SQL queries in the + regular C++ code, staying entirely within the Standard C++.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['https://github.com/SOCI/soci/archive'] +sources = ['v%(version)s.tar.gz'] +checksums = ['4b1ff9c8545c5d802fbe06ee6cd2886630e5c03bf740e269bb625b45cf934928'] + +builddependencies = [ + ('CMake', '3.23.1'), +] + +dependencies = [ + ('Boost', '1.79.0'), + ('SQLite', '3.38.3'), + ('PostgreSQL', '14.4'), +] + +# Matches RStudio (1.4.1717) install options +# https://github.com/rstudio/rstudio/blob/ddcd7191ec89c4da00e77afae7e9f27e61e87c36/dependencies/common/install-soci +configopts = "-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true " +configopts += "-DSOCI_TESTS=OFF " +configopts += "-DSOCI_CXX11=ON " +configopts += "-DSOCI_EMPTY=OFF " +configopts += '-DCMAKE_INCLUDE_PATH="$EBROOTBOOST/include" ' +configopts += "-DBoost_USE_STATIC_LIBS=ON " +configopts += '-DCMAKE_LIBRARY_PATH="$EBROOTBOOST/lib" ' +configopts += "-DWITH_BOOST=ON " +configopts += "-DWITH_POSTGRESQL=ON " +configopts += "-DWITH_SQLITE3=ON " +configopts += "-DWITH_DB2=OFF " +configopts += "-DWITH_MYSQL=OFF " +configopts += "-DWITH_ORACLE=OFF " +configopts += "-DWITH_FIREBIRD=OFF " +configopts += "-DWITH_ODBC=OFF " +configopts += "-DBoost_DEBUG=1 " + +local_dbs = ['postgresql', 'sqlite3'] + +sanity_check_paths = { + 'files': ['lib/libsoci_%s.%s' % (x, SHLIB_EXT) for x in local_dbs + ['core']], + 'dirs': ['include/soci/%s' % x for x in local_dbs], +} + +moduleclass = 'lang' diff --git a/Golden_Repo/s/SZ/SZ-2.1.12.5-GCCcore-11.3.0.eb b/Golden_Repo/s/SZ/SZ-2.1.12.5-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..3ceca2664fd1bb09643e65e2f86da6f35376daab --- /dev/null +++ b/Golden_Repo/s/SZ/SZ-2.1.12.5-GCCcore-11.3.0.eb @@ -0,0 +1,43 @@ +easyblock = 'CMakeMake' + +name = 'SZ' +version = '2.1.12.5' + +homepage = 'https://szcompressor.org' +description = """SZ is a modular parametrizable lossy compressor framework +for scientific data (floating point and integers).""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +github_account = 'szcompressor' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['32a820daf6019156a777300389d2392e4498a5c9daffce7be754cd0a5ba8729c'] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1'), + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('HDF5', '1.12.2', '-serial'), + ('netCDF', '4.9.0', '-serial'), +] + +separate_build_dir = True + +configopts = "-DCMAKE_VERBOSE_MAKEFILE=ON " + +configopts += "-DBUILD_FORTRAN=ON " +configopts += "-DBUILD_HDF5_FILTER=ON " +configopts += "-DBUILD_NETCDF_READER=ON " +configopts += "-DBUILD_OPENMP=ON " + +sanity_check_paths = { + 'files': ['lib/libSZ.%s' % SHLIB_EXT], + 'dirs': ['include', 'lib'], +} + +moduleclass = 'data' diff --git a/Golden_Repo/s/SymEngine-python/SymEngine-python-0.9.2-GCC-11.3.0.eb b/Golden_Repo/s/SymEngine-python/SymEngine-python-0.9.2-GCC-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..e4abee3bc07b376ba3bfd45c84e7b6b453e684d4 --- /dev/null +++ b/Golden_Repo/s/SymEngine-python/SymEngine-python-0.9.2-GCC-11.3.0.eb @@ -0,0 +1,34 @@ +easyblock = 'PythonPackage' + +name = 'SymEngine-python' +version = '0.9.2' + +homepage = 'https://github.com/symengine/symengine.py' +description = "Python wrappers to the C++ library SymEngine, a fast C++ symbolic manipulation library." + +toolchain = {'name': 'GCC', 'version': '11.3.0'} + +source_urls = ['https://github.com/symengine/symengine.py/archive/refs/tags/'] +sources = ['v%(version)s.tar.gz'] +patches = ['py_modules.patch'] +checksums = [ + '9da048692d741bb001d9947a0e2bdf8909600cb4e6f3b9273d518cf93300955d', + '8ad1b29de924ab8589ee86658c6a7bb6921f867b26b03fdf1491a109c7df1e97', +] + +builddependencies = [ + ('CMake', '3.23.1'), +] + +dependencies = [ + ('SymEngine', '0.9.0'), + ('Python', '3.10.4'), +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +options = {'modulename': 'symengine'} + +moduleclass = 'lib' diff --git a/Golden_Repo/s/SymEngine-python/py_modules.patch b/Golden_Repo/s/SymEngine-python/py_modules.patch new file mode 100644 index 0000000000000000000000000000000000000000..15a6235e12b25b9ef0ce2d1fd2e7b9753d47c41f --- /dev/null +++ b/Golden_Repo/s/SymEngine-python/py_modules.patch @@ -0,0 +1,11 @@ +diff -Naur symengine.py-0.9.2.orig/setup.py symengine.py-0.9.2/setup.py +--- symengine.py-0.9.2.orig/setup.py 2022-03-07 23:39:26.000000000 +0100 ++++ symengine.py-0.9.2/setup.py 2023-02-05 09:58:50.534749182 +0100 +@@ -238,5 +238,6 @@ + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', + 'Programming Language :: Python :: 3.10', +- ] ++ ], ++ py_modules=[] + ) diff --git a/Golden_Repo/s/SymEngine/SymEngine-0.9.0-GCC-11.3.0.eb b/Golden_Repo/s/SymEngine/SymEngine-0.9.0-GCC-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..a0fbe5ba27487ff5214d34c7b8f54e5ff101d0c8 --- /dev/null +++ b/Golden_Repo/s/SymEngine/SymEngine-0.9.0-GCC-11.3.0.eb @@ -0,0 +1,39 @@ +easyblock = 'CMakeMake' + +name = 'SymEngine' +version = '0.9.0' + +homepage = 'https://github.com/symengine/symengine' +description = "SymEngine is a standalone fast C++ symbolic manipulation library" + +toolchain = {'name': 'GCC', 'version': '11.3.0'} +toolchainopts = {'cstd': 'c++17', 'vectorize': True} + +source_urls = ['https://github.com/symengine/symengine/archive/refs/tags/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['dcf174ac708ed2acea46691f6e78b9eb946d8a2ba62f75e87cf3bf4f0d651724'] + +builddependencies = [ + ('CMake', '3.23.1'), +] + +dependencies = [ + ('GMP', '6.2.1'), + ('MPFR', '4.1.0'), + ('MPC', '1.2.1'), + ('LLVM', '14.0.3'), + ('FLINT', '2.9.0'), +] + +local_opts = '-DWITH_OPENMP=ON -DWITH_SYMENGINE_RCP=ON -DWITH_COTIRE=OFF ' +local_opts += '-DWITH_MPFR=ON -DWITH_MPC=ON -DWITH_LLVM=ON -DWITH_BFD=ON -DWITH_FLINT=ON ' +configopts = [local_opts + '-DBUILD_SHARED_LIBS=OFF', local_opts + '-DBUILD_SHARED_LIBS=ON'] + +runtest = 'test' + +sanity_check_paths = { + 'files': ['lib64/libsymengine.a', 'lib64/libsymengine.%s' % SHLIB_EXT], + 'dirs': ['include/symengine/'] +} + +moduleclass = 'lib' diff --git a/Golden_Repo/s/spdlog/spdlog-1.11.0-GCCcore-11.3.0.eb b/Golden_Repo/s/spdlog/spdlog-1.11.0-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..0b014356d975e58bc01594bacb8bfa53013589f6 --- /dev/null +++ b/Golden_Repo/s/spdlog/spdlog-1.11.0-GCCcore-11.3.0.eb @@ -0,0 +1,25 @@ +easyblock = 'CMakeMake' + +name = 'spdlog' +version = '1.11.0' + +homepage = "https://github.com/gabime/spdlog" +description = """Very fast, header-only/compiled, C++ logging library. +""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/gabime/spdlog/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['ca5cae8d6cac15dae0ec63b21d6ad3530070650f68076f3a4a862ca293a858bb'] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1'), +] + +sanity_check_paths = { + 'files': [], + 'dirs': [('include', 'lib64')] +} diff --git a/Golden_Repo/u/uglifyjs/uglifyjs-3.17.4-GCCcore-11.3.0.eb b/Golden_Repo/u/uglifyjs/uglifyjs-3.17.4-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..ffbcc5c06ada8e2a01fa35646a5916be04f4b6ac --- /dev/null +++ b/Golden_Repo/u/uglifyjs/uglifyjs-3.17.4-GCCcore-11.3.0.eb @@ -0,0 +1,29 @@ +easyblock = 'Binary' + +name = 'uglifyjs' +version = '3.17.4' + +homepage = 'https://github.com/mishoo/UglifyJS' +description = """UglifyJS is a JavaScript parser, minifier, compressor and beautifier toolkit.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['https://github.com/mishoo/UglifyJS/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['afb2c2b2ab5ef3b925cf6fbfe66b9f3e4a6b71133356e9131d2368545ca05b23'] + +builddependencies = [('binutils', '2.38')] + +dependencies = [ + ('nodejs', '16.15.1'), +] + +install_cmd = 'npm install --no-package-lock -g --prefix %(installdir)s uglify-js@%(version)s v%(version)s.tar.gz' + +sanity_check_paths = { + 'files': ['bin/%(namelower)s'], + 'dirs': ['lib/node_modules/uglify-js'], +} +sanity_check_commands = ['%(namelower)s --help'] + +moduleclass = 'vis' diff --git a/Golden_Repo/v/VMD/VMD-1.9.3_plugins.patch b/Golden_Repo/v/VMD/VMD-1.9.3_plugins.patch new file mode 100644 index 0000000000000000000000000000000000000000..f4cf63549263fd9462ccfefa556b6508369e9a25 --- /dev/null +++ b/Golden_Repo/v/VMD/VMD-1.9.3_plugins.patch @@ -0,0 +1,29 @@ +Fix hard coded compiler, flags and tcl lib version for plugins + +Ake Sandgren, 20190823 +--- plugins/Make-arch.orig 2016-10-21 23:34:39.000000000 +0200 ++++ plugins/Make-arch 2019-08-23 10:45:51.403545042 +0200 +@@ -337,17 +337,17 @@ + "ARCH = LINUXAMD64" \ + "COPTO = -fPIC -m64 -o " \ + "LOPTO = -fPIC -m64 -lstdc++ -o " \ +- "CC = gcc" \ +- "CXX = g++" \ ++ "CC = $(CC)" \ ++ "CXX = $(CXX)" \ + "DEF = -D" \ +- "CCFLAGS = -m64 -O2 -fPIC -Wall" \ +- "CXXFLAGS = -m64 -O2 -fPIC -Wall" \ +- "TCLLDFLAGS = -ltcl8.5 -ldl" \ ++ "CCFLAGS = $(CFLAGS)" \ ++ "CXXFLAGS = $(CXXFLAGS)" \ ++ "TCLLDFLAGS = $(TCLLDFLAGS)" \ + "NETCDFLDFLAGS = -lnetcdf " \ + "AR = ar" \ + "NM = nm -p" \ + "RANLIB = touch" \ +- "SHLD = gcc -shared" ++ "SHLD = $(CC) -shared" + + LINUXCARMA: + $(MAKE) dynlibs staticlibs bins \ diff --git a/Golden_Repo/v/VMD/VMD-1.9.3_stride_MAX_AT_IN_RES.patch b/Golden_Repo/v/VMD/VMD-1.9.3_stride_MAX_AT_IN_RES.patch new file mode 100644 index 0000000000000000000000000000000000000000..9011384eff52af2075f6d7977d0b0de7e5bad400 --- /dev/null +++ b/Golden_Repo/v/VMD/VMD-1.9.3_stride_MAX_AT_IN_RES.patch @@ -0,0 +1,15 @@ +Increase number of atoms allowed per residues as per stride README from VMD + +Åke Sandgren, 2017-05-02 +diff -ru vmd-1.9.3.orig/lib/stride/stride.h vmd-1.9.3/lib/stride/stride.h +--- vmd-1.9.3.orig/lib/stride/stride.h 2017-05-02 13:47:26.484463970 +0200 ++++ vmd-1.9.3/lib/stride/stride.h 2017-05-02 13:47:43.748279797 +0200 +@@ -40,7 +40,7 @@ + #define MAX_BOND 100 + #define MAX_ASSIGN 500 + #define MAX_INFO 1000 +-#define MAX_AT_IN_RES 75 ++#define MAX_AT_IN_RES 100 + #define MAX_AT_IN_HETERORES 200 + #define MAXRESDNR 6 + #define MAXRESACC 6 diff --git a/Golden_Repo/v/VMD/VMD-1.9.3_stride_Makefile.patch b/Golden_Repo/v/VMD/VMD-1.9.3_stride_Makefile.patch new file mode 100644 index 0000000000000000000000000000000000000000..036430db8ffe77867d6e4ebf20fc57e422ff95f3 --- /dev/null +++ b/Golden_Repo/v/VMD/VMD-1.9.3_stride_Makefile.patch @@ -0,0 +1,37 @@ +Make stride use CC, CFLAGS and LDFLAGS from EB. + +Åke Sandgren, 2017-05-02 +diff -ru vmd-1.9.3.orig/lib/stride/Makefile vmd-1.9.3/lib/stride/Makefile +--- vmd-1.9.3.orig/lib/stride/Makefile 2003-04-08 14:03:14.000000000 +0200 ++++ vmd-1.9.3/lib/stride/Makefile 2017-05-02 13:46:01.973365383 +0200 +@@ -1,13 +1,14 @@ + #FLAGS = -lm -L/usr/pub/lib -lefence -o + #CC = cc -O2 -fullwarn -TENV:large_GOT + #CC = cc -g -Wall +-CC = gcc -O2 # at least for SunOS ++#CC = gcc -O2 # at least for SunOS + #CC = cc -g + + #CC = cc -O2 -fullwarn + + #CC = cc -O2 +-FLAGS = -lm -o ++#FLAGS = -lm -o ++LIBS = -lm + + SOURCE = stride.c splitstr.c rdpdb.c initchn.c geometry.c thr2one.c one2thr.c filename.c tolostr.c strutil.c place_h.c hbenergy.c memory.c helix.c sheet.c rdmap.c phipsi.c command.c molscr.c die.c hydrbond.c mergepat.c fillasn.c escape.c p_jrnl.c p_rem.c p_atom.c p_helix.c p_sheet.c p_turn.c p_ssbond.c p_expdta.c p_model.c p_compnd.c report.c nsc.c area.c ssbond.c chk_res.c chk_atom.c turn.c pdbasn.c dssp.c outseq.c chkchain.c elem.c measure.c asngener.c p_endmdl.c stred.c contact_order.c contact_map.c + +@@ -15,12 +16,9 @@ + + BINDIR = . + +-.c.o: +- $(CC) -c $< -o $@ +- + + stride : $(OBJECT) +- $(CC) $(OBJECT) $(FLAGS) $(BINDIR)/stride${ARCH} ++ $(CC) $(LDFLAGS) $(OBJECT) $(LIBS) -o stride + + $(OBJECT) : stride.h protot.h + diff --git a/Golden_Repo/v/VMD/VMD-1.9.3_surf_Makefile.patch b/Golden_Repo/v/VMD/VMD-1.9.3_surf_Makefile.patch new file mode 100644 index 0000000000000000000000000000000000000000..93f430a64a158b7c7ca07cfee06a7e00b5251307 --- /dev/null +++ b/Golden_Repo/v/VMD/VMD-1.9.3_surf_Makefile.patch @@ -0,0 +1,112 @@ +Fix surf Makefile. +Use CC, CFLAGS, etc from EB. +Drop bad make depend lines. + +Åke Sandgren, 2017-05-02 +diff -ru vmd-1.9.3.orig/lib/surf/Makefile vmd-1.9.3/lib/surf/Makefile +--- vmd-1.9.3.orig/lib/surf/Makefile 1994-03-22 16:44:20.000000000 +0100 ++++ vmd-1.9.3/lib/surf/Makefile 2017-05-02 13:41:51.911991381 +0200 +@@ -1,12 +1,7 @@ + # Compilation flags +-#CC = cc +-CC = cc + INCLUDE = -I. +-#LINCLUDE = -lcurses -ltermcap -lm +-LINCLUDE = -lm +-OPT_CFLAGS = -O2 $(FLAGS) $(INCLUDE) +-#CFLAGS = -g $(FLAGS) $(INCLUDE) +-CFLAGS = -O2 $(FLAGS) $(INCLUDE) ++LIBS = -lm ++CFLAGS = $(OPT) $(INCLUDE) + + # These are the user object files in the application + SRCS = surf.c io.c compute.c dual.c utils.c lp.c chull.c tessel_cases.c \ +@@ -18,7 +13,7 @@ + + # make objects + surf: $(OBJS) Makefile +- $(CC) $(CFLAGS) $(OBJS) -o surf $(LINCLUDE) ++ $(CC) $(LDFLAGS) $(OBJS) -o surf $(LIBS) + + lint: + lint $(INCLUDE) $(SRCS) +@@ -30,9 +25,6 @@ + tar -cvf surf.tar README *.[hc] Makefile + compress surf.tar + +-.c.o: +- $(CC) $(CFLAGS) -c $*.c +- + + # make depend makes the proper include file dependencies. You _could_ run + # it on a sun4, but there's a bug in the SunOS version of sed that causes +@@ -61,48 +53,3 @@ + @ echo ' ' >> Makefile + + # DO NOT DELETE THIS LINE -- make depend depends on it. +- +- +-# DO NOT DELETE THIS LINE -- make depend depends on it. +- +-surf.o: surf.h /usr/include/stdio.h /usr/include/math.h /usr/include/stdlib.h +-surf.o: /usr/include/sgidefs.h /usr/include/string.h /usr/include/sys/time.h +-surf.o: linalg.h +-io.o: surf.h /usr/include/stdio.h /usr/include/math.h /usr/include/stdlib.h +-io.o: /usr/include/sgidefs.h /usr/include/string.h /usr/include/sys/time.h +-io.o: linalg.h +-compute.o: surf.h /usr/include/stdio.h /usr/include/math.h +-compute.o: /usr/include/stdlib.h /usr/include/sgidefs.h /usr/include/string.h +-compute.o: /usr/include/sys/time.h linalg.h chull.h dual.h +-dual.o: surf.h /usr/include/stdio.h /usr/include/math.h /usr/include/stdlib.h +-dual.o: /usr/include/sgidefs.h /usr/include/string.h /usr/include/sys/time.h +-dual.o: linalg.h dual.h chull.h +-utils.o: surf.h /usr/include/stdio.h /usr/include/math.h +-utils.o: /usr/include/stdlib.h /usr/include/sgidefs.h /usr/include/string.h +-utils.o: /usr/include/sys/time.h linalg.h +-lp.o: surf.h /usr/include/stdio.h /usr/include/math.h /usr/include/stdlib.h +-lp.o: /usr/include/sgidefs.h /usr/include/string.h /usr/include/sys/time.h +-lp.o: linalg.h +-chull.o: surf.h /usr/include/stdio.h /usr/include/math.h +-chull.o: /usr/include/stdlib.h /usr/include/sgidefs.h /usr/include/string.h +-chull.o: /usr/include/sys/time.h linalg.h chull.h +-tessel_cases.o: surf.h /usr/include/stdio.h /usr/include/math.h +-tessel_cases.o: /usr/include/stdlib.h /usr/include/sgidefs.h +-tessel_cases.o: /usr/include/string.h /usr/include/sys/time.h linalg.h dual.h +-tessel_patches.o: surf.h /usr/include/stdio.h /usr/include/math.h +-tessel_patches.o: /usr/include/stdlib.h /usr/include/sgidefs.h +-tessel_patches.o: /usr/include/string.h /usr/include/sys/time.h linalg.h +-tessel_convex.o: surf.h /usr/include/stdio.h /usr/include/math.h +-tessel_convex.o: /usr/include/stdlib.h /usr/include/sgidefs.h +-tessel_convex.o: /usr/include/string.h /usr/include/sys/time.h linalg.h +-tessel_concave.o: surf.h /usr/include/stdio.h /usr/include/math.h +-tessel_concave.o: /usr/include/stdlib.h /usr/include/sgidefs.h +-tessel_concave.o: /usr/include/string.h /usr/include/sys/time.h linalg.h +-tessel_torus.o: surf.h /usr/include/stdio.h /usr/include/math.h +-tessel_torus.o: /usr/include/stdlib.h /usr/include/sgidefs.h +-tessel_torus.o: /usr/include/string.h /usr/include/sys/time.h linalg.h +- +-# DEPENDENCIES MUST END AT END OF FILE +-# IF YOU PUT STUFF HERE IT WILL GO AWAY +-# see make depend above +- +diff -ru vmd-1.9.3.orig/lib/surf/surf.c vmd-1.9.3/lib/surf/surf.c +--- vmd-1.9.3.orig/lib/surf/surf.c 1994-03-21 10:33:00.000000000 +0100 ++++ vmd-1.9.3/lib/surf/surf.c 2017-05-02 13:41:51.911991381 +0200 +@@ -7,7 +7,7 @@ + #define EXTERN + #include "surf.h" + +-void ++int + main(ac,av) + int ac; + char* av[]; +@@ -56,6 +56,8 @@ + if (Write_Option == 2) output_dataset(); + + if (Write_Option) end_output_dataset(); ++ ++ return(0); + } + + diff --git a/Golden_Repo/v/VMD/VMD-1.9.3_surf_bad_printfs.patch b/Golden_Repo/v/VMD/VMD-1.9.3_surf_bad_printfs.patch new file mode 100644 index 0000000000000000000000000000000000000000..9b9db3889bf08c48fb6a469303e1db1423d2b734 --- /dev/null +++ b/Golden_Repo/v/VMD/VMD-1.9.3_surf_bad_printfs.patch @@ -0,0 +1,74 @@ +Fix some bad printfs in surf. + +Åke Sandgren, 2017-05-02 +diff -ru vmd-1.9.3.orig/lib/surf/chull.c vmd-1.9.3/lib/surf/chull.c +--- vmd-1.9.3.orig/lib/surf/chull.c 1994-03-19 06:50:54.000000000 +0100 ++++ vmd-1.9.3/lib/surf/chull.c 2017-05-02 13:44:07.046582827 +0200 +@@ -378,7 +378,7 @@ + print_out( v ) + struct tvertex *v; + { +- fprintf( stderr, "\nAdding vertex %6x :\n", v ); ++ fprintf( stderr, "\nAdding vertex %6p :\n", v ); + print_verts(); + print_edges(); + print_fs(); +@@ -398,11 +398,11 @@ + temp = vertices; + fprintf (stderr, "Vertex List\n"); + if (vertices) do { +- fprintf(stderr," addr %6x\t", vertices ); ++ fprintf(stderr," addr %6p\t", vertices ); + fprintf(stderr,"(%g,%g,%g)",vertices->v[X], + vertices->v[Y], vertices->v[Z] ); + fprintf(stderr," active:%3d", vertices->active ); +- fprintf(stderr," duplicate:%5x", vertices->duplicate ); ++ fprintf(stderr," duplicate:%5p", vertices->duplicate ); + fprintf(stderr," mark:%2d\n", vertices->mark ); + vertices = vertices->next; + } while ( vertices != temp ); +@@ -424,13 +424,13 @@ + temp = edges; + fprintf (stderr, "Edge List\n"); + if (edges) do { +- fprintf( stderr, " addr: %6x\t", edges ); ++ fprintf( stderr, " addr: %6p\t", edges ); + fprintf( stderr, "adj: "); + for (i=0; i<3; ++i) +- fprintf( stderr, "%6x", edges->adjface[i] ); ++ fprintf( stderr, "%6p", edges->adjface[i] ); + fprintf( stderr, " endpts:"); + for (i=0; i<2; ++i) +- fprintf( stderr, "%8x", edges->endpts[i]); ++ fprintf( stderr, "%8p", edges->endpts[i]); + fprintf( stderr, " del:%3d\n", edges->deleted ); + edges = edges->next; + } while (edges != temp ); +@@ -452,13 +452,13 @@ + temp = faces; + fprintf (stderr, "Face List\n"); + if (faces) do { +- fprintf(stderr, " addr: %6x\t", faces ); ++ fprintf(stderr, " addr: %6p\t", faces ); + fprintf(stderr, " edges:"); + for( i=0; i<3; ++i ) +- fprintf(stderr, "%6x", faces->edg[i] ); ++ fprintf(stderr, "%6p", faces->edg[i] ); + fprintf(stderr, " vert:"); + for ( i=0; i<3; ++i) +- fprintf(stderr, "%6x", faces->vert[i] ); ++ fprintf(stderr, "%6p", faces->vert[i] ); + fprintf(stderr, " vis: %d\n", faces->visible ); + faces= faces->next; + } while ( faces != temp ); +@@ -552,8 +552,8 @@ + temp_v = temp_v->next; + } while ( temp_v != vertices ); + do { +- printf("3%5d%6d%6d\n", temp_f->vert[0]->vnum, +- temp_f->vert[1]->vnum, temp_f->vert[2]->vnum ); ++ printf("3%5d%6d%6d\n", temp_f->vert[0]->vnum[0], ++ temp_f->vert[1]->vnum[0], temp_f->vert[2]->vnum[0] ); + temp_f = temp_f->next; + } while ( temp_f != faces ); + } diff --git a/Golden_Repo/v/VMD/VMD-1.9.4a51_extra_colors.patch b/Golden_Repo/v/VMD/VMD-1.9.4a51_extra_colors.patch new file mode 100644 index 0000000000000000000000000000000000000000..26e9ba954dbbbb816975a947d97c4d1a69ca1f95 --- /dev/null +++ b/Golden_Repo/v/VMD/VMD-1.9.4a51_extra_colors.patch @@ -0,0 +1,46 @@ +Add some additional colors, e.g. to allow for color blind compatible rendering. +Bob Dröge, 2020-06-23 +--- src/Scene.C.orig 2020-06-23 09:37:41.000000000 +0200 ++++ src/Scene.C 2020-06-23 09:40:59.000000000 +0200 +@@ -63,7 +63,10 @@ + ,"yellow2", "yellow3", "green2", "green3", + "cyan2", "cyan3", "blue2", "blue3", + "violet", "violet2", "magenta", "magenta2", +- "red2", "red3", "orange2", "orange3" ++ "red2", "red3", "orange2", "orange3", ++ "matisse", "flamenco", "forest_green", "punch", ++ "wisteria", "spicy_mix", "orchid", "gray2", ++ "lime_pie", "java" + #endif + + }; +@@ -89,7 +92,17 @@ + 0.27f, 0.00f, 0.98f, 0.45f, 0.00f, 0.90f, // violet + 0.90f, 0.00f, 0.90f, 1.00f, 0.00f, 0.66f, // magenta + 0.98f, 0.00f, 0.23f, 0.81f, 0.00f, 0.00f, // red +- 0.89f, 0.35f, 0.00f, 0.96f, 0.72f, 0.00f // orange ++ 0.89f, 0.35f, 0.00f, 0.96f, 0.72f, 0.00f, // orange ++ 0.1f, 0.5f, 0.7f, // MPL1, matisse ++ 1.0f, 0.5f, 0.1f, // MPL2, flamenco ++ 0.2f, 0.6f, 0.2f, // MPL3, forest green ++ 0.8f, 0.2f, 0.2f, // MPL4, punch ++ 0.6f, 0.4f, 0.7f, // MPL5, wisteria ++ 0.5f, 0.3f, 0.3f, // MPL6, spicy mix ++ 0.9f, 0.5f, 0.8f, // MPL7, orchid ++ 0.5f, 0.5f, 0.5f, // MPL8, gray ++ 0.7f, 0.7f, 0.1f, // MPL9, key lime pie ++ 0.1f, 0.7f, 0.8f // MPL10, java + #endif + + }; +--- src/Scene.h.orig 2020-06-23 09:37:45.000000000 +0200 ++++ src/Scene.h 2020-06-23 09:42:21.000000000 +0200 +@@ -37,7 +37,7 @@ + #define DISP_LIGHTS 4 + + // total number of colors defined here +-#define REGCLRS 33 ++#define REGCLRS 43 + #define EXTRACLRS 1 + #define VISCLRS (REGCLRS - EXTRACLRS) + #define MAPCLRS 1024 diff --git a/Golden_Repo/v/VMD/VMD-1.9.4a57-gcccoremkl-11.3.0-2022.1.0.eb b/Golden_Repo/v/VMD/VMD-1.9.4a57-gcccoremkl-11.3.0-2022.1.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..e10877f760359227728ec9262448704d50ab4cc1 --- /dev/null +++ b/Golden_Repo/v/VMD/VMD-1.9.4a57-gcccoremkl-11.3.0-2022.1.0.eb @@ -0,0 +1,73 @@ +## +# Author: Robert Mijakovic <robert.mijakovic@lxp.lu> +## +name = 'VMD' +version = '1.9.4a57' + +homepage = 'https://www.ks.uiuc.edu/Research/vmd' +description = """VMD is a molecular visualization program for displaying, animating, and analyzing large biomolecular + systems using 3-D graphics and built-in scripting.""" + +toolchain = {'name': 'gcccoremkl', 'version': '11.3.0-2022.1.0'} + +source_urls = [ + 'https://www.ks.uiuc.edu/Research/vmd/vmd-1.9.4/files/alpha/', + 'https://www.ks.uiuc.edu/Research/vmd/vmd-%(version)s/files/final', + 'http://webclu.bio.wzw.tum.de/stride/' +] +sources = [ + 'vmd-%(version)s.src.tar.gz', + {'filename': 'stride.tar.gz', 'extract_cmd': "tar -C vmd-%(version)s/lib/stride -xf %s"}, +] +patches = [ + ('VMD-1.9.3_plugins.patch'), + ('VMD-1.9.3_surf_Makefile.patch', 'vmd-%(version)s'), + ('VMD-1.9.3_surf_bad_printfs.patch', 'vmd-%(version)s'), + ('VMD-1.9.3_stride_Makefile.patch', 'vmd-%(version)s'), + ('VMD-1.9.3_stride_MAX_AT_IN_RES.patch', 'vmd-%(version)s'), + ('VMD-1.9.4a57_configure.patch', 'vmd-%(version)s'), + ('VMD-1.9.4a51_extra_colors.patch', 'vmd-%(version)s'), +] +checksums = [ + 'de278d0c5d969336d89068e0806fb50aaa0cb0f546ba985d840b279357860679', # vmd-1.9.4a57.src.tar.gz + '51a8bc2988bb184bd08216124f61725225bb1a6f563bdf8cd35154cb5d621c1a', # stride.tar.gz + '85760d6ae838e2b09801e34b36b484532383f7aaf2e8634b3ef808002a92baa3', # VMD-1.9.3_plugins.patch + 'd5cfa88064b7cffbc75accd69707d4e45fda974e8127de9ab606fdad501bd68a', # VMD-1.9.3_surf_Makefile.patch + 'f3c2a8c155e38db8e644cee6a01f6beaea5988e72ac74cde26b71670b151cc34', # VMD-1.9.3_surf_bad_printfs.patch + 'eb194ac0d8c086b73f87b29f7d732687f902431b1cdfa139c090401fefdee51e', # VMD-1.9.3_stride_Makefile.patch + 'eff1ca00cec637a6c8a156b2fb038e078d1835ba0eb15a571ed820bca5a866d9', # VMD-1.9.3_stride_MAX_AT_IN_RES.patch + 'ad22b02f0261bb94768e084b42c74c1c6cd4d2a3428f4f22534565e232f2d237', # VMD-1.9.4a51_configure.patch + '253eba282b570eb00e4764f46f77fd5ca898d10360d5707dd50ad1f14615af80', # VMD-1.9.4a51_extra_colors.patch +] + +builddependencies = [ + ('binutils', '2.38'), +] + +dependencies = [ + ('tcsh', '6.24.01'), + ('Tcl', '8.6.12'), + ('Tk', '8.6.12'), + ('FLTK', '1.3.8'), + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('Tkinter', '%(pyver)s'), + ('X11', '20220504'), + ('fontconfig', '2.14.0'), + ('OpenGL', '2022a'), + ('netCDF', '4.9.0', '-serial'), + ('FFmpeg', '4.4.2'), + ('ImageMagick', '7.1.0-37'), + ('ACTC', '1.1'), + ('OptiX', '6.5.0', '', SYSTEM), + ('zlib', '1.2.12'), + ('libpng', '1.6.37'), + ('POV-Ray', '3.7.0.10'), + ('CUDA', '11.7', '', SYSTEM), +] + +postinstallcmds = [ + 'sed -i "s%#!/bin/csh%#!$EBROOTTCSH/bin/tcsh%g" %(installdir)s/bin/vmd ', +] + +moduleclass = 'vis' diff --git a/Golden_Repo/v/VMD/VMD-1.9.4a57_configure.patch b/Golden_Repo/v/VMD/VMD-1.9.4a57_configure.patch new file mode 100644 index 0000000000000000000000000000000000000000..42c726a4c397fb84f660782dd9d69b83ccfa911c --- /dev/null +++ b/Golden_Repo/v/VMD/VMD-1.9.4a57_configure.patch @@ -0,0 +1,179 @@ +diff -Naur vmd-1.9.4a57.orig/configure vmd-1.9.4a57/configure +--- vmd-1.9.4a57.orig/configure 2022-04-27 08:21:11.000000000 +0200 ++++ vmd-1.9.4a57/configure 2023-02-06 22:04:22.188887855 +0100 +@@ -498,17 +498,16 @@ + + $arch_cc = "cc"; + $arch_ccpp = "CC"; +-$arch_nvcc = "/usr/local/cuda-10.2/bin/nvcc"; ++$arch_nvcc = "$ENV{'EBROOTCUDA'}/bin/nvcc"; + $arch_nvccflags = "-lineinfo --ptxas-options=-v " . +- "-gencode arch=compute_30,code=compute_30 " . +- "-gencode arch=compute_30,code=sm_35 " . +- "-gencode arch=compute_30,code=sm_37 " . + "-gencode arch=compute_50,code=compute_50 " . + "-gencode arch=compute_50,code=sm_50 " . + "-gencode arch=compute_60,code=compute_60 " . + "-gencode arch=compute_60,code=sm_60 " . + "-gencode arch=compute_70,code=compute_70 " . + "-gencode arch=compute_70,code=sm_70 " . ++ "-gencode arch=compute_75,code=sm_75 " . ++ "-gencode arch=compute_80,code=sm_80 " . + "--ftz=true "; + # "-gencode arch=compute_75,code=sm_75 " . + $arch_gcc = "gcc"; +@@ -634,17 +633,17 @@ + # location of Mesa library and include files; basically does the same + # as OpenGL. This is based on the default instructions from the Mesa + # README; the include files should by default be in /usr/local/include/GL. +-$mesa_dir = "$vmd_library_dir/Mesa"; ++$mesa_dir = $ENV{'EBROOTMESA'}; + $mesa_include = "-I$mesa_dir/include"; + $mesa_library = "-L$mesa_dir/lib_$config_arch"; + #$mesa_libs = "-lMesaGL -lMesaGLU"; +-$mesa_libs = "-lMesaGL"; ++$mesa_libs = "-lGL -lGLU"; + $mesa_defines = "-DUSELINEAXES -DVMDMESA -DVMDOPENGL"; + @mesa_cc = (); + @mesa_cu = (); +-@mesa_ccpp = @opengl_ccpp; +-@mesa_h = @opengl_h; +-@mesa_extra = @opengl_extra; ++@mesa_ccpp = (); ++@mesa_h = (); ++@mesa_extra = (); + + + # +@@ -720,10 +719,10 @@ + + ################ FLTK GUI + $fltk_defines = "-DVMDGUI -DVMDFLTK"; +-$fltk_dir = "$vmd_library_dir/fltk"; ++$fltk_dir = $ENV{'EBROOTFLTK'}; + $fltk_include = "-I$fltk_dir/include"; + $fltk_library = "-L$fltk_dir/$config_arch"; +-$fltk_libs = "-lfltk -lX11"; ++$fltk_libs = "-lfltk -lX11 -lXfixes -lXcursor -lXinerama"; + #@fltk_cc = ('forms_ui.c'); + @fltk_cu = (); + @fltk_ccpp = ( 'ColorFltkMenu.C', +@@ -765,7 +764,6 @@ + $stock_tcl_include_dir=$ENV{"TCL_INCLUDE_DIR"} || "$vmd_library_dir/tcl/include"; + $stock_tcl_library_dir=$ENV{"TCL_LIBRARY_DIR"} || "$vmd_library_dir/tcl/lib_$config_arch"; + +- + # location of Tk (for TK option) + #$stock_tk_include_dir=$ENV{"TK_INCLUDE_DIR"} || "/usr/local/include"; + #$stock_tk_library_dir=$ENV{"TK_LIBRARY_DIR"} || "/usr/local/lib"; +@@ -783,8 +781,8 @@ + if ($config_tk) { $tcl_include .= " -I$stock_tk_include_dir"; } + $tcl_library = "-L$stock_tcl_library_dir"; + if ($config_tk) { $tcl_library .= " -L$stock_tk_library_dir"; } +-$tcl_libs = "-ltcl8.5"; +-if ($config_tk) { $tcl_libs = "-ltk8.5 -lX11 " . $tcl_libs; } ++$tcl_libs = "-ltcl8.6"; ++if ($config_tk) { $tcl_libs = "-ltk8.6 -lX11 " . $tcl_libs; } + + @tcl_cc = (); + @tcl_cu = (); +@@ -1006,7 +1004,7 @@ + # This option enables the use of CUDA GPU acceleration functions. + ####################### + $cuda_defines = "-DVMDCUDA -DMSMPOT_CUDA"; +-$cuda_dir = "/usr/local/cuda-10.2"; ++$cuda_dir = "$ENV{'CUDA_HOME'}"; + $cuda_include = ""; + $cuda_library = ""; + $cuda_libs = "-Wl,-rpath -Wl,\$\$ORIGIN/ -lcudart_static -lrt"; +@@ -1215,7 +1213,7 @@ + # $liboptix_dir = "/usr/local/encap/NVIDIA-OptiX-SDK-5.0.1-linux64"; + # $liboptix_dir = "/usr/local/encap/NVIDIA-OptiX-SDK-5.1.0-linux64"; + # $liboptix_dir = "/usr/local/encap/NVIDIA-OptiX-SDK-6.0.0-linux64"; +-$liboptix_dir = "/usr/local/encap/NVIDIA-OptiX-SDK-6.5.0-linux64"; ++$liboptix_dir = "$ENV{'EBROOTOPTIX'}"; + # $liboptix_dir = "/usr/local/encap/NVIDIA-OptiX-SDK-7.0.0-linux64"; + + # NCSA Blue Waters +@@ -1370,7 +1368,7 @@ + die "LIBPNG option requires ZLIB!"; + } + $libpng_defines = "-DVMDLIBPNG"; +-$libpng_dir = "/Projects/vmd/vmd/lib/libpng"; ++$libpng_dir = "$ENV{'EBROOTLIBPNG'}"; + $libpng_include = "-I$libpng_dir/include"; + $libpng_library = "-L$libpng_dir/lib_$config_arch"; + $libpng_libs = "-lpng16"; +@@ -1398,7 +1396,7 @@ + # OPTIONAL COMPONENT: Data compresssion library + # This may be commented out if not required. + $zlib_defines = "-DVMDZLIB"; +-$zlib_dir = "/Projects/vmd/vmd/lib/zlib"; ++$zlib_dir = "$ENV{'EBROOTZLIB'}"; + $zlib_include = "-I$zlib_dir/include"; + $zlib_library = "-L$zlib_dir/lib_$config_arch"; + $zlib_libs = "-lz"; +@@ -1589,7 +1587,7 @@ + # primitives. + ####################### + $actc_defines = "-DVMDACTC"; +-$actc_dir = "$vmd_library_dir/actc"; ++$actc_dir = "$ENV{'EBROOTACTC'}"; + $actc_include = "-I$actc_dir/include"; + $actc_library = "-L$actc_dir/lib_$config_arch"; + $actc_libs = "-lactc"; +@@ -1604,7 +1602,7 @@ + # OPTIONAL COMPONENT: NetCDF I/O Library (Used by cdfplugin) + ####################### + $netcdf_defines = ""; +-$netcdf_dir = "$vmd_library_dir/netcdf"; ++$netcdf_dir = "$ENV{'EBROOTNETCDF'}"; + $netcdf_include = "-I$netcdf_dir/include"; + $netcdf_library = "-L$netcdf_dir/lib_$config_arch"; + $netcdf_libs = "-lnetcdf"; +@@ -1662,7 +1660,7 @@ + $stock_python_library_dir=$ENV{"PYTHON_LIBRARY_DIR"} || "$conda_root/lib/python3.7/config-3.7m-x86_64-linux-gnu"; + $stock_numpy_include_dir=$ENV{"NUMPY_INCLUDE_DIR"} || "$conda_root/lib/python3.7/site-packages/numpy/core/include/numpy"; + $stock_numpy_library_dir=$ENV{"NUMPY_LIBRARY_DIR"} || "$conda_root/lib/python-3.7/site-packages/numpy/core/include"; +- $python_libs = "-fno-lto -lpython3.7m -lpthread"; ++ $python_libs = "$ENV{'PYTHON_LIBRARIES'}" || "-fno-lto -lpython3.7m -lpthread"; + } else { + # $stock_python_include_dir=$ENV{"PYTHON_INCLUDE_DIR"} || "/usr/local/include"; + # $stock_python_library_dir=$ENV{"PYTHON_LIBRARY_DIR"} || "/usr/local/lib"; +@@ -1673,7 +1671,7 @@ + # $stock_numpy_library_dir=$ENV{"NUMPY_LIBRARY_DIR"} || "/usr/local/lib"; + $stock_numpy_include_dir=$ENV{"NUMPY_INCLUDE_DIR"} || "$vmd_library_dir/numpy/lib_$config_arch/include"; + $stock_numpy_library_dir=$ENV{"NUMPY_LIBRARY_DIR"} || "$vmd_library_dir/python/lib_$config_arch/lib/python2.5/site-packages/numpy/core/include"; +- $python_libs = "-lpython2.5 -lpthread"; ++ $python_libs = "$ENV{'PYTHON_LIBRARIES'}" || "-lpython2.5 -lpthread"; + } + + $python_defines = "-DVMDPYTHON"; +@@ -2593,7 +2591,7 @@ + + if ($config_cuda) { + $arch_nvccflags .= " --machine 64 -O3 $cuda_include"; +- $cuda_library = "-L/usr/local/cuda-10.2/lib64"; ++ $cuda_library = "-L/$ENV{'EBROOTCUDA'}/lib64"; + } + + $arch_lex = "flex"; # has problems with vendor lex +@@ -2603,7 +2601,7 @@ + # they likely serve no useful purpose going forward. + if (!$config_opengl_dispatch) { + $opengl_dep_libs = "-L/usr/X11R6/lib64 -lGL -lX11"; +- $mesa_libs = "-lMesaGL -L/usr/X11R6/lib64 -lXext -lX11"; ++ $mesa_libs = "-lGL -lGLU -L/usr/X11R6/lib64 -lXext -lX11"; + } + + # this is to make tcl happy +@@ -3789,8 +3787,7 @@ + + .cu.ptx: + \$(ECHO) "Compiling " \$< " --> " \$*.ptx " ..."; \\ +- \$(NVCC) \$(DEFINES) --use_fast_math $liboptix_include -gencode arch=compute_50,code=compute_50 -ptx \$< $arch_coptout$vmd_arch_dir/\$\@ +- ++ \$(NVCC) \$(DEFINES) --use_fast_math $liboptix_include -gencode arch=compute_80,code=compute_80 -ptx \$< $arch_coptout$vmd_arch_dir/\$\@ + .y.o: + + .l.o: diff --git a/Golden_Repo/v/VTK/VTK-9.2.5-GCCcore-11.3.0-nompi.eb b/Golden_Repo/v/VTK/VTK-9.2.5-GCCcore-11.3.0-nompi.eb new file mode 100644 index 0000000000000000000000000000000000000000..34fbf0ab9bce9e1a0b34dbb44909bc3b98b9fd5c --- /dev/null +++ b/Golden_Repo/v/VTK/VTK-9.2.5-GCCcore-11.3.0-nompi.eb @@ -0,0 +1,187 @@ +easyblock = 'CMakeMake' + +name = 'VTK' +version = '9.2.5' +versionsuffix = '-nompi' + +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': 'GCCcore', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://www.vtk.org/files/release/%(version_major_minor)s'] +sources = [ + SOURCE_TAR_GZ, + '%(name)sData-%(version)s.tar.gz', +] +patches = [('vtk-version.egg-info', '.')] +checksums = [ + '128d601baa980e98ee034207974b33fb38d2c98ab9cf4a5756efdb09ed6c0949', # VTK-9.2.5.tar.gz + '8a812f96346b3a38ff0fc3b1a1a372f3727a71ebf450c02d659a75dbe1113515', # VTKData-9.2.5.tar.gz + '787b82415ae7a4a1f815b4db0e25f7abc809a05fc85d7d219627f3a7e5d3867b', # vtk-version.egg-info +] + +builddependencies = [ + ('CMake', '3.23.1'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('HDF5', '1.12.2', '-serial'), + ('SciPy-Stack', '2022a', '', ('gcccoremkl', '11.3.0-2022.1.0')), + # ('libxc', '5.2.3'), # not in GCCcore toolchain + ('netCDF', '4.9.0', '-serial'), + ('X11', '20220504'), + ('OpenGL', '2022a'), +] + +separate_build_dir = True + +configopts = "-DCMAKE_INSTALL_LIBDIR=lib " + +configopts += "-DVTK_USE_SYSTEM_MPI4PY=OFF " +configopts += "-DVTK_USE_SYSTEM_LZMA=ON " +configopts += "-DVTK_USE_SYSTEM_HDF5=ON " +configopts += "-DVTK_USE_SYSTEM_NETCDF=ON " + +configopts += "-DBUILD_SHARED_LIBS=ON " +configopts += "-DBUILD_TESTING=OFF " + +configopts += "-DVTK_USE_MPI=OFF " +configopts += "-DVTK_SMP_IMPLEMENTATION_TYPE=OPENMP " +configopts += "-DVTK_Group_MPI:BOOL=OFF " +configopts += "-DVTK_Group_Web:BOOL=ON " + +configopts += '-DOpenGL_GL_PREFERENCE=GLVND ' # "GLVND" or "LEGACY" +configopts += "-DOPENGL_EGL_INCLUDE_DIR=$EBROOTOPENGL/include " +configopts += "-DOPENGL_GLX_INCLUDE_DIR=$EBROOTOPENGL/include " +configopts += "-DOPENGL_INCLUDE_DIR=$EBROOTOPENGL/include " +configopts += "-DOPENGL_egl_LIBRARY=$EBROOTOPENGL/lib/libEGL.so.1 " +configopts += "-DOPENGL_glx_LIBRARY=$EBROOTOPENGL/lib/libGLX.so.0 " +configopts += "-DOPENGL_opengl_LIBRARY=$EBROOTOPENGL/lib/libOpenGL.so.0 " +configopts += "-DOPENGL_glu_LIBRARY=$EBROOTOPENGL/lib/libGLU.so " + +configopts += "-DVTK_WRAP_PYTHON=ON " +configopts += "-DVTK_PYTHON_OPTIONAL_LINK=OFF " +configopts += "-DPYTHON_EXECUTABLE:PATH=$EBROOTPYTHON/bin/python%(pyshortver)s " +configopts += "-DPYTHON_INCLUDE_DIR:PATH=$EBROOTPYTHON/include/python%(pyshortver)s " +configopts += "-DPYTHON_LIBRARY:PATH=$EBROOTPYTHON/lib/libpython%%(pyshortver)s.%s " % SHLIB_EXT + +configopts += "-DHDF5_INCLUDE_DIRS=$EBROOTHDF5/include " + +configopts += "-DModule_vtkAcceleratorsVTKm:BOOL=ON " +# configopts += "-DModule_vtkDomainsMicroscopy:BOOL=OFF " +# configopts += "-DModule_vtkDomainsParallelChemistry:BOOL=OFF " +# configopts += "-DModule_vtkFiltersOpenTurns:BOOL=OFF " +# configopts += "-DModule_vtkFiltersParallelDIY2:BOOL=OFF " +# configopts += "-DModule_vtkFiltersParallelFlowPaths:BOOL=OFF " +configopts += "-DModule_vtkFiltersParallelGeometry:BOOL=ON " +configopts += "-DModule_vtkFiltersParallelMPI:BOOL=OFF " +configopts += "-DModule_vtkFiltersParallelStatistics:BOOL=ON " +# configopts += "-DModule_vtkFiltersParallelVerdict:BOOL=OFF " +# configopts += "-DModule_vtkFiltersReebGraph:BOOL=OFF " +# configopts += "-DModule_vtkGUISupportQt:BOOL=OFF " +# configopts += "-DModule_vtkGUISupportQtOpenGL:BOOL=OFF " +# configopts += "-DModule_vtkGUISupportQtSQL:BOOL=OFF " +# configopts += "-DModule_vtkGUISupportQtWebkit:BOOL=OFF " +# configopts += "-DModule_vtkGeovisGDAL:BOOL=OFF " +# configopts += "-DModule_vtkIOADIOS:BOOL=OFF " +# configopts += "-DModule_vtkIOFFMPEG:BOOL=OFF " +# configopts += "-DModule_vtkIOGDAL:BOOL=OFF " +# configopts += "-DModule_vtkIOGeoJSON:BOOL=OFF " +# configopts += "-DModule_vtkIOLAS:BOOL=OFF " +# configopts += "-DModule_vtkIOMPIImage:BOOL=ON " +# configopts += "-DModule_vtkIOMPIParallel:BOOL=ON " +# configopts += "-DModule_vtkIOMotionFX:BOOL=OFF " +# configopts += "-DModule_vtkIOMySQL:BOOL=OFF " +# configopts += "-DModule_vtkIOODBC:BOOL=OFF " +# configopts += "-DModule_vtkIOPDAL:BOOL=OFF " +# configopts += "-DModule_vtkIOParallelExodus:BOOL=OFF " +# configopts += "-DModule_vtkIOParallelLSDyna:BOOL=OFF " +# configopts += "-DModule_vtkIOParallelNetCDF:BOOL=OFF " +# configopts += "-DModule_vtkIOParallelXdmf3:BOOL=OFF " +# configopts += "-DModule_vtkIOPostgreSQL:BOOL=OFF " +# configopts += "-DModule_vtkIOTRUCHAS:BOOL=OFF " +# configopts += "-DModule_vtkIOVPIC:BOOL=OFF " +# configopts += "-DModule_vtkIOXdmf2:BOOL=OFF " +# configopts += "-DModule_vtkIOXdmf3:BOOL=OFF " +# configopts += "-DModule_vtkImagingOpenGL2:BOOL=OFF " +# configopts += "-DModule_vtkInfovisBoost:BOOL=OFF " +# configopts += "-DModule_vtkInfovisBoostGraphAlg:BOOL=OFF +configopts += "-DModule_vtkParallelMPI:BOOL=OFF " +configopts += "-DModule_vtkPython:BOOL=ON " +# configopts += "-DModule_vtkPythonInterpreter:BOOL=OFF " +# configopts += "-DModule_vtkRenderingExternal:BOOL=OFF " +# configopts += "-DModule_vtkRenderingFreeTypeFontConfig:BOOL=OFF " +# configopts += "-DModule_vtkRenderingLICOpenGL2:BOOL=OFF " +# configopts += "-DModule_vtkRenderingMatplotlib:BOOL=OFF " +# configopts += "-DModule_vtkRenderingOSPRay:BOOL=OFF " +# configopts += "-DModule_vtkRenderingOpenVR:BOOL=OFF " +# configopts += "-DModule_vtkRenderingOptiX:BOOL=OFF " +configopts += "-DModule_vtkRenderingParallel:BOOL=ON " +configopts += "-DModule_vtkRenderingParallelLIC:BOOL=ON " +# configopts += "-DModule_vtkRenderingQt:BOOL=OFF " +# configopts += "-DModule_vtkRenderingSceneGraph:BOOL=OFF " +# configopts += "-DModule_vtkRenderingTk:BOOL=OFF " +# configopts += "-DModule_vtkRenderingVolumeAMR:BOOL=OFF " +# configopts += "-DModule_vtkTclTk:BOOL=OFF " +# configopts += "-DModule_vtkTestingCore:BOOL=OFF " +# configopts += "-DModule_vtkTestingGenericBridge:BOOL=OFF " +# configopts += "-DModule_vtkTestingIOSQL:BOOL=OFF " +# configopts += "-DModule_vtkTestingRendering:BOOL=OFF " +# configopts += "-DModule_vtkUtilitiesBenchmarks:BOOL=OFF " +# configopts += "-DModule_vtkUtilitiesEncodeString:BOOL=OFF " +# configopts += "-DModule_vtkVPIC:BOOL=OFF " +configopts += "-DModule_vtkVTKm:BOOL=ON " +# configopts += "-DModule_vtkViewsGeovis:BOOL=OFF " +# configopts += "-DModule_vtkViewsQt:BOOL=OFF " +# configopts += "-DModule_vtkWebCore:BOOL=OFF " +# configopts += "-DModule_vtkWebGLExporter:BOOL=OFF " +# configopts += "-DModule_vtkWebPython:BOOL=OFF " +# configopts += "-DModule_vtkWrappingJava:BOOL=OFF " +# configopts += "-DModule_vtkWrappingPythonCore:BOOL=OFF " +# configopts += "-DModule_vtkWrappingTools:BOOL=OFF " +# configopts += "-DModule_vtkdiy2:BOOL=OFF " +# configopts += "-DModule_vtkkissfft:BOOL=OFF " +configopts += "-DModule_vtkmpi4py:BOOL=OFF " +# configopts += "-DModule_vtkpegtl:BOOL=OFF " +# configopts += "-DModule_vtkxdmf2:BOOL=OFF " +# configopts += "-DModule_vtkxdmf3:BOOL=OFF " +# configopts += "-DModule_vtkzfp:BOOL=OFF " + +preinstallopts = "export PYTHONPATH=%(installdir)s/lib/python%(pyshortver)s/site-packages:$PYTHONPATH && " + +# Install a egg-info file so VTK is more python friendly, required for mayavi +local_egg_info_src = '%(builddir)s/VTK-%(version)s/vtk-version.egg-info' +local_egg_info_dest = '%(installdir)s/lib/python%(pyshortver)s/site-packages/vtk-%(version)s.egg-info' +postinstallcmds = [ + 'sed "s/#VTK_VERSION#/%%(version)s/" %s > %s' % (local_egg_info_src, local_egg_info_dest), +] + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +local_vtk_exec = ['vtk%s-%%(version_major_minor)s' % x + for x in ['WrapJava', 'ParseJava', 'WrapPythonInit', 'WrapPython', 'WrapHierarchy']] +local_vtk_exec += ['vtkpython'] +local_vtk_libs = ['CommonCore', 'IONetCDF', 'ParallelCore', 'RenderingOpenGL2'] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in local_vtk_exec] + + ['lib/libvtk%s-%%(version_major_minor)s.%s' % (l, SHLIB_EXT) for l in local_vtk_libs], + 'dirs': ['lib/python%(pyshortver)s/site-packages/', 'include/vtk-%(version_major_minor)s'], +} + +sanity_check_commands = [ + "python -c 'import %(namelower)s'", + "python -c 'import pkg_resources; pkg_resources.get_distribution(\"vtk\")'", + # make sure that VTK Python libraries link to libpython (controlled via DVTK_PYTHON_OPTIONAL_LINK=OFF), + # see https://gitlab.kitware.com/vtk/vtk/-/issues/17881 + "ldd $EBROOTVTK/lib/libvtkPythonContext2D-%%(version_major_minor)s.%s | grep /libpython" % SHLIB_EXT, +] + +moduleclass = 'vis' diff --git a/Golden_Repo/v/VTK/VTK-9.2.5-foss-2022a.eb b/Golden_Repo/v/VTK/VTK-9.2.5-foss-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..8b48eb2a3b4fcc8815d576df04ed2795271493e8 --- /dev/null +++ b/Golden_Repo/v/VTK/VTK-9.2.5-foss-2022a.eb @@ -0,0 +1,187 @@ +easyblock = 'CMakeMake' + +name = 'VTK' +version = '9.2.5' + +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': 'foss', 'version': '2022a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = ['https://www.vtk.org/files/release/%(version_major_minor)s'] +sources = [ + SOURCE_TAR_GZ, + '%(name)sData-%(version)s.tar.gz', +] +patches = [('vtk-version.egg-info', '.')] +checksums = [ + '128d601baa980e98ee034207974b33fb38d2c98ab9cf4a5756efdb09ed6c0949', # VTK-9.2.5.tar.gz + '8a812f96346b3a38ff0fc3b1a1a372f3727a71ebf450c02d659a75dbe1113515', # VTKData-9.2.5.tar.gz + '787b82415ae7a4a1f815b4db0e25f7abc809a05fc85d7d219627f3a7e5d3867b', # vtk-version.egg-info +] + +builddependencies = [ + ('CMake', '3.23.1'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('HDF5', '1.12.2',), + ('SciPy-Stack', '2022a', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('mpi4py', '3.1.4'), + ('libxc', '5.2.3'), + ('netCDF', '4.9.0',), + ('X11', '20220504'), + ('OpenGL', '2022a'), +] + +separate_build_dir = True + +configopts = "-DCMAKE_INSTALL_LIBDIR=lib " + +configopts += "-DVTK_USE_SYSTEM_MPI4PY=ON " +configopts += "-DVTK_USE_SYSTEM_LZMA=ON " +configopts += "-DVTK_USE_SYSTEM_HDF5=ON " +configopts += "-DVTK_USE_SYSTEM_NETCDF=ON " + +configopts += "-DBUILD_SHARED_LIBS=ON " +configopts += "-DBUILD_TESTING=OFF " + +configopts += "-DVTK_USE_MPI=ON " +configopts += "-DVTK_SMP_IMPLEMENTATION_TYPE=OPENMP " +configopts += "-DVTK_Group_MPI:BOOL=ON " +configopts += "-DVTK_Group_Web:BOOL=ON " + +configopts += '-DOpenGL_GL_PREFERENCE=GLVND ' # "GLVND" or "LEGACY" +configopts += "-DOPENGL_EGL_INCLUDE_DIR=$EBROOTOPENGL/include " +configopts += "-DOPENGL_GLX_INCLUDE_DIR=$EBROOTOPENGL/include " +configopts += "-DOPENGL_INCLUDE_DIR=$EBROOTOPENGL/include " +configopts += "-DOPENGL_egl_LIBRARY=$EBROOTOPENGL/lib/libEGL.so.1 " +configopts += "-DOPENGL_glx_LIBRARY=$EBROOTOPENGL/lib/libGLX.so.0 " +configopts += "-DOPENGL_opengl_LIBRARY=$EBROOTOPENGL/lib/libOpenGL.so.0 " +configopts += "-DOPENGL_glu_LIBRARY=$EBROOTOPENGL/lib/libGLU.so " + +configopts += "-DVTK_WRAP_PYTHON=ON " +configopts += "-DVTK_PYTHON_OPTIONAL_LINK=OFF " +configopts += "-DPYTHON_EXECUTABLE:PATH=$EBROOTPYTHON/bin/python%(pyshortver)s " +configopts += "-DPYTHON_INCLUDE_DIR:PATH=$EBROOTPYTHON/include/python%(pyshortver)s " +configopts += "-DPYTHON_LIBRARY:PATH=$EBROOTPYTHON/lib/libpython%%(pyshortver)s.%s " % SHLIB_EXT + +configopts += "-DHDF5_INCLUDE_DIRS=$EBROOTHDF5/include " + +configopts += "-DModule_vtkAcceleratorsVTKm:BOOL=ON " +# configopts += "-DModule_vtkDomainsMicroscopy:BOOL=OFF " +# configopts += "-DModule_vtkDomainsParallelChemistry:BOOL=OFF " +# configopts += "-DModule_vtkFiltersOpenTurns:BOOL=OFF " +# configopts += "-DModule_vtkFiltersParallelDIY2:BOOL=OFF " +# configopts += "-DModule_vtkFiltersParallelFlowPaths:BOOL=OFF " +configopts += "-DModule_vtkFiltersParallelGeometry:BOOL=ON " +configopts += "-DModule_vtkFiltersParallelMPI:BOOL=ON " +configopts += "-DModule_vtkFiltersParallelStatistics:BOOL=ON " +# configopts += "-DModule_vtkFiltersParallelVerdict:BOOL=OFF " +# configopts += "-DModule_vtkFiltersReebGraph:BOOL=OFF " +# configopts += "-DModule_vtkGUISupportQt:BOOL=OFF " +# configopts += "-DModule_vtkGUISupportQtOpenGL:BOOL=OFF " +# configopts += "-DModule_vtkGUISupportQtSQL:BOOL=OFF " +# configopts += "-DModule_vtkGUISupportQtWebkit:BOOL=OFF " +# configopts += "-DModule_vtkGeovisGDAL:BOOL=OFF " +# configopts += "-DModule_vtkIOADIOS:BOOL=OFF " +# configopts += "-DModule_vtkIOFFMPEG:BOOL=OFF " +# configopts += "-DModule_vtkIOGDAL:BOOL=OFF " +# configopts += "-DModule_vtkIOGeoJSON:BOOL=OFF " +# configopts += "-DModule_vtkIOLAS:BOOL=OFF " +# configopts += "-DModule_vtkIOMPIImage:BOOL=ON " +# configopts += "-DModule_vtkIOMPIParallel:BOOL=ON " +# configopts += "-DModule_vtkIOMotionFX:BOOL=OFF " +# configopts += "-DModule_vtkIOMySQL:BOOL=OFF " +# configopts += "-DModule_vtkIOODBC:BOOL=OFF " +# configopts += "-DModule_vtkIOPDAL:BOOL=OFF " +# configopts += "-DModule_vtkIOParallelExodus:BOOL=OFF " +# configopts += "-DModule_vtkIOParallelLSDyna:BOOL=OFF " +# configopts += "-DModule_vtkIOParallelNetCDF:BOOL=OFF " +# configopts += "-DModule_vtkIOParallelXdmf3:BOOL=OFF " +# configopts += "-DModule_vtkIOPostgreSQL:BOOL=OFF " +# configopts += "-DModule_vtkIOTRUCHAS:BOOL=OFF " +# configopts += "-DModule_vtkIOVPIC:BOOL=OFF " +# configopts += "-DModule_vtkIOXdmf2:BOOL=OFF " +# configopts += "-DModule_vtkIOXdmf3:BOOL=OFF " +# configopts += "-DModule_vtkImagingOpenGL2:BOOL=OFF " +# configopts += "-DModule_vtkInfovisBoost:BOOL=OFF " +# configopts += "-DModule_vtkInfovisBoostGraphAlg:BOOL=OFF +configopts += "-DModule_vtkParallelMPI:BOOL=ON " +configopts += "-DModule_vtkPython:BOOL=ON " +# configopts += "-DModule_vtkPythonInterpreter:BOOL=OFF " +# configopts += "-DModule_vtkRenderingExternal:BOOL=OFF " +# configopts += "-DModule_vtkRenderingFreeTypeFontConfig:BOOL=OFF " +# configopts += "-DModule_vtkRenderingLICOpenGL2:BOOL=OFF " +# configopts += "-DModule_vtkRenderingMatplotlib:BOOL=OFF " +# configopts += "-DModule_vtkRenderingOSPRay:BOOL=OFF " +# configopts += "-DModule_vtkRenderingOpenVR:BOOL=OFF " +# configopts += "-DModule_vtkRenderingOptiX:BOOL=OFF " +configopts += "-DModule_vtkRenderingParallel:BOOL=ON " +configopts += "-DModule_vtkRenderingParallelLIC:BOOL=ON " +# configopts += "-DModule_vtkRenderingQt:BOOL=OFF " +# configopts += "-DModule_vtkRenderingSceneGraph:BOOL=OFF " +# configopts += "-DModule_vtkRenderingTk:BOOL=OFF " +# configopts += "-DModule_vtkRenderingVolumeAMR:BOOL=OFF " +# configopts += "-DModule_vtkTclTk:BOOL=OFF " +# configopts += "-DModule_vtkTestingCore:BOOL=OFF " +# configopts += "-DModule_vtkTestingGenericBridge:BOOL=OFF " +# configopts += "-DModule_vtkTestingIOSQL:BOOL=OFF " +# configopts += "-DModule_vtkTestingRendering:BOOL=OFF " +# configopts += "-DModule_vtkUtilitiesBenchmarks:BOOL=OFF " +# configopts += "-DModule_vtkUtilitiesEncodeString:BOOL=OFF " +# configopts += "-DModule_vtkVPIC:BOOL=OFF " +configopts += "-DModule_vtkVTKm:BOOL=ON " +# configopts += "-DModule_vtkViewsGeovis:BOOL=OFF " +# configopts += "-DModule_vtkViewsQt:BOOL=OFF " +# configopts += "-DModule_vtkWebCore:BOOL=OFF " +# configopts += "-DModule_vtkWebGLExporter:BOOL=OFF " +# configopts += "-DModule_vtkWebPython:BOOL=OFF " +# configopts += "-DModule_vtkWrappingJava:BOOL=OFF " +# configopts += "-DModule_vtkWrappingPythonCore:BOOL=OFF " +# configopts += "-DModule_vtkWrappingTools:BOOL=OFF " +# configopts += "-DModule_vtkdiy2:BOOL=OFF " +# configopts += "-DModule_vtkkissfft:BOOL=OFF " +configopts += "-DModule_vtkmpi4py:BOOL=ON " +# configopts += "-DModule_vtkpegtl:BOOL=OFF " +# configopts += "-DModule_vtkxdmf2:BOOL=OFF " +# configopts += "-DModule_vtkxdmf3:BOOL=OFF " +# configopts += "-DModule_vtkzfp:BOOL=OFF " + +preinstallopts = "export PYTHONPATH=%(installdir)s/lib/python%(pyshortver)s/site-packages:$PYTHONPATH && " + +# Install a egg-info file so VTK is more python friendly, required for mayavi +local_egg_info_src = '%(builddir)s/VTK-%(version)s/vtk-version.egg-info' +local_egg_info_dest = '%(installdir)s/lib/python%(pyshortver)s/site-packages/vtk-%(version)s.egg-info' +postinstallcmds = [ + 'sed "s/#VTK_VERSION#/%%(version)s/" %s > %s' % (local_egg_info_src, local_egg_info_dest), +] + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +local_vtk_exec = ['vtk%s-%%(version_major_minor)s' % x + for x in ['WrapJava', 'ParseJava', 'WrapPythonInit', 'WrapPython', 'WrapHierarchy']] +local_vtk_exec += ['vtkpython'] +local_vtk_libs = ['CommonCore', 'IONetCDF', 'ParallelCore', 'RenderingOpenGL2'] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in local_vtk_exec] + ['include/vtk-%(version_major_minor)s/vtkMPI.h'] + + ['lib/libvtk%s-%%(version_major_minor)s.%s' % (l, SHLIB_EXT) for l in local_vtk_libs], + 'dirs': ['lib/python%(pyshortver)s/site-packages/', 'include/vtk-%(version_major_minor)s'], +} + +sanity_check_commands = [ + "python -c 'import %(namelower)s'", + "python -c 'import pkg_resources; pkg_resources.get_distribution(\"vtk\")'", + # make sure that VTK Python libraries link to libpython (controlled via DVTK_PYTHON_OPTIONAL_LINK=OFF), + # see https://gitlab.kitware.com/vtk/vtk/-/issues/17881 + "ldd $EBROOTVTK/lib/libvtkPythonContext2D-%%(version_major_minor)s.%s | grep /libpython" % SHLIB_EXT, +] + +moduleclass = 'vis' diff --git a/Golden_Repo/v/VTK/VTK-9.2.5-gpsmkl-2022a.eb b/Golden_Repo/v/VTK/VTK-9.2.5-gpsmkl-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..801c5d4ffe646e49e9acc55eb4533769ec624cf0 --- /dev/null +++ b/Golden_Repo/v/VTK/VTK-9.2.5-gpsmkl-2022a.eb @@ -0,0 +1,188 @@ +easyblock = 'CMakeMake' + +name = 'VTK' +version = '9.2.5' + +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': 'gpsmkl', 'version': '2022a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = ['https://www.vtk.org/files/release/%(version_major_minor)s'] +sources = [ + SOURCE_TAR_GZ, + '%(name)sData-%(version)s.tar.gz', +] +patches = [('vtk-version.egg-info', '.')] +checksums = [ + '128d601baa980e98ee034207974b33fb38d2c98ab9cf4a5756efdb09ed6c0949', # VTK-9.2.5.tar.gz + '8a812f96346b3a38ff0fc3b1a1a372f3727a71ebf450c02d659a75dbe1113515', # VTKData-9.2.5.tar.gz + '787b82415ae7a4a1f815b4db0e25f7abc809a05fc85d7d219627f3a7e5d3867b', # vtk-version.egg-info +] + +builddependencies = [ + ('CMake', '3.23.1'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('HDF5', '1.12.2',), + ('SciPy-Stack', '2022a', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('mpi4py', '3.1.4'), + ('libxc', '5.2.3'), + ('netCDF', '4.9.0',), + ('X11', '20220504'), + ('OpenGL', '2022a'), +] + +separate_build_dir = True + +configopts = "-DCMAKE_INSTALL_LIBDIR=lib " + +configopts += "-DVTK_USE_SYSTEM_MPI4PY=ON " +configopts += "-DVTK_USE_SYSTEM_LZMA=ON " +configopts += "-DVTK_USE_SYSTEM_HDF5=ON " +configopts += "-DVTK_USE_SYSTEM_NETCDF=ON " + +configopts += "-DBUILD_SHARED_LIBS=ON " +configopts += "-DBUILD_TESTING=OFF " + +configopts += "-DVTK_USE_MPI=ON " +configopts += "-DVTK_SMP_IMPLEMENTATION_TYPE=OPENMP " +configopts += "-DVTK_Group_MPI:BOOL=ON " +configopts += "-DVTK_Group_Web:BOOL=ON " + +configopts += '-DOpenGL_GL_PREFERENCE=GLVND ' # "GLVND" or "LEGACY" +configopts += "-DOPENGL_EGL_INCLUDE_DIR=$EBROOTOPENGL/include " +configopts += "-DOPENGL_GLX_INCLUDE_DIR=$EBROOTOPENGL/include " +configopts += "-DOPENGL_INCLUDE_DIR=$EBROOTOPENGL/include " +configopts += "-DOPENGL_egl_LIBRARY=$EBROOTOPENGL/lib/libEGL.so.1 " +configopts += "-DOPENGL_glx_LIBRARY=$EBROOTOPENGL/lib/libGLX.so.0 " +configopts += "-DOPENGL_opengl_LIBRARY=$EBROOTOPENGL/lib/libOpenGL.so.0 " +configopts += "-DOPENGL_glu_LIBRARY=$EBROOTOPENGL/lib/libGLU.so " + +configopts += "-DVTK_WRAP_PYTHON=ON " +configopts += "-DVTK_PYTHON_OPTIONAL_LINK=OFF " +configopts += "-DPYTHON_EXECUTABLE:PATH=$EBROOTPYTHON/bin/python%(pyshortver)s " +configopts += "-DPYTHON_INCLUDE_DIR:PATH=$EBROOTPYTHON/include/python%(pyshortver)s " +configopts += "-DPYTHON_LIBRARY:PATH=$EBROOTPYTHON/lib/libpython%%(pyshortver)s.%s " % SHLIB_EXT + +configopts += "-DHDF5_INCLUDE_DIRS=$EBROOTHDF5/include " + +configopts += "-DModule_vtkAcceleratorsVTKm:BOOL=ON " +# configopts += "-DModule_vtkDomainsMicroscopy:BOOL=OFF " +# configopts += "-DModule_vtkDomainsParallelChemistry:BOOL=OFF " +# configopts += "-DModule_vtkFiltersOpenTurns:BOOL=OFF " +# configopts += "-DModule_vtkFiltersParallelDIY2:BOOL=OFF " +# configopts += "-DModule_vtkFiltersParallelFlowPaths:BOOL=OFF " +configopts += "-DModule_vtkFiltersParallelGeometry:BOOL=ON " +configopts += "-DModule_vtkFiltersParallelMPI:BOOL=ON " +configopts += "-DModule_vtkFiltersParallelStatistics:BOOL=ON " +# configopts += "-DModule_vtkFiltersParallelVerdict:BOOL=OFF " +# configopts += "-DModule_vtkFiltersReebGraph:BOOL=OFF " +# configopts += "-DModule_vtkGUISupportQt:BOOL=OFF " +# configopts += "-DModule_vtkGUISupportQtOpenGL:BOOL=OFF " +# configopts += "-DModule_vtkGUISupportQtSQL:BOOL=OFF " +# configopts += "-DModule_vtkGUISupportQtWebkit:BOOL=OFF " +# configopts += "-DModule_vtkGeovisGDAL:BOOL=OFF " +# configopts += "-DModule_vtkIOADIOS:BOOL=OFF " +# configopts += "-DModule_vtkIOFFMPEG:BOOL=OFF " +# configopts += "-DModule_vtkIOGDAL:BOOL=OFF " +# configopts += "-DModule_vtkIOGeoJSON:BOOL=OFF " +# configopts += "-DModule_vtkIOLAS:BOOL=OFF " +# configopts += "-DModule_vtkIOMPIImage:BOOL=ON " +# configopts += "-DModule_vtkIOMPIParallel:BOOL=ON " +# configopts += "-DModule_vtkIOMotionFX:BOOL=OFF " +# configopts += "-DModule_vtkIOMySQL:BOOL=OFF " +# configopts += "-DModule_vtkIOODBC:BOOL=OFF " +# configopts += "-DModule_vtkIOPDAL:BOOL=OFF " +# configopts += "-DModule_vtkIOParallelExodus:BOOL=OFF " +# configopts += "-DModule_vtkIOParallelLSDyna:BOOL=OFF " +# configopts += "-DModule_vtkIOParallelNetCDF:BOOL=OFF " +# configopts += "-DModule_vtkIOParallelXdmf3:BOOL=OFF " +# configopts += "-DModule_vtkIOPostgreSQL:BOOL=OFF " +# configopts += "-DModule_vtkIOTRUCHAS:BOOL=OFF " +# configopts += "-DModule_vtkIOVPIC:BOOL=OFF " +# configopts += "-DModule_vtkIOXdmf2:BOOL=OFF " +# configopts += "-DModule_vtkIOXdmf3:BOOL=OFF " +# configopts += "-DModule_vtkImagingOpenGL2:BOOL=OFF " +# configopts += "-DModule_vtkInfovisBoost:BOOL=OFF " +# configopts += "-DModule_vtkInfovisBoostGraphAlg:BOOL=OFF +configopts += "-DModule_vtkParallelMPI:BOOL=ON " +configopts += "-DModule_vtkPython:BOOL=ON " +# configopts += "-DModule_vtkPythonInterpreter:BOOL=OFF " +# configopts += "-DModule_vtkRenderingExternal:BOOL=OFF " +# configopts += "-DModule_vtkRenderingFreeTypeFontConfig:BOOL=OFF " +# configopts += "-DModule_vtkRenderingLICOpenGL2:BOOL=OFF " +# configopts += "-DModule_vtkRenderingMatplotlib:BOOL=OFF " +# configopts += "-DModule_vtkRenderingOSPRay:BOOL=OFF " +# configopts += "-DModule_vtkRenderingOpenVR:BOOL=OFF " +# configopts += "-DModule_vtkRenderingOptiX:BOOL=OFF " +configopts += "-DModule_vtkRenderingParallel:BOOL=ON " +configopts += "-DModule_vtkRenderingParallelLIC:BOOL=ON " +# configopts += "-DModule_vtkRenderingQt:BOOL=OFF " +# configopts += "-DModule_vtkRenderingSceneGraph:BOOL=OFF " +# configopts += "-DModule_vtkRenderingTk:BOOL=OFF " +# configopts += "-DModule_vtkRenderingVolumeAMR:BOOL=OFF " +# configopts += "-DModule_vtkTclTk:BOOL=OFF " +# configopts += "-DModule_vtkTestingCore:BOOL=OFF " +# configopts += "-DModule_vtkTestingGenericBridge:BOOL=OFF " +# configopts += "-DModule_vtkTestingIOSQL:BOOL=OFF " +# configopts += "-DModule_vtkTestingRendering:BOOL=OFF " +# configopts += "-DModule_vtkUtilitiesBenchmarks:BOOL=OFF " +# configopts += "-DModule_vtkUtilitiesEncodeString:BOOL=OFF " +# configopts += "-DModule_vtkVPIC:BOOL=OFF " +configopts += "-DModule_vtkVTKm:BOOL=ON " +# configopts += "-DModule_vtkViewsGeovis:BOOL=OFF " +# configopts += "-DModule_vtkViewsQt:BOOL=OFF " +# configopts += "-DModule_vtkWebCore:BOOL=OFF " +# configopts += "-DModule_vtkWebGLExporter:BOOL=OFF " +# configopts += "-DModule_vtkWebPython:BOOL=OFF " +# configopts += "-DModule_vtkWrappingJava:BOOL=OFF " +# configopts += "-DModule_vtkWrappingPythonCore:BOOL=OFF " +# configopts += "-DModule_vtkWrappingTools:BOOL=OFF " +# configopts += "-DModule_vtkdiy2:BOOL=OFF " +# configopts += "-DModule_vtkkissfft:BOOL=OFF " +configopts += "-DModule_vtkmpi4py:BOOL=ON " +# configopts += "-DModule_vtkpegtl:BOOL=OFF " +# configopts += "-DModule_vtkxdmf2:BOOL=OFF " +# configopts += "-DModule_vtkxdmf3:BOOL=OFF " +# configopts += "-DModule_vtkzfp:BOOL=OFF " + +preinstallopts = "export PYTHONPATH=%(installdir)s/lib/python%(pyshortver)s/site-packages:$PYTHONPATH && " + +# Install a egg-info file so VTK is more python friendly, required for mayavi +local_egg_info_src = '%(builddir)s/VTK-%(version)s/vtk-version.egg-info' +local_egg_info_dest = '%(installdir)s/lib/python%(pyshortver)s/site-packages/vtk-%(version)s.egg-info' +postinstallcmds = [ + 'sed "s/#VTK_VERSION#/%%(version)s/" %s > %s' % (local_egg_info_src, local_egg_info_dest), +] + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +local_vtk_exec = ['vtk%s-%%(version_major_minor)s' % x + for x in ['WrapJava', 'ParseJava', 'WrapPythonInit', 'WrapPython', 'WrapHierarchy']] +local_vtk_exec += ['vtkpython'] +local_vtk_libs = ['CommonCore', 'IONetCDF', 'ParallelCore', 'RenderingOpenGL2'] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in local_vtk_exec] + ['include/vtk-%(version_major_minor)s/vtkMPI.h'] + + ['lib/libvtk%s-%%(version_major_minor)s.%s' % (l, SHLIB_EXT) for l in local_vtk_libs], + 'dirs': ['lib/python%(pyshortver)s/site-packages/', 'include/vtk-%(version_major_minor)s'], +} + +sanity_check_commands = [ + "python -c 'import %(namelower)s'", + "python -c 'import pkg_resources; pkg_resources.get_distribution(\"vtk\")'", + # make sure that VTK Python libraries link to libpython (controlled via DVTK_PYTHON_OPTIONAL_LINK=OFF), + # see https://gitlab.kitware.com/vtk/vtk/-/issues/17881 + "ldd $EBROOTVTK/lib/libvtkPythonContext2D-%%(version_major_minor)s.%s | grep /libpython" % SHLIB_EXT, +] + +moduleclass = 'vis' diff --git a/Golden_Repo/v/VTK/vtk-version.egg-info b/Golden_Repo/v/VTK/vtk-version.egg-info new file mode 100644 index 0000000000000000000000000000000000000000..9ddd689eaec6928e5f537b1f1378ba67e77a3809 --- /dev/null +++ b/Golden_Repo/v/VTK/vtk-version.egg-info @@ -0,0 +1,5 @@ +Metadata-Version: 2.1 +Name: vtk +Version: #VTK_VERSION# +Summary: VTK is an open-source toolkit for 3D computer graphics, image processing, and visualization +Platform: UNKNOWN diff --git a/Golden_Repo/v/VTKData/VTKData-9.2.5-GCCcore-11.3.0.eb b/Golden_Repo/v/VTKData/VTKData-9.2.5-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..87a92de93ed7b152c54a91771c24e835caf1bbc2 --- /dev/null +++ b/Golden_Repo/v/VTKData/VTKData-9.2.5-GCCcore-11.3.0.eb @@ -0,0 +1,30 @@ +easyblock = 'Tarball' + +name = 'VTKData' +version = '9.2.5' + +homepage = 'https://vtk.org' +description = "Testdata for VTK" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = [('https://www.vtk.org/files/release/%(version_major_minor)s/')] +sources = [ + ('VTKData-%(version)s.tar.gz'), + ('VTKDataFiles-%(version)s.tar.gz'), + ('VTKLargeData-%(version)s.tar.gz'), + ('VTKLargeDataFiles-%(version)s.tar.gz'), +] +checksums = [ + ('sha256', '8a812f96346b3a38ff0fc3b1a1a372f3727a71ebf450c02d659a75dbe1113515'), + ('sha256', '3dd926bb5c8f7ba84d1eb0cf8ff97d26ed406bb2a4ccf7c51a51e739407484d0'), + ('sha256', '7b7f37ab6582d7a0454f717e3466437dd5ee87bb0eec3b27309c604f5fec7c18'), + ('sha256', 'c851fe78c1b4c86a60a940279f5ba194e7f3c335d834632d99877144dc1b2b31'), +] + +sanity_check_paths = { + 'files': ['.ExternalData/README.rst'], + 'dirs': ['.ExternalData', 'Common', 'Examples', 'Filters', 'IO', 'Parallel', 'Rendering', 'Testing'], +} + +moduleclass = 'vis' diff --git a/Golden_Repo/v/VirtualGL/VirtualGL-3.1beta1-GCCcore-11.3.0.eb b/Golden_Repo/v/VirtualGL/VirtualGL-3.1beta1-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..1829196e5ea33b9af1e7d029b59c96f572b3a79d --- /dev/null +++ b/Golden_Repo/v/VirtualGL/VirtualGL-3.1beta1-GCCcore-11.3.0.eb @@ -0,0 +1,50 @@ +easyblock = 'CMakeMake' + +name = 'VirtualGL' +version = '3.1beta1' + +homepage = 'https://virtualgl.org/' +description = """VirtualGL is an open source toolkit that gives any Linux or +Unix remote display software the ability to run OpenGL applications with full +hardware acceleration.""" + + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/VirtualGL/virtualgl/archive/'] +sources = ['%(version)s.tar.gz'] +patches = [ + 'virtualgl_cmake_lib_path.patch', +] +checksums = [ + '67bb5d88e8a016ed92b2cb3708c49ba5d04cc086f39c85b6fa8f51403cc9d22e', + # virtualgl_cmake_lib_path.patch + 'aa185d038f5e47957bd8a163107d352a1675a224b5a41f167e5b75ae42c87f1d', +] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1') +] + +dependencies = [ + ('libjpeg-turbo', '2.1.3'), + ('OpenGL', '2022a'), +] + +separate_build_dir = True +configopts = '-DVGL_FAKEOPENCL=OFF' + +local_binaries = [ + 'cpustat', 'glreadtest', 'glxinfo', 'glxspheres64', 'nettest', 'tcbench', + 'vglclient', 'vglconfig', 'vglconnect', 'vglgenkey', 'vgllogin', 'vglrun', + 'vglserver_config' +] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in local_binaries], + 'dirs': ['lib64', 'share', 'include'], +} + +moduleclass = 'vis' diff --git a/Golden_Repo/v/VirtualGL/virtualgl_cmake_lib_path.patch b/Golden_Repo/v/VirtualGL/virtualgl_cmake_lib_path.patch new file mode 100644 index 0000000000000000000000000000000000000000..f58d0cbe2a5f5836f79a646c40f4e703c61b46d3 --- /dev/null +++ b/Golden_Repo/v/VirtualGL/virtualgl_cmake_lib_path.patch @@ -0,0 +1,13 @@ +diff -ruN virtualgl-2.5.2/CMakeLists.txt virtualgl-2.5.2.old/CMakeLists.txt +--- virtualgl-2.5.2/CMakeLists.txt 2017-03-03 00:13:45.000000000 +0100 ++++ virtualgl-2.5.2.old/CMakeLists.txt 2017-03-20 16:14:04.908614846 +0100 +@@ -261,9 +261,6 @@ + + else() + +-if(CMAKE_SYSTEM_NAME STREQUAL "Linux") +- set(CMAKE_LIBRARY_PATH /usr/lib/${CPU_TYPE}-linux-gnu;/usr/lib${BITS};/usr/lib) +-endif() + include(FindX11) + include(FindOpenGL) + diff --git a/Golden_Repo/x/XServer/0002-Constant-DPI.patch b/Golden_Repo/x/XServer/0002-Constant-DPI.patch new file mode 100644 index 0000000000000000000000000000000000000000..f91e53d1e4934d615e16b7d975d2a6bb8ddc9238 --- /dev/null +++ b/Golden_Repo/x/XServer/0002-Constant-DPI.patch @@ -0,0 +1,96 @@ +--- a/src/dummy.h 2016-12-17 23:02:53.396287041 +0100 ++++ b/src/dummy.h 2016-12-17 23:03:30.319616550 +0100 +@@ -51,6 +51,7 @@ + /* options */ + OptionInfoPtr Options; + Bool swCursor; ++ Bool constantDPI; + /* proc pointer */ + CloseScreenProcPtr CloseScreen; + xf86CursorInfoPtr CursorInfo; +--- a/src/dummy_driver.c 2016-12-14 21:54:20.000000000 +0100 ++++ b/src/dummy_driver.c 2016-12-17 23:04:59.916416126 +0100 +@@ -17,6 +17,12 @@ + /* All drivers using the mi colormap manipulation need this */ + #include "micmap.h" + ++#ifdef RANDR ++#include "randrstr.h" ++#endif ++ ++#include "windowstr.h" ++ + /* identifying atom needed by magnifiers */ + #include <X11/Xatom.h> + #include "property.h" +@@ -115,11 +121,15 @@ + }; + + typedef enum { +- OPTION_SW_CURSOR ++ OPTION_SW_CURSOR, ++ OPTION_CONSTANT_DPI + } DUMMYOpts; + + static const OptionInfoRec DUMMYOptions[] = { + { OPTION_SW_CURSOR, "SWcursor", OPTV_BOOLEAN, {0}, FALSE }, ++#ifdef RANDR ++ { OPTION_CONSTANT_DPI, "ConstantDPI", OPTV_BOOLEAN, {0}, FALSE }, ++#endif + { -1, NULL, OPTV_NONE, {0}, FALSE } + }; + +@@ -359,6 +369,7 @@ + xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, dPtr->Options); + + xf86GetOptValBool(dPtr->Options, OPTION_SW_CURSOR,&dPtr->swCursor); ++ xf86GetOptValBool(dPtr->Options, OPTION_CONSTANT_DPI, &dPtr->constantDPI); + + if (device->videoRam != 0) { + pScrn->videoRam = device->videoRam; +@@ -639,10 +650,45 @@ + return TRUE; + } + ++const char *XDPY_PROPERTY = "dummy-constant-xdpi"; ++const char *YDPY_PROPERTY = "dummy-constant-ydpi"; ++static int get_dpi_value(WindowPtr root, const char *property_name, int default_dpi) ++{ ++ PropertyPtr prop; ++ Atom type_atom = MakeAtom("CARDINAL", 8, TRUE); ++ Atom prop_atom = MakeAtom(property_name, strlen(property_name), FALSE); ++ ++ for (prop = wUserProps(root); prop; prop = prop->next) { ++ if (prop->propertyName == prop_atom && prop->type == type_atom && prop->data) { ++ int v = (int) (*((CARD32 *) prop->data)); ++ if ((v>0) && (v<4096)) { ++ xf86DrvMsg(0, X_INFO, "get_constant_dpi_value() found property \"%s\" with value=%i\n", property_name, (int) v); ++ return (int) v; ++ } ++ break; ++ } ++ } ++ return default_dpi; ++} ++ + /* Mandatory */ + Bool + DUMMYSwitchMode(SWITCH_MODE_ARGS_DECL) + { ++ SCRN_INFO_PTR(arg); ++#ifdef RANDR ++ DUMMYPtr dPtr = DUMMYPTR(pScrn); ++ if (dPtr->constantDPI) { ++ int xDpi = get_dpi_value(pScrn->pScreen->root, XDPY_PROPERTY, pScrn->xDpi); ++ int yDpi = get_dpi_value(pScrn->pScreen->root, YDPY_PROPERTY, pScrn->yDpi); ++ //25.4 mm per inch: (254/10) ++ pScrn->pScreen->mmWidth = mode->HDisplay * 254 / xDpi / 10; ++ pScrn->pScreen->mmHeight = mode->VDisplay * 254 / yDpi / 10; ++ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "mm(dpi %ix%i)=%ix%i\n", xDpi, yDpi, pScrn->pScreen->mmWidth, pScrn->pScreen->mmHeight); ++ RRScreenSizeNotify(pScrn->pScreen); ++ RRTellChanged(pScrn->pScreen); ++ } ++#endif + return TRUE; + } + diff --git a/Golden_Repo/x/XServer/0003-fix-pointer-limits.patch b/Golden_Repo/x/XServer/0003-fix-pointer-limits.patch new file mode 100644 index 0000000000000000000000000000000000000000..3dbb6fd179ffde507036c62700c004914acc5cfb --- /dev/null +++ b/Golden_Repo/x/XServer/0003-fix-pointer-limits.patch @@ -0,0 +1,39 @@ +--- xf86-video-dummy-0.3.6/src/dummy_driver.c 2014-11-05 19:24:02.668656601 +0700 ++++ xf86-video-dummy-0.3.6.new/src/dummy_driver.c 2014-11-05 19:37:53.076061853 +0700 +@@ -55,6 +55,9 @@ + #include <X11/extensions/xf86dgaproto.h> + #endif + ++/* Needed for fixing pointer limits on resize */ ++#include "inputstr.h" ++ + /* Mandatory functions */ + static const OptionInfoRec * DUMMYAvailableOptions(int chipid, int busid); + static void DUMMYIdentify(int flags); +@@ -713,6 +716,26 @@ + RRTellChanged(pScrn->pScreen); + } + #endif ++ //ensure the screen dimensions are also updated: ++ pScrn->pScreen->width = mode->HDisplay; ++ pScrn->pScreen->height = mode->VDisplay; ++ pScrn->virtualX = mode->HDisplay; ++ pScrn->virtualY = mode->VDisplay; ++ pScrn->frameX1 = mode->HDisplay; ++ pScrn->frameY1 = mode->VDisplay; ++ ++ //ensure the pointer uses the new limits too: ++ DeviceIntPtr pDev; ++ SpritePtr pSprite; ++ for (pDev = inputInfo.devices; pDev; pDev = pDev->next) { ++ if (pDev->spriteInfo!=NULL && pDev->spriteInfo->sprite!=NULL) { ++ pSprite = pDev->spriteInfo->sprite; ++ pSprite->hotLimits.x2 = mode->HDisplay; ++ pSprite->hotLimits.y2 = mode->VDisplay; ++ pSprite->physLimits.x2 = mode->HDisplay; ++ pSprite->physLimits.y2 = mode->VDisplay; ++ } ++ } + return TRUE; + } + diff --git a/Golden_Repo/x/XServer/XServer-21.1.6-GCCcore-11.3.0.eb b/Golden_Repo/x/XServer/XServer-21.1.6-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..52e47fdb3bf7a8ca3c704a8690f534ae3070d847 --- /dev/null +++ b/Golden_Repo/x/XServer/XServer-21.1.6-GCCcore-11.3.0.eb @@ -0,0 +1,280 @@ +easyblock = 'Bundle' + +name = 'XServer' +version = '21.1.6' + +homepage = 'https://www.x.org' + +description = """ +XServer: X Window System display server. + +This module provides a stripped-down installation with minimal driver support. +""" + + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = [ + 'https://www.x.org/archive/individual/xserver/', + 'https://www.x.org/archive/individual/driver/' +] + +# OS dependency should be preferred for security reasons +osdependencies = [ + ('openssl-devel', 'libssl-dev', 'libopenssl-devel'), +] + +builddependencies = [ + ('binutils', '2.38'), + ('pkgconf', '1.8.0'), + ('Bison', '3.8.2'), + ('Meson', '0.62.1'), + ('Ninja', '1.10.2'), + ('flex', '2.6.4'), + ('Bison', '3.8.2'), +] + +dependencies = [ + ('libdrm', '2.4.110'), + ('OpenGL', '2022a'), + ('pixman', '0.40.0'), + ('X11', '20220504'), + ('freetype', '2.12.1'), + ('fontconfig', '2.14.0'), + ('ncurses', '6.3'), + ('libepoxy', '1.5.10'), + ('eudev', '3.2.11'), + ('libtirpc', '1.3.2'), +] + +local_font_preconfigopts = "export PKG_CONFIG_PATH=%(installdir)s/lib/pkgconfig:$PKG_CONFIG_PATH && " +local_font_preconfigopts += "export PATH=%(installdir)s/bin:$PATH && " +local_font_preconfigopts += "export FONTCONFIG_FILE=%(installdir)s/config/fontconfig/fonts.conf && " + +# https://github.com/freedesktop/xorg-xserver/blob/master/meson_options.txt +local_xorg_configopts = "-D default_font_path=%(installdir)s/share/fonts/X11 " +local_xorg_configopts += "-D xorg=true " +local_xorg_configopts += "-D xvfb=true " +local_xorg_configopts += "-D xnest=true " +local_xorg_configopts += "-D xephyr=true " +local_xorg_configopts += "-D udev=true " +local_xorg_configopts += "-D glamor=true " +local_xorg_configopts += "-D systemd_logind=false " +# local_xorg_configopts += "-D suid_wrapper=true " +local_xorg_configopts += "-D xkb_dir=%(installdir)s/share/X11/xkb " +# local_xorg_configopts += "-D xkb_output_dir=/var/lib/xkb " + +default_easyblock = 'ConfigureMake' + +default_component_specs = { + 'sources': [SOURCE_TAR_GZ], + 'start_dir': '%(name)s-%(version)s', +} + +components = [ + ('fontconfig-config', '1.0.0', { + 'easyblock': 'Binary', + 'source_urls': ['https://gitlab.version.fz-juelich.de/goebbert1/fontconfig-config/-/archive/v%(version)s/'], + 'sources': ['%(name)s-v%(version)s.tar.gz'], + 'start_dir': '%(name)s-v%(version)s', + 'extract_sources': True, + 'install_cmd': ( + 'cp -a %(builddir)s/%(name)s-v%(version)s/* %(installdir)s/ && ' + 'sed -i \'s@$EBROOTXSERVER@\'"%(installdir)s"\'@g\' %(installdir)s/share/X11/xorg.conf.d/99-fonts.conf' + ), + 'checksums': [('sha256', '68544c183d153f34105fa08573174650bfe643a6d750bd9da4accac399d375db')], + # to activate this fontconfig you need to export FONTCONFIG_FILE=${EBROOTXSERVER}/config/fontconfig/fonts.conf + }), + ('mkfontscale', '1.2.2', { + 'source_urls': ['https://www.x.org/archive/individual/app/'], + 'checksums': ['4a5af55e670713024639a7f7d10826d905d86faf574cd77e0f5aef2d00e70168'], + }), + ('mkfontdir', '1.0.7', { + 'source_urls': ['https://www.x.org/archive/individual/app/'], + 'checksums': ['bccc5fb7af1b614eabe4a22766758c87bfc36d66191d08c19d2fa97674b7b5b7'], + }), + ('bdftopcf', '1.1', { + 'source_urls': ['https://www.x.org/archive/individual/app/'], + 'checksums': ['699d1a62012035b1461c7f8e3f05a51c8bd6f28f348983249fb89bbff7309b47'], + }), + ('font-util', '1.3.3', { + 'source_urls': ['https://www.x.org/pub/individual/font/'], + 'sources': ['%(name)s-%(version)s.tar.gz'], + 'checksums': [('sha256', '2094dd4a1ca63a61deb101d2dc618682d6e287cdbe09679502223ac445d277dc')], + }), + ('encodings', '1.0.6', { + 'source_urls': ['https://www.x.org/pub/individual/font/'], + 'sources': ['%(name)s-%(version)s.tar.gz'], + 'checksums': [('sha256', 'c89c0636cda8f34eb28304263fc9a5441635ac3cb9da23efefe8f584174cba29')], + }), + ('font-alias', '1.0.4', { + 'source_urls': ['https://www.x.org/pub/individual/font/'], + 'sources': ['%(name)s-%(version)s.tar.gz'], + 'checksums': [('sha256', '49525fa6f2c3f3b54f461b2e0649b0ac61af50c36bf40069355a25ced8ce2028')], + }), + ('dejavu', '2.37', { + 'easyblock': 'Binary', + 'source_urls': [SOURCEFORGE_SOURCE], + 'sources': ['%(name)s-fonts-ttf-%(version)s.tar.bz2'], + 'extract_sources': True, + 'start_dir': 'dejavu-fonts-ttf-2.37', + 'install_cmd': ('install -v -d -m755 %(installdir)s/share/fonts/dejavu && ' + 'install -v -m644 ttf/*.ttf %(installdir)s/share/fonts/dejavu'), + 'checksums': [('sha256', 'fa9ca4d13871dd122f61258a80d01751d603b4d3ee14095d65453b4e846e17d7')], + 'preconfigopts': local_font_preconfigopts, + }), + ('font-adobe-75dpi', '1.0.3', { + 'source_urls': ['https://www.x.org/pub/individual/font/'], + 'sources': ['%(name)s-%(version)s.tar.gz'], + 'checksums': [('sha256', '61eb1fcfec89f7435cb92cd68712fbe4ba412ca562b1f5feec1f6daa1b8544f6')], + 'preconfigopts': local_font_preconfigopts, + }), + ('font-adobe-100dpi', '1.0.3', { + 'source_urls': ['https://www.x.org/pub/individual/font/'], + 'sources': ['%(name)s-%(version)s.tar.gz'], + 'checksums': [('sha256', '97d9c1e706938838e4134d74f0836ae9d9ca6705ecb405c9a0ac8fdcbd9c2159')], + 'preconfigopts': local_font_preconfigopts, + }), + ('font-cursor-misc', '1.0.3', { + 'source_urls': ['https://www.x.org/pub/individual/font/'], + 'sources': ['%(name)s-%(version)s.tar.gz'], + 'checksums': [('sha256', 'a0b146139363dd0a704c7265ff9cd9150d4ae7c0d248091a9a42093e1618c427')], + 'preconfigopts': local_font_preconfigopts, + }), + ('font-adobe-utopia-type1', '1.0.4', { + 'source_urls': ['https://www.x.org/pub/individual/font/'], + 'sources': ['%(name)s-%(version)s.tar.gz'], + 'checksums': [('sha256', 'd9e86a8805b0fb78222409169d839a8531a1f5c7284ee117ff2a0af2e5016c3f')], + 'preconfigopts': local_font_preconfigopts, + }), + ('font-misc-misc', '1.1.2', { + 'source_urls': ['https://www.x.org/pub/individual/font/'], + 'sources': ['%(name)s-%(version)s.tar.gz'], + 'checksums': [('sha256', '46142c876e176036c61c0c24c0a689079704d5ca5b510d48c025861ee2dbf829')], + 'preconfigopts': local_font_preconfigopts, + }), + # Fails because it tries to create a directory outside of %(installdir)s + # => test -z "<PKG_CONFIG-Fontconfig>/etc/fonts/conf.avail" || + # /usr/bin/mkdir -p "<PKG_CONFIG-Fontconfig>/etc/fonts/conf.avail" + # ('font-bh-ttf', '1.0.3', { + # 'source_urls': ['https://www.x.org/pub/individual/font/'], + # 'sources': ['%(name)s-%(version)s.tar.gz'], + # 'checksums': [('sha256', 'c583b4b968ffae6ea30d5b74041afeac83126682c490a9624b770d60d0e63d59')], + # 'preconfigopts': local_font_preconfigopts, + # }), + ('font-bh-type1', '1.0.3', { + 'source_urls': ['https://www.x.org/pub/individual/font/'], + 'sources': ['%(name)s-%(version)s.tar.gz'], + 'checksums': [('sha256', 'd5602f1d749ccd31d3bc1bb6f0c5d77400de0e5e3ac5abebd2a867aa2a4081a4')], + 'preconfigopts': local_font_preconfigopts, + }), + ('font-ibm-type1', '1.0.3', { + 'source_urls': ['https://www.x.org/pub/individual/font/'], + 'sources': ['%(name)s-%(version)s.tar.gz'], + 'checksums': [('sha256', '4509703e9e581061309cf4823bffd4a93f10f48fe192a1d8be1f183fd6ab9711')], + 'preconfigopts': local_font_preconfigopts, + }), + ('font-misc-ethiopic', '1.0.4', { + 'source_urls': ['https://www.x.org/pub/individual/font/'], + 'sources': ['%(name)s-%(version)s.tar.gz'], + 'checksums': [('sha256', 'f7901250fb746815065cfe13a814d92260348fede28d61dcab0d05c5d8eafd54')], + 'preconfigopts': local_font_preconfigopts, + }), + ('font-xfree86-type1', '1.0.4', { + 'source_urls': ['https://www.x.org/pub/individual/font/'], + 'sources': ['%(name)s-%(version)s.tar.gz'], + 'checksums': [('sha256', '02b3839ae79ba6a7750525bb3b0c281305664b95bf63b4a0baa230a277b4f928')], + 'preconfigopts': local_font_preconfigopts, + }), + ('xkbcomp', '1.4.6', { + 'source_urls': ['https://www.x.org/archive//individual/app/'], + 'checksums': ['b216a2c8c0eab83f3dc4a3d5ee2bdf7827b30e49c8907035d0f222138eca0987'], + }), + ('xkeyboard-config', '2.38', { + 'easyblock': 'MesonNinja', + 'source_urls': ['https://www.x.org/archive//individual/data/xkeyboard-config/'], + 'sources': ['%(name)s-%(version)s.tar.xz'], + 'checksums': ['0690a91bab86b18868f3eee6d41e9ec4ce6894f655443d490a2184bfac56c872'], + # https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/blob/master/meson_options.txt + 'configopts': '-Dxorg-rules-symlinks=true', + }), + ('xauth', '1.1', { + 'source_urls': ['https://www.x.org/releases/individual/app/'], + 'checksums': ['e9fce796c8c5c9368594b9e8bbba237fb54b6615f5fd60e8d0a5b3c52a92c5ef'], + }), + ('libxcvt', '0.1.2', { + 'easyblock': 'MesonNinja', + 'source_urls': ['https://www.x.org/archive/individual/lib/'], + 'sources': [SOURCE_TAR_XZ], + 'checksums': ['0561690544796e25cfbd71806ba1b0d797ffe464e9796411123e79450f71db38'], + }), + ('xorg-server', version, { + 'easyblock': 'MesonNinja', + 'patches': [('xvfb-run', '.')], + 'checksums': [ + ('sha256', '6f9c73ccc50e2731adac17671c8e33687738c8cd556b49ecb9f410ce7217be11'), + ('sha256', 'fd6d13182b77871d4f65fccdaebb8a72387a726426066d3f8e6aa26b010ea0e8'), + ], + 'configopts': local_xorg_configopts, + }), + ('xf86-video-dummy', '0.4.0', { + 'preconfigopts': 'PKG_CONFIG_PATH=$PKG_CONFIG_PATH:%(installdir)s/lib/pkgconfig', + 'sources': ['%(name)s-%(version)s.tar.xz'], + 'checksums': [ + # xf86-video-dummy-0.4.0.tar.gz + ('sha256', 'e78ceae5c8c0588c7cb658f2afc3a9fac9ef665b52a75b01f8e9c5449a4e1e5a'), + # 0002-Constant-DPI.patch + ('sha256', '3add13392168d271822e694aba21327dc3219f61f2091a12ef7009d3f090c662'), + # 0003-fix-pointer-limits.patch + ('sha256', '8af95b0b0e7f4d7de3bd1654260c3677d76ef91b8d6a66cb57b9c3af1e024fa2'), + ], + 'patches': [ + '0002-Constant-DPI.patch', + '0003-fix-pointer-limits.patch', + ], + }), + ('xterm', '378', { + 'source_urls': ['http://invisible-mirror.net/archives/xterm/'], + 'sources': ['%(name)s-%(version)s.tgz'], + 'checksums': [ + # xterm-369.tgz + ('sha256', '649dfbfd5edd0ed9e47cf8e4d953b4b0d3c30bc280166dfc4ffd14973fec3e92'), + # xterm-cursesloc.patch + ('sha256', 'ff15331ba1a2c67f68e3da3595ffc457d7aea5392a75d8cdfe40e2126ece99a2'), + ], + 'patches': ['xterm-cursesloc.patch'], + 'configopts': " --with-app-defaults=%(installdir)s/app-defaults ", + }), +] + +# we need to set the permissions our self to ensure no-one messes in this directory +# FIXME: easybuild does not support this in 4.3.0 -> hence you have to do it manually +skipsteps = ['permissions'] +postinstallcmds = [ + 'chmod -R ugo-w %(installdir)s/config', + 'chmod -R ugo-w %(installdir)s/share', + 'install -m 0755 %(builddir)s/xorg-server-%(version)s/xvfb-run %(installdir)s/bin/', +] + +modextrapaths = { + 'XDG_CONFIG_DIRS': 'config', + 'XUSERFILESEARCHPATH': 'app-defaults/%N-%C', +} + +# FONTCONFIG_FILE is used to override the default configuration file +modextravars = { + 'FONTCONFIG_FILE': '%(installdir)s/config/fontconfig/fonts.conf'} + +sanity_check_paths = { + 'files': ['bin/Xorg', 'bin/Xvfb', 'bin/xvfb-run', + 'lib/xorg/modules/drivers/dummy_drv.la', 'lib/xorg/modules/drivers/dummy_drv.so', + 'bin/xterm'], + 'dirs': [], +} + +sanity_check_commands = [ + "xvfb-run --help", + "xvfb-run --error-file %(builddir)s/xvfb-run-test.err echo hello", +] + +moduleclass = 'vis' diff --git a/Golden_Repo/x/XServer/xterm-cursesloc.patch b/Golden_Repo/x/XServer/xterm-cursesloc.patch new file mode 100644 index 0000000000000000000000000000000000000000..033c2776b7838ae1907a69f31d75d7ce7d28175f --- /dev/null +++ b/Golden_Repo/x/XServer/xterm-cursesloc.patch @@ -0,0 +1,12 @@ +diff -Naur xterm-362.orig/xtermcap.h xterm-362/xtermcap.h +--- xterm-362.orig/xtermcap.h 2013-06-23 17:34:37.000000000 +0200 ++++ xterm-362/xtermcap.h 2021-02-16 14:00:48.976219215 +0100 +@@ -59,7 +59,7 @@ + #undef ERR /* workaround for glibc 2.1.3 */ + + #ifdef HAVE_NCURSES_CURSES_H +-#include <ncurses/curses.h> ++#include <curses.h> + #else + #include <curses.h> + #endif diff --git a/Golden_Repo/x/XServer/xvfb-run b/Golden_Repo/x/XServer/xvfb-run new file mode 100644 index 0000000000000000000000000000000000000000..237e0dfc5938430d50fe8d30fde1b6defa9c6e42 --- /dev/null +++ b/Golden_Repo/x/XServer/xvfb-run @@ -0,0 +1,194 @@ +#!/bin/sh + +# extracted from Debian package for xorg-server, +# via http://deb.debian.org/debian/pool/main/x/xorg-server/xorg-server_1.20.4-1.diff.gz + +# This script starts an instance of Xvfb, the "fake" X server, runs a command +# with that server available, and kills the X server when done. The return +# value of the command becomes the return value of this script. +# +# If anyone is using this to build a Debian package, make sure the package +# Build-Depends on xvfb and xauth. + +set -e + +PROGNAME=xvfb-run +SERVERNUM=99 +AUTHFILE= +ERRORFILE=/dev/null +XVFBARGS="-screen 0 1280x1024x24" +LISTENTCP="-nolisten tcp" +XAUTHPROTO=. + +# Query the terminal to establish a default number of columns to use for +# displaying messages to the user. This is used only as a fallback in the event +# the COLUMNS variable is not set. ($COLUMNS can react to SIGWINCH while the +# script is running, and this cannot, only being calculated once.) +DEFCOLUMNS=$(stty size 2>/dev/null | awk '{print $2}') || true +case "$DEFCOLUMNS" in + *[!0-9]*|'') DEFCOLUMNS=80 ;; +esac + +# Display a message, wrapping lines at the terminal width. +message () { + echo "$PROGNAME: $*" | fmt -t -w ${COLUMNS:-$DEFCOLUMNS} +} + +# Display an error message. +error () { + message "error: $*" >&2 +} + +# Display a usage message. +usage () { + if [ -n "$*" ]; then + message "usage error: $*" + fi + cat <<EOF +Usage: $PROGNAME [OPTION ...] COMMAND +Run COMMAND (usually an X client) in a virtual X server environment. +Options: +-a --auto-servernum try to get a free server number, starting at + --server-num +-e FILE --error-file=FILE file used to store xauth errors and Xvfb + output (default: $ERRORFILE) +-f FILE --auth-file=FILE file used to store auth cookie + (default: ./.Xauthority) +-h --help display this usage message and exit +-n NUM --server-num=NUM server number to use (default: $SERVERNUM) +-l --listen-tcp enable TCP port listening in the X server +-p PROTO --xauth-protocol=PROTO X authority protocol name to use + (default: xauth command's default) +-s ARGS --server-args=ARGS arguments (other than server number and + "-nolisten tcp") to pass to the Xvfb server + (default: "$XVFBARGS") +EOF +} + +# Find a free server number by looking at .X*-lock files in /tmp. +find_free_servernum() { + # Sadly, the "local" keyword is not POSIX. Leave the next line commented in + # the hope Debian Policy eventually changes to allow it in /bin/sh scripts + # anyway. + #local i + + i=$SERVERNUM + while [ -f /tmp/.X$i-lock ]; do + i=$(($i + 1)) + done + echo $i +} + +# Clean up files +clean_up() { + if [ -e "$AUTHFILE" ]; then + XAUTHORITY=$AUTHFILE xauth remove ":$SERVERNUM" >>"$ERRORFILE" 2>&1 + fi + if [ -n "$XVFB_RUN_TMPDIR" ]; then + if ! rm -r "$XVFB_RUN_TMPDIR"; then + error "problem while cleaning up temporary directory" + exit 5 + fi + fi + if [ -n "$XVFBPID" ]; then + kill "$XVFBPID" >>"$ERRORFILE" 2>&1 + fi +} + +# Parse the command line. +ARGS=$(getopt --options +ae:f:hn:lp:s:w: \ + --long auto-servernum,error-file:,auth-file:,help,server-num:,listen-tcp,xauth-protocol:,server-args:,wait: \ + --name "$PROGNAME" -- "$@") +GETOPT_STATUS=$? + +if [ $GETOPT_STATUS -ne 0 ]; then + error "internal error; getopt exited with status $GETOPT_STATUS" + exit 6 +fi + +eval set -- "$ARGS" + +while :; do + case "$1" in + -a|--auto-servernum) SERVERNUM=$(find_free_servernum); AUTONUM="yes" ;; + -e|--error-file) ERRORFILE="$2"; shift ;; + -f|--auth-file) AUTHFILE="$2"; shift ;; + -h|--help) SHOWHELP="yes" ;; + -n|--server-num) SERVERNUM="$2"; shift ;; + -l|--listen-tcp) LISTENTCP="" ;; + -p|--xauth-protocol) XAUTHPROTO="$2"; shift ;; + -s|--server-args) XVFBARGS="$2"; shift ;; + -w|--wait) shift ;; + --) shift; break ;; + *) error "internal error; getopt permitted \"$1\" unexpectedly" + exit 6 + ;; + esac + shift +done + +if [ "$SHOWHELP" ]; then + usage + exit 0 +fi + +if [ -z "$*" ]; then + usage "need a command to run" >&2 + exit 2 +fi + +if ! command -v xauth >/dev/null; then + error "xauth command not found" + exit 3 +fi + +# tidy up after ourselves +trap clean_up EXIT + +# If the user did not specify an X authorization file to use, set up a temporary +# directory to house one. +if [ -z "$AUTHFILE" ]; then + XVFB_RUN_TMPDIR="$(mktemp -d -t $PROGNAME.XXXXXX)" + AUTHFILE="$XVFB_RUN_TMPDIR/Xauthority" + # Create empty file to avoid xauth warning + touch "$AUTHFILE" +fi + +# Start Xvfb. +MCOOKIE=$(mcookie) +tries=10 +while [ $tries -gt 0 ]; do + tries=$(( $tries - 1 )) + XAUTHORITY=$AUTHFILE xauth source - << EOF >>"$ERRORFILE" 2>&1 +add :$SERVERNUM $XAUTHPROTO $MCOOKIE +EOF + # handle SIGUSR1 so Xvfb knows to send a signal when it's ready to accept + # connections + trap : USR1 + (trap '' USR1; exec Xvfb ":$SERVERNUM" $XVFBARGS $LISTENTCP -auth $AUTHFILE >>"$ERRORFILE" 2>&1) & + XVFBPID=$! + + wait || : + if kill -0 $XVFBPID 2>/dev/null; then + break + elif [ -n "$AUTONUM" ]; then + # The display is in use so try another one (if '-a' was specified). + SERVERNUM=$((SERVERNUM + 1)) + SERVERNUM=$(find_free_servernum) + continue + fi + error "Xvfb failed to start" >&2 + XVFBPID= + exit 1 +done + +# Start the command and save its exit status. +set +e +DISPLAY=:$SERVERNUM XAUTHORITY=$AUTHFILE "$@" +RETVAL=$? +set -e + +# Return the executed command's exit status. +exit $RETVAL + +# vim:set ai et sts=4 sw=4 tw=80: diff --git a/Golden_Repo/x/xpra/xpra-4.4.3-GCCcore-11.3.0.eb b/Golden_Repo/x/xpra/xpra-4.4.3-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..8dd309ac345e83215a4db2541474a5d8778b54a5 --- /dev/null +++ b/Golden_Repo/x/xpra/xpra-4.4.3-GCCcore-11.3.0.eb @@ -0,0 +1,187 @@ +easyblock = 'Bundle' + +name = 'xpra' +version = '4.4.3' + +homepage = "http://www.xpra.org" +description = """Xpra is an open-source multi-platform persistent remote display server and client +for forwarding applications and desktop screens. +""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +builddependencies = [ + ('binutils', '2.38'), + ('pkgconf', '1.8.0'), + ('Brotli', '1.0.9'), + ('uglifyjs', '3.17.4'), + ('CMake', '3.23.1'), + ('Meson', '0.62.1'), + ('scikit-build', '0.15.0'), # for patchelf +] + +dependencies = [ + ('Python', '3.10.4'), + ('X11', '20220504'), + ('OpenGL', '2022a'), + ('SciPy-Stack', '2022a', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('PyCairo', '1.23.0'), + ('PyGObject', '3.42.2'), + ('Pandoc', '2.19.2', '', SYSTEM), + ('GTK+', '3.24.34'), + ('rencode', '1.0.5'), + ('lz4', '1.9.3'), + ('yuicompressor', '2.4.8'), + ('x264', '20220620'), + ('x265', '3.5'), + ('libvpx', '1.12.0'), + ('FFmpeg', '4.4.2'), + ('GStreamer', '1.20.2'), + ('libwebp', '1.2.4'), + ('libpng', '1.6.37'), + ('libspng', '0.7.3'), + ('libjpeg-turbo', '2.1.3'), + ('zlib', '1.2.12'), + ('LibTIFF', '4.3.0'), + ('nvidia-Video_Codec_SDK', '11.1.5', '', SYSTEM), + ('freetype', '2.12.1'), + ('libyuv', '20210428'), + ('DBus', '1.14.0'), + ('XServer', '21.1.6'), + ('CUDA', '11.7', '', SYSTEM), +] + +prebuildopts = 'export CFLAGS="-Wno-error=unused-function" && ' + +# this is a bundle of Python packages +exts_defaultclass = 'PythonPackage' +exts_default_options = { + 'use_pip': True, + 'source_urls': [PYPI_SOURCE], + 'sanity_pip_check': True, + 'use_pip_for_deps': False, + 'download_dep_fail': True, +} + +exts_list = [ + ('pyinotify', '0.9.6', { + 'checksums': ['9c998a5d7606ca835065cdabc013ae6c66eb9ea76a00a1e3bc6e0cfe2b4f71f4'], + }), + ('pyproject-metadata', '0.7.1', { + 'checksums': ['0a94f18b108b9b21f3a26a3d541f056c34edcb17dc872a144a15618fed7aef67'], + }), + ('meson', '1.0.0', { + 'modulename': False, + 'checksums': ['aa50a4ba4557c25e7d48446abfde857957dcdf58385fffbe670ba0e8efacce05'], + }), + ('meson_python', '0.12.0', { + 'modulename': 'mesonpy', + 'checksums': ['8cb159a8093a2e73cfa897f8092ec93b74e3842f94dff7fde381c6fe0e0b064d'], + }), + ('patchelf', '0.17.2.0', { + 'modulename': False, + 'checksums': ['dedf987a83d7f6d6f5512269e57f5feeec36719bd59567173b6d9beabe019efe'], + }), + ('dbus-python', '1.3.2', { + 'modulename': 'dbus', + 'checksums': ['ad67819308618b5069537be237f8e68ca1c7fcc95ee4a121fe6845b1418248f8'], + }), + ('pyxdg', '0.28', { + 'modulename': 'xdg', + 'checksums': ['3267bb3074e934df202af2ee0868575484108581e6f3cb006af1da35395e88b4'], + }), + ('python-uinput', '0.11.2', { + 'modulename': 'uinput', + 'checksums': ['99392b676c77b5795b86b7d75274db33fe754fd1e06fb3d58b167c797dc47f0c'], + }), + ('ifaddr', '0.2.0', { + 'checksums': ['cc0cbfcaabf765d44595825fb96a99bb12c79716b73b44330ea38ee2b0c4aed4'], + }), + ('async-timeout', '4.0.2', { + 'checksums': ['2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15'], + }), + ('zeroconf', '0.47.1', { + 'checksums': ['65ab91068f8fafe00856b63756c72296b69682709681e96e8bb5d101345d5011'], + }), + (name, version, { + 'modulename': False, + 'buildopts': "--without-strict --with-nvenc --with-enc_x264 --with-enc_x265 --with-Xdummy", + 'installopts': "--with-tests --without-service", + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/Xpra-org/%(name)s/archive/'], + 'patches': ['xpra-4.4.3-use_Xorg_on_PATH_first.patch'], + 'use_pip': False, + 'checksums': [ + 'fc394c5b346791cc941c8917bbdd44bb26be76a021e497fa6f661e62cc4dd57a', + 'ff1e8984f367ebcc90b56d2c1b87012a7ce53fe4f68686cf042e5bbce16be198', + ], + }), + ('xpra-html5', '6.1', { + 'modulename': False, + 'skipsteps': [ + 'configure', + 'build', + 'install', + ], + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/Xpra-org/%(name)s/archive/'], + 'use_pip': False, + 'checksums': ['298f85bdd99f075c9d58dcfb904d117283c8034b5f5d24f494d50433ed998ec0'], + }), +] + +postinstallcmds = [ + ( + # installing xpra-html5 + 'pushd %(builddir)s/xprahtml5/xpra-html5-6.1 && ' + './setup.py install %(installdir)s /share/xpra/www /etc/xpra/html5-client && ' + 'popd' + ), + # set specific configurations + ( + # set xpra default configs + 'cp -a %(builddir)s/xpra/xpra-4.4.3/build/etc %(installdir)s && ' + # initialize script that can modify the environment of the server + 'touch %(installdir)s/etc/xpra/server.env && ' + "sed -i 's!^source =.*!source = %(installdir)s/etc/xpra/server.env!' " + " %(installdir)s/etc/xpra/conf.d/60_server.conf" + ), + # make Xpra randomly choose a GPU for acceleration if present + 'mv %(installdir)s/bin/xpra %(installdir)s/bin/xpra.orig', + 'head -1 %(installdir)s/bin/xpra.orig > %(installdir)s/bin/xpra', + ( + '{ cat >> %(installdir)s/bin/xpra; } << \'EOF\'\n' + 'from os import environ \n' + 'if not \'CUDA_VISIBLE_DEVICES\' in environ: \n' + ' try: \n' + ' from pycuda import driver \n' + ' driver.init() \n' + ' num_gpus = driver.Device.count() \n' + ' except: \n' + ' num_gpus = 0 \n' + '\n' + ' if num_gpus > 0: \n' + ' from random import randint \n' + ' active_gpuid=randint(0,num_gpus-1) \n' + ' environ[\'CUDA_VISIBLE_DEVICES\'] = str(active_gpuid) \n' + 'EOF' + ), + 'tail -n +2 %(installdir)s/bin/xpra.orig >> %(installdir)s/bin/xpra', + 'chmod +x %(installdir)s/bin/xpra', +] + +modextravars = { + 'XPRA_SYSTEM_CONF_DIRS': '%(installdir)s/etc/xpra', + # 'XPRA_XORG_BIN': '%(installdir)s/bin/xpra', # fails if defined at install time. Added patch instead. +} +modextrapaths = { + 'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_paths = { + 'files': ['bin/xpra'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +moduleclass = 'vis' diff --git a/Golden_Repo/x/xpra/xpra-4.4.3-use_Xorg_on_PATH_first.patch b/Golden_Repo/x/xpra/xpra-4.4.3-use_Xorg_on_PATH_first.patch new file mode 100644 index 0000000000000000000000000000000000000000..5b9bd50cbd49041765a9758ca2f9dafd0a4e00a8 --- /dev/null +++ b/Golden_Repo/x/xpra/xpra-4.4.3-use_Xorg_on_PATH_first.patch @@ -0,0 +1,29 @@ +diff -Naur xpra-4.4.3.orig/xpra/scripts/config.py xpra-4.4.3/xpra/scripts/config.py +--- xpra-4.4.3.orig/xpra/scripts/config.py 2022-11-27 15:21:57.000000000 +0100 ++++ xpra-4.4.3/xpra/scripts/config.py 2023-02-08 00:44:55.979689272 +0100 +@@ -69,6 +69,13 @@ + xorg = os.environ.get("XPRA_XORG_BIN") + if xorg: + return xorg ++ ++ #look for it in $PATH: ++ for x in os.environ.get("PATH").split(os.pathsep): # pragma: no cover ++ xorg = os.path.join(x, "Xorg") ++ if os.path.isfile(xorg): ++ return xorg ++ + # Detect Xorg Binary + if is_arm() and is_Debian() and os.path.exists("/usr/bin/Xorg"): + #Raspbian breaks if we use a different binary.. +@@ -82,11 +89,6 @@ + ): + if os.path.exists(p): + return p +- #look for it in $PATH: +- for x in os.environ.get("PATH").split(os.pathsep): # pragma: no cover +- xorg = os.path.join(x, "Xorg") +- if os.path.isfile(xorg): +- return xorg + return None + + diff --git a/Golden_Repo/y/yarn/yarn-1.22.19-GCCcore-11.3.0.eb b/Golden_Repo/y/yarn/yarn-1.22.19-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..224afbe40774e19613c11c52d398cdf7696b015d --- /dev/null +++ b/Golden_Repo/y/yarn/yarn-1.22.19-GCCcore-11.3.0.eb @@ -0,0 +1,35 @@ +easyblock = 'Binary' + +name = 'yarn' +version = '1.22.19' + +homepage = "https://yarnpkg.com" +description = "Yarn is a package manager that doubles down as project manager." + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['https://github.com/yarnpkg/yarn/releases/download/v%(version)s/'] +sources = [{ + 'filename': 'yarn-v%(version)s.tar.gz', + 'extract_cmd': "cp %s .", +}] +checksums = ['732620bac8b1690d507274f025f3c6cfdc3627a84d9642e38a07452cc00e0f2e'] + +dependencies = [ + ('nodejs', '16.15.1'), +] + +# Don't ever try to install unpacked source of nodejs globally! +# Always use 'npm install -g downloaded_file.tar.gz` or you will end up having broken links and installation will fail. +# -d (debug) and --timing can show errors while downloading dependencies +install_cmd = "npm install -d --timing --prefix %(installdir)s -g yarn-v%(version)s.tar.gz" + +sanity_check_paths = { + 'files': ['bin/yarn'], + 'dirs': ['lib/node_modules/yarn'], +} +sanity_check_commands = [ + 'yarn --help' +] + +moduleclass = 'tools' diff --git a/Golden_Repo/y/yuicompressor/yuicompressor-2.4.8-GCCcore-11.3.0.eb b/Golden_Repo/y/yuicompressor/yuicompressor-2.4.8-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..f4fc2a28aece72fd5d97e3b829fcd5a6180d5d88 --- /dev/null +++ b/Golden_Repo/y/yuicompressor/yuicompressor-2.4.8-GCCcore-11.3.0.eb @@ -0,0 +1,34 @@ +easyblock = 'PythonPackage' + +name = 'yuicompressor' +version = '2.4.8' + +homepage = 'https://github.com/sprat/yuicompressor' +description = """YUI Compressor is a JavaScript and CSS minifier written in Java.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['https://github.com/sprat/yuicompressor/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = ['0054abb77cc151147597aeaa5b47b6843925d3293e2e44d5b36e68ee54a1154f'] + +builddependencies = [ + ('binutils', '2.38'), + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('Java', '11', '', SYSTEM), +] + +use_pip = True +sanity_pip_check = True +download_dep_fail = True + +sanity_check_paths = { + 'files': ['bin/%(name)s'], + 'dirs': ['lib/python%(pyshortver)s/site-packages/%(name)s'], +} + +moduleclass = 'vis' diff --git a/Golden_Repo/z/zfp/zfp-0.5.5-GCCcore-11.3.0.eb b/Golden_Repo/z/zfp/zfp-0.5.5-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..39fbbbbce6fafdbb9a552a503c58f8ed157e535e --- /dev/null +++ b/Golden_Repo/z/zfp/zfp-0.5.5-GCCcore-11.3.0.eb @@ -0,0 +1,59 @@ +easyblock = 'CMakeMake' + +name = 'zfp' +version = '0.5.5' + +homepage = "https://github.com/LLNL/zfp" +description = """Optionally error-bounded lossy compressor for HPC data +with high throughput read and write random access to individual array elements.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +github_account = 'LLNL' +source_urls = [GITHUB_SOURCE] +sources = ['%(version)s.tar.gz'] +checksums = ['6a7f4934489087d9c117a4af327fd6495ea757924f4df467b9c537abf8bd86c4'] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1'), + ('pkgconf', '1.8.0'), +] + +separate_build_dir = True + +configopts = '-DBUILD_SHARED_LIBS:BOOL=ON ' +configopts += '-DBUILD_EXAMPLES:BOOL=OFF ' +configopts += '-DBUILD_TESTING:BOOL=OFF ' + +configopts += '-DZFP_WITH_OPENMP:BOOL=ON ' +configopts += '-DZFP_WITH_CUDA:BOOL=OFF ' + +configopts += '-DBUILD_CFP:BOOL=ON ' +configopts += '-DBUILD_ZFPY:BOOL=OFF ' +configopts += '-DBUILD_ZFORP:BOOL=ON ' + +configopts += '-DBUILD_UTILITIES:BOOL=ON ' +configopts += '-DCMAKE_C_STANDARD_LIBRARIES="-lm" ' + +# create pkgconfig file +postinstallcmds = [ + "mkdir -p %(installdir)s/lib/pkgconfig", + """echo -e "prefix=%(installdir)s +libdir=\${prefix}/lib64 +includedir=\${prefix}/include +Name: %(name)s +Description: %(name)s compression library +Version: %(version)s +Requires: +Libs: -L\${libdir} -lzfp -lcfp +Cflags: -I\${includedir}" > %(installdir)s/lib/pkgconfig/%(name)s.pc""", +] + +sanity_check_paths = { + 'files': ['lib64/libzfp.so', 'lib64/libcfp.so', 'include/zfp.h'], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.0-1-GCC-11.3.0.eb b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.0-1-GCC-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..d09949c276b2ed038b208ef39fdc78402cd78385 --- /dev/null +++ b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.0-1-GCC-11.3.0.eb @@ -0,0 +1,38 @@ +name = 'psmpi' +version = '5.8.0-1' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 3.0 implementation, +based on MPICH v3. It provides extra low level communication libraries and integration with +various batch systems for tighter process control. +""" + +toolchain = {'name': 'GCC', 'version': '11.3.0'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['https://gitlab.jsc.fz-juelich.de/ParTec/psmpi/uploads/762714c8eec01fe59239a52798a70e1c/'] +checksums = [ + # psmpi-5.8.0-1.tar.gz + 'bcebb42f68e062d4cf957c1ec12a8e2e50051265d38715854bafc34855ed3029', +] + +dependencies = [ + ('pscom', '5.6-default'), + # needed due to the inclusion of hwloc + ('libxml2', '2.9.13'), + # Including CUDA here to trigger the hook to add the gpu property, and because it is actually needed + ('CUDA', '11.7', '', SYSTEM) +] + +# We don't have IME in HDFML so we skip this +# mpich_opts = '--enable-static --with-file-system=ime+ufs+gpfs --enable-romio' +# +# preconfigopts = 'export CFLAGS="-I/opt/ddn/ime/include $CFLAGS" && ' +# preconfigopts += 'export LDFLAGS="$LDFLAGS -L/opt/ddn/ime/lib -lim_client" && ' +mpich_opts = '--enable-static --with-file-system=ufs+gpfs --enable-romio' + +threaded = False + +cuda = True + +moduleclass = 'mpi' diff --git a/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.0-1-NVHPC-22.11.eb b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.0-1-NVHPC-22.11.eb new file mode 100644 index 0000000000000000000000000000000000000000..3ad1f7e18ab2003ce0e739013275f9219d200eb1 --- /dev/null +++ b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.0-1-NVHPC-22.11.eb @@ -0,0 +1,38 @@ +name = 'psmpi' +version = '5.8.0-1' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 3.0 implementation, +based on MPICH v3. It provides extra low level communication libraries and integration with +various batch systems for tighter process control. +""" + +toolchain = {'name': 'NVHPC', 'version': '22.11'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['https://gitlab.jsc.fz-juelich.de/ParTec/psmpi/uploads/762714c8eec01fe59239a52798a70e1c/'] +checksums = [ + # psmpi-5.8.0-1.tar.gz + 'bcebb42f68e062d4cf957c1ec12a8e2e50051265d38715854bafc34855ed3029', +] + +dependencies = [ + ('pscom', '5.6-default'), + # needed due to the inclusion of hwloc + ('libxml2', '2.9.13'), + # Including CUDA here to trigger the hook to add the gpu property, and because it is actually needed + ('CUDA', '11.7', '', SYSTEM) +] + +# We don't have IME in HDFML so we skip this +# mpich_opts = '--enable-static --with-file-system=ime+ufs+gpfs --enable-romio' +# +# preconfigopts = 'export CFLAGS="-I/opt/ddn/ime/include $CFLAGS" && ' +# preconfigopts += 'export LDFLAGS="$LDFLAGS -L/opt/ddn/ime/lib -lim_client" && ' +mpich_opts = '--enable-static --with-file-system=ufs+gpfs --enable-romio' + +threaded = False + +cuda = True + +moduleclass = 'mpi' diff --git a/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.0-1-intel-compilers-2022.1.0.eb b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.0-1-intel-compilers-2022.1.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..aee0894cfdf2ba22bf704646a34d8da1b8d3a8dc --- /dev/null +++ b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.0-1-intel-compilers-2022.1.0.eb @@ -0,0 +1,38 @@ +name = 'psmpi' +version = '5.8.0-1' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 3.0 implementation, +based on MPICH v3. It provides extra low level communication libraries and integration with +various batch systems for tighter process control. +""" + +toolchain = {'name': 'intel-compilers', 'version': '2022.1.0'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['https://gitlab.jsc.fz-juelich.de/ParTec/psmpi/uploads/762714c8eec01fe59239a52798a70e1c/'] +checksums = [ + # psmpi-5.8.0-1.tar.gz + 'bcebb42f68e062d4cf957c1ec12a8e2e50051265d38715854bafc34855ed3029', +] + +dependencies = [ + ('pscom', '5.6-default'), + # needed due to the inclusion of hwloc + ('libxml2', '2.9.13'), + # Including CUDA here to trigger the hook to add the gpu property, and because it is actually needed + ('CUDA', '11.7', '', SYSTEM) +] + +# We don't have IME in HDFML so we skip this +# mpich_opts = '--enable-static --with-file-system=ime+ufs+gpfs --enable-romio' +# +# preconfigopts = 'export CFLAGS="-I/opt/ddn/ime/include $CFLAGS" && ' +# preconfigopts += 'export LDFLAGS="$LDFLAGS -L/opt/ddn/ime/lib -lim_client" && ' +mpich_opts = '--enable-static --with-file-system=ufs+gpfs --enable-romio' + +threaded = False + +cuda = True + +moduleclass = 'mpi' diff --git a/acls.yml b/acls.yml index 73aa6bd279684798e528a24cf3c23ec2c31bc762..b3863633147842bc863f13811c8aef5d83b2a291 100644 --- a/acls.yml +++ b/acls.yml @@ -83,6 +83,9 @@ software: - name: 'ceres-solver' owner: 'goebbert1' base: True + - name: 'Catalyst' + owner: 'goebbert1' + mpi: True - name: 'Cirq' owner: 'goebbert1' base: True @@ -103,7 +106,7 @@ software: base: True - name: 'Embree' owner: 'goebbert1' - base: True + compiler: True - name: 'freeglut' owner: 'goebbert1' base: True @@ -316,6 +319,9 @@ software: - name: 'PyQuil' owner: 'goebbert1' base: True + - name: 'PySCF' + owner: 'goebbert1' + compiler: True - name: 'qcint' owner: 'gonzalezcalaza1' base: True @@ -636,7 +642,7 @@ software: base: True - name: 'jax' owner: 'strube1' - base: True + mpi: True - name: 'jemalloc' owner: 'achilles4' base: True @@ -1152,7 +1158,7 @@ software: base: True mpi: True - name: 'h5py' - owner: ['griessbach1', 'strube1'] + owner: ['griessbach1', 'strube1', 'goebbert1'] base: True mpi: True - name: 'Eigen' @@ -1215,7 +1221,7 @@ software: owner: 'herten1' mpi: True - name: 'netCDF' - owner: 'strube1' + owner: ['griessbach1', 'strube1'] mpi: True base: True - name: 'netCDF-C++4'