diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 04d7f42a69ff22c0b3f82aa43e88e19d91d80d7f..59b7beb8b53b6d8e0d9e698e00201e8458c7a482 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,6 @@ -default: - tags: [ public-docker ] - image: $CI_REGISTRY/easybuild-docker/easybuild-docker/rocky8-eb-test:latest +stages: + - test + - deploy workflow: rules: @@ -14,7 +14,12 @@ workflow: TARGET_BRANCH: '2023' check_style: + stage: test + tags: [ public-docker ] + image: $CI_REGISTRY/easybuild-docker/easybuild-docker/rocky8-eb-test:latest script: + - git config --global --add safe.directory $CI_PROJECT_DIR + - ml purge && ml EasyBuild # to load latest EasyBuild dev version - ml --version && which -a eb && eb --version && eb --show-system-info - export SYSTEMNAME="juwelsbooster" # Make this the default for packages like NVHPC - export EASYBUILD_INCLUDE_EASYBLOCKS="$CI_PROJECT_DIR/Custom_EasyBlocks/*.py,$CI_PROJECT_DIR/Custom_EasyBlocks/generic/*.py" @@ -66,7 +71,11 @@ check_style: full_check_style: when: manual + stage: test + tags: [ public-docker ] + image: $CI_REGISTRY/easybuild-docker/easybuild-docker/rocky8-eb-test:latest script: + - ml purge && ml EasyBuild # to load latest EasyBuild dev version - export SYSTEMNAME="juwelsbooster" # Make this the default for packages like NVHPC - export EASYBUILD_INCLUDE_EASYBLOCKS="$CI_PROJECT_DIR/Custom_EasyBlocks/*.py,$CI_PROJECT_DIR/Custom_EasyBlocks/generic/*.py" - export EASYBUILD_INCLUDE_MODULE_NAMING_SCHEMES="$CI_PROJECT_DIR/Custom_MNS/*.py" @@ -104,3 +113,73 @@ full_check_style: - fi - done - if [ -n "$faulty" ]; then echo "Faulty EasyConfigs... $faulty"; exit 1; fi + +sync_repo_on_HPC: + stage: deploy + tags: + - jacamar + - shell + script: + - cd /p/fastdata/zam/swmanage/EasyBuild/$TARGET_BRANCH + - hostname + - echo 'Pulling branch '$TARGET_BRANCH + - git pull https://$GITLAB_USER:$GITLAB_TOKEN@gitlab.jsc.fz-juelich.de/software-team/easybuild.git $TARGET_BRANCH + rules: + - if: '$CI_PROJECT_NAMESPACE == "software-team" && $CI_COMMIT_BRANCH == $TARGET_BRANCH' + +update_acls: + stage: deploy + parallel: + matrix: + - SYSTEM: + - juwels + - juwels_booster + - jurecadc + - jusuf + - hdfml + tags: + - jacamar + - ${SYSTEM} + - shell + needs: ['sync_repo_on_HPC'] + script: + - hostname + - ml Stages/$TARGET_BRANCH + - pushd /p/fastdata/zam/swmanage/EasyBuild/$STAGE/bin + - ./setacls -c ../acls.yml --force -m + rules: + - if: '$CI_PROJECT_NAMESPACE == "software-team" && $CI_COMMIT_BRANCH == $TARGET_BRANCH' + changes: + - 'acls.yml' + +push_public_mirror: + stage: deploy + tags: + - jacamar + - juwels_booster + - shell + needs: ['sync_repo_on_HPC'] + script: + - hostname + - ml Stages/$TARGET_BRANCH + - cd /p/project/cswmanage/easybuilders-JSC/$TARGET_BRANCH + - git pull + - ./filter.sh + - git add -A + - git commit -a -m "Sync" + - git push https://$GITHUB_USER:$GITHUB_TOKEN@github.com/easybuilders/JSC.git + rules: + - if: '$CI_PROJECT_NAMESPACE == "software-team" && $CI_COMMIT_BRANCH == $TARGET_BRANCH' + when: manual + +pull_public_mirror: + stage: deploy + tags: + - jacamar + - shell + script: + - hostname + - cd /p/usersoftware/swmanage/user_installations/$TARGET_BRANCH/ + - git pull + rules: + - if: '$CI_PROJECT_NAMESPACE == "software-team" && $CI_COMMIT_BRANCH == $TARGET_BRANCH' diff --git a/Custom_EasyBlocks/cp2k.py b/Custom_EasyBlocks/cp2k.py index f2901e2f18590d898c1bbdcfa110aac9ce597404..e37865712693e1f2ff462fa5f875ed4042c5ac07 100644 --- a/Custom_EasyBlocks/cp2k.py +++ b/Custom_EasyBlocks/cp2k.py @@ -106,6 +106,7 @@ class EB_CP2K(EasyBlock): 'typeopt': [True, "Enable optimization", CUSTOM], 'dbcsr_version': ['2.0.1',"DBCSR version used",CUSTOM], 'libvori_version': ['-210412',"libvori version used",CUSTOM], + 'spglib_version': ['1.16.2',"spglib version used",CUSTOM], } return EasyBlock.extra_options(extra_vars) @@ -133,15 +134,18 @@ class EB_CP2K(EasyBlock): cpstringb="cp -r %s../dbcsr-%s/.cp2k %sexts/dbcsr/" %(self.cfg['start_dir'],self.cfg['dbcsr_version'],self.cfg['start_dir']) vorbis="cd %s../libvori%s/ && mkdir build && cd build && cmake .. && gmake && cp libvori.a %s/ " %(self.cfg['start_dir'],self.cfg['libvori_version'], self.cfg['start_dir']) + spglib="cd %s../spglib-%s/ && mkdir build && cd build && cmake .. && gmake && cp libsymspg.* %s/ " %(self.cfg['start_dir'],self.cfg['spglib_version'],self.cfg['start_dir']) # run_cmd(cpstring) self.log.info(cpstring) # self.log.info(cpstringb) self.log.info(vorbis) + self.log.info(spglib) os.system(cpstring) if self.cfg['dbcsr_version'] == '2.1.0': os.system(cpstringb) os.system(vorbis) + os.system(spglib) # correct start dir, if needed # recent CP2K versions have a 'cp2k' dir in the unpacked 'cp2k' dir @@ -260,6 +264,8 @@ class EB_CP2K(EasyBlock): options['LIBS'] = "-Wl,--start-group %s -Wl,--end-group" % options['LIBS'] options['LIBS'] = "%s %slibvori.a " % (options['LIBS'], self.cfg['start_dir']) + # spglib + options['LIBS'] = "%s %slibsymspg.a " % (options['LIBS'], self.cfg['start_dir']) # specify correct location for 'data' directory in final installation options['DATA_DIR'] = os.path.join(self.installdir, 'data') diff --git a/Custom_EasyBlocks/hypre.py b/Custom_EasyBlocks/hypre.py new file mode 100644 index 0000000000000000000000000000000000000000..9ec0f109db8b8f6240c25c49afc5690202a31b22 --- /dev/null +++ b/Custom_EasyBlocks/hypre.py @@ -0,0 +1,116 @@ +## +# Copyright 2009-2022 Ghent University +# +# This file is part of EasyBuild, +# originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), +# with support of Ghent University (http://ugent.be/hpc), +# the Flemish Supercomputer Centre (VSC) (https://www.vscentrum.be), +# Flemish Research Foundation (FWO) (http://www.fwo.be/en) +# and the Department of Economy, Science and Innovation (EWI) (http://www.ewi-vlaanderen.be/en). +# +# https://github.com/easybuilders/easybuild +# +# EasyBuild is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation v2. +# +# EasyBuild is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with EasyBuild. If not, see <http://www.gnu.org/licenses/>. +## +""" +EasyBuild support for Hypre, implemented as an easyblock +@author: Kenneth Hoste (Ghent University) +@author: Mikael OEhman (Chalmers University of Technology) +@author: Alex Domingo (Vrije Universiteit Brussel) +@author: Simon Branford (University of Birmingham) +""" +import os + +from easybuild.easyblocks.generic.configuremake import ConfigureMake +from easybuild.tools.build_log import EasyBuildError +from easybuild.tools.config import build_option +from easybuild.tools.modules import get_software_root +from easybuild.tools.systemtools import get_shared_lib_ext +from easybuild.framework.easyconfig import CUSTOM +from easybuild.framework.easyblock import EasyBlock + +class EB_Hypre(ConfigureMake): + """Support for building Hypre.""" + + @staticmethod + def extra_options(): + """Add extra easyconfig parameters custom to CHARMM.""" + extra_vars = { + 'disable_cuda': [False, "Force disabling CUDA", CUSTOM] + } + return EasyBlock.extra_options(extra_vars) + + + def __init__(self, *args, **kwargs): + """Easyblock constructor.""" + + super(EB_Hypre, self).__init__(*args, **kwargs) + + self.config_shared = False + self.config_static = False + + def configure_step(self): + """Configure Hypre build after setting extra configure options.""" + + if '--enable-shared' in self.cfg['configopts']: + self.config_shared = True + ext_libs = 'LIB%s' + else: + self.config_static = True + ext_libs = '%s_STATIC_LIBS' + + # Use BLAS/LAPACK from EB + for dep in ["BLAS", "LAPACK"]: + blas_libs = ' '.join(os.getenv(ext_libs % dep).split(',')) + blas_libs = blas_libs.replace('-l', '') # Remove any '-l' as those are prepended for shared builds + self.cfg.update('configopts', '--with-%s-libs="%s"' % (dep.lower(), blas_libs)) + self.cfg.update('configopts', '--with-%s-lib-dirs="%s"' % (dep.lower(), + os.getenv('%s_LIB_DIR' % dep))) + + # Use MPI implementation from EB + self.cfg.update('configopts', '--with-MPI-include=%s' % os.getenv('MPI_INC_DIR')) + + if (get_software_root('CUDA') and not(self.cfg['disable_cuda'])): + self.cfg.update('configopts', '--with-cuda') + + cuda_cc = build_option('cuda_compute_capabilities') or self.cfg['cuda_compute_capabilities'] + if not cuda_cc: + raise EasyBuildError('List of CUDA compute capabilities must be specified, either via ' + 'cuda_compute_capabilities easyconfig parameter or via ' + '--cuda-compute-capabilities') + + cuda_cc_string = ' '.join([x.replace('.', '') for x in cuda_cc]) + self.cfg.update('configopts', '--with-gpu-arch="%s"' % cuda_cc_string) + else: + self.cfg.update('configopts', '--with-cuda=NO') + + + super(EB_Hypre, self).configure_step() + + def sanity_check_step(self): + """Custom sanity check for Hypre.""" + + # Add static and shared libs depending on configopts + hypre_libs = list() + if self.config_shared: + shlib_ext = get_shared_lib_ext() + hypre_libs.append(os.path.join('lib', 'libHYPRE.%s' % shlib_ext)) + if self.config_static: + hypre_libs.append(os.path.join('lib', 'libHYPRE.a')) + + custom_paths = { + 'files': hypre_libs, + 'dirs': ['include'] + } + + super(EB_Hypre, self).sanity_check_step(custom_paths=custom_paths) 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/Custom_EasyBlocks/petsc.py b/Custom_EasyBlocks/petsc.py new file mode 100644 index 0000000000000000000000000000000000000000..e6a38b75cadd5053742febcdbe559ba2105551f1 --- /dev/null +++ b/Custom_EasyBlocks/petsc.py @@ -0,0 +1,437 @@ +## +# Copyright 2009-2023 Ghent University +# +# This file is part of EasyBuild, +# originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), +# with support of Ghent University (http://ugent.be/hpc), +# the Flemish Supercomputer Centre (VSC) (https://www.vscentrum.be), +# Flemish Research Foundation (FWO) (http://www.fwo.be/en) +# and the Department of Economy, Science and Innovation (EWI) (http://www.ewi-vlaanderen.be/en). +# +# https://github.com/easybuilders/easybuild +# +# EasyBuild is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation v2. +# +# EasyBuild is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with EasyBuild. If not, see <http://www.gnu.org/licenses/>. +## +""" +EasyBuild support for PETSc, implemented as an easyblock + +@author: Kenneth Hoste (Ghent University) +""" +import os +import re +from distutils.version import LooseVersion + +import easybuild.tools.environment as env +import easybuild.tools.toolchain as toolchain +from easybuild.easyblocks.generic.configuremake import ConfigureMake +from easybuild.framework.easyconfig import BUILD, CUSTOM +from easybuild.tools.build_log import EasyBuildError +from easybuild.tools.filetools import symlink, apply_regex_substitutions +from easybuild.tools.modules import get_software_root, get_software_version +from easybuild.tools.run import run_cmd +from easybuild.tools.systemtools import get_shared_lib_ext +from easybuild.tools.py2vs3 import string_type + +NO_MPI_CXX_EXT_FLAGS = '-DOMPI_SKIP_MPICXX -DMPICH_SKIP_MPICXX' + + +class EB_PETSc(ConfigureMake): + """Support for building and installing PETSc""" + + def __init__(self, *args, **kwargs): + """Initialize PETSc specific variables.""" + super(EB_PETSc, self).__init__(*args, **kwargs) + + self.petsc_arch = "" + self.petsc_subdir = "" + self.prefix_inc = '' + self.prefix_lib = '' + self.prefix_bin = '' + + self.with_python = False + + if self.cfg['sourceinstall']: + self.prefix_inc = self.petsc_subdir + self.prefix_lib = os.path.join(self.petsc_subdir, self.petsc_arch) + self.build_in_installdir = True + + if LooseVersion(self.version) >= LooseVersion("3.9"): + self.prefix_bin = os.path.join(self.prefix_inc, 'lib', 'petsc') + + @staticmethod + def extra_options(): + """Add extra config options specific to PETSc.""" + extra_vars = { + 'sourceinstall': [False, "Indicates whether a source installation should be performed", CUSTOM], + 'shared_libs': [False, "Build shared libraries", CUSTOM], + 'with_papi': [False, "Enable PAPI support", CUSTOM], + 'papi_inc': ['/usr/include', "Path for PAPI include files", CUSTOM], + 'papi_lib': ['/usr/lib64/libpapi.so', "Path for PAPI library", CUSTOM], + 'runtest': ['test', "Make target to test build", BUILD], + 'test_parallel': [ + None, + "Number of parallel PETSc tests launched. If unset, 'parallel' will be used", + CUSTOM + ], + 'download_deps_static': [[], "Dependencies that should be downloaded and installed static", CUSTOM], + 'download_deps_shared': [[], "Dependencies that should be downloaded and installed shared", CUSTOM], + 'download_deps': [[], "Dependencies that should be downloaded and installed", CUSTOM] + } + return ConfigureMake.extra_options(extra_vars) + + def prepare_step(self, *args, **kwargs): + """Prepare build environment.""" + + super(EB_PETSc, self).prepare_step(*args, **kwargs) + + # build with Python support if Python is loaded as a non-build (runtime) dependency + build_deps = self.cfg.dependencies(build_only=True) + if get_software_root('Python') and not any(x['name'] == 'Python' for x in build_deps): + self.with_python = True + self.log.info("Python included as runtime dependency, so enabling Python support") + + def configure_step(self): + """ + Configure PETSc by setting configure options and running configure script. + + Configure procedure is much more concise for older versions (< v3). + """ + if LooseVersion(self.version) >= LooseVersion("3"): + # make the install dir first if we are doing a download install, then keep it for the rest of the way + deps = self.cfg["download_deps"] + self.cfg["download_deps_static"] + self.cfg["download_deps_shared"] + if deps: + self.log.info("Creating the installation directory before the configure.") + self.make_installdir() + self.cfg["keeppreviousinstall"] = True + for dep in set(deps): + self.cfg.update('configopts', '--download-%s=1' % dep) + for dep in self.cfg["download_deps_static"]: + self.cfg.update('configopts', '--download-%s-shared=0' % dep) + for dep in self.cfg["download_deps_shared"]: + self.cfg.update('configopts', '--download-%s-shared=1' % dep) + + # compilers + self.cfg.update('configopts', '--with-cc="%s"' % os.getenv('CC')) + self.cfg.update('configopts', '--with-cxx="%s" --with-c++-support' % os.getenv('CXX')) + self.cfg.update('configopts', '--with-fc="%s"' % os.getenv('F90')) + + # compiler flags + # Don't build with MPI c++ bindings as this leads to a hard dependency + # on libmpi and libmpi_cxx even for C code and non-MPI code + cxxflags = os.getenv('CXXFLAGS') + ' ' + NO_MPI_CXX_EXT_FLAGS + if LooseVersion(self.version) >= LooseVersion("3.5"): + self.cfg.update('configopts', '--CFLAGS="%s"' % os.getenv('CFLAGS')) + self.cfg.update('configopts', '--CXXFLAGS="%s"' % cxxflags) + self.cfg.update('configopts', '--FFLAGS="%s"' % os.getenv('F90FLAGS')) + else: + self.cfg.update('configopts', '--with-cflags="%s"' % os.getenv('CFLAGS')) + self.cfg.update('configopts', '--with-cxxflags="%s"' % cxxflags) + self.cfg.update('configopts', '--with-fcflags="%s"' % os.getenv('F90FLAGS')) + + if not self.toolchain.comp_family() == toolchain.GCC: # @UndefinedVariable + self.cfg.update('configopts', '--with-gnu-compilers=0') + + # MPI + if self.toolchain.options.get('usempi', None): + self.cfg.update('configopts', '--with-mpi=1') + + # build options + self.cfg.update('configopts', '--with-build-step-np=%s' % self.cfg['parallel']) + self.cfg.update('configopts', '--with-shared-libraries=%d' % self.cfg['shared_libs']) + self.cfg.update('configopts', '--with-debugging=%d' % self.toolchain.options['debug']) + self.cfg.update('configopts', '--with-pic=%d' % self.toolchain.options['pic']) + self.cfg.update('configopts', '--with-x=0 --with-windows-graphics=0') + + # PAPI support + if self.cfg['with_papi']: + papi_inc = self.cfg['papi_inc'] + papi_inc_file = os.path.join(papi_inc, "papi.h") + papi_lib = self.cfg['papi_lib'] + if os.path.isfile(papi_inc_file) and os.path.isfile(papi_lib): + self.cfg.update('configopts', '--with-papi=1') + self.cfg.update('configopts', '--with-papi-include=%s' % papi_inc) + self.cfg.update('configopts', '--with-papi-lib=%s' % papi_lib) + else: + raise EasyBuildError("PAPI header (%s) and/or lib (%s) not found, can not enable PAPI support?", + papi_inc_file, papi_lib) + + # Python extensions_step + if self.with_python: + + # enable numpy support, but only if numpy is available + (_, ec) = run_cmd("python -c 'import numpy'", log_all=True, simple=False) + if ec == 0: + self.cfg.update('configopts', '--with-numpy=1') + + # enable mpi4py support, but only if mpi4py is available + (_, ec) = run_cmd("python -c 'import mpi4py'", log_all=True, simple=False) + if ec == 0: + with_mpi4py_opt = '--with-mpi4py' + if self.cfg['shared_libs'] and with_mpi4py_opt not in self.cfg['configopts']: + self.cfg.update('configopts', '%s=1' % with_mpi4py_opt) + + # FFTW, ScaLAPACK (and BLACS for older PETSc versions) + deps = ["ScaLAPACK"] #FFTW + if LooseVersion(self.version) < LooseVersion("3.5"): + deps.append("BLACS") + for dep in deps: + libdir = os.getenv('%s_LIB_DIR' % dep.upper()) + libs = os.getenv('%s_STATIC_LIBS' % dep.upper()) + if libdir and libs: + with_arg = "--with-%s" % dep.lower() + self.cfg.update('configopts', '%s=1' % with_arg) + self.cfg.update('configopts', '%s-lib=[%s/%s]' % (with_arg, libdir, libs)) + + inc = os.getenv('%s_INC_DIR' % dep.upper()) + if inc: + self.cfg.update('configopts', '%s-include=%s' % (with_arg, inc)) + else: + self.log.info("Missing inc/lib info, so not enabling %s support." % dep) + + + + + + + # BLAS, LAPACK libraries + bl_libdir = os.getenv('BLAS_LAPACK_LIB_DIR') + bl_libs = os.getenv('BLAS_LAPACK_STATIC_LIBS') + if bl_libdir and bl_libs: + self.cfg.update('configopts', '--with-blas-lapack-lib=[%s/%s]' % (bl_libdir, bl_libs)) + else: + raise EasyBuildError("One or more environment variables for BLAS/LAPACK not defined?") + + # additional dependencies + # filter out deps handled seperately + sep_deps = ['BLACS', 'BLAS', 'CMake', 'LAPACK', 'numpy', #'FFTW' + 'mpi4py', 'papi', 'ScaLAPACK', 'SciPy-bundle', 'SuiteSparse'] + # SCOTCH has to be treated separately since they add weird postfixes + # to library names from SCOTCH 7.0.1 or PETSc version 3.17. + if (LooseVersion(self.version) >= LooseVersion("3.17")): + sep_deps.append('SCOTCH') + depfilter = [d['name'] for d in self.cfg.builddependencies()] + sep_deps + + deps = [dep['name'] for dep in self.cfg.dependencies() if not dep['name'] in depfilter] + for dep in deps: + if isinstance(dep, string_type): + dep = (dep, dep) + deproot = get_software_root(dep[0]) + if deproot: + if (LooseVersion(self.version) >= LooseVersion("3.5")) and (dep[1] == "SCOTCH"): + withdep = "--with-pt%s" % dep[1].lower() # --with-ptscotch is the configopt PETSc >= 3.5 + else: + withdep = "--with-%s" % dep[1].lower() + self.cfg.update('configopts', '%s=1 %s-dir=%s' % (withdep, withdep, deproot)) + + # SCOTCH has to be treated separately since they add weird postfixes + # to library names from SCOTCH 7.0.1 or PETSc version 3.17. + scotch = get_software_root('SCOTCH') + scotch_ver = get_software_version('SCOTCH') + if (scotch and LooseVersion(scotch_ver) >= LooseVersion("7.0")): + withdep = "--with-ptscotch" + scotch_inc = [os.path.join(scotch, "include")] + inc_spec = "-include=[%s]" % ','.join(scotch_inc) + + # For some reason there is a v3 suffix added to libptscotchparmetis + # which is the reason for this new code. + req_scotch_libs = ['libesmumps.a', 'libptesmumps.a', 'libptscotch.a', + 'libptscotcherr.a', 'libptscotchparmetisv3.a', 'libscotch.a', + 'libscotcherr.a'] + scotch_libs = [os.path.join(scotch, "lib", x) for x in req_scotch_libs] + lib_spec = "-lib=[%s]" % ','.join(scotch_libs) + self.cfg.update('configopts', ' '.join([withdep + spec for spec in ['=1', inc_spec, lib_spec]])) + + # SuiteSparse options changed in PETSc 3.5, + suitesparse = get_software_root('SuiteSparse') + if suitesparse: + if LooseVersion(self.version) >= LooseVersion("3.5"): + withdep = "--with-suitesparse" + # specified order of libs matters! + ss_libs = ["UMFPACK", "KLU", "CHOLMOD", "BTF", "CCOLAMD", "COLAMD", "CAMD", "AMD"] + # More libraries added after version 3.17 + if LooseVersion(self.version) >= LooseVersion("3.17"): + # specified order of libs matters! + ss_libs = ["UMFPACK", "KLU", "SPQR", "CHOLMOD", "BTF", "CCOLAMD", + "COLAMD", "CSparse", "CXSparse", "LDL", "RBio", + "SLIP_LU", "CAMD", "AMD"] + + suitesparse_inc = [os.path.join(suitesparse, x, "Include") + for x in ss_libs] + suitesparse_inc.append(os.path.join(suitesparse, "SuiteSparse_config")) + inc_spec = "-include=[%s]" % ','.join(suitesparse_inc) + + suitesparse_libs = [os.path.join(suitesparse, x, "Lib", "lib%s.a" % x.replace("_", "").lower()) + for x in ss_libs] + suitesparse_libs.append(os.path.join(suitesparse, "SuiteSparse_config", "libsuitesparseconfig.a")) + lib_spec = "-lib=[%s]" % ','.join(suitesparse_libs) + else: + # CHOLMOD and UMFPACK are part of SuiteSparse (PETSc < 3.5) + withdep = "--with-umfpack" + inc_spec = "-include=%s" % os.path.join(suitesparse, "UMFPACK", "Include") + # specified order of libs matters! + umfpack_libs = [os.path.join(suitesparse, x, "Lib", "lib%s.a" % x.lower()) + for x in ["UMFPACK", "CHOLMOD", "COLAMD", "AMD"]] + lib_spec = "-lib=[%s]" % ','.join(umfpack_libs) + + self.cfg.update('configopts', ' '.join([withdep + spec for spec in ['=1', inc_spec, lib_spec]])) + + # set PETSC_DIR for configure (env) and build_step + env.setvar('PETSC_DIR', self.cfg['start_dir']) + self.cfg.update('buildopts', 'PETSC_DIR=%s' % self.cfg['start_dir']) + + if self.cfg['sourceinstall']: + # run configure without --prefix (required) + cmd = "%s ./configure %s" % (self.cfg['preconfigopts'], self.cfg['configopts']) + (out, _) = run_cmd(cmd, log_all=True, simple=False) + else: + out = super(EB_PETSc, self).configure_step() + + # check for errors in configure + error_regexp = re.compile("ERROR") + if error_regexp.search(out): + raise EasyBuildError("Error(s) detected in configure output!") + + if self.cfg['sourceinstall']: + # figure out PETSC_ARCH setting + petsc_arch_regex = re.compile(r"^\s*PETSC_ARCH:\s*(\S+)$", re.M) + res = petsc_arch_regex.search(out) + if res: + self.petsc_arch = res.group(1) + self.cfg.update('buildopts', 'PETSC_ARCH=%s' % self.petsc_arch) + else: + raise EasyBuildError("Failed to determine PETSC_ARCH setting.") + + self.petsc_subdir = '%s-%s' % (self.name.lower(), self.version) + + else: # old versions (< 3.x) + + self.cfg.update('configopts', '--prefix=%s' % self.installdir) + self.cfg.update('configopts', '--with-shared=1') + + # additional dependencies + for dep in ["SCOTCH"]: + deproot = get_software_root(dep) + if deproot: + withdep = "--with-%s" % dep.lower() + self.cfg.update('configopts', '%s=1 %s-dir=%s' % (withdep, withdep, deproot)) + + cmd = "./config/configure.py %s" % self.get_cfg('configopts') + run_cmd(cmd, log_all=True, simple=True) + + # Make sure to set test_parallel before self.cfg['parallel'] is set to None + if self.cfg['test_parallel'] is None and self.cfg['parallel']: + self.cfg['test_parallel'] = self.cfg['parallel'] + + # PETSc > 3.5, make does not accept -j + # to control parallel build, we need to specify MAKE_NP=... as argument to 'make' command + if LooseVersion(self.version) >= LooseVersion("3.5"): + self.cfg.update('buildopts', "MAKE_NP=%s" % self.cfg['parallel']) + self.cfg['parallel'] = None + + # default make should be fine + + def test_step(self): + """ + Test the compilation + """ + + # Each PETSc test may use multiple threads, so running "self.cfg['parallel']" of them may lead to + # some oversubscription every now and again. Not a big deal, but if needed a reduced parallelism + # can be specified with test_parallel - and it takes priority + paracmd = '' + self.log.info("In test_step: %s" % self.cfg['test_parallel']) + if self.cfg['test_parallel'] is not None: + paracmd = "-j %s" % self.cfg['test_parallel'] + + if self.cfg['runtest']: + cmd = "%s make %s %s %s" % (self.cfg['pretestopts'], paracmd, self.cfg['runtest'], self.cfg['testopts']) + (out, _) = run_cmd(cmd, log_all=True, simple=False) + + return out + + def install_step(self): + """ + Install using make install (for non-source installations), + or by symlinking files (old versions, < 3). + """ + if LooseVersion(self.version) >= LooseVersion("3"): + if not self.cfg['sourceinstall']: + super(EB_PETSc, self).install_step() + petsc_root = self.installdir + else: + petsc_root = os.path.join(self.installdir, self.petsc_subdir) + # Remove MPI-CXX flags added during configure to prevent them from being passed to consumers of PETsc + petsc_variables_path = os.path.join(petsc_root, 'lib', 'petsc', 'conf', 'petscvariables') + if os.path.isfile(petsc_variables_path): + fix = (r'^(CXX_FLAGS|CXX_LINKER_FLAGS|CONFIGURE_OPTIONS)( = .*)%s(.*)$' % NO_MPI_CXX_EXT_FLAGS, + r'\1\2\3') + apply_regex_substitutions(petsc_variables_path, [fix]) + + else: # old versions (< 3.x) + + for fn in ['petscconf.h', 'petscconfiginfo.h', 'petscfix.h', 'petscmachineinfo.h']: + includedir = os.path.join(self.installdir, 'include') + bmakedir = os.path.join(self.installdir, 'bmake', 'linux-gnu-c-opt') + symlink(os.path.join(bmakedir, fn), os.path.join(includedir, fn)) + + def make_module_req_guess(self): + """Specify PETSc custom values for PATH, CPATH and LD_LIBRARY_PATH.""" + + guesses = super(EB_PETSc, self).make_module_req_guess() + + guesses.update({ + 'CPATH': [os.path.join(self.prefix_lib, 'include'), os.path.join(self.prefix_inc, 'include')], + 'LD_LIBRARY_PATH': [os.path.join(self.prefix_lib, 'lib')], + 'PATH': [os.path.join(self.prefix_bin, 'bin')], + # see https://www.mcs.anl.gov/petsc/documentation/faq.html#sparse-matrix-ascii-format + 'PYTHONPATH': [os.path.join('lib', 'petsc', 'bin')], + }) + + return guesses + + def make_module_extra(self): + """Set PETSc specific environment variables (PETSC_DIR, PETSC_ARCH).""" + txt = super(EB_PETSc, self).make_module_extra() + + if self.cfg['sourceinstall']: + txt += self.module_generator.set_environment('PETSC_DIR', os.path.join(self.installdir, self.petsc_subdir)) + txt += self.module_generator.set_environment('PETSC_ARCH', self.petsc_arch) + else: + txt += self.module_generator.set_environment('PETSC_DIR', self.installdir) + + return txt + + def sanity_check_step(self): + """Custom sanity check for PETSc""" + + if self.cfg['shared_libs']: + libext = get_shared_lib_ext() + else: + libext = 'a' + + custom_paths = { + 'files': [os.path.join(self.prefix_lib, 'lib', 'libpetsc.%s' % libext)], + 'dirs': [os.path.join(self.prefix_bin, 'bin'), os.path.join(self.prefix_inc, 'include'), + os.path.join(self.prefix_lib, 'include')] + } + if LooseVersion(self.version) < LooseVersion('3.6'): + custom_paths['dirs'].append(os.path.join(self.prefix_lib, 'conf')) + else: + custom_paths['dirs'].append(os.path.join(self.prefix_lib, 'lib', 'petsc', 'conf')) + + custom_commands = [] + if self.with_python: + custom_commands.append("python -m PetscBinaryIO --help") + + super(EB_PETSc, self).sanity_check_step(custom_paths=custom_paths, custom_commands=custom_commands) + diff --git a/Custom_EasyBlocks/psmpi.py b/Custom_EasyBlocks/psmpi.py index f9001ee72743f1d69ff3e053f9b1beec60d372cc..419364518739b864645bf158e3db669546142122 100644 --- a/Custom_EasyBlocks/psmpi.py +++ b/Custom_EasyBlocks/psmpi.py @@ -60,6 +60,7 @@ class EB_psmpi(EB_MPICH): 'threaded': [False, "Enable multithreaded build (which is slower)", CUSTOM], 'pscom_allin_path': [None, "Enable pscom integration by giving its source path", CUSTOM], 'cuda': [False, "Enable CUDA awareness", CUSTOM], + 'msa': [False, "Enable MSA awareness", CUSTOM], }) return extra_vars @@ -88,6 +89,10 @@ class EB_psmpi(EB_MPICH): self.log.info("Enabling CUDA-Awareness...") self.cfg.update('configopts', ' --with-cuda') + if self.cfg['msa']: + self.log.info("Enabling MSA-Awareness...") + self.cfg.update('configopts', ' --with-msa-awareness') + # Set confset comp_fam = self.toolchain.comp_family() if comp_fam in comp_opts: diff --git a/Custom_EasyBlocks/tensorflow.py b/Custom_EasyBlocks/tensorflow.py new file mode 100644 index 0000000000000000000000000000000000000000..239634a2c3f6457e31d2bd255cf8534f626c6617 --- /dev/null +++ b/Custom_EasyBlocks/tensorflow.py @@ -0,0 +1,1174 @@ +## +# Copyright 2017-2023 Ghent University +# +# This file is part of EasyBuild, +# originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), +# with support of Ghent University (http://ugent.be/hpc), +# the Flemish Supercomputer Centre (VSC) (https://www.vscentrum.be), +# Flemish Research Foundation (FWO) (http://www.fwo.be/en) +# and the Department of Economy, Science and Innovation (EWI) (http://www.ewi-vlaanderen.be/en). +# +# https://github.com/easybuilders/easybuild +# +# EasyBuild is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation v2. +# +# EasyBuild is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with EasyBuild. If not, see <http://www.gnu.org/licenses/>. +## +""" +EasyBuild support for building and installing TensorFlow, implemented as an easyblock + +@author: Kenneth Hoste (HPC-UGent) +@author: Ake Sandgren (Umea University) +@author: Damian Alvarez (Forschungzentrum Juelich GmbH) +@author: Alexander Grund (TU Dresden) +""" +import glob +import os +import re +import stat +import tempfile + +import easybuild.tools.environment as env +import easybuild.tools.toolchain as toolchain +from easybuild.easyblocks.generic.pythonpackage import PythonPackage, det_python_version +from easybuild.easyblocks.python import EXTS_FILTER_PYTHON_PACKAGES +from easybuild.framework.easyconfig import CUSTOM +from easybuild.tools import run, LooseVersion +from easybuild.tools.build_log import EasyBuildError, print_warning +from easybuild.tools.config import build_option, IGNORE +from easybuild.tools.filetools import adjust_permissions, apply_regex_substitutions, copy_file, mkdir, resolve_path +from easybuild.tools.filetools import is_readable, read_file, which, write_file, remove_file +from easybuild.tools.modules import get_software_root, get_software_version, get_software_libdir +from easybuild.tools.run import run_cmd +from easybuild.tools.systemtools import X86_64, get_cpu_architecture, get_os_name, get_os_version + + +CPU_DEVICE = 'cpu' +GPU_DEVICE = 'gpu' + +# Wrapper for Intel(MPI) compilers, where required environment variables +# are hardcoded to make sure they are present; +# this is required because Bazel resets the environment in which +# compiler commands are executed... +INTEL_COMPILER_WRAPPER = """#!/bin/bash + +export CPATH='%(cpath)s' + +# Only relevant for Intel compilers. +export INTEL_LICENSE_FILE='%(intel_license_file)s' + +# Only relevant for MPI compiler wrapper (mpiicc/mpicc etc), +# not for regular compiler. +export I_MPI_ROOT='%(intel_mpi_root)s' + +# Exclude location of this wrapper from $PATH to avoid other potential +# wrappers calling this wrapper. +export PATH=$(echo $PATH | tr ':' '\n' | grep -v "^%(wrapper_dir)s$" | tr '\n' ':') + +%(compiler_path)s "$@" +""" + + +def split_tf_libs_txt(valid_libs_txt): + """Split the VALID_LIBS entry from the TF file into single names""" + entries = valid_libs_txt.split(',') + # Remove double quotes and whitespace + result = [entry.strip().strip('"') for entry in entries] + # Remove potentially trailing empty element due to trailing comma in the txt + if not result[-1]: + result.pop() + return result + + +def get_system_libs_from_tf(source_dir): + """Return the valid values for TF_SYSTEM_LIBS from the TensorFlow source directory""" + syslibs_path = os.path.join(source_dir, 'third_party', 'systemlibs', 'syslibs_configure.bzl') + result = [] + if os.path.exists(syslibs_path): + txt = read_file(syslibs_path) + valid_libs_match = re.search(r'VALID_LIBS\s*=\s*\[(.*?)\]', txt, re.DOTALL) + if not valid_libs_match: + raise EasyBuildError('VALID_LIBS definition not found in %s', syslibs_path) + result = split_tf_libs_txt(valid_libs_match.group(1)) + return result + + +def get_system_libs_for_version(tf_version, as_valid_libs=False): + """ + Determine valid values for $TF_SYSTEM_LIBS for the given TF version + + If as_valid_libs=False (default) then returns 2 dictioniaries: + 1: Mapping of <EB name> to <TF name> + 2: Mapping of <package name> to <TF name> (for python extensions) + else returns a string formated like the VALID_LIBS variable in third_party/systemlibs/syslibs_configure.bzl + Those can be used to check/diff against third_party/systemlibs/syslibs_configure.bzl by running: + python -c 'from easybuild.easyblocks.tensorflow import get_system_libs_for_version; \ + print(get_system_libs_for_version("2.1.0", as_valid_libs=True))' + """ + tf_version = LooseVersion(tf_version) + + def is_version_ok(version_range): + """Return True if the TF version to be installed matches the version_range""" + min_version, max_version = version_range.split(':') + result = True + if min_version and tf_version < LooseVersion(min_version): + result = False + if max_version and tf_version >= LooseVersion(max_version): + result = False + return result + + # For these lists check third_party/systemlibs/syslibs_configure.bzl --> VALID_LIBS + # Also verify third_party/systemlibs/<name>.BUILD or third_party/systemlibs/<name>/BUILD.system + # if it does something "strange" (e.g. link hardcoded headers) + + # Software which is added as a dependency in the EC + available_system_libs = { + # Format: (<EB name>, <version range>): <TF name> + # <version range> is '<min version>:<exclusive max version>' + ('Abseil', '2.9.0:'): 'com_google_absl', + ('cURL', '2.0.0:'): 'curl', + ('double-conversion', '2.0.0:'): 'double_conversion', + ('flatbuffers', '2.0.0:'): 'flatbuffers', + ('giflib', '2.0.0:2.1.0'): 'gif_archive', + ('giflib', '2.1.0:'): 'gif', + ('hwloc', '2.0.0:'): 'hwloc', + ('ICU', '2.0.0:'): 'icu', + ('JsonCpp', '2.0.0:'): 'jsoncpp_git', + ('libjpeg-turbo', '2.0.0:2.2.0'): 'jpeg', + ('libjpeg-turbo', '2.2.0:'): 'libjpeg_turbo', + ('libpng', '2.0.0:2.1.0'): 'png_archive', + ('libpng', '2.1.0:'): 'png', + ('LMDB', '2.0.0:'): 'lmdb', + ('NASM', '2.0.0:'): 'nasm', + ('nsync', '2.0.0:'): 'nsync', + ('PCRE', '2.0.0:2.6.0'): 'pcre', + ('protobuf', '2.0.0:'): 'com_google_protobuf', + ('pybind11', '2.2.0:'): 'pybind11', + ('snappy', '2.0.0:'): 'snappy', + ('SQLite', '2.0.0:'): 'org_sqlite', + ('SWIG', '2.0.0:2.4.0'): 'swig', + ('zlib', '2.0.0:2.2.0'): 'zlib_archive', + ('zlib', '2.2.0:'): 'zlib', + } + # Software recognized by TF but which is always disabled (usually because no EC is known) + # Format: <TF name>: <version range> + unused_system_libs = { + 'boringssl': '2.0.0:', + 'com_github_googleapis_googleapis': '2.0.0:2.5.0', + 'com_github_googlecloudplatform_google_cloud_cpp': '2.0.0:', # Not used due to $TF_NEED_GCP=0 + 'com_github_grpc_grpc': '2.2.0:', + 'com_googlesource_code_re2': '2.0.0:', + 'grpc': '2.0.0:2.2.0', + } + # Python packages installed as extensions or in the Python module + # Will be checked for availabilitly + # Format: (<package name>, <version range>): <TF name> + python_system_libs = { + ('absl', '2.0.0:'): 'absl_py', + ('astor', '2.0.0:'): 'astor_archive', + ('astunparse', '2.2.0:'): 'astunparse_archive', + ('cython', '2.0.0:'): 'cython', # Part of Python EC + ('dill', '2.4.0:'): 'dill_archive', + ('enum', '2.0.0:2.8.0'): 'enum34_archive', # Part of Python3 + ('flatbuffers', '2.4.0:'): 'flatbuffers', + ('functools', '2.0.0:'): 'functools32_archive', # Part of Python3 + ('gast', '2.0.0:'): 'gast_archive', + ('google.protobuf', '2.0.0:'): 'com_google_protobuf', + ('keras_applications', '2.0.0:2.2.0'): 'keras_applications_archive', + ('opt_einsum', '2.0.0:'): 'opt_einsum_archive', + ('pasta', '2.0.0:'): 'pasta', + ('six', '2.0.0:'): 'six_archive', # Part of Python EC + ('tblib', '2.4.0:'): 'tblib_archive', + ('termcolor', '2.0.0:'): 'termcolor_archive', + ('typing_extensions', '2.4.0:'): 'typing_extensions_archive', + ('wrapt', '2.0.0:'): 'wrapt', + } + + dependency_mapping = dict((dep_name, tf_name) + for (dep_name, version_range), tf_name in available_system_libs.items() + if is_version_ok(version_range)) + python_mapping = dict((pkg_name, tf_name) + for (pkg_name, version_range), tf_name in python_system_libs.items() + if is_version_ok(version_range)) + + if as_valid_libs: + tf_names = [tf_name for tf_name, version_range in unused_system_libs.items() + if is_version_ok(version_range)] + tf_names.extend(dependency_mapping.values()) + tf_names.extend(python_mapping.values()) + result = '\n'.join([' "%s",' % name for name in sorted(tf_names)]) + else: + result = dependency_mapping, python_mapping + return result + + +def get_bazel_version(): + """Get the Bazel version as a LooseVersion. Error if not found""" + version = get_software_version('Bazel') + if version is None: + raise EasyBuildError('Failed to determine Bazel version - is it listed as a (build) dependency?') + return LooseVersion(version) + + +class EB_TensorFlow(PythonPackage): + """Support for building/installing TensorFlow.""" + + @staticmethod + def extra_options(): + extra_vars = { + 'path_filter': [[], "List of patterns to be filtered out in paths in $CPATH and $LIBRARY_PATH", CUSTOM], + 'with_jemalloc': [None, "Make TensorFlow use jemalloc (usually enabled by default). " + + "Unsupported starting at TensorFlow 1.12!", CUSTOM], + 'with_mkl_dnn': [None, "Make TensorFlow use Intel MKL-DNN / oneDNN and configure with --config=mkl " + "(enabled by default where supported for TensorFlow versions before 2.4.0)", + CUSTOM], + 'with_xla': [None, "Enable XLA JIT compiler for possible runtime optimization of models", CUSTOM], + 'test_script': [None, "Script to test TensorFlow installation with", CUSTOM], + 'test_targets': [[], "List of Bazel targets which should be run during the test step", CUSTOM], + 'test_tag_filters_cpu': ['', "Comma-separated list of tags to filter for during the CPU test step", CUSTOM], + 'test_tag_filters_gpu': ['', "Comma-separated list of tags to filter for during the GPU test step", CUSTOM], + 'testopts_gpu': ['', 'Test options for the GPU test step', CUSTOM], + 'test_max_parallel': [None, "Maximum number of test jobs to run in parallel (GPU tests are limited by " + + "the number of GPUs). Use None (default) to automatically determine a value", CUSTOM], + 'jvm_max_memory': [4096, "Maximum amount of memory in MB used for the JVM running Bazel." + + "Use None to not set a specific limit (uses a default value).", CUSTOM], + } + + return PythonPackage.extra_options(extra_vars) + + def __init__(self, *args, **kwargs): + """Initialize TensorFlow easyblock.""" + super(EB_TensorFlow, self).__init__(*args, **kwargs) + + with self.cfg.disable_templating(): + self.cfg['exts_defaultclass'] = 'PythonPackage' + + self.cfg['exts_default_options']['download_dep_fail'] = True + self.cfg['exts_default_options']['use_pip'] = True + self.cfg['exts_filter'] = EXTS_FILTER_PYTHON_PACKAGES + + self.system_libs_info = None + + self.test_script = None + + # locate test script (if specified) + if self.cfg['test_script']: + # try to locate test script via obtain_file (just like sources & patches files) + self.test_script = self.obtain_file(self.cfg['test_script']) + if self.test_script and os.path.exists(self.test_script): + self.log.info("Test script found: %s", self.test_script) + else: + raise EasyBuildError("Specified test script %s not found!", self.cfg['test_script']) + + def python_pkg_exists(self, name): + """Check if the given python package exists/can be imported""" + cmd = self.python_cmd + " -c 'import %s'" % name + out, ec = run_cmd(cmd, log_ok=False) + self.log.debug('Existence check for %s returned %s with output: %s', name, ec, out) + return ec == 0 + + def handle_jemalloc(self): + """Figure out whether jemalloc support should be enabled or not.""" + if self.cfg['with_jemalloc'] is None: + if LooseVersion(self.version) > LooseVersion('1.6'): + # jemalloc bundled with recent versions of TensorFlow does not work on RHEL 6 or derivatives, + # so disable it automatically if with_jemalloc was left unspecified + os_name = get_os_name().replace(' ', '') + rh_based_os = any(os_name.startswith(x) for x in ['centos', 'redhat', 'rhel', 'sl']) + if rh_based_os and get_os_version().startswith('6.'): + self.log.info("Disabling jemalloc since bundled jemalloc does not work on RHEL 6 and derivatives") + self.cfg['with_jemalloc'] = False + + # if the above doesn't disable jemalloc support, then enable it by default + if self.cfg['with_jemalloc'] is None: + self.log.info("Enabling jemalloc support by default, since it was left unspecified") + self.cfg['with_jemalloc'] = True + + else: + # if with_jemalloc was specified, stick to that + self.log.info("with_jemalloc was specified as %s, so sticking to it", self.cfg['with_jemalloc']) + + def write_wrapper(self, wrapper_dir, compiler, i_mpi_root): + """Helper function to write a compiler wrapper.""" + wrapper_txt = INTEL_COMPILER_WRAPPER % { + 'compiler_path': which(compiler), + 'intel_mpi_root': i_mpi_root, + 'cpath': os.getenv('CPATH'), + 'intel_license_file': os.getenv('INTEL_LICENSE_FILE', os.getenv('LM_LICENSE_FILE')), + 'wrapper_dir': wrapper_dir, + } + wrapper = os.path.join(wrapper_dir, compiler) + write_file(wrapper, wrapper_txt) + if self.dry_run: + self.dry_run_msg("Wrapper for '%s' was put in place: %s", compiler, wrapper) + else: + adjust_permissions(wrapper, stat.S_IXUSR) + self.log.info("Using wrapper script for '%s': %s", compiler, which(compiler)) + + def verify_system_libs_info(self): + """Verifies that the stored info about $TF_SYSTEM_LIBS is complete""" + available_libs_src = set(get_system_libs_from_tf(self.start_dir)) + available_libs_eb = set(split_tf_libs_txt(get_system_libs_for_version(self.version, as_valid_libs=True))) + # If available_libs_eb is empty it is not an error e.g. it is not worth trying to make all old ECs work + # So we just log it so it can be verified manually if required + if not available_libs_eb: + self.log.warning('TensorFlow EasyBlock does not have any information for $TF_SYSTEM_LIBS stored. ' + + 'This means most dependencies will be downloaded at build time by TensorFlow.\n' + + 'Available $TF_SYSTEM_LIBS according to the TensorFlow sources: %s', + sorted(available_libs_src)) + return + # Those 2 sets should be equal. We determine the differences here to report better errors + missing_libs = available_libs_src - available_libs_eb + unknown_libs = available_libs_eb - available_libs_src + if missing_libs or unknown_libs: + if not available_libs_src: + msg = 'Failed to determine available $TF_SYSTEM_LIBS from the source' + else: + msg = 'Values for $TF_SYSTEM_LIBS in the TensorFlow EasyBlock are incomplete.\n' + if missing_libs: + # Libs available according to TF sources but not listed in this EasyBlock + msg += 'Missing entries for $TF_SYSTEM_LIBS: %s\n' % missing_libs + if unknown_libs: + # Libs listed in this EasyBlock but not present in the TF sources -> Removed? + msg += 'Unrecognized entries for $TF_SYSTEM_LIBS: %s\n' % unknown_libs + msg += 'The EasyBlock needs to be updated to fully work with TensorFlow version %s' % self.version + if build_option('strict') == run.ERROR: + raise EasyBuildError(msg) + else: + print_warning(msg) + + def get_system_libs(self): + """ + Get list of dependencies for $TF_SYSTEM_LIBS + + Returns a tuple of lists: $TF_SYSTEM_LIBS names, include paths, library paths + """ + dependency_mapping, python_mapping = get_system_libs_for_version(self.version) + # Some TF dependencies require both a (usually C++) dependency and a Python package + deps_with_python_pkg = set(tf_name for tf_name in dependency_mapping.values() + if tf_name in python_mapping.values()) + + system_libs = [] + cpaths = [] + libpaths = [] + ignored_system_deps = [] + + # Check direct dependencies + dep_names = set(dep['name'] for dep in self.cfg.dependencies()) + for dep_name, tf_name in sorted(dependency_mapping.items(), key=lambda i: i[0].lower()): + if dep_name in dep_names: + if tf_name in deps_with_python_pkg: + pkg_name = next(cur_pkg_name for cur_pkg_name, cur_tf_name in python_mapping.items() + if cur_tf_name == tf_name) + # Simply ignore. Error reporting is done in the other loop + if not self.python_pkg_exists(pkg_name): + continue + system_libs.append(tf_name) + # When using cURL (which uses the system OpenSSL), we also need to use "boringssl" + # which essentially resolves to using OpenSSL as the API and library names are compatible + if dep_name == 'cURL': + system_libs.append('boringssl') + sw_root = get_software_root(dep_name) + # Dependency might be filtered via --filter-deps. In that case assume globally installed version + if not sw_root: + continue + incpath = os.path.join(sw_root, 'include') + if os.path.exists(incpath): + cpaths.append(incpath) + if dep_name == 'JsonCpp' and LooseVersion(self.version) < LooseVersion('2.3'): + # Need to add the install prefix or patch the sources: + # https://github.com/tensorflow/tensorflow/issues/42303 + cpaths.append(sw_root) + if dep_name == 'protobuf': + if LooseVersion(self.version) < LooseVersion('2.4'): + # Need to set INCLUDEDIR as TF wants to symlink files from there: + # https://github.com/tensorflow/tensorflow/issues/37835 + env.setvar('INCLUDEDIR', incpath) + else: + env.setvar('PROTOBUF_INCLUDE_PATH', incpath) + libpath = get_software_libdir(dep_name) + if libpath: + libpaths.append(os.path.join(sw_root, libpath)) + else: + ignored_system_deps.append('%s (Dependency %s)' % (tf_name, dep_name)) + + for pkg_name, tf_name in sorted(python_mapping.items(), key=lambda i: i[0].lower()): + if self.python_pkg_exists(pkg_name): + # If it is in deps_with_python_pkg we already added it + if tf_name not in deps_with_python_pkg: + system_libs.append(tf_name) + else: + ignored_system_deps.append('%s (Python package %s)' % (tf_name, pkg_name)) + + # If we use OpenSSL (potentially as a wrapper) somewhere in the chain we must tell TF to use it too + openssl_root = get_software_root('OpenSSL') + if openssl_root: + if 'boringssl' not in system_libs: + system_libs.append('boringssl') + incpath = os.path.join(openssl_root, 'include') + if os.path.exists(incpath): + cpaths.append(incpath) + libpath = get_software_libdir(dep_name) + if libpath: + libpaths.append(os.path.join(openssl_root, libpath)) + + if ignored_system_deps: + print_warning('%d TensorFlow dependencies have not been resolved by EasyBuild. Check the log for details.', + len(ignored_system_deps)) + self.log.warning('For the following $TF_SYSTEM_LIBS dependencies TensorFlow will download a copy ' + + 'because an EB dependency was not found: \n%s\n' + + 'EC Dependencies: %s\n' + + 'Installed Python packages: %s\n', + ', '.join(ignored_system_deps), + ', '.join(dep_names), + ', '.join(self.get_installed_python_packages())) + else: + self.log.info("All known TensorFlow $TF_SYSTEM_LIBS dependencies resolved via EasyBuild!") + + return system_libs, cpaths, libpaths + + def setup_build_dirs(self): + """Setup temporary build directories""" + # This is either the builddir (for standalone builds) or the extension sub folder when TF is an extension + # Either way this folder only contains the folder with the sources and hence we can use fixed names + # for the subfolders + parent_dir = os.path.dirname(self.start_dir) + # Path where Bazel will store its output, build artefacts etc. + self.output_user_root_dir = os.path.join(parent_dir, 'bazel-root') + # Folder where wrapper binaries can be placed, where required. TODO: Replace by --action_env cmds + self.wrapper_dir = os.path.join(parent_dir, 'wrapper_bin') + + def configure_step(self): + """Custom configuration procedure for TensorFlow.""" + + # Bazel seems to not be able to handle a large amount of parallel jobs, e.g. 176 on some Power machines, + # and will hang forever building the TensorFlow package. + # So limit to something high but still reasonable while allowing ECs to overwrite it + if self.cfg['maxparallel'] is None: + # Seemingly Bazel around 3.x got better, so double the max there + bazel_max = 64 if get_bazel_version() < '3.0.0' else 128 + self.cfg['parallel'] = min(self.cfg['parallel'], bazel_max) + + binutils_root = get_software_root('binutils') + if not binutils_root: + raise EasyBuildError("Failed to determine installation prefix for binutils") + self.binutils_bin_path = os.path.join(binutils_root, 'bin') + + # filter out paths from CPATH and LIBRARY_PATH. This is needed since bazel will pull some dependencies that + # might conflict with dependencies on the system and/or installed with EB. For example: protobuf + path_filter = self.cfg['path_filter'] + if path_filter: + self.log.info("Filtering $CPATH and $LIBRARY_PATH with path filter %s", path_filter) + for var in ['CPATH', 'LIBRARY_PATH']: + path = os.getenv(var).split(os.pathsep) + self.log.info("$%s old value was %s" % (var, path)) + filtered_path = os.pathsep.join([p for fil in path_filter for p in path if fil not in p]) + env.setvar(var, filtered_path) + + self.setup_build_dirs() + + use_wrapper = False + if self.toolchain.comp_family() == toolchain.INTELCOMP: + # put wrappers for Intel C/C++ compilers in place (required to make sure license server is found) + # cfr. https://github.com/bazelbuild/bazel/issues/663 + for compiler in ('icc', 'icpc'): + self.write_wrapper(self.wrapper_dir, compiler, 'NOT-USED-WITH-ICC') + use_wrapper = True + + use_mpi = self.toolchain.options.get('usempi', False) + mpi_home = '' + if use_mpi: + impi_root = get_software_root('impi') + if impi_root: + # put wrappers for Intel MPI compiler wrappers in place + # (required to make sure license server and I_MPI_ROOT are found) + for compiler in (os.getenv('MPICC'), os.getenv('MPICXX')): + self.write_wrapper(self.wrapper_dir, compiler, os.getenv('I_MPI_ROOT')) + use_wrapper = True + # set correct value for MPI_HOME + mpi_home = os.path.join(impi_root, 'intel64') + else: + self.log.debug("MPI module name: %s", self.toolchain.MPI_MODULE_NAME[0]) + mpi_home = get_software_root(self.toolchain.MPI_MODULE_NAME[0]) + + self.log.debug("Derived value for MPI_HOME: %s", mpi_home) + + if use_wrapper: + env.setvar('PATH', os.pathsep.join([self.wrapper_dir, os.getenv('PATH')])) + + self.prepare_python() + + self.verify_system_libs_info() + self.system_libs_info = self.get_system_libs() + + # Options passed to the target (build/test), e.g. --config arguments + self.target_opts = [] + + cuda_root = get_software_root('CUDA') + cudnn_root = get_software_root('cuDNN') + opencl_root = get_software_root('OpenCL') + tensorrt_root = get_software_root('TensorRT') + nccl_root = get_software_root('NCCL') + + self._with_cuda = bool(cuda_root) + + config_env_vars = { + 'CC_OPT_FLAGS': os.getenv('CXXFLAGS'), + 'MPI_HOME': mpi_home, + 'PYTHON_BIN_PATH': self.python_cmd, + 'PYTHON_LIB_PATH': os.path.join(self.installdir, self.pylibdir), + 'TF_CUDA_CLANG': '0', + 'TF_DOWNLOAD_CLANG': '0', # Still experimental in TF 2.1.0 + 'TF_ENABLE_XLA': ('0', '1')[bool(self.cfg['with_xla'])], # XLA JIT support + 'TF_NEED_CUDA': ('0', '1')[self._with_cuda], + 'TF_NEED_OPENCL': ('0', '1')[bool(opencl_root)], + 'TF_NEED_ROCM': '0', + 'TF_NEED_TENSORRT': '0', + 'TF_SET_ANDROID_WORKSPACE': '0', + 'TF_SYSTEM_LIBS': ','.join(self.system_libs_info[0]), + } + if LooseVersion(self.version) < LooseVersion('1.10'): + config_env_vars['TF_NEED_S3'] = '0' # Renamed to TF_NEED_AWS in 1.9.0-rc2 and 1.10, not 1.9.0 + # Options removed in 1.12.0 + if LooseVersion(self.version) < LooseVersion('1.12'): + self.handle_jemalloc() + config_env_vars.update({ + 'TF_NEED_AWS': '0', # Amazon AWS Platform + 'TF_NEED_GCP': '0', # Google Cloud Platform + 'TF_NEED_GDR': '0', + 'TF_NEED_HDFS': '0', # Hadoop File System + 'TF_NEED_JEMALLOC': ('0', '1')[self.cfg['with_jemalloc']], + 'TF_NEED_KAFKA': '0', # Amazon Kafka Platform + 'TF_NEED_VERBS': '0', + }) + elif self.cfg['with_jemalloc'] is True: + print_warning('Jemalloc is not supported in TensorFlow %s, the EC option with_jemalloc has no effect', + self.version) + # Disable support of some features via config switch introduced in 1.12.1 + if LooseVersion(self.version) >= LooseVersion('1.12.1'): + self.target_opts += ['--config=noaws', '--config=nogcp', '--config=nohdfs'] + # Removed in 2.1 + if LooseVersion(self.version) < LooseVersion('2.1'): + self.target_opts.append('--config=nokafka') + # MPI support removed in 2.1 + if LooseVersion(self.version) < LooseVersion('2.1'): + config_env_vars['TF_NEED_MPI'] = ('0', '1')[bool(use_mpi)] + # SYCL support removed in 2.4 + if LooseVersion(self.version) < LooseVersion('2.4'): + config_env_vars['TF_NEED_OPENCL_SYCL'] = '0' + + if self._with_cuda: + cuda_version = get_software_version('CUDA') + cuda_maj_min_ver = '.'.join(cuda_version.split('.')[:2]) + + # $GCC_HOST_COMPILER_PATH should be set to path of the actual compiler (not the MPI compiler wrapper) + if use_mpi: + compiler_path = which(os.getenv('CC_SEQ')) + else: + compiler_path = which(os.getenv('CC')) + + # list of CUDA compute capabilities to use can be specifed in two ways (where (2) overrules (1)): + # (1) in the easyconfig file, via the custom cuda_compute_capabilities; + # (2) in the EasyBuild configuration, via --cuda-compute-capabilities configuration option; + ec_cuda_cc = self.cfg['cuda_compute_capabilities'] + cfg_cuda_cc = build_option('cuda_compute_capabilities') + cuda_cc = cfg_cuda_cc or ec_cuda_cc or [] + + if cfg_cuda_cc and ec_cuda_cc: + warning_msg = "cuda_compute_capabilities specified in easyconfig (%s) are overruled by " % ec_cuda_cc + warning_msg += "--cuda-compute-capabilities configuration option (%s)" % cfg_cuda_cc + print_warning(warning_msg) + elif not cuda_cc: + warning_msg = "No CUDA compute capabilities specified, so using TensorFlow default " + warning_msg += "(which may not be optimal for your system).\nYou should use " + warning_msg += "the --cuda-compute-capabilities configuration option or the cuda_compute_capabilities " + warning_msg += "easyconfig parameter to specify a list of CUDA compute capabilities to compile with." + print_warning(warning_msg) + + # TensorFlow 1.12.1 requires compute capability >= 3.5 + # see https://github.com/tensorflow/tensorflow/pull/25767 + if LooseVersion(self.version) >= LooseVersion('1.12.1'): + faulty_comp_caps = [x for x in cuda_cc if LooseVersion(x) < LooseVersion('3.5')] + if faulty_comp_caps: + error_msg = "TensorFlow >= 1.12.1 requires CUDA compute capabilities >= 3.5, " + error_msg += "found one or more older ones: %s" + raise EasyBuildError(error_msg, ', '.join(faulty_comp_caps)) + + if cuda_cc: + self.log.info("Compiling with specified list of CUDA compute capabilities: %s", ', '.join(cuda_cc)) + + config_env_vars.update({ + 'CUDA_TOOLKIT_PATH': cuda_root, + 'GCC_HOST_COMPILER_PATH': compiler_path, + # This is the binutils bin folder: https://github.com/tensorflow/tensorflow/issues/39263 + 'GCC_HOST_COMPILER_PREFIX': self.binutils_bin_path, + 'TF_CUDA_COMPUTE_CAPABILITIES': ','.join(cuda_cc), + 'TF_CUDA_VERSION': cuda_maj_min_ver, + }) + + # for recent TensorFlow versions, $TF_CUDA_PATHS and $TF_CUBLAS_VERSION must also be set + if LooseVersion(self.version) >= LooseVersion('1.14'): + + # figure out correct major/minor version for CUBLAS from cublas_api.h + cublas_api_header_glob_pattern = os.path.join(cuda_root, 'targets', '*', 'include', 'cublas_api.h') + matches = glob.glob(cublas_api_header_glob_pattern) + if len(matches) == 1: + cublas_api_header_path = matches[0] + cublas_api_header_txt = read_file(cublas_api_header_path) + else: + raise EasyBuildError("Failed to isolate path to cublas_api.h: %s", matches) + + cublas_ver_parts = [] + for key in ['CUBLAS_VER_MAJOR', 'CUBLAS_VER_MINOR', 'CUBLAS_VER_PATCH']: + regex = re.compile("^#define %s ([0-9]+)" % key, re.M) + res = regex.search(cublas_api_header_txt) + if res: + cublas_ver_parts.append(res.group(1)) + else: + raise EasyBuildError("Failed to find pattern '%s' in %s", regex.pattern, cublas_api_header_path) + + config_env_vars.update({ + 'TF_CUDA_PATHS': cuda_root, + 'TF_CUBLAS_VERSION': '.'.join(cublas_ver_parts), + }) + + if cudnn_root: + cudnn_version = get_software_version('cuDNN') + cudnn_maj_min_patch_ver = '.'.join(cudnn_version.split('.')[:3]) + + config_env_vars.update({ + 'CUDNN_INSTALL_PATH': cudnn_root, + 'TF_CUDNN_VERSION': cudnn_maj_min_patch_ver, + }) + else: + raise EasyBuildError("TensorFlow has a strict dependency on cuDNN if CUDA is enabled") + if nccl_root: + nccl_version = get_software_version('NCCL') + # Ignore the PKG_REVISION identifier if it exists (i.e., report 2.4.6 for 2.4.6-1 or 2.4.6-2) + nccl_version = nccl_version.split('-')[0] + + if nccl_version == "default": + nccl_major = '' + nccl_minor = '' + nccl_patch = '' + with open(nccl_root+'/include/nccl.h', 'r') as nccl_header: + for line in nccl_header.readlines(): + if '#define NCCL_MAJOR' in line: + nccl_major = line[line.rfind(' ')+1:-1] + if '#define NCCL_MINOR' in line: + nccl_minor = line[line.rfind(' ')+1:-1] + if '#define NCCL_PATCH' in line: + nccl_patch = line[line.rfind(' ')+1:-1] + if nccl_major and nccl_minor and nccl_patch != '': + nccl_version = nccl_major + '.' + nccl_minor + '.' + nccl_patch + config_env_vars.update({ + 'NCCL_INSTALL_PATH': nccl_root, + }) + else: + nccl_version = '1.3' # Use simple downloadable version + config_env_vars.update({ + 'TF_NCCL_VERSION': nccl_version, + }) + if tensorrt_root: + tensorrt_version = get_software_version('TensorRT') + config_env_vars.update({ + 'TF_NEED_TENSORRT': '1', + 'TENSORRT_INSTALL_PATH': tensorrt_root, + 'TF_TENSORRT_VERSION': tensorrt_version, + }) + + configure_py_contents = read_file('configure.py') + for key, val in sorted(config_env_vars.items()): + if key.startswith('TF_') and key not in configure_py_contents: + self.log.warn('Did not find %s option in configure.py. Setting might not have any effect', key) + env.setvar(key, val) + + # configure.py (called by configure script) already calls bazel to determine the bazel version + # Since 2.3.0 `bazel --version` is used which doesn't extract bazel, prior it did + # Hence make sure it doesn't extract into $HOME/.cache/bazel + if LooseVersion(self.version) < LooseVersion('2.3.0'): + regex_subs = [(r"('bazel', '--batch')", + r"\1, '--output_user_root=%s'" % self.output_user_root_dir)] + apply_regex_substitutions('configure.py', regex_subs) + + cmd = self.cfg['preconfigopts'] + './configure ' + self.cfg['configopts'] + run_cmd(cmd, log_all=True, simple=True) + + def patch_crosstool_files(self): + """Patches the CROSSTOOL files to include EasyBuild provided compiler paths""" + inc_paths, lib_paths = [], [] + + gcc_root = get_software_root('GCCcore') or get_software_root('GCC') + if gcc_root: + gcc_lib64 = os.path.join(gcc_root, 'lib64') + lib_paths.append(gcc_lib64) + + gcc_ver = get_software_version('GCCcore') or get_software_version('GCC') + + # figure out location of GCC include files + # make sure we don't pick up the nvptx-none directory by looking for a specific include file + res = glob.glob(os.path.join(gcc_root, 'lib', 'gcc', '*', gcc_ver, 'include', 'immintrin.h')) + if res and len(res) == 1: + gcc_lib_inc = os.path.dirname(res[0]) + inc_paths.append(gcc_lib_inc) + else: + raise EasyBuildError("Failed to pinpoint location of GCC include files: %s", res) + + # make sure include-fixed directory is where we expect it to be + gcc_lib_inc_fixed = os.path.join(os.path.dirname(gcc_lib_inc), 'include-fixed') + if os.path.exists(gcc_lib_inc_fixed): + inc_paths.append(gcc_lib_inc_fixed) + else: + self.log.info("Derived directory %s does not exist, so discarding it", gcc_lib_inc_fixed) + + # also check on location of include/c++/<gcc version> directory + gcc_cplusplus_inc = os.path.join(gcc_root, 'include', 'c++', gcc_ver) + if os.path.exists(gcc_cplusplus_inc): + inc_paths.append(gcc_cplusplus_inc) + else: + raise EasyBuildError("Derived directory %s does not exist", gcc_cplusplus_inc) + else: + raise EasyBuildError("Failed to determine installation prefix for GCC") + + cuda_root = get_software_root('CUDA') + if cuda_root: + inc_paths.append(os.path.join(cuda_root, 'include')) + lib_paths.append(os.path.join(cuda_root, 'lib64')) + + # fix hardcoded locations of compilers & tools + cxx_inc_dirs = ['cxx_builtin_include_directory: "%s"' % resolve_path(p) for p in inc_paths] + cxx_inc_dirs += ['cxx_builtin_include_directory: "%s"' % p for p in inc_paths] + regex_subs = [ + (r'-B/usr/bin/', '-B%s %s' % (self.binutils_bin_path, ' '.join('-L%s/' % p for p in lib_paths))), + (r'(cxx_builtin_include_directory:).*', ''), + (r'^toolchain {', 'toolchain {\n' + '\n'.join(cxx_inc_dirs)), + ] + for tool in ['ar', 'cpp', 'dwp', 'gcc', 'gcov', 'ld', 'nm', 'objcopy', 'objdump', 'strip']: + path = which(tool) + if path: + regex_subs.append((os.path.join('/usr', 'bin', tool), path)) + else: + raise EasyBuildError("Failed to determine path to '%s'", tool) + + # -fPIE/-pie and -fPIC are not compatible, so patch out hardcoded occurences of -fPIE/-pie if -fPIC is used + if self.toolchain.options.get('pic', None): + regex_subs.extend([('-fPIE', '-fPIC'), ('"-pie"', '"-fPIC"')]) + + # patch all CROSSTOOL* scripts to fix hardcoding of locations of binutils/GCC binaries + for path, dirnames, filenames in os.walk(os.getcwd()): + for filename in filenames: + if filename.startswith('CROSSTOOL'): + full_path = os.path.join(path, filename) + self.log.info("Patching %s", full_path) + apply_regex_substitutions(full_path, regex_subs) + + def build_step(self): + """Custom build procedure for TensorFlow.""" + + bazel_version = get_bazel_version() + + # pre-create target installation directory + mkdir(os.path.join(self.installdir, self.pylibdir), parents=True) + + # This seems to be no longer required since at least 2.0, likely also for older versions + if LooseVersion(self.version) < LooseVersion('2.0'): + self.patch_crosstool_files() + + # Options passed to the bazel command + self.bazel_opts = [ + '--output_user_root=%s' % self.output_user_root_dir, + ] + # Increase time to wait for bazel to start, available since 4.0+ + if bazel_version >= '4.0.0': + self.bazel_opts.append('--local_startup_timeout_secs=300') # 5min + + # Environment variables and values needed for Bazel actions. + action_env = {} + # A value of None is interpreted as using the invoking environments value + INHERIT = None # For better readability + + jvm_max_memory = self.cfg['jvm_max_memory'] + if jvm_max_memory: + jvm_startup_memory = min(512, int(jvm_max_memory)) + self.bazel_opts.extend([ + '--host_jvm_args=-Xms%sm' % jvm_startup_memory, + '--host_jvm_args=-Xmx%sm' % jvm_max_memory + ]) + + if self.toolchain.options.get('debug', None): + self.target_opts.append('--strip=never') + self.target_opts.append('--compilation_mode=dbg') + self.target_opts.append('--copt="-Og"') + else: + # build with optimization enabled + # cfr. https://docs.bazel.build/versions/master/user-manual.html#flag--compilation_mode + self.target_opts.append('--compilation_mode=opt') + + # select 'opt' config section (this is *not* the same as --compilation_mode=opt!) + # https://docs.bazel.build/versions/master/user-manual.html#flag--config + self.target_opts.append('--config=opt') + + # make Bazel print full command line + make it verbose on failures + # https://docs.bazel.build/versions/master/user-manual.html#flag--subcommands + # https://docs.bazel.build/versions/master/user-manual.html#flag--verbose_failures + self.target_opts.extend(['--subcommands', '--verbose_failures']) + + self.target_opts.append('--jobs=%s' % self.cfg['parallel']) + + if self.toolchain.options.get('pic', None): + self.target_opts.append('--copt="-fPIC"') + + # include install location of Python packages in $PYTHONPATH, + # and specify that value of $PYTHONPATH should be passed down into Bazel build environment; + # this is required to make sure that Python packages included as extensions are found at build time; + # see also https://github.com/tensorflow/tensorflow/issues/22395 + pythonpath = os.getenv('PYTHONPATH', '') + env.setvar('PYTHONPATH', os.pathsep.join([os.path.join(self.installdir, self.pylibdir), pythonpath])) + + # Make TF find our modules. LD_LIBRARY_PATH gets automatically added by configure.py + cpaths, libpaths = self.system_libs_info[1:] + if cpaths: + action_env['CPATH'] = ':'.join(cpaths) + if libpaths: + action_env['LIBRARY_PATH'] = ':'.join(libpaths) + action_env['PYTHONPATH'] = INHERIT + # Also export $EBPYTHONPREFIXES to handle the multi-deps python setup + # See https://github.com/easybuilders/easybuild-easyblocks/pull/1664 + if 'EBPYTHONPREFIXES' in os.environ: + action_env['EBPYTHONPREFIXES'] = INHERIT + + # Ignore user environment for Python + action_env['PYTHONNOUSERSITE'] = '1' + + # TF 2 (final) sets this in configure + if LooseVersion(self.version) < LooseVersion('2.0'): + if self._with_cuda: + self.target_opts.append('--config=cuda') + + # note: using --config=mkl results in a significantly different build, with a different + # threading model (which may lead to thread oversubscription and significant performance loss, + # see https://github.com/easybuilders/easybuild-easyblocks/issues/2577) and different + # runtime behavior w.r.t. GPU vs CPU execution of functions like tf.matmul + # (see https://github.com/easybuilders/easybuild-easyconfigs/issues/14120), + # so make sure you really know you want to use this! + + # auto-enable use of MKL-DNN/oneDNN and --config=mkl when possible if with_mkl_dnn is left unspecified; + # only do this for TensorFlow versions older than 2.4.0, since more recent versions + # oneDNN is used automatically for x86_64 systems (and mkl-dnn is no longer a dependency); + if self.cfg['with_mkl_dnn'] is None and LooseVersion(self.version) < LooseVersion('2.4.0'): + cpu_arch = get_cpu_architecture() + if cpu_arch == X86_64: + # Supported on x86 since forever + self.cfg['with_mkl_dnn'] = True + self.log.info("Auto-enabled use of MKL-DNN on %s CPU architecture", cpu_arch) + else: + self.log.info("Not enabling use of MKL-DNN on %s CPU architecture", cpu_arch) + + # if mkl-dnn is listed as a dependency it is used + mkl_root = get_software_root('mkl-dnn') + if mkl_root: + self.target_opts.append('--config=mkl') + env.setvar('TF_MKL_ROOT', mkl_root) + elif self.cfg['with_mkl_dnn']: + # this makes TensorFlow use mkl-dnn (cfr. https://github.com/01org/mkl-dnn), + # and download it if needed + self.target_opts.append('--config=mkl') + + # Use the same configuration (i.e. environment) for compiling and using host tools + # This means that our action_envs are (almost) always passed + # Fully removed in Bazel 6.0 and limited effect after at least 3.7 (see --host_action_env) + if bazel_version < '6.0.0': + self.target_opts.append('--distinct_host_configuration=false') + + for key, value in sorted(action_env.items()): + option = key + if value is not None: + option += "='%s'" % value + + self.target_opts.append('--action_env=' + option) + if bazel_version >= '3.7.0': + # Since Bazel 3.7 action_env only applies to the "target" environment, not the "host" environment + # As we are not cross-compiling we need both be the same -> Duplicate the setting to host_action_env + # See https://github.com/bazelbuild/bazel/commit/a463d9095386b22c121d20957222dbb44caef7d4 + self.target_opts.append('--host_action_env=' + option) + + # Compose final command + cmd = ( + [self.cfg['prebuildopts']] + + ['bazel'] + + self.bazel_opts + + ['build'] + + self.target_opts + + [self.cfg['buildopts']] + # specify target of the build command as last argument + + ['//tensorflow/tools/pip_package:build_pip_package'] + ) + + run_cmd(' '.join(cmd), log_all=True, simple=True, log_ok=True) + + # run generated 'build_pip_package' script to build the .whl + cmd = "bazel-bin/tensorflow/tools/pip_package/build_pip_package %s" % self.builddir + run_cmd(cmd, log_all=True, simple=True, log_ok=True) + + def test_step(self): + """Run TensorFlow unit tests""" + # IMPORTANT: This code allows experiments with running TF tests but may change + test_targets = self.cfg['test_targets'] + if not test_targets: + self.log.info('No targets selected for tests. Set e.g. test_targets = ["//tensorflow/python/..."] ' + 'to run TensorFlow tests.') + return + # Allow a string as the test_targets (useful for C&P testing from TF sources) + if not isinstance(test_targets, list): + test_targets = test_targets.split(' ') + + test_opts = self.target_opts + test_opts.append('--test_output=errors') # (Additionally) show logs from failed tests + test_opts.append('--build_tests_only') # Don't build tests which won't be executed + + # determine number of cores/GPUs to use for tests + max_num_test_jobs = int(self.cfg['test_max_parallel'] or self.cfg['parallel']) + if self._with_cuda: + if not which('nvidia-smi', on_error=IGNORE): + print_warning('Could not find nvidia-smi. Assuming a system without GPUs and skipping GPU tests!') + num_gpus_to_use = 0 + elif os.environ.get('CUDA_VISIBLE_DEVICES') == '-1': + print_warning('GPUs explicitely disabled via CUDA_VISIBLE_DEVICES. Skipping GPU tests!') + num_gpus_to_use = 0 + else: + # determine number of available GPUs via nvidia-smi command, fall back to just 1 GPU + # Note: Disable logging to also disable the error handling in run_cmd and do it explicitly below + (out, ec) = run_cmd("nvidia-smi --list-gpus", log_ok=False, log_all=False, regexp=False) + try: + if ec != 0: + raise RuntimeError("nvidia-smi returned exit code %s with output:\n%s" % (ec, out)) + else: + self.log.info('nvidia-smi succeeded with output:\n%s' % out) + gpu_ct = sum(line.startswith('GPU ') for line in out.strip().split('\n')) + except (RuntimeError, ValueError) as err: + self.log.warning("Failed to get the number of GPUs on this system: %s", err) + gpu_ct = 0 + + if gpu_ct == 0: + print_warning('No GPUs found. Skipping GPU tests!') + + num_gpus_to_use = min(max_num_test_jobs, gpu_ct) + + # Can (likely) only run 1 test per GPU but don't need to limit CPU tests + num_test_jobs = { + CPU_DEVICE: max_num_test_jobs, + GPU_DEVICE: num_gpus_to_use, + } + else: + num_test_jobs = { + CPU_DEVICE: max_num_test_jobs, + GPU_DEVICE: 0, + } + + cfg_testopts = { + CPU_DEVICE: self.cfg['testopts'], + GPU_DEVICE: self.cfg['testopts_gpu'], + } + + devices = [CPU_DEVICE] + # Skip GPU tests if not build with CUDA or no test jobs set (e.g. due to no GPUs available) + if self._with_cuda and num_test_jobs[GPU_DEVICE]: + devices.append(GPU_DEVICE) + + for device in devices: + # Determine tests to run + test_tag_filters_name = 'test_tag_filters_' + device + test_tag_filters = self.cfg[test_tag_filters_name] + if not test_tag_filters: + self.log.info('Skipping %s test because %s is not set', device, test_tag_filters_name) + continue + else: + self.log.info('Starting %s test', device) + + current_test_opts = test_opts[:] + current_test_opts.append('--local_test_jobs=%s' % num_test_jobs[device]) + + # Add both build and test tag filters as done by the TF CI scripts + current_test_opts.extend("--%s_tag_filters='%s'" % (step, test_tag_filters) for step in ('test', 'build')) + + # Disable all GPUs for the CPU tests, by setting $CUDA_VISIBLE_DEVICES to -1, + # otherwise TensorFlow will still use GPUs and fail. + # Only tests explicitely marked with the 'gpu' tag can run with GPUs visible; + # see https://github.com/tensorflow/tensorflow/issues/45664 + if device == CPU_DEVICE: + current_test_opts.append("--test_env=CUDA_VISIBLE_DEVICES='-1'") + else: + # Propagate those environment variables to the GPU tests if they are set + important_cuda_env_vars = ( + 'CUDA_CACHE_DISABLE', + 'CUDA_CACHE_MAXSIZE', + 'CUDA_CACHE_PATH', + 'CUDA_FORCE_PTX_JIT', + 'CUDA_DISABLE_PTX_JIT' + ) + current_test_opts.extend( + '--test_env=' + var_name + for var_name in important_cuda_env_vars + if var_name in os.environ + ) + + # These are used by the `parallel_gpu_execute` helper script from TF + current_test_opts.append('--test_env=TF_GPU_COUNT=%s' % num_test_jobs[GPU_DEVICE]) + current_test_opts.append('--test_env=TF_TESTS_PER_GPU=1') + + # Append user specified options last + current_test_opts.append(cfg_testopts[device]) + + # Compose final command + cmd = ' '.join( + [self.cfg['pretestopts']] + + ['bazel'] + + self.bazel_opts + + ['test'] + + current_test_opts + + ['--'] + # specify targets to test as last argument + + test_targets + ) + + stdouterr, ec = run_cmd(cmd, log_ok=False, simple=False) + if ec: + fail_msg = 'Tests on %s (cmd: %s) failed with exit code %s and output:\n%s' % ( + device, cmd, ec, stdouterr) + self.log.warning(fail_msg) + # Try to enhance error message + failed_tests = [] + failed_test_logs = dict() + # Bazel outputs failed tests like "//tensorflow/c:kernels_test FAILED in[...]" + for match in re.finditer(r'^(//[a-zA-Z_/:]+)\s+FAILED', stdouterr, re.MULTILINE): + test_name = match.group(1) + failed_tests.append(test_name) + # Logs are in a folder named after the test, e.g. tensorflow/c/kernels_test + test_folder = test_name[2:].replace(':', '/') + # Example file names: + # <prefix>/k8-opt/testlogs/tensorflow/c/kernels_test/test.log + # <prefix>/k8-opt/testlogs/tensorflow/c/kernels_test/shard_1_of_4/test_attempts/attempt_1.log + test_log_re = re.compile(r'.*\n(.*\n)?\s*(/.*/testlogs/%s/(/[^/]*)?test.log)' % test_folder) + log_match = test_log_re.match(stdouterr, match.end()) + if log_match: + failed_test_logs[test_name] = log_match.group(2) + # When TF logs are found enhance the below error by additionally logging the details about failed tests + for test_name, log_path in failed_test_logs.items(): + if os.path.exists(log_path): + self.log.warning('Test %s failed with output\n%s', test_name, + read_file(log_path, log_error=False)) + if failed_tests: + failed_tests = sorted(set(failed_tests)) # Make unique to not count retries + fail_msg = 'At least %s %s tests failed:\n%s' % ( + len(failed_tests), device, ', '.join(failed_tests)) + self.report_test_failure(fail_msg) + else: + self.log.info('Tests on %s succeeded with output:\n%s', device, stdouterr) + + def install_step(self): + """Custom install procedure for TensorFlow.""" + # find .whl file that was built, and install it using 'pip install' + if ("-rc" in self.version): + whl_version = self.version.replace("-rc", "rc") + else: + whl_version = self.version + + whl_paths = glob.glob(os.path.join(self.builddir, 'tensorflow-%s-*.whl' % whl_version)) + if not whl_paths: + whl_paths = glob.glob(os.path.join(self.builddir, 'tensorflow-*.whl')) + if len(whl_paths) == 1: + # --ignore-installed is required to ensure *this* wheel is installed + cmd = "pip install --ignore-installed --prefix=%s %s" % (self.installdir, whl_paths[0]) + + # if extensions are listed, assume they will provide all required dependencies, + # so use --no-deps to prevent pip from downloading & installing them + if self.cfg['exts_list']: + cmd += ' --no-deps' + + run_cmd(cmd, log_all=True, simple=True, log_ok=True) + else: + raise EasyBuildError("Failed to isolate built .whl in %s: %s", whl_paths, self.builddir) + + # Fix for https://github.com/tensorflow/tensorflow/issues/6341 on Python < 3.3 + # If the site-packages/google/__init__.py file is missing, make it an empty file. + # This fixes the "No module named google.protobuf" error that sometimes shows up during sanity_check + # For Python >= 3.3 the logic is reversed: The __init__.py must not exist. + # See e.g. http://python-notes.curiousefficiency.org/en/latest/python_concepts/import_traps.html + google_protobuf_dir = os.path.join(self.installdir, self.pylibdir, 'google', 'protobuf') + google_init_file = os.path.join(self.installdir, self.pylibdir, 'google', '__init__.py') + if LooseVersion(det_python_version(self.python_cmd)) < LooseVersion('3.3'): + if os.path.isdir(google_protobuf_dir) and not is_readable(google_init_file): + self.log.debug("Creating (empty) missing %s", google_init_file) + write_file(google_init_file, '') + else: + if os.path.exists(google_init_file): + self.log.debug("Removing %s for Python >= 3.3", google_init_file) + remove_file(google_init_file) + + # Fix cuda header paths + # This is needed for building custom TensorFlow ops + if LooseVersion(self.version) < LooseVersion('1.14'): + pyshortver = '.'.join(get_software_version('Python').split('.')[:2]) + regex_subs = [(r'#include "cuda/include/', r'#include "')] + base_path = os.path.join(self.installdir, 'lib', 'python%s' % pyshortver, 'site-packages', 'tensorflow', + 'include', 'tensorflow') + for header in glob.glob(os.path.join(base_path, 'stream_executor', 'cuda', 'cuda*.h')) + glob.glob( + os.path.join(base_path, 'core', 'util', 'cuda*.h')): + apply_regex_substitutions(header, regex_subs) + + def sanity_check_step(self): + """Custom sanity check for TensorFlow.""" + if self.python_cmd is None: + self.prepare_python() + + custom_paths = { + 'files': ['bin/tensorboard'], + 'dirs': [self.pylibdir], + } + + custom_commands = [ + "%s -c 'import tensorflow'" % self.python_cmd, + # tf_should_use importsweakref.finalize, which requires backports.weakref for Python < 3.4 + "%s -c 'from tensorflow.python.util import tf_should_use'" % self.python_cmd, + ] + res = super(EB_TensorFlow, self).sanity_check_step(custom_paths=custom_paths, custom_commands=custom_commands) + + # test installation using MNIST tutorial examples + if self.cfg['runtest']: + pythonpath = os.getenv('PYTHONPATH', '') + env.setvar('PYTHONPATH', os.pathsep.join([os.path.join(self.installdir, self.pylibdir), pythonpath])) + + mnist_pys = [] + + if LooseVersion(self.version) < LooseVersion('2.0'): + mnist_pys.append('mnist_with_summaries.py') + + if LooseVersion(self.version) < LooseVersion('1.13'): + # mnist_softmax.py was removed in TensorFlow 1.13.x + mnist_pys.append('mnist_softmax.py') + + for mnist_py in mnist_pys: + datadir = tempfile.mkdtemp(suffix='-tf-%s-data' % os.path.splitext(mnist_py)[0]) + logdir = tempfile.mkdtemp(suffix='-tf-%s-logs' % os.path.splitext(mnist_py)[0]) + mnist_py = os.path.join(self.start_dir, 'tensorflow', 'examples', 'tutorials', 'mnist', mnist_py) + cmd = "%s %s --data_dir %s --log_dir %s" % (self.python_cmd, mnist_py, datadir, logdir) + run_cmd(cmd, log_all=True, simple=True, log_ok=True) + + # run test script (if any) + if self.test_script: + # copy test script to build dir before running it, to avoid that a file named 'tensorflow.py' + # (a customized TensorFlow easyblock for example) breaks 'import tensorflow' + test_script = os.path.join(self.builddir, os.path.basename(self.test_script)) + copy_file(self.test_script, test_script) + + run_cmd("python %s" % test_script, log_all=True, simple=True, log_ok=True) + + return res diff --git a/Custom_Hooks/eb_hooks.py b/Custom_Hooks/eb_hooks.py index 618d0a26ecc170b0af990b2a1e3921a64f3359a5..3f94d59a14766fc9dc6c1d917ced2de0b5d8a711 100644 --- a/Custom_Hooks/eb_hooks.py +++ b/Custom_Hooks/eb_hooks.py @@ -66,6 +66,7 @@ VETOED_INSTALLATIONS = { 'impi', 'impi-settings', 'BullMPI', 'BullMPI-settings' ], + 'jureca_spr': ['BullMPI', 'BullMPI-settings'], 'jusuf': ['impi', 'impi-settings', 'BullMPI', 'BullMPI-settings'], 'hdfml': ['BullMPI', 'BullMPI-settings'], 'deep': ['BullMPI', 'BullMPI-settings'], diff --git a/Custom_MNS/flexible_custom_hierarchical_mns.py b/Custom_MNS/flexible_custom_hierarchical_mns.py index 8e102c05052bdc84e624c70376f2e6a451ed74a0..ab4e2e24a6db6a021a93c4e6b841b0b56ca2fbf3 100644 --- a/Custom_MNS/flexible_custom_hierarchical_mns.py +++ b/Custom_MNS/flexible_custom_hierarchical_mns.py @@ -50,7 +50,7 @@ COMP_RELEVANT_VERSIONS = { # Allow to reuse the stacks from other MPIs SWAPPABLE_MPIS = { 'BullMPI': ('OpenMPI', None), - 'impi': ('psmpi', '5.6'), + 'impi': ('psmpi', '5'), } # MPI relevant version numbers 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..816bcaaffc5cb6de487b1a1443071f3b7042a4ac --- /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-bundle', '2022.05', '', ('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..cfae237b72d033e5a0ca02c85f3eb338cdc3e283 --- /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-bundle', '2022.05', '', ('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/ArviZ/ArviZ-0.14.0-foss-2022a.eb b/Golden_Repo/a/ArviZ/ArviZ-0.14.0-foss-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..aee267ecf90ab9348058a13c3cdc835f4eed281e --- /dev/null +++ b/Golden_Repo/a/ArviZ/ArviZ-0.14.0-foss-2022a.eb @@ -0,0 +1,43 @@ +easyblock = 'PythonBundle' + +name = 'ArviZ' +version = '0.14.0' + +homepage = 'https://github.com/arviz-devs/arviz' +description = "Exploratory analysis of Bayesian models with Python" + +toolchain = {'name': 'foss', 'version': '2022a'} + + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('netcdf4-python', '1.6.1'), + ('xarray', '2022.9.0', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('matplotlib', '3.5.2', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('typing-extensions', '4.3.0'), + ('h5py', '3.7.0'), +] + +exts_list = [ + ('xarray-einstats', '0.5.1', { + 'checksums': ['45283e8b471ac54ac2957bc14e311f681b84dabc50c85959b9931e6f5cc60bcb'], + }), + ('daft', '0.1.2', { + 'checksums': ['3e77e0389ca539a5741a906bcdcaae462b68261d06b960b0c04498b695d312e5'], + }), + ('h5netcdf', '1.1.0', { + 'checksums': ['932c3b573bed7370ebfc9e802cd60f1a4da5236efb11b36eeff897324d76bf56'], + }), + (name, version, { + 'sources': ['%(namelower)s-%(version)s.tar.gz'], + 'checksums': ['a5d7148c76ab9b50fa56f2c09c71b83b1e407aa6e1aa7581b03e9a91866e91ef'], + }), +] + +download_dep_fail = True +use_pip = True + +sanity_pip_check = True + +moduleclass = 'math' diff --git a/Golden_Repo/b/BLAST+/BLAST+-2.13.0-gompi-2022a.eb b/Golden_Repo/b/BLAST+/BLAST+-2.13.0-gompi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..fb96f2a98977b6b27b07179872c94899ae66c5ee --- /dev/null +++ b/Golden_Repo/b/BLAST+/BLAST+-2.13.0-gompi-2022a.eb @@ -0,0 +1,51 @@ +# # +# EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos <fotis@cern.ch>, Kenneth Hoste (UGent) +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of +# the policy: https://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-94.html +# # + +easyblock = 'ConfigureMake' + +name = 'BLAST+' +version = '2.13.0' + +homepage = 'https://blast.ncbi.nlm.nih.gov/' +description = """Basic Local Alignment Search Tool, or BLAST, is an algorithm + for comparing primary biological sequence information, such as the amino-acid + sequences of different proteins or the nucleotides of DNA sequences.""" + +toolchain = {'name': 'gompi', 'version': '2022a'} +toolchainopts = {'usempi': True, 'pic': True} + +source_urls = ['https://ftp.ncbi.nlm.nih.gov/blast/executables/%(namelower)s/%(version)s/'] +sources = ['ncbi-blast-%(version)s+-src.tar.gz'] +checksums = ['89553714d133daf28c477f83d333794b3c62e4148408c072a1b4620e5ec4feb2'] + +dependencies = [ + ('zlib', '1.2.12'), + ('bzip2', '1.0.8'), + ('PCRE', '8.45'), + ('Boost', '1.79.0'), + ('GMP', '6.2.1'), + ('libpng', '1.6.37'), + ('libjpeg-turbo', '2.1.3'), + ('LMDB', '0.9.29'), +] + +configopts = "--with-64 --with-z=$EBROOTZLIB --with-bz2=$EBROOTBZIP2 " +configopts += "--with-pcre=$EBROOTPCRE --with-boost=$EBROOTBOOST " +configopts += "--with-gmp=$EBROOTGMP --with-png=$EBROOTLIBPNG " +configopts += "--with-jpeg=$EBROOTLIBJPEGMINTURBO --with-lmdb=$EBROOTLMDB" + +sanity_check_paths = { + 'files': ['bin/blastn', 'bin/blastp', 'bin/blastx'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/Golden_Repo/b/bokeh/bokeh-2.4.2-gcccoremkl-11.3.0-2022.1.0.eb b/Golden_Repo/b/bokeh/bokeh-2.4.2-gcccoremkl-11.3.0-2022.1.0.eb index 1400045dd75b5e533334b0014e51a5af683109b8..647e5db04ebccd6d78b931f17f96d896716a8a17 100644 --- a/Golden_Repo/b/bokeh/bokeh-2.4.2-gcccoremkl-11.3.0-2022.1.0.eb +++ b/Golden_Repo/b/bokeh/bokeh-2.4.2-gcccoremkl-11.3.0-2022.1.0.eb @@ -20,8 +20,8 @@ dependencies = [ use_pip = True exts_list = [ - ('tornado', '6.1', { - 'checksums': ['33c6e81d7bd55b468d2e793517c909b139960b6c790a60b7991b9b6b76fb9791'], + ('tornado', '6.2', { + 'checksums': ['9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13'], }), (name, version, { 'checksums': ['f0a4b53364ed3b7eb936c5cb1a4f4132369e394c7ae0a8ef420459410958033d'], diff --git a/Golden_Repo/c/CDO/CDO-2.1.1-gompi-2022a.eb b/Golden_Repo/c/CDO/CDO-2.1.1-gompi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..e4e2011e14fd567636e38c5311d78054949f20a6 --- /dev/null +++ b/Golden_Repo/c/CDO/CDO-2.1.1-gompi-2022a.eb @@ -0,0 +1,55 @@ +# updated to version 2.1.1 +# updated to version 2.0.6, based on the previous 2.0.5 version +# J. Sassmannshausen (Imperial College London, UK) +# Alex Domingo (Vrije Universiteit Brussel, BE) +# Maxim Masterov (SURF, NL) + +easyblock = 'ConfigureMake' + +name = 'CDO' +version = '2.1.1' + +homepage = 'https://code.zmaw.de/projects/cdo' +description = """CDO is a collection of command line Operators to manipulate and analyse Climate and NWP model Data.""" + +toolchain = {'name': 'gompi', 'version': '2022a'} +toolchainopts = {'cstd': 'c++17', 'usempi': True} + +source_urls = ['https://code.mpimet.mpg.de/attachments/download/27654/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['c29d084ccbda931d71198409fb2d14f99930db6e7a3654b3c0243ceb304755d9'] + +builddependencies = [ + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('cURL', '7.83.0'), + ('ecCodes', '2.27.0'), + ('FFTW', '3.3.10'), + ('HDF5', '1.12.2'), + ('libxml2', '2.9.13'), + ('netCDF', '4.9.0'), + ('PROJ', '9.0.0'), + ('Szip', '2.1.1'), + ('UDUNITS', '2.2.28'), + ('util-linux', '2.38'), +] + +# Build libcdi +configopts = "--enable-cdi-lib " + +# Use dependencies from EasyBuild +configopts += "--with-curl=$EBROOTCURL --with-eccodes=$EBROOTECCODES --with-fftw3 --with-hdf5=$EBROOTHDF5 " +configopts += "--with-netcdf=$EBROOTNETCDF --with-proj=$EBROOTPROJ --with-szlib=$EBROOTSZIP " +configopts += "--with-udunits2=$EBROOTUDUNITS --with-util-linux-uuid=$EBROOTUTILMINLINUX " + +sanity_check_paths = { + 'files': ['bin/cdo', 'lib/libcdi.a', 'lib/libcdi.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +sanity_check_commands = [ + "cdo --version 2>&1 | grep 'CDI library version : %(version)s'"] + +moduleclass = 'data' diff --git a/Golden_Repo/c/CDO/CDO-2.1.1-gpsmpi-2022a.eb b/Golden_Repo/c/CDO/CDO-2.1.1-gpsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..f26f3eab818eb893f4a5807be01ba6cdcd01bc84 --- /dev/null +++ b/Golden_Repo/c/CDO/CDO-2.1.1-gpsmpi-2022a.eb @@ -0,0 +1,55 @@ +# updated to version 2.1.1 +# updated to version 2.0.6, based on the previous 2.0.5 version +# J. Sassmannshausen (Imperial College London, UK) +# Alex Domingo (Vrije Universiteit Brussel, BE) +# Maxim Masterov (SURF, NL) + +easyblock = 'ConfigureMake' + +name = 'CDO' +version = '2.1.1' + +homepage = 'https://code.zmaw.de/projects/cdo' +description = """CDO is a collection of command line Operators to manipulate and analyse Climate and NWP model Data.""" + +toolchain = {'name': 'gpsmpi', 'version': '2022a'} +toolchainopts = {'cstd': 'c++17', 'usempi': True} + +source_urls = ['https://code.mpimet.mpg.de/attachments/download/27654/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['c29d084ccbda931d71198409fb2d14f99930db6e7a3654b3c0243ceb304755d9'] + +builddependencies = [ + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('cURL', '7.83.0'), + ('ecCodes', '2.27.0'), + ('FFTW', '3.3.10'), + ('HDF5', '1.12.2'), + ('libxml2', '2.9.13'), + ('netCDF', '4.9.0'), + ('PROJ', '9.0.0'), + ('Szip', '2.1.1'), + ('UDUNITS', '2.2.28'), + ('util-linux', '2.38'), +] + +# Build libcdi +configopts = "--enable-cdi-lib " + +# Use dependencies from EasyBuild +configopts += "--with-curl=$EBROOTCURL --with-eccodes=$EBROOTECCODES --with-fftw3 --with-hdf5=$EBROOTHDF5 " +configopts += "--with-netcdf=$EBROOTNETCDF --with-proj=$EBROOTPROJ --with-szlib=$EBROOTSZIP " +configopts += "--with-udunits2=$EBROOTUDUNITS --with-util-linux-uuid=$EBROOTUTILMINLINUX " + +sanity_check_paths = { + 'files': ['bin/cdo', 'lib/libcdi.a', 'lib/libcdi.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +sanity_check_commands = [ + "cdo --version 2>&1 | grep 'CDI library version : %(version)s'"] + +moduleclass = 'data' diff --git a/Golden_Repo/c/CDO/CDO-2.1.1-ipsmpi-2022a.eb b/Golden_Repo/c/CDO/CDO-2.1.1-ipsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..303c4f1e0d8e5b649e046fec5f76f4b28c0efcbb --- /dev/null +++ b/Golden_Repo/c/CDO/CDO-2.1.1-ipsmpi-2022a.eb @@ -0,0 +1,61 @@ +# updated to version 2.1.1 based on 2.0.6 +# updated to version 2.0.6, based on the previous 2.0.5 version +# J. Sassmannshausen (Imperial College London, UK) +# Alex Domingo (Vrije Universiteit Brussel, BE) +# Maxim Masterov (SURF, NL) + +easyblock = 'ConfigureMake' + +name = 'CDO' +version = '2.1.1' + +homepage = 'https://code.zmaw.de/projects/cdo' +description = """CDO is a collection of command line Operators to manipulate and analyse Climate and NWP model Data.""" + +toolchain = {'name': 'ipsmpi', 'version': '2022a'} +toolchainopts = {'cstd': 'c++17', 'usempi': True} + +source_urls = ['https://code.mpimet.mpg.de/attachments/download/27654'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['c29d084ccbda931d71198409fb2d14f99930db6e7a3654b3c0243ceb304755d9'] + +builddependencies = [ + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('cURL', '7.83.0'), + ('ecCodes', '2.27.0'), + ('FFTW', '3.3.10'), + ('HDF5', '1.12.2'), + ('libxml2', '2.9.13'), + ('netCDF', '4.9.0'), + ('PROJ', '9.0.0'), + ('Szip', '2.1.1'), + ('UDUNITS', '2.2.28'), + ('util-linux', '2.38'), +] + +# select icx and icpx instead of icp and icpc and +# replace -fp-model source by -fp-model=precise (as source is not an option for Intel oneAPI compiler) +preconfigopts = 'FC=ifx CC=icx CXX=icpx MPICH_CC=icx MPICH_CXX=icpx ' +preconfigopts += 'CFLAGS="-O2 -march=core-avx2 -ftz -fp-speculation=safe -fp-model=precise -fPIC" ' +preconfigopts += 'CXXFLAGS="-O2 -march=core-avx2 -ftz -fp-speculation=safe -fp-model=precise -fPIC" ' + +# Build libcdi +configopts = "--enable-cdi-lib " + +# Use dependencies from EasyBuild +configopts += '--with-curl=$EBROOTCURL --with-eccodes=$EBROOTECCODES --with-fftw3 --with-hdf5=$EBROOTHDF5 ' +configopts += '--with-netcdf=$EBROOTNETCDF --with-proj=$EBROOTPROJ --with-szlib=$EBROOTSZIP ' +configopts += '--with-udunits2=$EBROOTUDUNITS --with-util-linux-uuid=$EBROOTUTILMINLINUX ' + +sanity_check_paths = { + 'files': ['bin/cdo', 'lib/libcdi.a', 'lib/libcdi.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +sanity_check_commands = [ + "cdo --version 2>&1 | grep 'CDI library version : %(version)s'"] + +moduleclass = 'data' diff --git a/Golden_Repo/c/CP2K/CP2K-2023.1-intel-para-2022a.eb b/Golden_Repo/c/CP2K/CP2K-2023.1-intel-para-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..f7abfa87403f3ed6ec5dd67d6ea1626f94d9ec31 --- /dev/null +++ b/Golden_Repo/c/CP2K/CP2K-2023.1-intel-para-2022a.eb @@ -0,0 +1,98 @@ +name = 'CP2K' +version = '2023.1' + +homepage = 'http://www.cp2k.org/' +description = """CP2K is a freely available (GPL) program, written in Fortran 95, to perform atomistic and molecular + simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different + methods such as e.g. density functional theory (DFT) using a mixed Gaussian and plane waves approach (GPW), and + classical pair and many-body potentials. + The default eigensolver is set to Scalapack. This setting can be overridden by specifiying + PREFERRED_DIAG_LIBRARY ELPA in the global section of the cp2k input. Note, that application-dependent + - in particular for small basis sizes - the use of the ELPA eigensolver library can cause dead-locks: + the program might be killed with a corresponding message from the MPI library ( parastation mpi) + or even hang (openmpi). The user is advised to check whether the particular application is prone to + deadlocks if ELPA is switched on. + The Libvori library for Voronoi integration and the BQB compressed volumetric trajectory data is included + (https://brehm-research.de/voronoi, https://brehm-research.de/bqb). + Tree-Monte-Carlo is disfunctional; this is the hybrid MPI/OpenMP version of CP2K. +""" + +toolchain = {'name': 'intel-para', 'version': '2022a'} +toolchainopts = {'pic': True, 'openmp': True} + +# which dbcsr_version +dbcsr_version = '2.5.0' +libvori_version = '-220621' +spglib_version = '1.16.2' +local_libvori_version = '-220621' + +sources = [ + 'cp2k/archive/v%(version)s.tar.gz', + 'dbcsr/archive/refs/tags/v%s.tar.gz' % dbcsr_version, + 'libvori%s.tar.gz' % local_libvori_version, + 'spglib-1.16.2.tar.gz', +] +source_urls = [ + 'https://github.com/cp2k/', + 'https://github.com/cp2k/', + 'https://www.brehm-research.de/files/', +] + +patches = [ + 'CP2K-2023.1_fftw3_lib.patch', + 'CP2K-2023.1_elpa.patch', + 'CP2K-2023.1_dbcsr.patch', +] + +checksums = [ + 'b837f3f8329e92b98959edfd198dc83447737098844a5102e19c83748af9ec2e', + '24138461cf0b347ab6df0fba192bca6a026f22c3f0bc29abdae2df9e830809ca', + '1cfa98c564814bddacf1c0e7f11582137d758668f6307e6eb392c72317984c14', + '5723789bee7371ebba91d78c729d2a608f198fad5e1c95eebe18fda9f2914ec8', + '1b7674b0046d329f9913ed99e92b53481e878a04a4856c817228d4816d0ea624', + '33c765f5e119541d943c0d9386059e1ef6f82ca1f2e9490adeca6b86656b5b2d', + 'c480c46d31290056079f6a9d5fa17454d34169d1a7850af22378dd794257c3b7' +] + +dependencies = [ + ('libxc', '5.2.3', '', ('intel-compilers', '2022.1.0')), + ('FFTW', '3.3.10', ''), + ('Libint', '2.7.2', '_cp2k_lmax5', ('intel-compilers', '2022.1.0')), + ('ELPA', '2022.11.001.rc1'), + ('libxsmm', '1.17', '', ('intel-compilers', '2022.1.0')), + ('PLUMED', '2.8.1'), +] + +builddependencies = [ + ('flex', '2.6.4'), + ('CMake', '3.23.1'), + ('Python', '3.10.4', '', ('GCCcore', '11.3.0')), +] + +# Add PLUMED support +plumed = True + +# Disable CUDA +cuda = False + +# explicit unrolled loops up to __MAX_CONTR, 4 gives excessive compiler times +configopts = '-D__MAX_CONTR=3' + +# popt or psmp +type = 'psmp' + +# run tests separately (2 nodes of juwels approx 1 hour) +runtest = False + + +# additional DFLAGS +extradflags = '-D__MKL -D__LIBVORI -D__SPGLIB' + +# regression test reports failures +ignore_regtest_fails = False + +modextravars = { + 'CP2K_DATA_DIR': '%(installdir)s/data', +} + +moduleclass = 'chem' diff --git a/Golden_Repo/c/Cartopy/Cartopy-0.21.0-GCCcore-11.3.0.eb b/Golden_Repo/c/Cartopy/Cartopy-0.21.0-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..22767d1d172235076f5d3e3f4d0b1e70adfca461 --- /dev/null +++ b/Golden_Repo/c/Cartopy/Cartopy-0.21.0-GCCcore-11.3.0.eb @@ -0,0 +1,51 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Updated: Denis Kristak +easyblock = 'PythonBundle' + +name = 'Cartopy' +version = '0.21.0' + +homepage = 'https://scitools.org.uk/cartopy/docs/latest/' +description = """Cartopy is a Python package designed to make drawing maps for data analysis and visualisation easy.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +dependencies = [ + ('Python', '3.10.4'), + ('Fiona', '1.8.22'), + ('GDAL', '3.5.0'), + ('GEOS', '3.11.1'), + ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('matplotlib', '3.5.2', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('Shapely', '1.8.5.post1'), + ('lxml', '4.9.1'), + ('Pillow-SIMD', '9.2.0'), + ('PROJ', '9.0.0'), + ('PyYAML', '6.0'), + ('pyproj', '3.4.0'), +] + +use_pip = True +sanity_pip_check = True + +# owslib 0.26.0 requires pyproj < 3.3.0 +exts_list = [ + ('OWSLib', '0.27.2', { + 'checksums': ['e102aa2444dfe0c8439ab1e1776cc0fa47cea28c09b8a28212c893c6017c179b'], + }), + ('pyepsg', '0.4.0', { + 'checksums': ['2d08fad1e7a8b47a90a4e43da485ba95705923425aefc4e2a3efa540dbd470d7'], + }), + ('pykdtree', '1.3.6', { + 'checksums': ['780b693d0555b857d7aab31e35d4293bf4ebdb9dec7a45ba4bb23b4400f626dc'], + }), + ('pyshp', '2.3.1', { + 'modulename': 'shapefile', + 'checksums': ['4caec82fd8dd096feba8217858068bacb2a3b5950f43c048c6dc32a3489d5af1'], + }), + (name, version, { + 'checksums': ['ce1d3a28a132e94c89ac33769a50f81f65634ab2bd40556317e15bd6cad1ce42'], + }), +] + +moduleclass = 'geo' diff --git a/Golden_Repo/c/Cartopy/Cartopy-0.20.3-foss-2022a.eb b/Golden_Repo/c/Cartopy/Cartopy-0.21.0-foss-2022a.eb similarity index 100% rename from Golden_Repo/c/Cartopy/Cartopy-0.20.3-foss-2022a.eb rename to Golden_Repo/c/Cartopy/Cartopy-0.21.0-foss-2022a.eb 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/Colmap/Colmap-3.8-gcccoremkl-11.3.0-2022.1.0.eb b/Golden_Repo/c/Colmap/Colmap-3.8-gcccoremkl-11.3.0-2022.1.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..1bea63bc85f7c8367e0e92af2092008e8fb1e452 --- /dev/null +++ b/Golden_Repo/c/Colmap/Colmap-3.8-gcccoremkl-11.3.0-2022.1.0.eb @@ -0,0 +1,50 @@ +easyblock = 'CMakeMake' + +name = 'Colmap' +version = '3.8' + +homepage = 'https://colmap.github.io' +description = """COLMAP is a general-purpose Structure-from-Motion (SfM) and Multi-View Stereo (MVS) pipeline +with a graphical and command-line interface. +""" + +toolchain = {'name': 'gcccoremkl', 'version': '11.3.0-2022.1.0'} +toolchainopts = {'cstd': 'c++14'} + +github_account = 'colmap' +source_urls = [GITHUB_SOURCE] +sources = ['%(version)s.tar.gz'] +checksums = ['02288f8f61692fe38049d65608ed832b31246e7792692376afb712fa4cef8775'] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1'), +] + +dependencies = [ + ('Eigen', '3.4.0'), + ('Boost', '1.79.0'), + ('gflags', '2.2.2'), + ('glog', '0.6.0'), + ('SuiteSparse', '5.13.0', '-nompi'), + ('CGAL', '5.5.1'), + ('ceres-solver', '2.1.0'), + ('FreeImage', '3.18.0'), + ('FLANN', '1.9.2'), + ('SQLite', '3.38.3'), + ('CUDA', '11.7', '', SYSTEM), + ('OpenGL', '2022a'), + ('Qt5', '5.15.5'), +] + +configopts = "-DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF " +configopts += "-DCUDA_ENABLED=ON " +configopts += "-DCMAKE_CUDA_ARCHITECTURES=all-major " +configopts += "-DCUDA_NVCC_FLAGS='--std c++14' " + +sanity_check_paths = { + 'files': ['bin/colmap', 'lib/colmap/libcolmap.a'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/Golden_Repo/c/CubeGUI/CubeGUI-4.8.1-GCCcore-11.3.0.eb b/Golden_Repo/c/CubeGUI/CubeGUI-4.8.1-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..aef19002e498f888b4228c72d3840318c0dea55e --- /dev/null +++ b/Golden_Repo/c/CubeGUI/CubeGUI-4.8.1-GCCcore-11.3.0.eb @@ -0,0 +1,60 @@ +## +# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2018-2022 Juelich Supercomputing Centre, Germany +# Authors:: Markus Geimer <m.geimer@fz-juelich.de> +# Christian Feld <c.feld@fz-juelich.de> +# License:: 3-clause BSD +# +# This work is based on experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +easyblock = 'EB_Score_minus_P' + +name = 'CubeGUI' +version = '4.8.1' + +homepage = 'https://www.scalasca.org/software/cube-4.x/download.html' +description = """ +Cube, which is used as performance report explorer for Scalasca and Score-P, +is a generic tool for displaying a multi-dimensional performance space +consisting of the dimensions (i) performance metric, (ii) call path, and +(iii) system resource. Each dimension can be represented as a tree, where +non-leaf nodes of the tree can be collapsed or expanded to achieve the +desired level of granularity. + +This module provides the Cube graphical report explorer. +""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['http://perftools.pages.jsc.fz-juelich.de/cicd/cubegui/tags/cubegui-%(version)s'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['a8a2a62b4e587c012d3d32385bed7c500db14232419795e0f4272d1dcefc55bc'] + +builddependencies = [ + # use same binutils version that was used when building GCCcore + ('binutils', '2.38'), + ('CubeLib', '4.8.1'), +] + +dependencies = [ + ('Qt5', '5.15.5'), +] + +sanity_check_paths = { + 'files': ['bin/cube', 'bin/cubegui-config', + ('lib/libcube4gui.a', 'lib64/libcube4gui.a'), + ('lib/libcube4gui.%s' % SHLIB_EXT, 'lib64/libcube4gui.%s' % SHLIB_EXT)], + 'dirs': ['include/cubegui', 'lib/cube-plugins'], +} + +# CubeGUI (and other Qt apps that use OpenGl) crash from time to time +# or don't show any output when using Qt's WebEngine with the default +# KNOB_MAX_WORKER_THREADS value of 65535. Even with a value of 10 this +# behavior doesn't vanish. Thus, don't use WebEngine at all, although +# it makes nicer output. +configopts = '--without-web-engine' + +moduleclass = 'perf' diff --git a/Golden_Repo/c/CubeLib/CubeLib-4.8.1-GCCcore-11.3.0.eb b/Golden_Repo/c/CubeLib/CubeLib-4.8.1-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..36411f277582f528eb9cca3e31a51431723095e9 --- /dev/null +++ b/Golden_Repo/c/CubeLib/CubeLib-4.8.1-GCCcore-11.3.0.eb @@ -0,0 +1,58 @@ +## +# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2018-2022 Juelich Supercomputing Centre, Germany +# Authors:: Markus Geimer <m.geimer@fz-juelich.de> +# Christian Feld <c.feld@fz-juelich.de> +# License:: 3-clause BSD +# +# This work is based on experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +easyblock = 'EB_Score_minus_P' + +name = 'CubeLib' +version = '4.8.1' + +homepage = 'https://www.scalasca.org/software/cube-4.x/download.html' +description = """ +Cube, which is used as performance report explorer for Scalasca and Score-P, +is a generic tool for displaying a multi-dimensional performance space +consisting of the dimensions (i) performance metric, (ii) call path, and +(iii) system resource. Each dimension can be represented as a tree, where +non-leaf nodes of the tree can be collapsed or expanded to achieve the +desired level of granularity. + +This module provides the Cube general purpose C++ library component and +command-line tools. +""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['http://perftools.pages.jsc.fz-juelich.de/cicd/cubelib/tags/cubelib-%(version)s'] +sources = [SOURCELOWER_TAR_GZ] +checksums = [ + 'e4d974248963edab48c5d0fc5831146d391b0ae4632cccafe840bf5f12cd80a9', # cubelib-4.8.1.tar.gz +] + +builddependencies = [ + # use same binutils version that was used when building GCCcore + ('binutils', '2.38'), + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('zlib', '1.2.12'), +] + +configopts = '--enable-shared' + +sanity_check_paths = { + 'files': ['bin/cubelib-config', + ('lib/libcube4.a', 'lib64/libcube4.a'), + ('lib/libcube4.%s' % SHLIB_EXT, 'lib64/libcube4.%s' % SHLIB_EXT)], + 'dirs': ['include/cubelib'], +} + +moduleclass = 'perf' diff --git a/Golden_Repo/c/CubeWriter/CubeWriter-4.8.1-GCCcore-11.3.0.eb b/Golden_Repo/c/CubeWriter/CubeWriter-4.8.1-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..da37ae465ca99f7fed980a0ddbcec45fe03e26c7 --- /dev/null +++ b/Golden_Repo/c/CubeWriter/CubeWriter-4.8.1-GCCcore-11.3.0.eb @@ -0,0 +1,57 @@ +## +# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2018-2022 Juelich Supercomputing Centre, Germany +# Authors:: Markus Geimer <m.geimer@fz-juelich.de> +# Christian Feld <c.feld@fz-juelich.de> +# License:: 3-clause BSD +# +# This work is based on experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +easyblock = 'EB_Score_minus_P' + +name = 'CubeWriter' +version = '4.8.1' + +homepage = 'https://www.scalasca.org/software/cube-4.x/download.html' +description = """ +Cube, which is used as performance report explorer for Scalasca and Score-P, +is a generic tool for displaying a multi-dimensional performance space +consisting of the dimensions (i) performance metric, (ii) call path, and +(iii) system resource. Each dimension can be represented as a tree, where +non-leaf nodes of the tree can be collapsed or expanded to achieve the +desired level of granularity. + +This module provides the Cube high-performance C writer library component. +""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['http://perftools.pages.jsc.fz-juelich.de/cicd/cubew/tags/cubew-%(version)s'] +sources = ['cubew-%(version)s.tar.gz'] +checksums = [ + '42cbd743d87c16e805c8e28e79292ab33de259f2cfba46f2682cb35c1bc032d6', # cubew-4.8.1.tar.gz +] + +builddependencies = [ + # use same binutils version that was used when building GCCcore + ('binutils', '2.38'), + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('zlib', '1.2.12'), +] + +configopts = '--enable-shared' + +sanity_check_paths = { + 'files': ['bin/cubew-config', + ('lib/libcube4w.a', 'lib64/libcube4w.a'), + ('lib/libcube4w.%s' % SHLIB_EXT, 'lib64/libcube4w.%s' % SHLIB_EXT)], + 'dirs': ['include/cubew'], +} + +moduleclass = 'perf' diff --git a/Golden_Repo/c/cirq/Cirq-1.0.0-gcccoremkl-11.3.0-2022.1.0.eb b/Golden_Repo/c/cirq/Cirq-1.0.0-gcccoremkl-11.3.0-2022.1.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..83e70b11dd275137bb88315273cf6e7b2c7ea3fe --- /dev/null +++ b/Golden_Repo/c/cirq/Cirq-1.0.0-gcccoremkl-11.3.0-2022.1.0.eb @@ -0,0 +1,133 @@ +easyblock = 'PythonBundle' + +name = 'Cirq' +version = '1.0.0' + +homepage = 'https://github.com/quantumlib/cirq' +description = """A python framework for creating, editing, +and invoking Noisy Intermediate Scale Quantum (NISQ) circuits.""" + +toolchain = {'name': 'gcccoremkl', 'version': '11.3.0-2022.1.0'} +toolchainopts = {'pic': True} + + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('sympy', '1.11.1', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('matplotlib', '3.5.2', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('protobuf-python', '3.19.4'), + ('networkx', '2.8.4'), + ('tqdm', '4.64.0'), + ('PyQuil', '3.3.3'), +] + +exts_default_options = { + 'download_dep_fail': True, + 'source_urls': [PYPI_SOURCE], + 'use_pip': True, + 'use_pip_for_deps': False, + 'sanity_pip_check': True, +} + + +exts_list = [ + ('pyasn1-modules', '0.2.8', { + 'checksums': ['905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e'], + }), + ('cachetools', '4.2.4', { + 'checksums': ['89ea6f1b638d5a73a4f9226be57ac5e4f399d22770b92355f92dcb0f7f001693'], + }), + ('rsa', '4.9', { + 'checksums': ['e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21'], + }), + ('grpcio', '1.54.0', { + 'modulename': 'grpc', + 'source_tmpl': '%(name)s-%(version)s-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl', + 'checksums': ['48cb7af77238ba16c77879009003f6b22c23425e5ee59cb2c4c103ec040638a5'], + }), + ('grpcio-status', '1.48.2', { + 'modulename': 'grpc', + 'checksums': ['53695f45da07437b7c344ee4ef60d370fd2850179f5a28bb26d8e2aa1102ec11'], + }), + ('googleapis-common-protos', '1.56.4', { + 'modulename': 'google', + 'checksums': ['c25873c47279387cfdcbdafa36149887901d36202cb645a0e4f29686bf6e4417'], + }), + ('google_auth', '1.35.0', { + 'modulename': 'google.auth', + 'source_tmpl': '%(name)s-%(version)s-py2.py3-none-any.whl', + 'checksums': ['997516b42ecb5b63e8d80f5632c1a61dddf41d2a4c2748057837e06e00014258'], + }), + ('google-api-core', '1.32.0', { + 'modulename': 'google', + 'checksums': ['101c3c4cf8e7d53badd1dbca7071464353a04b17319a3dbb3a94eaa893da091c'], + }), + ('proto-plus', '1.22.2', { + 'modulename': 'proto', + 'checksums': ['0e8cda3d5a634d9895b75c573c9352c16486cb75deb0e078b5fda34db4243165'], + }), + ('duet', '0.2.8', { + 'source_tmpl': 'duet-%(version)s-py3-none-any.whl', + 'unpack_sources': False, + 'checksums': ['db3193de2218ffd53a137f2ba5cdd3af988558613891fe5280c52708133d5ed6'], + }), + ('cirq-web', version, { + 'source_tmpl': 'cirq_web-%(version)s-py3-none-any.whl', + 'unpack_sources': False, + 'checksums': ['e3ebc6043b5a6a2a4ba57a71ea9ea5bc487732527b4512961e4c4ce90b2f5744'], + }), + ('cirq-pasqal', version, { + 'source_tmpl': 'cirq_pasqal-%(version)s-py3-none-any.whl', + 'unpack_sources': False, + 'checksums': ['1243aae6514aadb6a5e2f729da3d99904d20631e7d2a7fbaef69c7377a9158b5'], + }), + ('cirq-core', version, { + 'modulename': False, + 'source_tmpl': 'cirq_core-%(version)s-py3-none-any.whl', + 'unpack_sources': False, + 'checksums': ['a1df552e99ab339121c40c7bf4d18ba542bba151dd8b5ac8c4c33b7b9d46ba10'], + }), + ('cirq-ionq', version, { + 'source_tmpl': 'cirq_ionq-%(version)s-py3-none-any.whl', + 'unpack_sources': False, + 'checksums': ['31ff254a5b514736f79a92a186d473b3e40550c94ad36aeebddea1cb840fb065'], + }), + ('cirq-rigetti', version, { + 'source_tmpl': 'cirq_rigetti-%(version)s-py3-none-any.whl', + 'unpack_sources': False, + 'checksums': ['a0ff2ac5dea2b175ced45ade23bd2bfc2f1d8d280b6a003b1dcdddfdd579c0bd'], + }), + ('cirq-aqt', version, { + 'source_tmpl': 'cirq_aqt-%(version)s-py3-none-any.whl', + 'unpack_sources': False, + 'checksums': ['db7af0b40ceded8a5951f74f36e2235a873df519078e069a6e4d00fda4acd82d'], + }), + ('cirq-google', version, { + 'source_tmpl': 'cirq_google-%(version)s-py3-none-any.whl', + 'unpack_sources': False, + 'checksums': ['8fd1df0fd97d1ee076c01a2b2ab86aac966692890fb2793a45ef2393a6ccc4ab'], + }), + ('cirq', version, { + 'source_tmpl': 'cirq-%(version)s-py3-none-any.whl', + 'unpack_sources': False, + 'checksums': ['8d61feba1c8d2a37d82a53e2500fb2430ad8e0ca7c3e2562fbd554bea0d9d7f7'], + }), +] + + +# This easyconfig cirq=1.0.0 works with Stage 2023's protobuf==3.19.4, but requires +# different versions of the following packages than the ones provided by: +# 1) TensorFlow: +# different: google-auth==2.16.0, grpcio==1.51.1, cachetools=='5.2.1' +# same: pyasn1-modules=='0.2.8', rsa==4.9 +# 2) tensorboard: +# different: google-auth==2.11.1, grpcio==1.49.1, cachetools=='5.2.0' +# same: pyasn1-modules=='0.2.8', rsa==4.9 + +# Therefore we make Cirq conflict with TensorFLow or tensorboard if they are loaded simultaneously +modluafooter = """ +conflict("TensorFlow", "tensorboard") +""" + +moduleclass = 'quantum' diff --git a/Golden_Repo/d/DWave/DWave-6.3.0-gcccoremkl-11.3.0-2022.1.0.eb b/Golden_Repo/d/DWave/DWave-6.3.0-gcccoremkl-11.3.0-2022.1.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..181adbb8bfb4929cfde68cbdad5da09bde4c9e0e --- /dev/null +++ b/Golden_Repo/d/DWave/DWave-6.3.0-gcccoremkl-11.3.0-2022.1.0.eb @@ -0,0 +1,142 @@ +easyblock = 'PythonBundle' + +name = 'DWave' +version = '6.3.0' + +homepage = 'https://docs.ocean.dwavesys.com' +description = """Ocean software is a suite of tools D-Wave Systems for solving hard problems with quantum computers.""" + +toolchain = {'name': 'gcccoremkl', 'version': '11.3.0-2022.1.0'} +toolchainopts = {'pic': True} + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('networkx', '2.8.4'), + ('Flask', '2.2.2'), +] + + +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 = [ + ('wrapt', '1.14.1', { + 'checksums': ['380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d'], + }), + ('PySocks', '1.7.1', { + 'modulename': 'socks', + 'checksums': ['3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0'], + }), + ('blinker', '1.6.2', { + 'checksums': ['4afd3de66ef3a9f8067559fb7a1cbe555c17dcbe15971b05d1b625c3e7abe213'], + }), + ('Deprecated', '1.2.13', { + 'checksums': ['43ac5335da90c31c24ba028af536a91d41d53f9e6901ddb021bcc572ce44e38d'], + }), + ('rectangle_packer', '2.0.1', { + 'modulename': 'rpack', + 'sources': ['%(name)s-%(version)s-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86' + '_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl'], + 'checksums': ['06c6f1d55f12c38e11659125d86e23430e4296ccff3584b3084e4d89197f4b62'], + }), + ('fasteners', '0.18', { + 'checksums': ['cb7c13ef91e0c7e4fe4af38ecaf6b904ec3f5ce0dda06d34924b6b74b869d953'], + }), + ('plucky', '0.4.3', { + 'checksums': ['5bc75d43ae6b40f1b7ba42000b37e4934fa6bd2d6a6cd4e47461f803a404c194'], + }), + ('homebase', '1.0.1', { + 'checksums': ['9ee008df4298b420852d815e6df488822229c4bd8d571bcd0a454e04232c635e'], + }), + ('diskcache', '5.6.1', { + 'checksums': ['e4c978532feff5814c4cc00fe1e11e40501985946643d73220d41ee7737c72c3'], + }), + ('penaltymodel', '1.0.2', { + 'checksums': ['551e1a04ebf4ae18613cac52e37b6fa8c1959972756705354cdccee66a3ef461'], + }), + ('dwave_samplers', '1.0.0', { + 'modulename': 'dwave.samplers', + 'sources': ['%(name)s-%(version)s-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl'], + 'checksums': ['37955b2fda93c0fccbac63491a3c5ae0b7dbbd27a834e41698d5391db187afd1'], + }), + ('dwave_networkx', '0.8.13', { + 'modulename': 'dwave_networkx', + 'checksums': ['01247c2ce63f9e6097497333968757ce097d2809b81fd9f5686652a56674e96c'], + }), + ('dwavebinarycsp', '0.2.0', { + 'checksums': ['7a5cf530e4a7c1288055c9b9fd0d3032175b06d19da7642fe5724dc85050ea1e'], + }), + ('pyqubo', '1.4.0', { + 'sources': ['%(name)s-%(version)s-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl'], + 'checksums': ['8a3e69633f060c2a8c7cce949e5476e4a295820c842f0be79bd716fb013521e8'], + }), + ('minorminer', '0.2.11', { + 'sources': ['%(name)s-%(version)s-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl'], + 'checksums': ['e5a39b7e01281e2443f0a3d40a783ac200ebd0a04f5fdd647e35650969ce4d2a'], + }), + ('dwave_preprocessing', '0.5.4', { + 'modulename': 'dwave.preprocessing', + 'sources': ['%(name)s-%(version)s-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl'], + 'checksums': ['0a7ce755267decdf725daddd233e6f80a69e31d2b6c12a22006b5ba47e338272'], + }), + ('dwave-tabu', '0.5.0', { + 'modulename': 'tabu', + 'checksums': ['dcc73883ec491dea2656c8239dc66e9c9871e7f75852be57ea4cec6bccd48d54'], + }), + ('dwave-system', '1.18.0', { + 'modulename': 'dwave.system', + 'checksums': ['c35e0d4bab57a8e725cdc929a8de869b773113021b7431904875d391118e3fb7'], + }), + ('dwave-hybrid', '0.6.10', { + 'modulename': 'hybrid', + 'checksums': ['35ab1a892444754fd61c8ef7ebb965fda30cc5f04b8f415ff5e07581bb155afc'], + }), + ('dwave-inspector', '0.4.1', { + 'modulename': 'dwave.inspector', + 'checksums': ['fead5b8600dc724691b1a30bb47a6520ffe8c92a458239bec2de30c0cf464de3'], + }), + ('pydantic', '1.10.4', { # also on PyQuil, pulled here to avoid bokeh/distributed/dask vs ipython tornado issue + 'checksums': ['b9a3859f24eb4e097502a3be1fb4b2abb79b6103dd9e2e0edb70613a4459a648'], + }), + ('dwave-cloud-client', '0.10.4', { + 'modulename': 'dwave.cloud', + 'checksums': ['3288f395eaa34bb0873ad08cbe1653acba960791487ae58d5f7ef3830e7f131b'], + }), + ('dwave-neal', '0.6.0', { + 'modulename': 'neal', + 'checksums': ['8ce51fee3339195df1ab69920fdb5afc496b5fd945e487fad3547c983d90c564'], + }), + ('dimod', '0.12.3', { + 'sources': ['%(name)s-%(version)s-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl'], + 'checksums': ['a269638fc526480274728fd299aed9d7e0c5fcbe18483d23195503dcce436f4a'], + }), + ('dwave-greedy', '0.3.0', { + 'modulename': 'greedy', + 'checksums': ['806c02d6c3f260ef5bf063d4932f43dfb52a0ea00f9db0b0d34d9b15691a011a'], + }), + ('dwave-ocean-sdk', version, { + 'modulename': 'dwave.system', + 'checksums': ['0a5a069a576f4a8c8e34223c3d4353e4a4dfbe4d3061264e6e9c35c6b0d423af'], + }), + ('dwave-drivers', '0.4.4', { + 'modulename': 'dwave.drivers', + 'pip_no_index': True, + 'source_tmpl': 'dwave_drivers-%(version)s-py3-none-any.whl', + 'source_urls': ['https://pypi.dwavesys.com/simple/%(name)s'], + 'checksums': ['8e5b37e97be7610c00005e5f8a3c10f27f7cec4bd2b88c80f9c6fef8172a3c3f'], + }), + ('dwave-inspectorapp', '0.3.1', { + 'modulename': 'dwave.inspector', + 'pip_no_index': True, + 'source_tmpl': 'dwave_inspectorapp-%(version)s-py3-none-any.whl', + 'source_urls': ['https://pypi.dwavesys.com/simple/%(name)s'], + 'checksums': ['8dd10718c27373912fefe54d8c9eb518b89caed7ac554c7c4d757e8afe864939'], + }), +] + +moduleclass = 'quantum' diff --git a/Golden_Repo/d/dask/dask-2022.10.2-gcccoremkl-11.3.0-2022.1.0.eb b/Golden_Repo/d/dask/dask-2022.12.0-gcccoremkl-11.3.0-2022.1.0.eb similarity index 91% rename from Golden_Repo/d/dask/dask-2022.10.2-gcccoremkl-11.3.0-2022.1.0.eb rename to Golden_Repo/d/dask/dask-2022.12.0-gcccoremkl-11.3.0-2022.1.0.eb index d60920e8d99b343404d8bdab3d2678622e2aba11..4224d15d49cbee27409ae07d0c4e380d0360f39f 100644 --- a/Golden_Repo/d/dask/dask-2022.10.2-gcccoremkl-11.3.0-2022.1.0.eb +++ b/Golden_Repo/d/dask/dask-2022.12.0-gcccoremkl-11.3.0-2022.1.0.eb @@ -1,7 +1,7 @@ easyblock = 'PythonBundle' name = 'dask' -version = '2022.10.2' +version = '2022.12.0' homepage = 'https://dask.org/' description = """Dask natively scales Python. Dask provides advanced parallelism for analytics, enabling performance @@ -44,10 +44,10 @@ exts_list = [ 'checksums': ['3f4219469c55453cfe4737e564b67c2a149109dabf7f242478948b895f61106f'], }), (name, version, { - 'checksums': ['42cb43f601709575fa46ce09e74bea83fdd464187024f56954e09d9b428ceaab'], + 'checksums': ['159acc4a65f2ea042b453f12dee66fd515a159f4b3b9ca0d08c18cae485a2be0'], }), ('distributed', version, { - 'checksums': ['53f0a5bf6efab9a5ab3345cd913f6d3f3d4ea444ee2edbea331c7fef96fd67d0'], + 'checksums': ['d93707757f7fa3b2b803e43f6c14c41c3e453e9714bca8bf3013d3bf083c18ce'], }), ('dask-mpi', '2022.4.0', { 'checksums': ['0a04f1d7d35a06cdff506593330d4414ea242c9172498ce191f5742eac499e17'], diff --git a/Golden_Repo/d/dill/dill-0.3.6-GCCcore-11.3.0.eb b/Golden_Repo/d/dill/dill-0.3.6-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..377eb58517a1ec09df52b4765453a6cfe1288e96 --- /dev/null +++ b/Golden_Repo/d/dill/dill-0.3.6-GCCcore-11.3.0.eb @@ -0,0 +1,27 @@ +# This easyconfig was created by Simon Branford of the BEAR Software team at the University of Birmingham. +easyblock = 'PythonPackage' + +name = 'dill' +version = '0.3.6' + +homepage = 'https://pypi.org/project/dill/' +description = """dill extends python's pickle module for serializing and de-serializing python objects to the majority + of the built-in python types. Serialization is the process of converting an object to a byte stream, and the inverse + of which is converting a byte stream back to on python object hierarchy.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['e5db55f3687856d8fbdab002ed78544e1c4559a130302693d839dfe8f93f2373'] + +builddependencies = [('binutils', '2.38')] + +dependencies = [ + ('Python', '3.10.4'), +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +moduleclass = 'data' diff --git a/Golden_Repo/d/distributed/distributed-2.30.1-gcccoremkl-11.3.0-2022.1.0.eb b/Golden_Repo/d/distributed/distributed-2.30.1-gcccoremkl-11.3.0-2022.1.0.eb deleted file mode 100644 index 7f93f1c3b73d9ea6ba84d7a898d5eaa666c30a93..0000000000000000000000000000000000000000 --- a/Golden_Repo/d/distributed/distributed-2.30.1-gcccoremkl-11.3.0-2022.1.0.eb +++ /dev/null @@ -1,43 +0,0 @@ -easyblock = 'Bundle' - -name = 'distributed' -version = '2022.10.2' - -homepage = 'https://distributed.readthedocs.io/' -description = """Dask.distributed is a lightweight library for distributed computing in Python. - It extends both the concurrent.futures and dask APIs to moderate sized clusters.""" - -toolchain = {'name': 'foss', 'version': '2022a'} - - -# this is a bundle of Python packages -exts_defaultclass = 'PythonPackage' - -dependencies = [ - ('Python', '3.10.4'), - ('dask', '2022.10.2', '', ('gcccoremkl', '11.3.0-2022.1.0')), - ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), - ('bokeh', '2.4.2', '', ('gcccoremkl', '11.3.0-2022.1.0')), -] - - -exts_default_options = { - 'source_urls': [PYPI_SOURCE], - 'sanity_pip_check': True, -} - -exts_list = [ - (name, version, { - 'source_urls': ['https://pypi.python.org/packages/source/d/distributed'], - 'checksums': ['53f0a5bf6efab9a5ab3345cd913f6d3f3d4ea444ee2edbea331c7fef96fd67d0'], - }), -] - -sanity_check_paths = { - 'files': ['bin/dask-scheduler', 'bin/dask-ssh', 'bin/dask-worker'], - 'dirs': ['lib/python%(pyshortver)s/site-packages'], -} - -modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} - -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/ESMF/ESMF-6.1.1_libopts.patch b/Golden_Repo/e/ESMF/ESMF-6.1.1_libopts.patch new file mode 100644 index 0000000000000000000000000000000000000000..0d03f780590a4db90e7626da4e1a12552d6d42e0 --- /dev/null +++ b/Golden_Repo/e/ESMF/ESMF-6.1.1_libopts.patch @@ -0,0 +1,11 @@ +--- esmf/build/common.mk.orig 2013-11-26 16:58:50.958274359 +0100 ++++ esmf/build/common.mk 2013-11-26 16:59:02.339274158 +0100 +@@ -896,7 +896,7 @@ + endif + ESMF_SL_LIBS_TO_MAKE = libesmf + ESMF_SL_LIBLINKER = $(ESMF_CXXCOMPILER) +-ESMF_SL_LIBOPTS += ++ESMF_SL_LIBOPTS += $(ESMF_CXXCOMPILEOPTS) + ESMF_SL_LIBLIBS += + + # - Shared objects diff --git a/Golden_Repo/e/ESMF/ESMF-8.4.1-intel-para-2022a.eb b/Golden_Repo/e/ESMF/ESMF-8.4.1-intel-para-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..2c07155636da0dce0f8bc1da9d47e15488386cba --- /dev/null +++ b/Golden_Repo/e/ESMF/ESMF-8.4.1-intel-para-2022a.eb @@ -0,0 +1,53 @@ +name = 'ESMF' +version = '8.4.1' + +homepage = 'https://www.earthsystemcog.org/projects/esmf/' +description = """The Earth System Modeling Framework (ESMF) is a suite of software tools for developing + high-performance, multi-component Earth science modeling applications.""" + +toolchain = {'name': 'intel-para', 'version': '2022a'} +toolchainopts = {'usempi': True, 'openmp': True, 'cstd': 'c++11', 'pic': True} + +source_urls = ['https://github.com/esmf-org/esmf/archive/'] +sources = ['v%(version)s.tar.gz'] +patches = ['ESMF-6.1.1_libopts.patch'] +checksums = [ + {'v8.4.1.tar.gz': '1b54cee91aacaa9df400bd284614cbb0257e175f6f3ec9977a2d991ed8aa1af6'}, + {'ESMF-6.1.1_libopts.patch': '3851627f07c32a7da55d99072d619942bd3a1d9dd002e1557716158e7aacdaf4'}, +] + +builddependencies = [('CMake', '3.23.1')] + +dependencies = [ + ('netCDF', '4.9.0'), + ('netCDF-Fortran', '4.6.0'), + ('netCDF-C++4', '4.3.1'), + ('libarchive', '3.6.1'), + ('PnetCDF', '1.12.3'), +] + + +# ESMF ignores xxFLAGS +preconfigopts = 'export ESMF_BOPT="O" && ' +preconfigopts += 'export ESMF_OPTLEVEL="2" && ' +preconfigopts += 'export ESMF_PNETCDF="standard && ' +preconfigopts += 'export ESMF_PNETCDF_INCLUDE=$EBROOTPNETCDF/include && ' +preconfigopts += 'export ESMF_PNETCDF_LIBPATH=$EBROOTPNETCDF/lib && ' +preconfigopts += 'export ESMF_PNETCDF_LIBS=-lpnetcdf && ' + +preinstallopts = 'export ESMF_CXXLINKOPTS="-lmpifort" && ' +preinstallopts += 'export ESMF_NETCDF_LIBS="$ESMF_NETCDF_LIBS -L${PNETCDF}/lib -lpnetcdf" &&' +preinstallopts += 'export ESMF_PNETCDF_INCLUDE=$EBROOTPNETCDF/include && ' +preinstallopts += 'export ESMF_PNETCDF_LIBPATH=$EBROOTPNETCDF/lib && ' +preinstallopts += 'export ESMF_PNETCDF_LIBS=-lpnetcdf && ' + + +# disable errors from GCC 10 on mismatches between actual and dummy argument lists (GCC 9 behaviour) +# prebuildopts = 'ESMF_F90COMPILEOPTS="${ESMF_F90COMPILEOPTS} -fallow-argument-mismatch"' + +buildopts = 'ESMF_NETCDF_INCLUDE=$EBROOTNETCDFMINFORTRAN/include ' + +# too parallel causes the build to become really slow +maxparallel = 16 + +moduleclass = 'geo' 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/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/ecCodes/ecCodes-2.27.0-npsmpic-2022a.eb b/Golden_Repo/e/ecCodes/ecCodes-2.27.0-npsmpic-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..01855f1c4d53014f6b838b1c24f54b68f87c45f9 --- /dev/null +++ b/Golden_Repo/e/ecCodes/ecCodes-2.27.0-npsmpic-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': 'npsmpic', '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-nvompic-2022a.eb b/Golden_Repo/e/ecCodes/ecCodes-2.27.0-nvompic-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..d3cdd55db8d2b34044eccf72a5d4e166c44d5004 --- /dev/null +++ b/Golden_Repo/e/ecCodes/ecCodes-2.27.0-nvompic-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': 'nvompic', '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/f/FFTW/FFTW-3.3.10-gompi-2022a.eb b/Golden_Repo/f/FFTW/FFTW-3.3.10-gompi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..d7216713592fd0ce1c9bad6ce5f6ac605fcfed8b --- /dev/null +++ b/Golden_Repo/f/FFTW/FFTW-3.3.10-gompi-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': 'gompi', '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/FFTW/FFTW-3.3.10-gpsmpi-2022a.eb b/Golden_Repo/f/FFTW/FFTW-3.3.10-gpsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..2b9e218ce8528dc8914187d3d3e324a6576feb8b --- /dev/null +++ b/Golden_Repo/f/FFTW/FFTW-3.3.10-gpsmpi-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': 'gpsmpi', '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/FFTW/FFTW-3.3.10-npsmpic-2022a.eb b/Golden_Repo/f/FFTW/FFTW-3.3.10-npsmpic-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..eadc9df33171e8b526cc5ad5d6bfcf6e93a2e47f --- /dev/null +++ b/Golden_Repo/f/FFTW/FFTW-3.3.10-npsmpic-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': 'npsmpic', '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/FFTW/FFTW-3.3.10-nvompic-2022a.eb b/Golden_Repo/f/FFTW/FFTW-3.3.10-nvompic-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..c2f648e1b05b1615f4f5449071bceebb42cae6db --- /dev/null +++ b/Golden_Repo/f/FFTW/FFTW-3.3.10-nvompic-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': 'nvompic', '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/FLANN/FLANN-1.9.2-GCCcore-11.3.0.eb b/Golden_Repo/f/FLANN/FLANN-1.9.2-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..1a94c389f29b89b87c2a4a130458464225462e0d --- /dev/null +++ b/Golden_Repo/f/FLANN/FLANN-1.9.2-GCCcore-11.3.0.eb @@ -0,0 +1,43 @@ +# Contribution from the NIHR Biomedical Research Centre +# Guy's and St Thomas' NHS Foundation Trust and King's College London +# uploaded by J. Sassmannshausen +# updated by J. H. Goebbert +easyblock = 'CMakeMake' + +name = 'FLANN' +version = '1.9.2' + +homepage = 'https://github.com/mariusmuja/flann/' +description = "FLANN is a library for performing fast approximate nearest neighbor searches in high dimensional spaces." + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} +toolchainopts = {'openmp': True} + +source_urls = ['https://github.com/mariusmuja/flann/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = [ + {'1.9.2.tar.gz': 'e26829bb0017f317d9cc45ab83ddcb8b16d75ada1ae07157006c1e7d601c8824'}, +] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1') +] +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('lz4', '1.9.3'), +] + +configopts = "-DUSE_OPENMP=ON -DUSE_MPI=ON -DBUILD_PYTHON_BINDINGS=ON -DBUILD_C_BINDINGS=ON" + +modextrapaths = {'PYTHONPATH': ['share/flann/python']} + +sanity_check_paths = { + 'files': ['lib/libflann_cpp_s.a', 'lib/libflann_s.a', + 'lib/libflann_cpp.%s' % SHLIB_EXT, 'lib/libflann.%s' % SHLIB_EXT], + 'dirs': ['include/flann', 'lib/pkgconfig', 'share/flann/python'], +} +sanity_check_commands = ["python -c 'import pyflann'"] + +moduleclass = 'lib' diff --git a/Golden_Repo/f/FreeSurfer/FreeSurfer-7.3.2-GCCcore-11.3.0.eb b/Golden_Repo/f/FreeSurfer/FreeSurfer-7.3.2-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..3bb710dfda15007b6b5c926b01f0520bd5921714 --- /dev/null +++ b/Golden_Repo/f/FreeSurfer/FreeSurfer-7.3.2-GCCcore-11.3.0.eb @@ -0,0 +1,38 @@ +# For using $FASTDATA_jsc to determine license path. The local prefix is to appease the checker +import os as local_os + +name = 'FreeSurfer' +version = '7.3.2' + +homepage = 'http://surfer.nmr.mgh.harvard.edu/fswiki/FreeSurferWiki' +description = """ +FreeSurfer is a set of tools for analysis and visualization of structural and functional brain imaging data. +FreeSurfer contains a fully automatic structural imaging stream for processing cross sectional and longitudinal data. +""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = [ + 'https://surfer.nmr.mgh.harvard.edu/pub/dist/freesurfer/%(version)s/' +] +sources = ['%(namelower)s-linux-centos8_x86_64-%(version)s.tar.gz'] +patches = ['freesurfer732-tcsh.patch'] +checksums = [ + '1448e64000b02a06aaad81548a4c8f92faf575f8320e67bdcd15a430ad10879b', # freesurfer-linux-centos8_x86_64-7.3.2.tar.gz + 'f560f19575a176e4be12edf3eea32b699810b4bd5ca7ea91008e8517eb3f790e', # freesurfer732-tcsh.patch +] + +dependencies = [ + ('X11', '20220504'), + ('nvidia-driver', 'default', '', SYSTEM), + ('VirtualGL', '3.1beta1'), + ('protobuf', '3.19.4'), + ('tcsh', '6.24.01') +] + +# If FASTDATA_jsc is not defined then assume we are on CI and hence the path is relative to the repo +local_licdir = local_os.environ.get('FASTDATA_jsc') +local_licdir = local_os.path.join(local_licdir, 'swmanage', 'EasyBuild', '2023') if local_licdir else '.' +license_text = open(f'{local_licdir}/Golden_Repo/f/FreeSurfer/license_text.txt', 'r').read() + +moduleclass = 'bio' diff --git a/Golden_Repo/f/FreeSurfer/freesurfer732-tcsh.patch b/Golden_Repo/f/FreeSurfer/freesurfer732-tcsh.patch new file mode 100644 index 0000000000000000000000000000000000000000..0ffc5f97435efad5e77c3ab5705135bbabab38b6 --- /dev/null +++ b/Golden_Repo/f/FreeSurfer/freesurfer732-tcsh.patch @@ -0,0 +1,2196 @@ +diff --color -rupN freesurfer-orig/bin/annot2std freesurfer-patched/bin/annot2std +--- freesurfer-orig/bin/annot2std 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/annot2std 2022-11-18 09:37:06.263695864 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + + # annot2std + # +diff --color -rupN freesurfer-orig/bin/aparc2feat freesurfer-patched/bin/aparc2feat +--- freesurfer-orig/bin/aparc2feat 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/aparc2feat 2022-11-18 09:37:04.035683570 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # aparc2feat +diff --color -rupN freesurfer-orig/bin/aparc_stats_aseg freesurfer-patched/bin/aparc_stats_aseg +--- freesurfer-orig/bin/aparc_stats_aseg 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/aparc_stats_aseg 2022-11-18 09:37:06.239695731 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + # This script runs Cortical Parcellation, Surface Anatomical Stats and Aparc2aseg using a given .gcs file. + set RunIt = 1 + set ProgName = `basename $0`; +diff --color -rupN freesurfer-orig/bin/aparcstatsdiff freesurfer-patched/bin/aparcstatsdiff +--- freesurfer-orig/bin/aparcstatsdiff 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/aparcstatsdiff 2022-11-18 09:37:03.915682909 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + if ( "x$1" == "x" || \ + "x$2" == "x" || \ +diff --color -rupN freesurfer-orig/bin/apas2aseg freesurfer-patched/bin/apas2aseg +--- freesurfer-orig/bin/apas2aseg 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/apas2aseg 2022-11-18 09:37:05.943694098 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # apas2aseg + + set VERSION = 'apas2aseg 7.3.2'; +diff --color -rupN freesurfer-orig/bin/aseg2feat freesurfer-patched/bin/aseg2feat +--- freesurfer-orig/bin/aseg2feat 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/aseg2feat 2022-11-18 09:37:05.359690875 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # aseg2feat +diff --color -rupN freesurfer-orig/bin/asegstatsdiff freesurfer-patched/bin/asegstatsdiff +--- freesurfer-orig/bin/asegstatsdiff 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/asegstatsdiff 2022-11-18 09:37:06.331696239 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + set subject1=$1 + set subject2=$2 +diff --color -rupN freesurfer-orig/bin/bblabel freesurfer-patched/bin/bblabel +--- freesurfer-orig/bin/bblabel 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/bblabel 2022-11-18 09:37:05.807693347 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # bblabel +diff --color -rupN freesurfer-orig/bin/bbmask freesurfer-patched/bin/bbmask +--- freesurfer-orig/bin/bbmask 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/bbmask 2022-11-18 09:37:05.319690654 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # bbmask + + set VERSION = 'bbmask 7.3.2'; +diff --color -rupN freesurfer-orig/bin/bbregister freesurfer-patched/bin/bbregister +--- freesurfer-orig/bin/bbregister 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/bbregister 2022-11-18 09:37:04.635686880 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # bbregister +diff --color -rupN freesurfer-orig/bin/beta2sxa freesurfer-patched/bin/beta2sxa +--- freesurfer-orig/bin/beta2sxa 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/beta2sxa 2022-11-18 09:37:05.267690367 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # thalseg + + set VERSION = 'beta2sxa 7.3.2'; +diff --color -rupN freesurfer-orig/bin/biasfield freesurfer-patched/bin/biasfield +--- freesurfer-orig/bin/biasfield 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/biasfield 2022-11-18 09:37:04.907688381 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # biasfield +diff --color -rupN freesurfer-orig/bin/bmedits2surf freesurfer-patched/bin/bmedits2surf +--- freesurfer-orig/bin/bmedits2surf 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/bmedits2surf 2022-11-18 09:37:05.491691603 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # bmedits2surf + + set VERSION = 'bmedits2surf 7.3.2'; +diff --color -rupN freesurfer-orig/bin/bugr freesurfer-patched/bin/bugr +--- freesurfer-orig/bin/bugr 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/bugr 2022-11-18 09:37:03.727681871 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # bugr +diff --color -rupN freesurfer-orig/bin/cblumwmgyri freesurfer-patched/bin/cblumwmgyri +--- freesurfer-orig/bin/cblumwmgyri 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/cblumwmgyri 2022-11-18 09:37:06.307696107 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # cblumwmgyri + + set VERSION = 'cblumwmgyri 7.3.2'; +diff --color -rupN freesurfer-orig/bin/checkMCR.sh freesurfer-patched/bin/checkMCR.sh +--- freesurfer-orig/bin/checkMCR.sh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/checkMCR.sh 2022-11-18 09:37:05.491691603 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # Eugenio: note that when I used v80, I used to look for libdctprocess.so, + # but not I look for libmwlaunchermain.so instead (which is not present in v80) +diff --color -rupN freesurfer-orig/bin/clear_fs_env.csh freesurfer-patched/bin/clear_fs_env.csh +--- freesurfer-orig/bin/clear_fs_env.csh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/clear_fs_env.csh 2022-11-18 09:37:06.231695687 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # clear_fs_env.csh +diff --color -rupN freesurfer-orig/bin/compute_interrater_variability.csh freesurfer-patched/bin/compute_interrater_variability.csh +--- freesurfer-orig/bin/compute_interrater_variability.csh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/compute_interrater_variability.csh 2022-11-18 09:37:04.647686947 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # compute_interrater_variability + # +diff --color -rupN freesurfer-orig/bin/compute_label_volumes.csh freesurfer-patched/bin/compute_label_volumes.csh +--- freesurfer-orig/bin/compute_label_volumes.csh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/compute_label_volumes.csh 2022-11-18 09:37:06.467696990 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # compute_all_label_volumes + # +diff --color -rupN freesurfer-orig/bin/conf2hires freesurfer-patched/bin/conf2hires +--- freesurfer-orig/bin/conf2hires 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/conf2hires 2022-11-18 09:37:04.847688050 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # conf2hires - sources + if(-e $FREESURFER_HOME/sources.csh) then + source $FREESURFER_HOME/sources.csh +diff --color -rupN freesurfer-orig/bin/cp-dicom freesurfer-patched/bin/cp-dicom +--- freesurfer-orig/bin/cp-dicom 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/cp-dicom 2022-11-18 09:37:04.711687299 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # cp-dicom +diff --color -rupN freesurfer-orig/bin/dcmdir-info-mgh freesurfer-patched/bin/dcmdir-info-mgh +--- freesurfer-orig/bin/dcmdir-info-mgh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/dcmdir-info-mgh 2022-11-18 09:37:03.979683261 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # dcmdir-info-mgh +diff --color -rupN freesurfer-orig/bin/dcmsplit freesurfer-patched/bin/dcmsplit +--- freesurfer-orig/bin/dcmsplit 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/dcmsplit 2022-11-18 09:37:04.919688447 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # dcmsplit + + if(-e $FREESURFER_HOME/sources.csh) then +diff --color -rupN freesurfer-orig/bin/dcmunpack freesurfer-patched/bin/dcmunpack +--- freesurfer-orig/bin/dcmunpack 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/dcmunpack 2022-11-18 09:37:04.971688734 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # dcmunpack + # + +diff --color -rupN freesurfer-orig/bin/deface_subject freesurfer-patched/bin/deface_subject +--- freesurfer-orig/bin/deface_subject 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/deface_subject 2022-11-18 09:37:04.887688271 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # deface_subject +diff --color -rupN freesurfer-orig/bin/defect2seg freesurfer-patched/bin/defect2seg +--- freesurfer-orig/bin/defect2seg 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/defect2seg 2022-11-18 09:37:04.519686241 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # defect2seg - sources + if(-e $FREESURFER_HOME/sources.csh) then + source $FREESURFER_HOME/sources.csh +diff --color -rupN freesurfer-orig/bin/dmri_bset freesurfer-patched/bin/dmri_bset +--- freesurfer-orig/bin/dmri_bset 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/dmri_bset 2022-11-18 09:37:05.351690831 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # dmri_bset +diff --color -rupN freesurfer-orig/bin/dt_recon freesurfer-patched/bin/dt_recon +--- freesurfer-orig/bin/dt_recon 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/dt_recon 2022-11-18 09:37:05.567692023 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # + umask 002; + +diff --color -rupN freesurfer-orig/bin/epidewarp.fsl freesurfer-patched/bin/epidewarp.fsl +--- freesurfer-orig/bin/epidewarp.fsl 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/epidewarp.fsl 2022-11-18 09:37:04.863688138 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # epidewarp.fsl +diff --color -rupN freesurfer-orig/bin/exvivo-hemi-proc freesurfer-patched/bin/exvivo-hemi-proc +--- freesurfer-orig/bin/exvivo-hemi-proc 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/exvivo-hemi-proc 2022-11-18 09:37:04.943688580 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # thalseg - sources + if(-e $FREESURFER_HOME/sources.csh) then + source $FREESURFER_HOME/sources.csh +diff --color -rupN freesurfer-orig/bin/feat2segstats freesurfer-patched/bin/feat2segstats +--- freesurfer-orig/bin/feat2segstats 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/feat2segstats 2022-11-18 09:37:06.315696151 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # feat2segstats +diff --color -rupN freesurfer-orig/bin/feat2surf freesurfer-patched/bin/feat2surf +--- freesurfer-orig/bin/feat2surf 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/feat2surf 2022-11-18 09:37:04.559686461 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # reg-feat2anat +diff --color -rupN freesurfer-orig/bin/fix_subject freesurfer-patched/bin/fix_subject +--- freesurfer-orig/bin/fix_subject 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/fix_subject 2022-11-18 09:37:05.615692288 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # fix_subject +diff --color -rupN freesurfer-orig/bin/fix_subject_corrected freesurfer-patched/bin/fix_subject_corrected +--- freesurfer-orig/bin/fix_subject_corrected 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/fix_subject_corrected 2022-11-18 09:37:06.555697475 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # fix_subject_corrected +diff --color -rupN freesurfer-orig/bin/fix_subject_corrected-lh freesurfer-patched/bin/fix_subject_corrected-lh +--- freesurfer-orig/bin/fix_subject_corrected-lh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/fix_subject_corrected-lh 2022-11-18 09:37:04.195684453 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # fix_subject_corrected-lh +diff --color -rupN freesurfer-orig/bin/fix_subject_corrected-rh freesurfer-patched/bin/fix_subject_corrected-rh +--- freesurfer-orig/bin/fix_subject_corrected-rh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/fix_subject_corrected-rh 2022-11-18 09:37:03.663681518 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # fix_subject_corrected-rh +diff --color -rupN freesurfer-orig/bin/fix_subject-lh freesurfer-patched/bin/fix_subject-lh +--- freesurfer-orig/bin/fix_subject-lh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/fix_subject-lh 2022-11-18 09:37:05.403691118 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # fix_subject-lh +diff --color -rupN freesurfer-orig/bin/fix_subject-rh freesurfer-patched/bin/fix_subject-rh +--- freesurfer-orig/bin/fix_subject-rh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/fix_subject-rh 2022-11-18 09:37:05.171689838 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # fix_subject-rh +diff --color -rupN freesurfer-orig/bin/fscalc freesurfer-patched/bin/fscalc +--- freesurfer-orig/bin/fscalc 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/fscalc 2022-11-18 09:37:04.595686660 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # fscalc + + set VERSION = 'fscalc 7.3.2'; +diff --color -rupN freesurfer-orig/bin/fscalc.fsl freesurfer-patched/bin/fscalc.fsl +--- freesurfer-orig/bin/fscalc.fsl 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/fscalc.fsl 2022-11-18 09:37:05.483691559 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # + # This is a utility that extends fslmaths so that an format that can + # be read/written by freesurfer can be used. It operates in the same +diff --color -rupN freesurfer-orig/bin/fs-check-version freesurfer-patched/bin/fs-check-version +--- freesurfer-orig/bin/fs-check-version 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/fs-check-version 2022-11-18 09:37:04.623686814 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # fs-check-version - sources + if(-e $FREESURFER_HOME/sources.csh) then + source $FREESURFER_HOME/sources.csh +diff --color -rupN freesurfer-orig/bin/fsdcmdecompress freesurfer-patched/bin/fsdcmdecompress +--- freesurfer-orig/bin/fsdcmdecompress 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/fsdcmdecompress 2022-11-18 09:37:05.791693259 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # fsdcmdecompress - sources + if(-e $FREESURFER_HOME/sources.csh) then + source $FREESURFER_HOME/sources.csh +diff --color -rupN freesurfer-orig/bin/fsfirst.fsl freesurfer-patched/bin/fsfirst.fsl +--- freesurfer-orig/bin/fsfirst.fsl 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/fsfirst.fsl 2022-11-18 09:37:05.759693083 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # fsfirst.fsl + + if(-e $FREESURFER_HOME/sources.csh) then +diff --color -rupN freesurfer-orig/bin/fslregister freesurfer-patched/bin/fslregister +--- freesurfer-orig/bin/fslregister 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/fslregister 2022-11-18 09:37:05.095689418 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # fslregister +diff --color -rupN freesurfer-orig/bin/fsl_rigid_register freesurfer-patched/bin/fsl_rigid_register +--- freesurfer-orig/bin/fsl_rigid_register 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/fsl_rigid_register 2022-11-18 09:37:05.983694319 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # fsl_rigid_register +diff --color -rupN freesurfer-orig/bin/fsr-checkxopts freesurfer-patched/bin/fsr-checkxopts +--- freesurfer-orig/bin/fsr-checkxopts 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/fsr-checkxopts 2022-11-18 09:37:04.587686615 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # fsr-checkxopts +diff --color -rupN freesurfer-orig/bin/fsr-coreg freesurfer-patched/bin/fsr-coreg +--- freesurfer-orig/bin/fsr-coreg 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/fsr-coreg 2022-11-18 09:37:04.067683747 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # fsr-coreg + + # In theory, it would be better to resample all modes into an +diff --color -rupN freesurfer-orig/bin/fsr-getxopts freesurfer-patched/bin/fsr-getxopts +--- freesurfer-orig/bin/fsr-getxopts 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/fsr-getxopts 2022-11-18 09:37:04.095683902 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # fsr-getxopts +diff --color -rupN freesurfer-orig/bin/fsr-import freesurfer-patched/bin/fsr-import +--- freesurfer-orig/bin/fsr-import 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/fsr-import 2022-11-18 09:37:04.867688161 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # fsr-import + + if(-e $FREESURFER_HOME/sources.csh) then +diff --color -rupN freesurfer-orig/bin/fs_time freesurfer-patched/bin/fs_time +--- freesurfer-orig/bin/fs_time 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/fs_time 2022-11-18 09:37:04.439685799 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # fs_time + + # Check whether FS_TIME_ALLOW exists, if not assume it is ok +diff --color -rupN freesurfer-orig/bin/fsxvfb freesurfer-patched/bin/fsxvfb +--- freesurfer-orig/bin/fsxvfb 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/fsxvfb 2022-11-18 09:37:04.899688337 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + + # fsxvfb - a simple application of the virtual frame buffer (vrb) for + # X This can run graphical commands in a "headless" way, ie, without +diff --color -rupN freesurfer-orig/bin/fvcompare freesurfer-patched/bin/fvcompare +--- freesurfer-orig/bin/fvcompare 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/fvcompare 2022-11-18 09:37:04.667687057 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # fvcompare + + set VERSION = 'fvcompare 7.3.2'; +diff --color -rupN freesurfer-orig/bin/gca-apply freesurfer-patched/bin/gca-apply +--- freesurfer-orig/bin/gca-apply 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/gca-apply 2022-11-18 09:37:04.787687719 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # gca-apply + + set VERSION = 'gca-apply 7.3.2'; +diff --color -rupN freesurfer-orig/bin/gcainit freesurfer-patched/bin/gcainit +--- freesurfer-orig/bin/gcainit 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/gcainit 2022-11-18 09:37:05.331690721 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # gcainit + + set VERSION = 'gcainit 7.3.2'; +diff --color -rupN freesurfer-orig/bin/gcaprepone freesurfer-patched/bin/gcaprepone +--- freesurfer-orig/bin/gcaprepone 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/gcaprepone 2022-11-18 09:37:04.815687874 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # gcaprepone + + set VERSION = 'gcaprepone 7.3.2'; +diff --color -rupN freesurfer-orig/bin/gcatrain freesurfer-patched/bin/gcatrain +--- freesurfer-orig/bin/gcatrain 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/gcatrain 2022-11-18 09:37:04.579686571 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # gcatrain + + set VERSION = 'gcatrain 7.3.2'; +diff --color -rupN freesurfer-orig/bin/gcatrainskull freesurfer-patched/bin/gcatrainskull +--- freesurfer-orig/bin/gcatrainskull 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/gcatrainskull 2022-11-18 09:37:05.931694032 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # gcatrainskull + if(-e $FREESURFER_HOME/sources.csh) then + source $FREESURFER_HOME/sources.csh +diff --color -rupN freesurfer-orig/bin/getfullpath freesurfer-patched/bin/getfullpath +--- freesurfer-orig/bin/getfullpath 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/getfullpath 2022-11-18 09:37:04.927688491 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # getfullpath +diff --color -rupN freesurfer-orig/bin/get_label_thickness freesurfer-patched/bin/get_label_thickness +--- freesurfer-orig/bin/get_label_thickness 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/get_label_thickness 2022-11-18 09:37:04.907688381 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # script to get the thickness values for the vertices found in a label file. + # inputs: label file and ascii thickness file +diff --color -rupN freesurfer-orig/bin/grad_unwarp freesurfer-patched/bin/grad_unwarp +--- freesurfer-orig/bin/grad_unwarp 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/grad_unwarp 2022-11-18 09:37:05.095689418 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # grad_unwarp - convert, unwarp, and resample dicom files +diff --color -rupN freesurfer-orig/bin/groupstats freesurfer-patched/bin/groupstats +--- freesurfer-orig/bin/groupstats 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/groupstats 2022-11-18 09:37:04.015683460 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # groupstats + + set VERSION = 'groupstats 7.3.2'; +diff --color -rupN freesurfer-orig/bin/groupstatsdiff freesurfer-patched/bin/groupstatsdiff +--- freesurfer-orig/bin/groupstatsdiff 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/groupstatsdiff 2022-11-18 09:37:03.843682511 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # groupstatsdiff + + set VERSION = 'groupstatsdiff 7.3.2'; +diff --color -rupN freesurfer-orig/bin/gtmseg freesurfer-patched/bin/gtmseg +--- freesurfer-orig/bin/gtmseg 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/gtmseg 2022-11-18 09:37:04.527686284 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # gtmseg + + set VERSION = 'gtmseg 7.3.2'; +diff --color -rupN freesurfer-orig/bin/help_xml_validate freesurfer-patched/bin/help_xml_validate +--- freesurfer-orig/bin/help_xml_validate 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/help_xml_validate 2022-11-18 09:37:04.855688094 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # $srcdir is defined in make check runtime environment + set SRCDIR=$PWD +diff --color -rupN freesurfer-orig/bin/inflate_subject freesurfer-patched/bin/inflate_subject +--- freesurfer-orig/bin/inflate_subject 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/inflate_subject 2022-11-18 09:37:05.519691758 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # inflate_subject +diff --color -rupN freesurfer-orig/bin/inflate_subject3 freesurfer-patched/bin/inflate_subject3 +--- freesurfer-orig/bin/inflate_subject3 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/inflate_subject3 2022-11-18 09:37:04.319685137 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # inflate_subject3 +diff --color -rupN freesurfer-orig/bin/inflate_subject-lh freesurfer-patched/bin/inflate_subject-lh +--- freesurfer-orig/bin/inflate_subject-lh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/inflate_subject-lh 2022-11-18 09:37:03.755682026 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # inflate_subject-lh +diff --color -rupN freesurfer-orig/bin/inflate_subject_new-rh freesurfer-patched/bin/inflate_subject_new-rh +--- freesurfer-orig/bin/inflate_subject_new-rh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/inflate_subject_new-rh 2022-11-18 09:37:04.711687299 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # inflate_subject_new-rh +diff --color -rupN freesurfer-orig/bin/inflate_subject-rh freesurfer-patched/bin/inflate_subject-rh +--- freesurfer-orig/bin/inflate_subject-rh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/inflate_subject-rh 2022-11-18 09:37:05.319690654 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # inflate_subject-rh +diff --color -rupN freesurfer-orig/bin/inflate_subject_sc freesurfer-patched/bin/inflate_subject_sc +--- freesurfer-orig/bin/inflate_subject_sc 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/inflate_subject_sc 2022-11-18 09:37:06.019694517 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # inflate_subject_sc +diff --color -rupN freesurfer-orig/bin/isanalyze freesurfer-patched/bin/isanalyze +--- freesurfer-orig/bin/isanalyze 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/isanalyze 2022-11-18 09:37:04.095683902 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # isanalyze - checks whether the passed file is an analyze file +diff --color -rupN freesurfer-orig/bin/IsLTA freesurfer-patched/bin/IsLTA +--- freesurfer-orig/bin/IsLTA 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/IsLTA 2022-11-18 09:37:04.447685843 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # IsLTA + + set VERSION = 'IsLTA 7.3.2'; +diff --color -rupN freesurfer-orig/bin/isnifti freesurfer-patched/bin/isnifti +--- freesurfer-orig/bin/isnifti 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/isnifti 2022-11-18 09:37:03.831682445 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # isnifti - checks whether the passed file is a nifti file +diff --color -rupN freesurfer-orig/bin/isolate_labels.csh freesurfer-patched/bin/isolate_labels.csh +--- freesurfer-orig/bin/isolate_labels.csh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/isolate_labels.csh 2022-11-18 09:37:04.043683615 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # isolate_labels + # +diff --color -rupN freesurfer-orig/bin/isolate_labels_keeporigval.csh freesurfer-patched/bin/isolate_labels_keeporigval.csh +--- freesurfer-orig/bin/isolate_labels_keeporigval.csh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/isolate_labels_keeporigval.csh 2022-11-18 09:37:04.935688535 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # isolate_labels + # +diff --color -rupN freesurfer-orig/bin/jkgcatrain freesurfer-patched/bin/jkgcatrain +--- freesurfer-orig/bin/jkgcatrain 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/jkgcatrain 2022-11-18 09:37:03.975683239 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # jkgcatrain + + set VERSION = 'jkgcatrain 7.3.2'; +diff --color -rupN freesurfer-orig/bin/label_child freesurfer-patched/bin/label_child +--- freesurfer-orig/bin/label_child 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/label_child 2022-11-18 09:37:04.719687344 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # label_child +diff --color -rupN freesurfer-orig/bin/label_elderly_subject freesurfer-patched/bin/label_elderly_subject +--- freesurfer-orig/bin/label_elderly_subject 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/label_elderly_subject 2022-11-18 09:37:03.703681739 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # label_elderly_subject +diff --color -rupN freesurfer-orig/bin/labels_disjoint freesurfer-patched/bin/labels_disjoint +--- freesurfer-orig/bin/labels_disjoint 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/labels_disjoint 2022-11-18 09:37:04.391685534 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # set echo=1 + +diff --color -rupN freesurfer-orig/bin/labels_intersect freesurfer-patched/bin/labels_intersect +--- freesurfer-orig/bin/labels_intersect 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/labels_intersect 2022-11-18 09:37:05.995694384 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # set echo=1 + +diff --color -rupN freesurfer-orig/bin/label_subject freesurfer-patched/bin/label_subject +--- freesurfer-orig/bin/label_subject 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/label_subject 2022-11-18 09:37:04.587686615 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # label_subject +diff --color -rupN freesurfer-orig/bin/label_subject_flash freesurfer-patched/bin/label_subject_flash +--- freesurfer-orig/bin/label_subject_flash 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/label_subject_flash 2022-11-18 09:37:05.707692796 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # label_subject_flash +diff --color -rupN freesurfer-orig/bin/label_subject_mixed freesurfer-patched/bin/label_subject_mixed +--- freesurfer-orig/bin/label_subject_mixed 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/label_subject_mixed 2022-11-18 09:37:03.975683239 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # label_subject_mixed +diff --color -rupN freesurfer-orig/bin/labels_union freesurfer-patched/bin/labels_union +--- freesurfer-orig/bin/labels_union 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/labels_union 2022-11-18 09:37:04.739687454 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # set echo=1 + +diff --color -rupN freesurfer-orig/bin/long_create_base_sigma freesurfer-patched/bin/long_create_base_sigma +--- freesurfer-orig/bin/long_create_base_sigma 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/long_create_base_sigma 2022-11-18 09:37:06.087694892 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + # + # long_create_base_sigma + # +diff --color -rupN freesurfer-orig/bin/long_create_orig freesurfer-patched/bin/long_create_orig +--- freesurfer-orig/bin/long_create_orig 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/long_create_orig 2022-11-18 09:37:06.007694451 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + # + # long_create_orig + # +diff --color -rupN freesurfer-orig/bin/longmc freesurfer-patched/bin/longmc +--- freesurfer-orig/bin/longmc 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/longmc 2022-11-18 09:37:05.247690257 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # longmc - sources + if(-e $FREESURFER_HOME/sources.csh) then + source $FREESURFER_HOME/sources.csh +diff --color -rupN freesurfer-orig/bin/lpcregister freesurfer-patched/bin/lpcregister +--- freesurfer-orig/bin/lpcregister 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/lpcregister 2022-11-18 09:37:04.587686615 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # lpcregister +diff --color -rupN freesurfer-orig/bin/make_average_subcort freesurfer-patched/bin/make_average_subcort +--- freesurfer-orig/bin/make_average_subcort 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/make_average_subcort 2022-11-18 09:37:05.763693105 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # thalseg + + set VERSION = 'make_average_subcort 7.3.2'; +diff --color -rupN freesurfer-orig/bin/make_average_subject freesurfer-patched/bin/make_average_subject +--- freesurfer-orig/bin/make_average_subject 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/make_average_subject 2022-11-18 09:37:05.691692707 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # make_average_subject +diff --color -rupN freesurfer-orig/bin/make_average_surface freesurfer-patched/bin/make_average_surface +--- freesurfer-orig/bin/make_average_surface 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/make_average_surface 2022-11-18 09:37:06.535697365 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # make_average_surface +diff --color -rupN freesurfer-orig/bin/make_average_volume freesurfer-patched/bin/make_average_volume +--- freesurfer-orig/bin/make_average_volume 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/make_average_volume 2022-11-18 09:37:04.515686218 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # make_average_volume +diff --color -rupN freesurfer-orig/bin/make_cortex_label freesurfer-patched/bin/make_cortex_label +--- freesurfer-orig/bin/make_cortex_label 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/make_cortex_label 2022-11-18 09:37:03.923682952 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # make_cortex_label +diff --color -rupN freesurfer-orig/bin/make_folding_atlas freesurfer-patched/bin/make_folding_atlas +--- freesurfer-orig/bin/make_folding_atlas 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/make_folding_atlas 2022-11-18 09:37:04.975688757 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # make_folding_atlas + + set VERSION = 'make_folding_atlas 7.3.2'; +diff --color -rupN freesurfer-orig/bin/make-segvol-table freesurfer-patched/bin/make-segvol-table +--- freesurfer-orig/bin/make-segvol-table 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/make-segvol-table 2022-11-18 09:37:04.595686660 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # make-segvol-table - creates a table of volumes of subcortical +diff --color -rupN freesurfer-orig/bin/map_all_labels freesurfer-patched/bin/map_all_labels +--- freesurfer-orig/bin/map_all_labels 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/map_all_labels 2022-11-18 09:37:05.115689529 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # map_all_labels +diff --color -rupN freesurfer-orig/bin/map_all_labels-lh freesurfer-patched/bin/map_all_labels-lh +--- freesurfer-orig/bin/map_all_labels-lh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/map_all_labels-lh 2022-11-18 09:37:04.735687433 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # map_all_labels-lh +diff --color -rupN freesurfer-orig/bin/map_central_sulcus freesurfer-patched/bin/map_central_sulcus +--- freesurfer-orig/bin/map_central_sulcus 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/map_central_sulcus 2022-11-18 09:37:06.251695798 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # map_central_sulcus +diff --color -rupN freesurfer-orig/bin/meanval freesurfer-patched/bin/meanval +--- freesurfer-orig/bin/meanval 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/meanval 2022-11-18 09:37:05.307690588 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # meanval + + set VERSION = 'meanval 7.3.2'; +diff --color -rupN freesurfer-orig/bin/mergeseg freesurfer-patched/bin/mergeseg +--- freesurfer-orig/bin/mergeseg 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/mergeseg 2022-11-18 09:37:03.827682423 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # mergeseg + + set VERSION = 'mergeseg 7.3.2'; +diff --color -rupN freesurfer-orig/bin/mideface freesurfer-patched/bin/mideface +--- freesurfer-orig/bin/mideface 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/mideface 2022-11-18 09:37:05.799693303 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # midefacer - sources + if(-e $FREESURFER_HOME/sources.csh) then + source $FREESURFER_HOME/sources.csh +diff --color -rupN freesurfer-orig/bin/minc2seqinfo freesurfer-patched/bin/minc2seqinfo +--- freesurfer-orig/bin/minc2seqinfo 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/minc2seqinfo 2022-11-18 09:37:05.247690257 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + # + # Name: minc2seqinfo + # +diff --color -rupN freesurfer-orig/bin/mkheadsurf freesurfer-patched/bin/mkheadsurf +--- freesurfer-orig/bin/mkheadsurf 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/mkheadsurf 2022-11-18 09:37:04.015683460 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # mkheadsurf +diff --color -rupN freesurfer-orig/bin/mksubjdirs freesurfer-patched/bin/mksubjdirs +--- freesurfer-orig/bin/mksubjdirs 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/mksubjdirs 2022-11-18 09:37:04.715687321 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # mksubjdirs +diff --color -rupN freesurfer-orig/bin/mmppsp freesurfer-patched/bin/mmppsp +--- freesurfer-orig/bin/mmppsp 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/mmppsp 2022-11-18 09:37:06.055694716 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # mmppsp - multimodal post-prob surface placement using samseg post probs + if(-e $FREESURFER_HOME/sources.csh) then + source $FREESURFER_HOME/sources.csh +diff --color -rupN freesurfer-orig/bin/mni152reg freesurfer-patched/bin/mni152reg +--- freesurfer-orig/bin/mni152reg 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/mni152reg 2022-11-18 09:37:04.603686704 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # mni152reg + + set VERSION = 'mni152reg 7.3.2'; +diff --color -rupN freesurfer-orig/bin/morph_only_subject freesurfer-patched/bin/morph_only_subject +--- freesurfer-orig/bin/morph_only_subject 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/morph_only_subject 2022-11-18 09:37:04.423685711 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # morph_only_subject +diff --color -rupN freesurfer-orig/bin/morph_only_subject-lh freesurfer-patched/bin/morph_only_subject-lh +--- freesurfer-orig/bin/morph_only_subject-lh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/morph_only_subject-lh 2022-11-18 09:37:05.167689816 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # morph_only_subject-lh +diff --color -rupN freesurfer-orig/bin/morph_only_subject-rh freesurfer-patched/bin/morph_only_subject-rh +--- freesurfer-orig/bin/morph_only_subject-rh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/morph_only_subject-rh 2022-11-18 09:37:04.247684740 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # morph_only_subject-rh +diff --color -rupN freesurfer-orig/bin/morph_rgb-lh freesurfer-patched/bin/morph_rgb-lh +--- freesurfer-orig/bin/morph_rgb-lh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/morph_rgb-lh 2022-11-18 09:37:03.847682533 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # morph_rgb-lh +diff --color -rupN freesurfer-orig/bin/morph_rgb-rh freesurfer-patched/bin/morph_rgb-rh +--- freesurfer-orig/bin/morph_rgb-rh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/morph_rgb-rh 2022-11-18 09:37:05.447691361 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # morph_rgb-rh +diff --color -rupN freesurfer-orig/bin/morph_subject freesurfer-patched/bin/morph_subject +--- freesurfer-orig/bin/morph_subject 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/morph_subject 2022-11-18 09:37:05.095689418 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # morph_subject +diff --color -rupN freesurfer-orig/bin/morph_subject-lh freesurfer-patched/bin/morph_subject-lh +--- freesurfer-orig/bin/morph_subject-lh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/morph_subject-lh 2022-11-18 09:37:04.975688757 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # morph_subject-lh +diff --color -rupN freesurfer-orig/bin/morph_subject-rh freesurfer-patched/bin/morph_subject-rh +--- freesurfer-orig/bin/morph_subject-rh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/morph_subject-rh 2022-11-18 09:37:05.731692928 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # morph_subject-rh +diff --color -rupN freesurfer-orig/bin/morph_tables-lh freesurfer-patched/bin/morph_tables-lh +--- freesurfer-orig/bin/morph_tables-lh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/morph_tables-lh 2022-11-18 09:37:05.335690743 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # morph_tables-lh +diff --color -rupN freesurfer-orig/bin/morph_tables-rh freesurfer-patched/bin/morph_tables-rh +--- freesurfer-orig/bin/morph_tables-rh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/morph_tables-rh 2022-11-18 09:37:06.067694782 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # morph_tables-rh +diff --color -rupN freesurfer-orig/bin/mpr2mni305 freesurfer-patched/bin/mpr2mni305 +--- freesurfer-orig/bin/mpr2mni305 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/mpr2mni305 2022-11-18 09:37:04.219684585 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + + # Register an image to an average subject which + # itself has been registered to the MNI average_305 subject. +diff --color -rupN freesurfer-orig/bin/mri_add_new_tp freesurfer-patched/bin/mri_add_new_tp +--- freesurfer-orig/bin/mri_add_new_tp 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/mri_add_new_tp 2022-11-18 09:37:05.827693457 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # mri_add_new_tp +diff --color -rupN freesurfer-orig/bin/mri_align_long.csh freesurfer-patched/bin/mri_align_long.csh +--- freesurfer-orig/bin/mri_align_long.csh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/mri_align_long.csh 2022-11-18 09:37:06.187695445 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # mri_align_long.csh +diff --color -rupN freesurfer-orig/bin/mri_create_t2combined freesurfer-patched/bin/mri_create_t2combined +--- freesurfer-orig/bin/mri_create_t2combined 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/mri_create_t2combined 2022-11-18 09:37:05.691692707 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + set bin=mri_create_t2combined + +diff --color -rupN freesurfer-orig/bin/mri_cvs_check freesurfer-patched/bin/mri_cvs_check +--- freesurfer-orig/bin/mri_cvs_check 2022-08-04 06:51:42.000000000 +0200 ++++ freesurfer-patched/bin/mri_cvs_check 2022-11-18 09:37:04.559686461 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + + # mri_cvs_check +diff --color -rupN freesurfer-orig/bin/mri_cvs_data_copy freesurfer-patched/bin/mri_cvs_data_copy +--- freesurfer-orig/bin/mri_cvs_data_copy 2022-08-04 06:51:42.000000000 +0200 ++++ freesurfer-patched/bin/mri_cvs_data_copy 2022-11-18 09:37:06.003694429 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + + # mri_cvs_data_copy +diff --color -rupN freesurfer-orig/bin/mri_cvs_register freesurfer-patched/bin/mri_cvs_register +--- freesurfer-orig/bin/mri_cvs_register 2022-08-04 06:51:42.000000000 +0200 ++++ freesurfer-patched/bin/mri_cvs_register 2022-11-18 09:37:05.295690522 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + + # mri_cvs_register +diff --color -rupN freesurfer-orig/bin/mri-func2sph freesurfer-patched/bin/mri-func2sph +--- freesurfer-orig/bin/mri-func2sph 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/mri-func2sph 2022-11-18 09:37:03.843682511 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # mri-func2sph +diff --color -rupN freesurfer-orig/bin/mri-funcvits freesurfer-patched/bin/mri-funcvits +--- freesurfer-orig/bin/mri-funcvits 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/mri-funcvits 2022-11-18 09:37:04.815687874 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # mri-funcvits +diff --color -rupN freesurfer-orig/bin/mri_glmfit-sim freesurfer-patched/bin/mri_glmfit-sim +--- freesurfer-orig/bin/mri_glmfit-sim 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/mri_glmfit-sim 2022-11-18 09:37:05.719692862 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + set VERSION = 'mri_glmfit-sim 7.3.2'; + setenv LANG en_US.UTF-8 + +diff --color -rupN freesurfer-orig/bin/mri_mergelabels freesurfer-patched/bin/mri_mergelabels +--- freesurfer-orig/bin/mri_mergelabels 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/mri_mergelabels 2022-11-18 09:37:03.971683217 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # mri_mergelabels +diff --color -rupN freesurfer-orig/bin/mri_motion_correct2 freesurfer-patched/bin/mri_motion_correct2 +--- freesurfer-orig/bin/mri_motion_correct2 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/mri_motion_correct2 2022-11-18 09:37:04.739687454 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # mri_motion_correct2 +diff --color -rupN freesurfer-orig/bin/mri_motion_correct.fsl freesurfer-patched/bin/mri_motion_correct.fsl +--- freesurfer-orig/bin/mri_motion_correct.fsl 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/mri_motion_correct.fsl 2022-11-18 09:37:06.303696085 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # mri_motion_correct.fsl +diff --color -rupN freesurfer-orig/bin/mri_nu_correct.mni freesurfer-patched/bin/mri_nu_correct.mni +--- freesurfer-orig/bin/mri_nu_correct.mni 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/mri_nu_correct.mni 2022-11-18 09:37:04.571686527 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # mri_nu_correct.mni +diff --color -rupN freesurfer-orig/bin/mri_reorient_LR.csh freesurfer-patched/bin/mri_reorient_LR.csh +--- freesurfer-orig/bin/mri_reorient_LR.csh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/mri_reorient_LR.csh 2022-11-18 09:37:06.007694451 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # mri_reorient_LR + # +diff --color -rupN freesurfer-orig/bin/mris_compute_lgi freesurfer-patched/bin/mris_compute_lgi +--- freesurfer-orig/bin/mris_compute_lgi 2022-08-04 06:51:43.000000000 +0200 ++++ freesurfer-patched/bin/mris_compute_lgi 2022-11-18 09:37:04.747687498 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # mris_compute_lgi +diff --color -rupN freesurfer-orig/bin/mri-sph2surf freesurfer-patched/bin/mri-sph2surf +--- freesurfer-orig/bin/mri-sph2surf 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/mri-sph2surf 2022-11-18 09:37:04.799687785 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # mri-sph2surf +diff --color -rupN freesurfer-orig/bin/mris_preproc freesurfer-patched/bin/mris_preproc +--- freesurfer-orig/bin/mris_preproc 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/mris_preproc 2022-11-18 09:37:04.391685534 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # mris_preproc +diff --color -rupN freesurfer-orig/bin/mris_volsmooth freesurfer-patched/bin/mris_volsmooth +--- freesurfer-orig/bin/mris_volsmooth 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/mris_volsmooth 2022-11-18 09:37:05.515691736 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # mris_volsmooth +diff --color -rupN freesurfer-orig/bin/ms_refine_subject freesurfer-patched/bin/ms_refine_subject +--- freesurfer-orig/bin/ms_refine_subject 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/ms_refine_subject 2022-11-18 09:37:06.555697475 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # ms_refine_subject +diff --color -rupN freesurfer-orig/bin/orientLAS freesurfer-patched/bin/orientLAS +--- freesurfer-orig/bin/orientLAS 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/orientLAS 2022-11-18 09:37:06.555697475 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + # + # orientLAS + # +diff --color -rupN freesurfer-orig/bin/parc_atlas_jackknife_test freesurfer-patched/bin/parc_atlas_jackknife_test +--- freesurfer-orig/bin/parc_atlas_jackknife_test 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/parc_atlas_jackknife_test 2022-11-18 09:37:04.563686483 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # parc_atlas_jackknife_test +@@ -291,7 +291,7 @@ foreach test_subj ($ALL_SUBJECTS) + if (-e ${sphere_reg}) rm -f ${sphere_reg} + if ($PBS) then + set cmdf=(${WD}/${hemi}.${test_subj}${reg_append}.cmd) +- echo "#! /bin/tcsh -ef" > ${cmdf} ++ echo "#!/usr/bin/env/tcsh -ef" > ${cmdf} + echo "limit filesize 10megabytes" >> ${cmdf} + echo "${cmd} |& tee -a ${LF}" >> ${cmdf} + chmod a+x ${cmdf} +diff --color -rupN freesurfer-orig/bin/pctsurfcon freesurfer-patched/bin/pctsurfcon +--- freesurfer-orig/bin/pctsurfcon 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/pctsurfcon 2022-11-18 09:37:05.459691427 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # pctsurfcon +diff --color -rupN freesurfer-orig/bin/polyorder freesurfer-patched/bin/polyorder +--- freesurfer-orig/bin/polyorder 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/polyorder 2022-11-18 09:37:04.207684519 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # polyorder + + set VERSION = 'polyorder 7.3.2'; +diff --color -rupN freesurfer-orig/bin/print_unique_labels.csh freesurfer-patched/bin/print_unique_labels.csh +--- freesurfer-orig/bin/print_unique_labels.csh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/print_unique_labels.csh 2022-11-18 09:37:04.015683460 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # print_unique_labels + # +diff --color -rupN freesurfer-orig/bin/rbbr freesurfer-patched/bin/rbbr +--- freesurfer-orig/bin/rbbr 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/rbbr 2022-11-18 09:37:04.167684299 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # rbbr + + set VERSION = 'rbbr 7.3.2'; +diff --color -rupN freesurfer-orig/bin/rca-base-init freesurfer-patched/bin/rca-base-init +--- freesurfer-orig/bin/rca-base-init 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/rca-base-init 2022-11-18 09:37:04.711687299 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # rca-base-init - initialize base subject for recon-all processing. Mostly, code was just + # cut out of recon-all, so there are some things that look funny (eg, DoCreateBaseSubj is + # explicitly set to 1 and checked eventhough that is what this script does). I wanted +diff --color -rupN freesurfer-orig/bin/rca-long-tp-init freesurfer-patched/bin/rca-long-tp-init +--- freesurfer-orig/bin/rca-long-tp-init 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/rca-long-tp-init 2022-11-18 09:37:04.571686527 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + + # rca-long-tp-init - initialize long timepoint subject for recon-all + # processing. Mostly, code was just cut out of recon-all, so there are +diff --color -rupN freesurfer-orig/bin/rcbf-prep freesurfer-patched/bin/rcbf-prep +--- freesurfer-orig/bin/rcbf-prep 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/rcbf-prep 2022-11-18 09:37:05.315690632 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # rcbf-prep + + set VERSION = 'rcbf-prep 7.3.2'; +diff --color -rupN freesurfer-orig/bin/rebuild_gca_atlas.csh freesurfer-patched/bin/rebuild_gca_atlas.csh +--- freesurfer-orig/bin/rebuild_gca_atlas.csh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/rebuild_gca_atlas.csh 2022-11-18 09:37:05.187689926 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # rebuild_gca_atlas.csh +diff --color -rupN freesurfer-orig/bin/recon-all freesurfer-patched/bin/recon-all +--- freesurfer-orig/bin/recon-all 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/recon-all 2022-11-18 09:37:05.839693524 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # recon-all +diff --color -rupN freesurfer-orig/bin/reg2subject freesurfer-patched/bin/reg2subject +--- freesurfer-orig/bin/reg2subject 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/reg2subject 2022-11-18 09:37:03.903682842 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # reg2subject + + set VERSION = 'reg2subject 7.3.2'; +diff --color -rupN freesurfer-orig/bin/reg-feat2anat freesurfer-patched/bin/reg-feat2anat +--- freesurfer-orig/bin/reg-feat2anat 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/reg-feat2anat 2022-11-18 09:37:04.067683747 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # reg-feat2anat +diff --color -rupN freesurfer-orig/bin/register_child freesurfer-patched/bin/register_child +--- freesurfer-orig/bin/register_child 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/register_child 2022-11-18 09:37:04.667687057 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # register_child +diff --color -rupN freesurfer-orig/bin/register.csh freesurfer-patched/bin/register.csh +--- freesurfer-orig/bin/register.csh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/register.csh 2022-11-18 09:37:05.731692928 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # register.csh +diff --color -rupN freesurfer-orig/bin/register_subject freesurfer-patched/bin/register_subject +--- freesurfer-orig/bin/register_subject 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/register_subject 2022-11-18 09:37:04.419685688 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # register_subject +diff --color -rupN freesurfer-orig/bin/register_subject_flash freesurfer-patched/bin/register_subject_flash +--- freesurfer-orig/bin/register_subject_flash 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/register_subject_flash 2022-11-18 09:37:06.307696107 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # register_subject_flash +diff --color -rupN freesurfer-orig/bin/register_subject_mixed freesurfer-patched/bin/register_subject_mixed +--- freesurfer-orig/bin/register_subject_mixed 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/register_subject_mixed 2022-11-18 09:37:03.711681784 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # register_subject_mixed +diff --color -rupN freesurfer-orig/bin/reinflate_subject freesurfer-patched/bin/reinflate_subject +--- freesurfer-orig/bin/reinflate_subject 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/reinflate_subject 2022-11-18 09:37:05.059689220 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # reinflate_subject +diff --color -rupN freesurfer-orig/bin/reinflate_subject-lh freesurfer-patched/bin/reinflate_subject-lh +--- freesurfer-orig/bin/reinflate_subject-lh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/reinflate_subject-lh 2022-11-18 09:37:04.727687388 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # reinflate_subject-lh +diff --color -rupN freesurfer-orig/bin/reinflate_subject-rh freesurfer-patched/bin/reinflate_subject-rh +--- freesurfer-orig/bin/reinflate_subject-rh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/reinflate_subject-rh 2022-11-18 09:37:06.439696835 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # reinflate_subject-rh +diff --color -rupN freesurfer-orig/bin/remove_talairach freesurfer-patched/bin/remove_talairach +--- freesurfer-orig/bin/remove_talairach 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/remove_talairach 2022-11-18 09:37:04.207684519 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # remove_talairach +diff --color -rupN freesurfer-orig/bin/renormalize_subject freesurfer-patched/bin/renormalize_subject +--- freesurfer-orig/bin/renormalize_subject 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/renormalize_subject 2022-11-18 09:37:05.183689904 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # renormalize_subject +diff --color -rupN freesurfer-orig/bin/renormalize_subject_keep_editting freesurfer-patched/bin/renormalize_subject_keep_editting +--- freesurfer-orig/bin/renormalize_subject_keep_editting 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/renormalize_subject_keep_editting 2022-11-18 09:37:06.067694782 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # renormalize_subject_keep_editting +diff --color -rupN freesurfer-orig/bin/renormalize_T1_subject freesurfer-patched/bin/renormalize_T1_subject +--- freesurfer-orig/bin/renormalize_T1_subject 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/renormalize_T1_subject 2022-11-18 09:37:03.755682026 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # renormalize_T1_subject +diff --color -rupN freesurfer-orig/bin/reregister_subject_mixed freesurfer-patched/bin/reregister_subject_mixed +--- freesurfer-orig/bin/reregister_subject_mixed 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/reregister_subject_mixed 2022-11-18 09:37:05.891693811 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # reregister_subject_mixed +diff --color -rupN freesurfer-orig/bin/rtview freesurfer-patched/bin/rtview +--- freesurfer-orig/bin/rtview 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/rtview 2022-11-18 09:37:04.419685688 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # rtview + + set VERSION = 'rtview 7.3.2'; +diff --color -rupN freesurfer-orig/bin/run_mris_preproc freesurfer-patched/bin/run_mris_preproc +--- freesurfer-orig/bin/run_mris_preproc 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/run_mris_preproc 2022-11-18 09:37:05.675692619 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # Script to create a cache of the preprocessed files needed by qdec. +diff --color -rupN freesurfer-orig/bin/run-qdec-glm freesurfer-patched/bin/run-qdec-glm +--- freesurfer-orig/bin/run-qdec-glm 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/run-qdec-glm 2022-11-18 09:37:05.195689970 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # run-qdec-glm +diff --color -rupN freesurfer-orig/bin/samseg freesurfer-patched/bin/samseg +--- freesurfer-orig/bin/samseg 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/samseg 2022-11-18 09:37:05.703692774 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # samseg + + set VERSION = 'samseg 7.3.2'; +diff --color -rupN freesurfer-orig/bin/samseg2recon freesurfer-patched/bin/samseg2recon +--- freesurfer-orig/bin/samseg2recon 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/samseg2recon 2022-11-18 09:37:06.219695621 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # + # samseg2recon - create and populate a subjects dir in a way that + # recon-all can be run on it. +diff --color -rupN freesurfer-orig/bin/samseg-long freesurfer-patched/bin/samseg-long +--- freesurfer-orig/bin/samseg-long 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/samseg-long 2022-11-18 09:37:04.783687697 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # samseg-long - sources + if(-e $FREESURFER_HOME/sources.csh) then + source $FREESURFER_HOME/sources.csh +diff --color -rupN freesurfer-orig/bin/seg2filled freesurfer-patched/bin/seg2filled +--- freesurfer-orig/bin/seg2filled 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/seg2filled 2022-11-18 09:37:06.195695489 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + + # seg2filled - creates a filled.mgz from an aseg-style + # segmentation. The original intent is to use a SAMSEG segmentation to +diff --color -rupN freesurfer-orig/bin/seg2recon freesurfer-patched/bin/seg2recon +--- freesurfer-orig/bin/seg2recon 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/seg2recon 2022-11-18 09:37:04.571686527 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # + # seg2recon - create and populate a subjects dir given the seg and + # input vol in a way that recon-all can be run on it. This is similar +diff --color -rupN freesurfer-orig/bin/segmentBS.sh freesurfer-patched/bin/segmentBS.sh +--- freesurfer-orig/bin/segmentBS.sh 2022-08-04 06:40:23.000000000 +0200 ++++ freesurfer-patched/bin/segmentBS.sh 2022-11-18 09:37:04.539686351 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + set tcsh61706 = (`tcsh --version | grep "6\.17\.06"`) + if ("$tcsh61706" != "") then +diff --color -rupN freesurfer-orig/bin/segmentHA_T1_long.sh freesurfer-patched/bin/segmentHA_T1_long.sh +--- freesurfer-orig/bin/segmentHA_T1_long.sh 2022-08-04 06:40:23.000000000 +0200 ++++ freesurfer-patched/bin/segmentHA_T1_long.sh 2022-11-18 09:37:06.095694937 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + set tcsh61706 = (`tcsh --version | grep "6\.17\.06"`) + if ("$tcsh61706" != "") then +diff --color -rupN freesurfer-orig/bin/segmentHA_T1.sh freesurfer-patched/bin/segmentHA_T1.sh +--- freesurfer-orig/bin/segmentHA_T1.sh 2022-08-04 06:40:23.000000000 +0200 ++++ freesurfer-patched/bin/segmentHA_T1.sh 2022-11-18 09:37:06.179695400 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + set tcsh61706 = (`tcsh --version | grep "6\.17\.06"`) + if ("$tcsh61706" != "") then +diff --color -rupN freesurfer-orig/bin/segmentHA_T2.sh freesurfer-patched/bin/segmentHA_T2.sh +--- freesurfer-orig/bin/segmentHA_T2.sh 2022-08-04 06:40:23.000000000 +0200 ++++ freesurfer-patched/bin/segmentHA_T2.sh 2022-11-18 09:37:04.207684519 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + set tcsh61706 = (`tcsh --version | grep "6\.17\.06"`) + if ("$tcsh61706" != "") then +diff --color -rupN freesurfer-orig/bin/segment_monkey freesurfer-patched/bin/segment_monkey +--- freesurfer-orig/bin/segment_monkey 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/segment_monkey 2022-11-18 09:37:04.815687874 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # segment_monkey +diff --color -rupN freesurfer-orig/bin/segment_subject freesurfer-patched/bin/segment_subject +--- freesurfer-orig/bin/segment_subject 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/segment_subject 2022-11-18 09:37:04.775687653 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # segment_subject +diff --color -rupN freesurfer-orig/bin/segment_subject_notal freesurfer-patched/bin/segment_subject_notal +--- freesurfer-orig/bin/segment_subject_notal 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/segment_subject_notal 2022-11-18 09:37:04.919688447 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # segment_subject_notal +diff --color -rupN freesurfer-orig/bin/segment_subject_notal2 freesurfer-patched/bin/segment_subject_notal2 +--- freesurfer-orig/bin/segment_subject_notal2 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/segment_subject_notal2 2022-11-18 09:37:04.587686615 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # segment_subject_notal2 +diff --color -rupN freesurfer-orig/bin/segment_subject_old_skull_strip freesurfer-patched/bin/segment_subject_old_skull_strip +--- freesurfer-orig/bin/segment_subject_old_skull_strip 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/segment_subject_old_skull_strip 2022-11-18 09:37:05.891693811 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # segment_subject_old_skull_strip +diff --color -rupN freesurfer-orig/bin/segment_subject_sc freesurfer-patched/bin/segment_subject_sc +--- freesurfer-orig/bin/segment_subject_sc 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/segment_subject_sc 2022-11-18 09:37:04.391685534 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # segment_subject_sc +diff --color -rupN freesurfer-orig/bin/segment_subject_talmgh freesurfer-patched/bin/segment_subject_talmgh +--- freesurfer-orig/bin/segment_subject_talmgh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/segment_subject_talmgh 2022-11-18 09:37:03.751682004 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # segment_subject_talmgh +diff --color -rupN freesurfer-orig/bin/segmentThalamicNuclei.sh freesurfer-patched/bin/segmentThalamicNuclei.sh +--- freesurfer-orig/bin/segmentThalamicNuclei.sh 2022-08-04 06:40:23.000000000 +0200 ++++ freesurfer-patched/bin/segmentThalamicNuclei.sh 2022-11-18 09:37:04.147684189 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + set tcsh61706 = (`tcsh --version | grep "6\.17\.06"`) + if ("$tcsh61706" != "") then +diff --color -rupN freesurfer-orig/bin/segpons freesurfer-patched/bin/segpons +--- freesurfer-orig/bin/segpons 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/segpons 2022-11-18 09:37:05.171689838 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # segpons + + set VERSION = 'segpons 7.3.2'; +diff --color -rupN freesurfer-orig/bin/setlabelstat freesurfer-patched/bin/setlabelstat +--- freesurfer-orig/bin/setlabelstat 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/setlabelstat 2022-11-18 09:37:04.735687433 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # setlabelstat +diff --color -rupN freesurfer-orig/bin/sfa2fieldsign freesurfer-patched/bin/sfa2fieldsign +--- freesurfer-orig/bin/sfa2fieldsign 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/sfa2fieldsign 2022-11-18 09:37:05.059689220 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # sfa2fieldsign + setenv FSLOUTPUTTYPE NIFTI + +diff --color -rupN freesurfer-orig/bin/skip_long_make_checks freesurfer-patched/bin/skip_long_make_checks +--- freesurfer-orig/bin/skip_long_make_checks 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/skip_long_make_checks 2022-11-18 09:37:03.691681673 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + # if these are defined, then make check skips these long tests: + setenv SKIP_MRI_APARC2ASEG_TEST 1 + setenv SKIP_MRIS_EXPAND_TEST 1 +diff --color -rupN freesurfer-orig/bin/sphere_subject freesurfer-patched/bin/sphere_subject +--- freesurfer-orig/bin/sphere_subject 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/sphere_subject 2022-11-18 09:37:04.763687587 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # sphere_subject +diff --color -rupN freesurfer-orig/bin/sphere_subject-lh freesurfer-patched/bin/sphere_subject-lh +--- freesurfer-orig/bin/sphere_subject-lh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/sphere_subject-lh 2022-11-18 09:37:04.995688867 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # sphere_subject-lh +diff --color -rupN freesurfer-orig/bin/sphere_subject-rh freesurfer-patched/bin/sphere_subject-rh +--- freesurfer-orig/bin/sphere_subject-rh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/sphere_subject-rh 2022-11-18 09:37:03.711681784 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # sphere_subject-rh +diff --color -rupN freesurfer-orig/bin/spmmat2register freesurfer-patched/bin/spmmat2register +--- freesurfer-orig/bin/spmmat2register 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/spmmat2register 2022-11-18 09:37:05.295690522 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # spmmat2register +diff --color -rupN freesurfer-orig/bin/spmregister freesurfer-patched/bin/spmregister +--- freesurfer-orig/bin/spmregister 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/spmregister 2022-11-18 09:37:05.411691162 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # spmregister +diff --color -rupN freesurfer-orig/bin/sratio freesurfer-patched/bin/sratio +--- freesurfer-orig/bin/sratio 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/sratio 2022-11-18 09:37:04.927688491 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # sratio - signed ratio + # +A/B if A>B + # -B/A if B>A +diff --color -rupN freesurfer-orig/bin/surfreg freesurfer-patched/bin/surfreg +--- freesurfer-orig/bin/surfreg 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/surfreg 2022-11-18 09:37:05.079689330 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # surfreg + + set VERSION = 'surfreg 7.3.2'; +diff --color -rupN freesurfer-orig/bin/talairach freesurfer-patched/bin/talairach +--- freesurfer-orig/bin/talairach 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/talairach 2022-11-18 09:37:05.203690014 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # talairach +diff --color -rupN freesurfer-orig/bin/talairach2 freesurfer-patched/bin/talairach2 +--- freesurfer-orig/bin/talairach2 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/talairach2 2022-11-18 09:37:06.207695555 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # talairach2 +diff --color -rupN freesurfer-orig/bin/talairach_avi freesurfer-patched/bin/talairach_avi +--- freesurfer-orig/bin/talairach_avi 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/talairach_avi 2022-11-18 09:37:06.007694451 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # talairach_avi - align an image to the average_305 MNI (talairach) target +diff --color -rupN freesurfer-orig/bin/talairach_mgh freesurfer-patched/bin/talairach_mgh +--- freesurfer-orig/bin/talairach_mgh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/talairach_mgh 2022-11-18 09:37:06.503697188 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -ef ++#!/usr/bin/env/tcsh -ef + + # + # talairach_mgh +diff --color -rupN freesurfer-orig/bin/talsegprob freesurfer-patched/bin/talsegprob +--- freesurfer-orig/bin/talsegprob 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/talsegprob 2022-11-18 09:37:05.447691361 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # talsegprob +diff --color -rupN freesurfer-orig/bin/test_recon-all.csh freesurfer-patched/bin/test_recon-all.csh +--- freesurfer-orig/bin/test_recon-all.csh 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/test_recon-all.csh 2022-11-18 09:37:05.571692045 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # Name: test_recon-all.csh +diff --color -rupN freesurfer-orig/bin/tkmeditfv freesurfer-patched/bin/tkmeditfv +--- freesurfer-orig/bin/tkmeditfv 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/tkmeditfv 2022-11-18 09:37:04.711687299 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # tkmeditfv + + set VERSION = 'tkmeditfv 7.3.2'; +diff --color -rupN freesurfer-orig/bin/tkregisterfv freesurfer-patched/bin/tkregisterfv +--- freesurfer-orig/bin/tkregisterfv 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/tkregisterfv 2022-11-18 09:37:04.279684917 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # tkregisterfv + + set VERSION = 'tkregisterfv 7.3.2'; +diff --color -rupN freesurfer-orig/bin/tksurferfv freesurfer-patched/bin/tksurferfv +--- freesurfer-orig/bin/tksurferfv 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/tksurferfv 2022-11-18 09:37:05.063689241 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # tkmeditfv + + set VERSION = 'tksurferfv 7.3.2'; +diff --color -rupN freesurfer-orig/bin/trac-all freesurfer-patched/bin/trac-all +--- freesurfer-orig/bin/trac-all 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/trac-all 2022-11-18 09:37:06.507697211 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # trac-all +diff --color -rupN freesurfer-orig/bin/trac-paths freesurfer-patched/bin/trac-paths +--- freesurfer-orig/bin/trac-paths 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/trac-paths 2022-11-18 09:37:03.971683217 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # trac-paths +diff --color -rupN freesurfer-orig/bin/trac-preproc freesurfer-patched/bin/trac-preproc +--- freesurfer-orig/bin/trac-preproc 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/trac-preproc 2022-11-18 09:37:05.111689507 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # trac-preproc +diff --color -rupN freesurfer-orig/bin/train-gcs-atlas freesurfer-patched/bin/train-gcs-atlas +--- freesurfer-orig/bin/train-gcs-atlas 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/train-gcs-atlas 2022-11-18 09:37:04.783687697 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # train-gcs-atlas + + if(-e $FREESURFER_HOME/sources.csh) then +diff --color -rupN freesurfer-orig/bin/unpackimadir freesurfer-patched/bin/unpackimadir +--- freesurfer-orig/bin/unpackimadir 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/unpackimadir 2022-11-18 09:37:03.823682401 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # unpackimadir +diff --color -rupN freesurfer-orig/bin/unpackmincdir freesurfer-patched/bin/unpackmincdir +--- freesurfer-orig/bin/unpackmincdir 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/unpackmincdir 2022-11-18 09:37:04.603686704 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # Name: unpackmincdir + # Purpose: unpacks the functionals and anatomicals and copies others +diff --color -rupN freesurfer-orig/bin/vertexvol freesurfer-patched/bin/vertexvol +--- freesurfer-orig/bin/vertexvol 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/vertexvol 2022-11-18 09:37:06.019694517 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + + # Copyright © 2021 The General Hospital Corporation (Boston, MA) "MGH" + # +diff --color -rupN freesurfer-orig/bin/vno_match_check freesurfer-patched/bin/vno_match_check +--- freesurfer-orig/bin/vno_match_check 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/vno_match_check 2022-11-18 09:37:05.167689816 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + #set echo=1 + +diff --color -rupN freesurfer-orig/bin/vol2segavg freesurfer-patched/bin/vol2segavg +--- freesurfer-orig/bin/vol2segavg 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/vol2segavg 2022-11-18 09:37:06.179695400 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # vol2segavg + + set VERSION = 'vol2segavg 7.3.2'; +diff --color -rupN freesurfer-orig/bin/vol2subfield freesurfer-patched/bin/vol2subfield +--- freesurfer-orig/bin/vol2subfield 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/vol2subfield 2022-11-18 09:37:04.291684982 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # vol2subfield - + + if(-e $FREESURFER_HOME/sources.csh) then +diff --color -rupN freesurfer-orig/bin/vol2symsurf freesurfer-patched/bin/vol2symsurf +--- freesurfer-orig/bin/vol2symsurf 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/vol2symsurf 2022-11-18 09:37:03.703681739 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # vol2symsurf + + set VERSION = 'vol2symsurf 7.3.2'; +diff --color -rupN freesurfer-orig/bin/vsm-smooth freesurfer-patched/bin/vsm-smooth +--- freesurfer-orig/bin/vsm-smooth 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/vsm-smooth 2022-11-18 09:37:03.911682886 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # vsm-smooth + + set VERSION = 'vsm-smooth 7.3.2'; +diff --color -rupN freesurfer-orig/bin/wfilemask freesurfer-patched/bin/wfilemask +--- freesurfer-orig/bin/wfilemask 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/wfilemask 2022-11-18 09:37:03.979683261 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # wfilemask +diff --color -rupN freesurfer-orig/bin/wm-anat-snr freesurfer-patched/bin/wm-anat-snr +--- freesurfer-orig/bin/wm-anat-snr 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/wm-anat-snr 2022-11-18 09:37:04.519686241 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + + set VERSION = 'wm-anat-snr 7.3.2'; + set inputargs = ($argv); +diff --color -rupN freesurfer-orig/bin/wmedits2surf freesurfer-patched/bin/wmedits2surf +--- freesurfer-orig/bin/wmedits2surf 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/wmedits2surf 2022-11-18 09:37:04.763687587 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # wmedits2surf + + set VERSION = 'wmedits2surf 7.3.2'; +diff --color -rupN freesurfer-orig/bin/wmsaseg freesurfer-patched/bin/wmsaseg +--- freesurfer-orig/bin/wmsaseg 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/wmsaseg 2022-11-18 09:37:05.779693193 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # wmsaseg + + set VERSION = 'wmsaseg 7.3.2'; +diff --color -rupN freesurfer-orig/bin/xcerebralseg freesurfer-patched/bin/xcerebralseg +--- freesurfer-orig/bin/xcerebralseg 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/xcerebralseg 2022-11-18 09:37:05.755693060 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # xcerebralseg + + set VERSION = 'xcerebralseg 7.3.2'; +diff --color -rupN freesurfer-orig/bin/xcorr freesurfer-patched/bin/xcorr +--- freesurfer-orig/bin/xcorr 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/xcorr 2022-11-18 09:37:04.651686969 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # xcorr + + set VERSION = 'xcorr 7.3.2'; +diff --color -rupN freesurfer-orig/bin/xfmrot freesurfer-patched/bin/xfmrot +--- freesurfer-orig/bin/xfmrot 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/xfmrot 2022-11-18 09:37:05.499691648 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + if ($#argv < 2 || $#argv > 3) then + echo "xfmrot <transform file> <input vector file> [<output vector file>]" +diff --color -rupN freesurfer-orig/bin/xhemi-tal freesurfer-patched/bin/xhemi-tal +--- freesurfer-orig/bin/xhemi-tal 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/xhemi-tal 2022-11-18 09:37:06.087694892 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # xhemi-tal +diff --color -rupN freesurfer-orig/bin/xsanatreg freesurfer-patched/bin/xsanatreg +--- freesurfer-orig/bin/xsanatreg 2022-08-04 06:51:40.000000000 +0200 ++++ freesurfer-patched/bin/xsanatreg 2022-11-18 09:37:04.819687895 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # xsanatreg +diff --color -rupN freesurfer-orig/fsfast/bin/acorfunc-sess freesurfer-patched/fsfast/bin/acorfunc-sess +--- freesurfer-orig/fsfast/bin/acorfunc-sess 2022-08-04 06:51:42.000000000 +0200 ++++ freesurfer-patched/fsfast/bin/acorfunc-sess 2022-11-18 09:37:37.743870251 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # acorfunc-sess +diff --color -rupN freesurfer-orig/fsfast/bin/autoreg-fsl freesurfer-patched/fsfast/bin/autoreg-fsl +--- freesurfer-orig/fsfast/bin/autoreg-fsl 2022-08-04 06:51:42.000000000 +0200 ++++ freesurfer-patched/fsfast/bin/autoreg-fsl 2022-11-18 09:37:37.835870762 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # autoreg-fsl +diff --color -rupN freesurfer-orig/fsfast/bin/check-sliceres-sess freesurfer-patched/fsfast/bin/check-sliceres-sess +--- freesurfer-orig/fsfast/bin/check-sliceres-sess 2022-08-04 06:51:42.000000000 +0200 ++++ freesurfer-patched/fsfast/bin/check-sliceres-sess 2022-11-18 09:37:37.767870384 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # check-sliceres-sess +diff --color -rupN freesurfer-orig/fsfast/bin/fcseedcor freesurfer-patched/fsfast/bin/fcseedcor +--- freesurfer-orig/fsfast/bin/fcseedcor 2022-08-04 06:51:42.000000000 +0200 ++++ freesurfer-patched/fsfast/bin/fcseedcor 2022-11-18 09:37:37.803870584 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # fcseedcor + + set VERSION = 'fcseedcor 7.3.2'; +diff --color -rupN freesurfer-orig/fsfast/bin/fsfast-gui-bug freesurfer-patched/fsfast/bin/fsfast-gui-bug +--- freesurfer-orig/fsfast/bin/fsfast-gui-bug 2022-08-04 06:51:42.000000000 +0200 ++++ freesurfer-patched/fsfast/bin/fsfast-gui-bug 2022-11-18 09:37:37.767870384 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # recon-all + + set VERSION = 'fsfast-gui-bug 7.3.2'; +diff --color -rupN freesurfer-orig/fsfast/bin/fsfeatffx freesurfer-patched/fsfast/bin/fsfeatffx +--- freesurfer-orig/fsfast/bin/fsfeatffx 2022-08-04 06:51:42.000000000 +0200 ++++ freesurfer-patched/fsfast/bin/fsfeatffx 2022-11-18 09:37:37.787870495 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # fsfeatffx + # + +diff --color -rupN freesurfer-orig/fsfast/bin/functwf-sess freesurfer-patched/fsfast/bin/functwf-sess +--- freesurfer-orig/fsfast/bin/functwf-sess 2022-08-04 06:51:42.000000000 +0200 ++++ freesurfer-patched/fsfast/bin/functwf-sess 2022-11-18 09:37:37.835870762 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # functwf-sess +diff --color -rupN freesurfer-orig/fsfast/bin/isxavg-re freesurfer-patched/fsfast/bin/isxavg-re +--- freesurfer-orig/fsfast/bin/isxavg-re 2022-08-04 06:51:42.000000000 +0200 ++++ freesurfer-patched/fsfast/bin/isxavg-re 2022-11-18 09:37:37.851870851 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # isxavg-re +diff --color -rupN freesurfer-orig/fsfast/bin/lrst-blk-sess freesurfer-patched/fsfast/bin/lrst-blk-sess +--- freesurfer-orig/fsfast/bin/lrst-blk-sess 2022-08-04 06:51:42.000000000 +0200 ++++ freesurfer-patched/fsfast/bin/lrst-blk-sess 2022-11-18 09:37:37.727870161 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # lrst-blk-sess +diff --color -rupN freesurfer-orig/fsfast/bin/mcdat2mcextreg freesurfer-patched/fsfast/bin/mcdat2mcextreg +--- freesurfer-orig/fsfast/bin/mcdat2mcextreg 2022-08-04 06:51:42.000000000 +0200 ++++ freesurfer-patched/fsfast/bin/mcdat2mcextreg 2022-11-18 09:37:37.779870451 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # mcdat2extreg + + set VERSION = 'mcdat2mcextreg 7.3.2'; +diff --color -rupN freesurfer-orig/fsfast/bin/mkbrainmask freesurfer-patched/fsfast/bin/mkbrainmask +--- freesurfer-orig/fsfast/bin/mkbrainmask 2022-08-04 06:51:42.000000000 +0200 ++++ freesurfer-patched/fsfast/bin/mkbrainmask 2022-11-18 09:37:37.783870473 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # mkbrainmask + + set VERSION = 'mkbrainmask 7.3.2'; +diff --color -rupN freesurfer-orig/fsfast/bin/preproc-sess freesurfer-patched/fsfast/bin/preproc-sess +--- freesurfer-orig/fsfast/bin/preproc-sess 2022-08-04 06:51:42.000000000 +0200 ++++ freesurfer-patched/fsfast/bin/preproc-sess 2022-11-18 09:37:37.727870161 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # preproc-sess - runs preprocessing (mc, spatsmooth, mkbrainmask, inorm) +diff --color -rupN freesurfer-orig/fsfast/bin/roixrunsum-sess freesurfer-patched/fsfast/bin/roixrunsum-sess +--- freesurfer-orig/fsfast/bin/roixrunsum-sess 2022-08-04 06:51:42.000000000 +0200 ++++ freesurfer-patched/fsfast/bin/roixrunsum-sess 2022-11-18 09:37:37.791870517 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # roixrunsum-sess - cross-run summary of an ROI +diff --color -rupN freesurfer-orig/fsfast/bin/vlrmerge freesurfer-patched/fsfast/bin/vlrmerge +--- freesurfer-orig/fsfast/bin/vlrmerge 2022-08-04 06:51:42.000000000 +0200 ++++ freesurfer-patched/fsfast/bin/vlrmerge 2022-11-18 09:37:37.775870429 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/tcsh -f ++#!/usr/bin/env tcsh + # vlrmerge + + set VERSION = 'vlrmerge 7.3.2'; +diff --color -rupN freesurfer-orig/subjects/bert/scripts/recon-all.local-copy freesurfer-patched/subjects/bert/scripts/recon-all.local-copy +--- freesurfer-orig/subjects/bert/scripts/recon-all.local-copy 2022-06-17 12:00:06.000000000 +0200 ++++ freesurfer-patched/subjects/bert/scripts/recon-all.local-copy 2022-11-18 09:37:58.939988364 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # recon-all +diff --color -rupN freesurfer-orig/subjects/cvs_avg35/scripts/recon-all.local-copy freesurfer-patched/subjects/cvs_avg35/scripts/recon-all.local-copy +--- freesurfer-orig/subjects/cvs_avg35/scripts/recon-all.local-copy 2012-03-13 17:54:03.000000000 +0100 ++++ freesurfer-patched/subjects/cvs_avg35/scripts/recon-all.local-copy 2022-11-18 09:38:03.936016283 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # recon-all +diff --color -rupN freesurfer-orig/subjects/cvs_avg35_inMNI152/scripts/recon-all.local-copy freesurfer-patched/subjects/cvs_avg35_inMNI152/scripts/recon-all.local-copy +--- freesurfer-orig/subjects/cvs_avg35_inMNI152/scripts/recon-all.local-copy 2012-09-10 22:29:20.000000000 +0200 ++++ freesurfer-patched/subjects/cvs_avg35_inMNI152/scripts/recon-all.local-copy 2022-11-18 09:38:06.220029057 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # recon-all +diff --color -rupN freesurfer-orig/subjects/fsaverage/scripts/recon-all.local-copy freesurfer-patched/subjects/fsaverage/scripts/recon-all.local-copy +--- freesurfer-orig/subjects/fsaverage/scripts/recon-all.local-copy 2010-12-30 23:40:05.000000000 +0100 ++++ freesurfer-patched/subjects/fsaverage/scripts/recon-all.local-copy 2022-11-18 09:38:00.355996275 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # recon-all +diff --color -rupN freesurfer-orig/subjects/fsaverage/xhemi/scripts/recon-all.local-copy freesurfer-patched/subjects/fsaverage/xhemi/scripts/recon-all.local-copy +--- freesurfer-orig/subjects/fsaverage/xhemi/scripts/recon-all.local-copy 2015-11-13 17:35:32.000000000 +0100 ++++ freesurfer-patched/subjects/fsaverage/xhemi/scripts/recon-all.local-copy 2022-11-18 09:38:01.036000074 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # recon-all +diff --color -rupN freesurfer-orig/subjects/fsaverage_sym/scripts/recon-all.local-copy freesurfer-patched/subjects/fsaverage_sym/scripts/recon-all.local-copy +--- freesurfer-orig/subjects/fsaverage_sym/scripts/recon-all.local-copy 2012-01-12 19:10:41.000000000 +0100 ++++ freesurfer-patched/subjects/fsaverage_sym/scripts/recon-all.local-copy 2022-11-18 09:38:02.448007965 +0100 +@@ -1,4 +1,4 @@ +-#! /bin/tcsh -f ++#!/usr/bin/env tcsh + + # + # recon-all diff --git a/Golden_Repo/f/FreeSurfer/license_text.txt b/Golden_Repo/f/FreeSurfer/license_text.txt new file mode 100644 index 0000000000000000000000000000000000000000..131a14abcc29e1185ea442083a1bda717215fd9e --- /dev/null +++ b/Golden_Repo/f/FreeSurfer/license_text.txt @@ -0,0 +1,6 @@ +"""r.deepu@fz-juelich.de +51392 + *CsaBFnUlfG0. + FSk7cKa1irCLs""" + + diff --git a/Golden_Repo/f/flatbuffers/flatbuffers-2.0.7-GCCcore-11.3.0.eb b/Golden_Repo/f/flatbuffers/flatbuffers-2.0.7-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..019f393bdd0b9b074c656d42dffadf26e4e0c0e2 --- /dev/null +++ b/Golden_Repo/f/flatbuffers/flatbuffers-2.0.7-GCCcore-11.3.0.eb @@ -0,0 +1,60 @@ +## +# Author: Robert Mijakovic <robert.mijakovic@lxp.lu> +## +easyblock = 'CMakeNinja' + +name = 'flatbuffers' +version = '2.0.7' + +homepage = 'https://github.com/google/flatbuffers/' +description = """FlatBuffers: Memory Efficient Serialization Library + +Includes the Flatbuffers compiler, C/C++ bindings and Python runtime library. +""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/google/flatbuffers/archive/v%(version)s/'] +sources = [SOURCE_TAR_GZ] +checksums = ['4c7986174dc3941220bf14feaacaad409c3e1526d9ad7f490366fede9a6f43fa'] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1'), + ('Ninja', '1.10.2'), +] + +dependencies = [ + ('Python', '3.10.4'), +] + +# Install into the same dir as the Python extension which is /lib +configopts = '-DFLATBUFFERS_ENABLE_PCH=ON -DCMAKE_INSTALL_LIBDIR=lib' + +exts_defaultclass = 'PythonPackage' +exts_default_options = { + 'source_urls': [PYPI_SOURCE], + 'download_dep_fail': True, + 'use_pip': True, + 'sanity_pip_check': True, +} + +exts_list = [ + ('flatbuffers', version, { + 'sources': { + 'download_filename': SOURCE_TAR_GZ, + 'filename': '%(name)s-python-%(version)s.tar.gz', + }, + 'checksums': ['0ae7d69c5b82bf41962ca5fde9cc43033bc9501311d975fd5a25e8a7d29c1245'], + }), +] + +sanity_check_paths = { + 'files': ['include/flatbuffers/flatbuffers.h', 'bin/flatc', 'lib/libflatbuffers.a'], + 'dirs': ['lib/cmake', 'lib/python%(pyshortver)s/site-packages'], +} + +modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'} + +moduleclass = 'devel' diff --git a/Golden_Repo/g/GlobalArrays/GlobalArrays-5.8.2-intel-para-2022a.eb b/Golden_Repo/g/GlobalArrays/GlobalArrays-5.8.2-intel-para-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..df5acdafb2eb8968af22dfcc3ae043729d02b687 --- /dev/null +++ b/Golden_Repo/g/GlobalArrays/GlobalArrays-5.8.2-intel-para-2022a.eb @@ -0,0 +1,60 @@ +easyblock = 'ConfigureMake' + +name = 'GlobalArrays' +version = '5.8.2' + +homepage = 'https://hpc.pnl.gov/globalarrays' +description = """ + Global Arrays is a portable Non-Uniform Memory Access (NUMA) shared-memory programming environment + for distributed and shared memory computers. It augments the message-passing model by providing a + shared-memory like access to distributed dense arrays. This is also known as the + Partitioned Global Address Space (PGAS) model. ComEx is a successor to ARMCI and provides an + ARMCI-compatible interface. New parallel runtime development takes place within ComEx + including the MPI-only runtimes. DRA (Disk Resident Arrays) is a parallel I/O library that + maintains dense two-dimensional arrays on disk. SF (Shared Files) is a parallel I/O library that + allows noncollective I/O to a parallel file. EAF (Exclusive Access Files) is parallel I/O library + that supports I/O to private files. TCGMSG is a simple, efficient, but obsolete message-passing library. + TCGMSG-MPI is a TCGMSG interface implementation on top of MPI and ARMCI. + MA is a dynamic memory allocator/manager for Fortran and C programs. + GA++ is a C++ binding for global arrays. + """ + + +toolchain = {'name': 'intel-para', 'version': '2022a'} +toolchainopts = {'optarch': True, 'pic': True, 'usempi': True, 'opt': False} + +source_urls = ['https://github.com/GlobalArrays/ga/releases/download/v%(version)s'] +sources = ['ga.%(version)s.tgz'] + +checksums = ['679570cb037f3f0ad14282c31ee795a9684a294c14ec9cf13ebcdc130c4474a5'] + +# download contains configure already preconfigopts = './autogen.sh && mkdir build && pushd build' +preconfigopts = ' mkdir build && pushd build && ' +configure_cmd = '../configure ' +configure_cmd += ' --enable-i8 --enable-shared --with-openib --with-mpi ' +configure_cmd += ' --with-blas8="-lmkl_intel_ilp64 -lmkl_sequential -lmkl_core" ' +configure_cmd += ' --with-lapack8="-lmkl_intel_ilp64 -lmkl_sequential -lmkl_core" ' +configure_cmd += ' --with-scalapack8="-lmkl_scalapack_ilp64 -lmkl_blacs_intelmpi_ilp64"' +configure_cmd += ' LIBS="-libumad -libverbs -lpthread"' +configure_cmd += ' MPIF77=mpif90 MPIF90=mpif90 MPICC=mpicc MPICXX=mpicxx' + +local_test = '%%(installdir)s/%s' % 'test' + +prebuildopts = 'pushd build &&' + +preinstallopts = 'pushd build && mkdir %s &&' % local_test +preinstallopts += 'pushd global/testing && cp *.x %s/ && ' % local_test +preinstallopts += 'popd && ' + + +pretestopts = 'pushd build && ' +runtest = 'checkprogs' + +maxparallel = 1 + +sanity_check_paths = { + 'files': ['bin/ga-config', 'lib/libarmci.so', 'lib/libga.so'], + 'dirs': ['lib', 'include', 'bin'] +} + +moduleclass = 'chem' diff --git a/Golden_Repo/h/Hypre/Hypre-2.27.0-intel-para-2022a-cpu.eb b/Golden_Repo/h/Hypre/Hypre-2.27.0-intel-para-2022a-cpu.eb new file mode 100644 index 0000000000000000000000000000000000000000..f9df5a49a66224477f0e5bcc8f500f104fa73fa4 --- /dev/null +++ b/Golden_Repo/h/Hypre/Hypre-2.27.0-intel-para-2022a-cpu.eb @@ -0,0 +1,30 @@ +name = "Hypre" +version = "2.27.0" +versionsuffix = "-cpu" + +homepage = "https://computation.llnl.gov/casc/linear_solvers/sls_hypre.html" + +description = """Hypre is a library for solving large, sparse linear +systems of equations on massively parallel computers. +The problems of interest arise in the simulation codes being developed +at LLNL and elsewhere to study physical phenomena in the defense, +environmental, energy, and biological sciences. +""" + +toolchain = {'name': 'intel-para', 'version': '2022a'} + +toolchainopts = {'pic': True, 'usempi': True, 'openmp': True} + +source_urls = ["https://github.com/hypre-space/hypre/archive/"] +sources = ['v%(version)s.tar.gz'] +checksums = ['507a3d036bb1ac21a55685ae417d769dd02009bde7e09785d0ae7446b4ae1f98'] + +start_dir = 'src' +disable_cuda = True +configopts = '--with-openmp ' +modextravars = { + 'HYPRE_ROOT': '%(installdir)s', + 'HYPRE_LIB': '%(installdir)s/lib', + 'HYPRE_INCLUDE': '%(installdir)s/include/' +} +moduleclass = 'numlib' 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/IPython/IPython-8.14.0-GCCcore-11.3.0.eb b/Golden_Repo/i/IPython/IPython-8.14.0-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..e64c9a24e19def8c2ab3eb81e143913fe9b12c54 --- /dev/null +++ b/Golden_Repo/i/IPython/IPython-8.14.0-GCCcore-11.3.0.eb @@ -0,0 +1,198 @@ +easyblock = 'PythonBundle' + +name = 'IPython' +version = '8.14.0' + +homepage = 'https://ipython.org/index.html' +description = """IPython provides a rich architecture for interactive computing with: + Powerful interactive shells (terminal and Qt-based). + A browser-based notebook with support for code, text, mathematical expressions, inline plots and other rich media. + Support for interactive data visualization and use of GUI toolkits. + Flexible, embeddable interpreters to load into your own projects. + Easy to use, high performance tools for parallel computing.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +builddependencies = [('binutils', '2.38')] + +dependencies = [ + ('Python', '3.10.4'), + ('ZeroMQ', '4.3.4'), + ('lxml', '4.9.1'), + ('BeautifulSoup', '4.10.0'), + ('matplotlib', '3.5.2', '', ('gcccoremkl', '11.3.0-2022.1.0')), +] + +use_pip = True + +exts_list = [ + ('hatchling', '1.13.0', { + 'checksums': ['f8d275a2cc720735286b7c2e2bc35da05761e6d3695c2fa416550395f10c53c7'], + }), + ('hatch_nodejs_version', '0.3.1', { + 'checksums': ['0e55fd713d92c5c1ccfee778efecaa780fd8bcd276d4ca7aff9f6791f6f76d9c'], + }), + ('ipython_genutils', '0.2.0', { + 'checksums': ['eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8'], + }), + ('ipython', version, { + 'modulename': 'IPython', + 'checksums': ['1d197b907b6ba441b692c48cf2a3a2de280dc0ac91a3405b39349a50272ca0a1'], + }), + ('pickleshare', '0.7.5', { + 'checksums': ['87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca'], + }), + ('prompt_toolkit', '3.0.38', { + 'checksums': ['23ac5d50538a9a38c8bde05fecb47d0b403ecd0662857a86f886f798563d5b9b'], + }), + ('traitlets', '5.9.0', { + 'checksums': ['f6cde21a9c68cf756af02035f72d5a723bf607e862e7be33ece505abf4a3bad9'], + }), + ('parso', '0.8.3', { + 'checksums': ['8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0'], + }), + ('jedi', '0.18.2', { + 'checksums': ['bae794c30d07f6d910d32a7048af09b5a39ed740918da923c6b780790ebac612'], + }), + ('testpath', '0.6.0', { + 'checksums': ['2f1b97e6442c02681ebe01bd84f531028a7caea1af3825000f52345c30285e0f'], + }), + ('Send2Trash', '1.8.2', { + 'checksums': ['c132d59fa44b9ca2b1699af5c86f57ce9f4c5eb56629d5d55fbb7a35f84e2312'], + }), + ('bleach', '5.0.1', { + 'checksums': ['0d03255c47eb9bd2f26aa9bb7f2107732e7e8fe195ca2f64709fcf3b0a4a085c'], + }), + ('pandocfilters', '1.5.0', { + 'checksums': ['0b679503337d233b4339a817bfc8c50064e2eff681314376a47cb582305a7a38'], + }), + ('pyzmq', '25.0.1', { + 'modulename': 'zmq', + 'checksums': ['44a24f7ce44e70d20e2a4c9ba5af70b4611df7a4b920eed2c8e0bdd5a5af225f'], + }), + ('entrypoints', '0.4', { + 'checksums': ['b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4'], + }), + ('jupyter_core', '5.3.0', { + 'checksums': ['6db75be0c83edbf1b7c9f91ec266a9a24ef945da630f3120e1a0046dc13713fc'], + }), + ('fastjsonschema', '2.17.1', { + 'checksums': ['f4eeb8a77cef54861dbf7424ac8ce71306f12cbb086c45131bcba2c6a4f726e3'], + }), + ('nbformat', '5.9.0', { + 'checksums': ['e98ebb6120c3efbafdee2a40af2a140cadee90bb06dd69a2a63d9551fcc7f976'], + }), + ('mistune', '2.0.5', { + 'checksums': ['0246113cb2492db875c6be56974a7c893333bf26cd92891c85f63151cee09d34'], + }), + ('defusedxml', '0.7.1', { + 'checksums': ['1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69'], + }), + ('async_generator', '1.10', { + 'checksums': ['6ebb3d106c12920aaae42ccb6f787ef5eefdcdd166ea3d628fa8476abe712144'], + }), + ('nest_asyncio', '1.5.6', { + 'checksums': ['d267cc1ff794403f7df692964d1d2a3fa9418ffea2a3f6859a439ff482fef290'], + }), + ('nbclient', '0.7.4', { + 'checksums': ['d447f0e5a4cfe79d462459aec1b3dc5c2e9152597262be8ee27f7d4c02566a0d'], + }), + ('tinycss2', '1.2.1', { + 'checksums': ['8cff3a8f066c2ec677c06dbc7b45619804a6938478d9d73c284b29d14ecb0627'], + }), + ('nbconvert', '7.4.0', { + 'checksums': ['51b6c77b507b177b73f6729dba15676e42c4e92bcb00edc8cc982ee72e7d89d7'], + }), + ('tornado', '6.2', { + 'patches': ['tornado-timeouts.patch'], + 'checksums': [ + {'tornado-6.2.tar.gz': '9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13'}, + {'tornado-timeouts.patch': 'fe0db60604ccdcb5fc111023d1d7bffa0e315465fbe15f2ff512068c649e56f8'}, + ], + }), + ('terminado', '0.17.1', { + 'checksums': ['6ccbbcd3a4f8a25a5ec04991f39a0b8db52dfcd487ea0e578d977e6752380333'], + }), + ('jupyter_client', '8.2.0', { + 'checksums': ['9fe233834edd0e6c0aa5f05ca2ab4bdea1842bfd2d8a932878212fc5301ddaf0'], + }), + ('backcall', '0.2.0', { + 'checksums': ['5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e'], + }), + ('executing', '1.2.0', { + 'checksums': ['19da64c18d2d851112f09c287f8d3dbbdf725ab0e569077efb6cdcbd3497c107'], + }), + ('asttokens', '2.2.1', { + 'checksums': ['4622110b2a6f30b77e1473affaa97e711bc2f07d3f10848420ff1898edbe94f3'], + }), + ('pure_eval', '0.2.2', { + 'checksums': ['2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3'], + }), + ('stack_data', '0.6.2', { + 'checksums': ['32d2dd0376772d01b6cb9fc996f3c8b57a357089dec328ed4b6553d037eaf815'], + }), + ('comm', '0.1.2', { + 'checksums': ['3e2f5826578e683999b93716285b3b1f344f157bf75fa9ce0a797564e742f062'], + }), + ('ipykernel', '6.23.1', { + 'checksums': ['1aba0ae8453e15e9bc6b24e497ef6840114afcdb832ae597f32137fa19d42a6f'], + }), + ('prometheus_client', '0.17.0', { + 'checksums': ['9c3b26f1535945e85b8934fb374678d263137b78ef85f305b1156c7c881cd11b'], + }), + ('deprecation', '2.1.0', { + 'checksums': ['72b3bde64e5d778694b0cf68178aed03d15e15477116add3fb773e581f9518ff'], + }), + ('jupyter_packaging', '0.12.3', { + 'checksums': ['9d9b2b63b97ffd67a8bc5391c32a421bc415b264a32c99e4d8d8dd31daae9cf4'], + }), + ('jupyterlab_pygments', '0.2.2', { + 'checksums': ['7405d7fde60819d905a9fa8ce89e4cd830e318cdad22a0030f7a901da705585d'], + }), + ('jupyterlab_widgets', '1.1.4', { + 'checksums': ['ea6e7612725e94d0966d64c6344910686f4bf8610533cd40daeba6980659b14d'], + }), + ('ipywidgets', '7.7.3', { # >7.7.3 fails for ipyvue (issue 72) + 'checksums': ['b41ca84d2742e39f2a730a13ea0dd619fca62e56cfac88c8f08989fb00a54fa8'], + }), + ('argon2-cffi-bindings', '21.2.0', { + 'modulename': '_argon2_cffi_bindings', + 'checksums': ['bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3'], + }), + ('argon2-cffi', '21.3.0', { + 'modulename': 'argon2', + 'checksums': ['d384164d944190a7dd7ef22c6aa3ff197da12962bd04b17f64d4e93d934dba5b'], + }), + ('notebook', '6.4.12', { # !!! > req. nbclassic + 'checksums': ['6268c9ec9048cff7a45405c990c29ac9ca40b0bc3ec29263d218c5e01f2b4e86'], + }), + ('widgetsnbextension', '3.6.4', { + 'checksums': ['ad1356c575d5add908afe886255deafb3f9b1589146a99279d1dcba5a05d16a5'], + }), + ('matplotlib-inline', '0.1.6', { + 'checksums': ['f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304'], + }), + ('debugpy', '1.6.7', { + 'source_tmpl': '%(name)s-%(version)s-py2.py3-none-any.whl', + 'checksums': ['53f7a456bc50706a0eaabecf2d3ce44c4d5010e46dfc65b6b81a518b42866267'], + }), +] + +modextrapaths = {'JUPYTER_PATH': 'share/jupyter'} + +sanity_check_paths = { + 'files': ['bin/ipython'], + 'dirs': [ + 'lib/python%(pyshortver)s/site-packages/IPython', + 'share/jupyter' + ], +} + +sanity_check_commands = [ + "ipython -h", + "jupyter notebook --help", +] + +sanity_pip_check = True + +moduleclass = 'tools' diff --git a/Golden_Repo/i/IPython/tornado-timeouts.patch b/Golden_Repo/i/IPython/tornado-timeouts.patch new file mode 100644 index 0000000000000000000000000000000000000000..027206802657e142b1b16451d953075403107936 --- /dev/null +++ b/Golden_Repo/i/IPython/tornado-timeouts.patch @@ -0,0 +1,15 @@ +diff -Naur tornado.orig/tornado-6.1/tornado/httpclient.py tornado/tornado-6.1/tornado/httpclient.py +--- tornado.orig/tornado-6.1/tornado/httpclient.py 2020-10-30 21:17:45.000000000 +0100 ++++ tornado/tornado-6.1/tornado/httpclient.py 2022-05-01 22:01:50.923741948 +0200 +@@ -345,8 +345,8 @@ + # Merged with the values on the request object by AsyncHTTPClient + # implementations. + _DEFAULTS = dict( +- connect_timeout=20.0, +- request_timeout=20.0, ++ connect_timeout=60.0, ++ request_timeout=1200.0, + follow_redirects=True, + max_redirects=5, + decompress_response=True, + diff --git a/Golden_Repo/i/IRkernel/IRkernel-1.3.2-gcccoremkl-11.3.0-2022.1.0-R-4.2.1.eb b/Golden_Repo/i/IRkernel/IRkernel-1.3.2-gcccoremkl-11.3.0-2022.1.0-R-4.2.1.eb new file mode 100644 index 0000000000000000000000000000000000000000..aafe2b5488a32770ee486b7210e62eef928e3caa --- /dev/null +++ b/Golden_Repo/i/IRkernel/IRkernel-1.3.2-gcccoremkl-11.3.0-2022.1.0-R-4.2.1.eb @@ -0,0 +1,66 @@ +easyblock = 'Bundle' + +name = 'IRkernel' +version = '1.3.2' +versionsuffix = '-R-%(rver)s' + +homepage = 'https://github.com/baktoft/yaps' +description = "IRKernel" + +toolchain = {'name': 'gcccoremkl', 'version': '11.3.0-2022.1.0'} + +dependencies = [ + ('R', '4.2.1'), + ('ZeroMQ', '4.3.4'), # for pbdZMQ needed by IRkernel +] + +exts_default_options = { + 'source_urls': [ + 'https://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'https://cran.r-project.org/src/contrib/', # current version of packages + 'https://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], + 'source_tmpl': '%(name)s_%(version)s.tar.gz' +} + +exts_defaultclass = 'RPackage' +exts_filter = ("R -q --no-save", "library(%(ext_name)s)") + +exts_list = [ + ('repr', '1.1.6', { + 'checksums': ['3d2e6c9b363c1ec4811688deff7fb22093cadc9e0a333930382093d93c16673f'], + }), + ('IRdisplay', '1.1', { + 'checksums': ['83eb030ff91f546cb647899f8aa3f5dc9fe163a89a981696447ea49cc98e8d2b'], + }), + ('pbdZMQ', '0.3-9', { + 'checksums': ['d033238d0a9810581f6b40c7c75263cfc495a585653bbff98e957c37954e0fb6'], + }), + ('xmlparsedata', '1.0.5', { + 'checksums': ['766034ab5e9728609bd240c9954d23ca0cdb881a98a31b9d3e1c8767c7b7cbb0'], + }), + ('cyclocomp', '1.1.0', { + 'checksums': ['cdbf65f87bccac53c1527a2f1269ec7840820c18503a7bb854910b30b71e7e3e'], + }), + ('collections', '0.3.7', { + 'checksums': ['ff846ff96233a233ce7c73c2f03e87d14d69c83d97d608f01d9846a1cba57f00'], + }), + ('lintr', '3.0.2', { + 'checksums': ['9f6a70affea78d2092f40a7ba8961615d48b0c4ae8044ec72a1422a4342d34c9'], + }), + ('languageserver', '0.3.15', { + 'checksums': ['94eebc1afbaee5bb0d3a684673007299d3a5520fa398f22838b603ca78f8c100'], + }), + (name, version, { + 'checksums': ['e1c6d8bddc23e5039dd9c537feb371f937d60028fb753b90345698c58ae424a6'], + }), +] + +modextrapaths = {'R_LIBS': ''} + +sanity_check_paths = { + 'files': [], + 'dirs': [name], +} + +moduleclass = 'tools' 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/imkl-FFTW/imkl-FFTW-2022.1.0-npsmpic-2022a.eb b/Golden_Repo/i/imkl-FFTW/imkl-FFTW-2022.1.0-npsmpic-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..093a7e942d7631852b332ee702c70abb7a4423d5 --- /dev/null +++ b/Golden_Repo/i/imkl-FFTW/imkl-FFTW-2022.1.0-npsmpic-2022a.eb @@ -0,0 +1,11 @@ +name = 'imkl-FFTW' +version = '2022.1.0' + +homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl.html' +description = "FFTW interfaces using Intel oneAPI Math Kernel Library" + +toolchain = {'name': 'npsmpic', 'version': '2022a'} + +dependencies = [('imkl', version, '', SYSTEM)] + +moduleclass = 'numlib' diff --git a/Golden_Repo/i/imkl-FFTW/imkl-FFTW-2022.1.0-nvompic-2022a.eb b/Golden_Repo/i/imkl-FFTW/imkl-FFTW-2022.1.0-nvompic-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..4bd00830845899876382072c84b91acfbef86e00 --- /dev/null +++ b/Golden_Repo/i/imkl-FFTW/imkl-FFTW-2022.1.0-nvompic-2022a.eb @@ -0,0 +1,11 @@ +name = 'imkl-FFTW' +version = '2022.1.0' + +homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl.html' +description = "FFTW interfaces using Intel oneAPI Math Kernel Library" + +toolchain = {'name': 'nvompic', 'version': '2022a'} + +dependencies = [('imkl', version, '', SYSTEM)] + +moduleclass = 'numlib' diff --git a/Golden_Repo/j/JUBE/JUBE-2.4.3.eb b/Golden_Repo/j/JUBE/JUBE-2.4.3.eb new file mode 100644 index 0000000000000000000000000000000000000000..bee87a9f10dcde7f220561a3c9370a7c4d86ffca --- /dev/null +++ b/Golden_Repo/j/JUBE/JUBE-2.4.3.eb @@ -0,0 +1,31 @@ +easyblock = "VersionIndependentPythonPackage" + +name = "JUBE" +version = "2.4.3" + +homepage = "https://www.fz-juelich.de/jsc/jube" +description = """The JUBE benchmarking environment provides a script based +framework to easily create benchmark sets, run those sets on different +computer systems and evaluate the results. +""" + +toolchain = SYSTEM + +source_urls = ['https://apps.fz-juelich.de/jsc/jube/jube2/download.php?file='] +sources = [SOURCE_TAR_GZ] +checksums = ['5ff37495a0c8ef4ec501866217b758d8ea474e985b678af757f7906cc56c6d7e'] + +options = {'modulename': 'jube2'} + +sanity_check_paths = { + 'files': ['bin/jube'], + 'dirs': [], +} + +modextrapaths = { + 'JUBE_INCLUDE_PATH': 'share/jube/platform/slurm' +} + +modluafooter = 'execute {cmd=\'eval "$(jube complete)"\',modeA={"load"}}' + +moduleclass = 'tools' 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/l/libcdi/libcdi-2.1.1-foss-2022a.eb b/Golden_Repo/l/libcdi/libcdi-2.1.1-foss-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..1af6ec0c6dddf47e1c6b418489f24e772ef23c8b --- /dev/null +++ b/Golden_Repo/l/libcdi/libcdi-2.1.1-foss-2022a.eb @@ -0,0 +1,43 @@ +easyblock = 'ConfigureMake' + +name = 'libcdi' +version = '2.1.1' + +homepage = 'https://gitlab.dkrz.de/mpim-sw/libcdi' +description = """ +CDI is a C and Fortran Interface to access Climate model Data. +Supported data formats are GRIB, netCDF, SERVICE, EXTRA and IEG. +""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +source_urls = ['https://gitlab.dkrz.de/mpim-sw/libcdi/-/archive/cdi-%(version)s/'] +sources = ['libcdi-cdi-%(version)s.tar.gz'] +checksums = [ + 'ba8ce82bfce159f072db027233a566f330709d750c7e4e2c275dd33e24d0f17c', # v2.1.1.tar.gz +] +start_dir = 'libcdi-cdi-%(version)s' + +builddependencies = [ + ('binutils', '2.38'), + ('Autoconf', '2.71'), +] + +dependencies = [ + ('ecCodes', '2.27.0'), + ('netCDF', '4.9.0'), +] + +preconfigopts = "./autogen.sh && " + +configopts = "--with-eccodes=yes --with-grib_api=yes --disable-cgribex " +configopts += "--with-netcdf=$EBROOTNETCDF " + +modextravars = {'CDI_DIR': '%(installdir)s/lib/cmake/cdi/'} + +sanity_check_paths = { + 'files': ['include/cdi.h', 'lib/libcdi.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/Golden_Repo/l/libcdi/libcdi-2.1.1-gcccoremkl-11.3.0-2022.1.0.eb b/Golden_Repo/l/libcdi/libcdi-2.1.1-gcccoremkl-11.3.0-2022.1.0-serial.eb similarity index 97% rename from Golden_Repo/l/libcdi/libcdi-2.1.1-gcccoremkl-11.3.0-2022.1.0.eb rename to Golden_Repo/l/libcdi/libcdi-2.1.1-gcccoremkl-11.3.0-2022.1.0-serial.eb index fa05da76513ee5d7133e281752848c4861654e6d..d3f6baab3767bf4813c1cea1560f82eb8e6dd855 100644 --- a/Golden_Repo/l/libcdi/libcdi-2.1.1-gcccoremkl-11.3.0-2022.1.0.eb +++ b/Golden_Repo/l/libcdi/libcdi-2.1.1-gcccoremkl-11.3.0-2022.1.0-serial.eb @@ -2,6 +2,7 @@ easyblock = 'ConfigureMake' name = 'libcdi' version = '2.1.1' +versionsuffix = '-serial' homepage = 'https://gitlab.dkrz.de/mpim-sw/libcdi' description = """ diff --git a/Golden_Repo/l/libcdi/libcdi-2.1.1-gpsmkl-2022a.eb b/Golden_Repo/l/libcdi/libcdi-2.1.1-gpsmkl-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..8d2d8233c519cf38a465095fcb40466d893d4381 --- /dev/null +++ b/Golden_Repo/l/libcdi/libcdi-2.1.1-gpsmkl-2022a.eb @@ -0,0 +1,43 @@ +easyblock = 'ConfigureMake' + +name = 'libcdi' +version = '2.1.1' + +homepage = 'https://gitlab.dkrz.de/mpim-sw/libcdi' +description = """ +CDI is a C and Fortran Interface to access Climate model Data. +Supported data formats are GRIB, netCDF, SERVICE, EXTRA and IEG. +""" + +toolchain = {'name': 'gpsmkl', 'version': '2022a'} + +source_urls = ['https://gitlab.dkrz.de/mpim-sw/libcdi/-/archive/cdi-%(version)s/'] +sources = ['libcdi-cdi-%(version)s.tar.gz'] +checksums = [ + 'ba8ce82bfce159f072db027233a566f330709d750c7e4e2c275dd33e24d0f17c', # v2.1.1.tar.gz +] +start_dir = 'libcdi-cdi-%(version)s' + +builddependencies = [ + ('binutils', '2.38'), + ('Autoconf', '2.71'), +] + +dependencies = [ + ('ecCodes', '2.27.0'), + ('netCDF', '4.9.0'), +] + +preconfigopts = "./autogen.sh && " + +configopts = "--with-eccodes=yes --with-grib_api=yes --disable-cgribex " +configopts += "--with-netcdf=$EBROOTNETCDF " + +modextravars = {'CDI_DIR': '%(installdir)s/lib/cmake/cdi/'} + +sanity_check_paths = { + 'files': ['include/cdi.h', 'lib/libcdi.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/Golden_Repo/l/libspng/libspng-0.7.1-GCCcore-11.3.0.eb b/Golden_Repo/l/libspng/libspng-0.7.3-GCCcore-11.3.0.eb similarity index 100% rename from Golden_Repo/l/libspng/libspng-0.7.1-GCCcore-11.3.0.eb rename to Golden_Repo/l/libspng/libspng-0.7.3-GCCcore-11.3.0.eb 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/MPB/MPB-1.11.1-intel-para-2022a.eb b/Golden_Repo/m/MPB/MPB-1.11.1-intel-para-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..d45564785319c0f2d6ab6907c83a5bd90e955bda --- /dev/null +++ b/Golden_Repo/m/MPB/MPB-1.11.1-intel-para-2022a.eb @@ -0,0 +1,53 @@ +easyblock = 'ConfigureMake' + +name = 'MPB' +version = '1.11.1' + +homepage = 'https://mpb.readthedocs.io/en/latest/' +description = """MPB is a free and open-source software package for computing + the band structures, or dispersion relations, and electromagnetic + modes of periodic dielectric structures, on both serial + and parallel computers. MPB is an acronym for MIT Photonic Bands.""" + +toolchain = {'name': 'intel-para', 'version': '2022a'} + +toolchainopts = {'optarch': True, 'usempi': True, 'pic': True} + +source_urls = ['https://github.com/NanoComp/mpb/releases/download/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['dc55b081c56079727dac92d309f8e4ea84ca6eea9122ec24b7955f8c258608e1'] + +builddependencies = [ + ('Autotools', '20220317'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('HDF5', '1.12.2'), + ('libctl', '4.5.1'), + ('FFTW', '3.3.10'), + ('GSL', '2.7'), + ('Guile', '3.0.8'), + ('libreadline', '8.1.2'), +] + +local_common_configopts = "--with-pic --with-blas=mkl_em64t --with-lapack=mkl_em64t " +local_common_configopts += "--with-libctl=$EBROOTLIBCTL/share/libctl --enable-shared " + +configopts = [ + local_common_configopts + " ", + local_common_configopts + "--with-hermitian-eps --with-inv-symmetry ", + local_common_configopts + + "--with-hermitian-eps --with-mpi CC=mpicc CXX=mpic++ F77=mpif90 MPIRUN=srun ", + local_common_configopts + + "--with-hermitian-eps --with-mpi --with-inv-symmetry CC=mpicc CXX=mpic++ F77=mpif90 MPIRUN=srun ", +] + +sanity_check_paths = { + 'files': ['bin/mpb%s' % x for x in ['', '-data', 'i', 'i-data', 'i-mpi', 'i-split', '-mpi', '-split']] + + ['lib/libmpb.a', 'lib/libmpbi_mpi.a', 'lib/libmpbi.a', 'lib/libmpb_mpi.a', 'lib/libmpb.%s' % SHLIB_EXT, + 'lib/libmpbi_mpi.%s' % SHLIB_EXT, 'lib/libmpbi.%s' % SHLIB_EXT, 'lib/libmpb_mpi.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +moduleclass = 'phys' 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/Meep/Meep-1.25.0-intel-para-2022a.eb b/Golden_Repo/m/Meep/Meep-1.25.0-intel-para-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..70451521b30f86b02804a21fd87108409277459e --- /dev/null +++ b/Golden_Repo/m/Meep/Meep-1.25.0-intel-para-2022a.eb @@ -0,0 +1,53 @@ +easyblock = 'ConfigureMake' + +name = 'Meep' +version = '1.25.0' + +homepage = 'https://meep.readthedocs.io/en/latest/' +description = """Meep (or MEEP) is a free finite-difference time-domain (FDTD) simulation software package + developed at MIT to model electromagnetic systems.""" + +toolchain = {'name': 'intel-para', 'version': '2022a'} +toolchainopts = {'usempi': True, 'opt': True, 'unroll': True, 'pic': True} + +source_urls = ['https://github.com/NanoComp/meep/releases/download/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] + +checksums = [ + 'e400711d0fac38a028dbc8c12cf06a5cdec896d6f2f0907a08f2eab0f13a1459' # meep-1.25.0.tar.gz +] + +builddependencies = [ + ('Autotools', '20220317'), + ('pkgconf', '1.8.0'), + ('SWIG', '4.0.2') +] + +dependencies = [ + ('Python', '3.10.4'), + ('HDF5', '1.12.2'), + ('FFTW', '3.3.10'), + ('libctl', '4.5.1'), + ('GSL', '2.7'), + ('Guile', '3.0.8'), + ('libreadline', '8.1.2'), + ('MPB', '1.11.1'), + ('Harminv', '1.4.1'), + ('libGDSII', '0.21'), + ('mpi4py', '3.1.4'), + ('h5py', '3.7.0'), +] + +configopts = "--with-mpi CC=mpicc CXX=mpic++ F77=mpif90 MPIRUN=srun PYTHON=python3 " +configopts += "--with-pic --with-blas=mkl_em64t --with-lapack=mkl_em64t " +configopts += "--with-libctl=$EBROOTLIBCTL/share/libctl --enable-shared " + +sanity_check_paths = { + 'files': ['bin/meep', 'include/meep.hpp', 'lib/libmeep.a', 'lib/libpympb.a', + 'lib/libmeep.%s' % SHLIB_EXT, 'lib/libpympb.%s' % SHLIB_EXT], + 'dirs': ['include/meep', 'lib/python%(pyshortver)s/site-packages/meep', 'share/meep'], +} + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +moduleclass = 'phys' diff --git a/Golden_Repo/m/MongoDB/MongoDB-6.0.4.eb b/Golden_Repo/m/MongoDB/MongoDB-6.0.4.eb new file mode 100644 index 0000000000000000000000000000000000000000..00b6d31207a5b8f52ffff7d2c751746dffc099c3 --- /dev/null +++ b/Golden_Repo/m/MongoDB/MongoDB-6.0.4.eb @@ -0,0 +1,25 @@ +easyblock = 'PackedBinary' + +name = 'MongoDB' +version = '6.0.4' + +homepage = 'https://www.mongodb.com/try/download/community' + +description = """ +The community version of our distributed document +database provides powerful ways to query and analyze your data. +""" + +toolchain = SYSTEM + +source_urls = ['https://fastdl.mongodb.org/linux/'] +sources = ['%(namelower)s-linux-x86_64-rhel80-%(version)s.tgz'] +checksums = ['165c01a06f56752c57437a7ee11474c13ba6c64f3ff8b04b9e1ba9bacfff7ac4'] + + +sanity_check_paths = { + 'files': ['bin/install_compass', 'bin/mongod', 'bin/mongos'], + 'dirs': ['bin'] +} + +moduleclass = 'data' diff --git a/Golden_Repo/m/magma/magma-2.6.1_allow-all-sms.patch b/Golden_Repo/m/magma/magma-2.6.1_allow-all-sms.patch new file mode 100644 index 0000000000000000000000000000000000000000..5f077c673a6a1f49d97914d5bc2b14df38ed6293 --- /dev/null +++ b/Golden_Repo/m/magma/magma-2.6.1_allow-all-sms.patch @@ -0,0 +1,230 @@ +This allows to process any sm_xx passed to GPU_TARGET. Previously some were silently ignored +See https://bitbucket.org/icl/magma/issues/32/list-of-whitelisted-sm_-values-for-cuda-is +and https://bitbucket.org/icl/magma/pull-requests/5 + +Author: Alexander Grund (TU Dresden) +Updated to 2.6.1: micketeer@gmail.com + +--- CMakeLists.txt.orig 2021-07-06 17:02:37.125227748 +0200 ++++ CMakeLists.txt 2021-07-06 18:43:13.400804473 +0200 +@@ -124,14 +124,6 @@ + #message( STATUS " CUDA_CUBLAS_LIBRARIES: ${CUDA_CUBLAS_LIBRARIES}" ) + include_directories( ${CUDA_INCLUDE_DIRS} ) + +- # NVCC options for the different cards +- # sm_xx is binary, compute_xx is PTX for forward compatability +- # MIN_ARCH is lowest requested version +- # NV_SM accumulates sm_xx for all requested versions +- # NV_COMP is compute_xx for highest requested version +- set( NV_SM "" ) +- set( NV_COMP "" ) +- + set(CUDA_SEPARABLE_COMPILATION ON) + + # nvcc >= 6.5 supports -std=c++11, so propagate CXXFLAGS to NVCCFLAGS. +@@ -140,168 +132,44 @@ + ## set( CUDA_PROPAGATE_HOST_FLAGS OFF ) + ##endif() + +- if (GPU_TARGET MATCHES Fermi) +- set( GPU_TARGET "${GPU_TARGET} sm_20" ) +- endif() +- +- if (GPU_TARGET MATCHES Kepler) +- set( GPU_TARGET "${GPU_TARGET} sm_30 sm_35 sm_37" ) +- endif() +- +- if (GPU_TARGET MATCHES Maxwell) +- set( GPU_TARGET "${GPU_TARGET} sm_50" ) +- endif() +- +- if (GPU_TARGET MATCHES Pascal) +- set( GPU_TARGET "${GPU_TARGET} sm_60" ) +- endif() +- +- if (GPU_TARGET MATCHES Volta) +- set( GPU_TARGET "${GPU_TARGET} sm_70" ) +- endif() +- +- if (GPU_TARGET MATCHES Turing) +- set( GPU_TARGET "${GPU_TARGET} sm_75" ) +- endif() +- +- if (GPU_TARGET MATCHES Ampere) +- set( GPU_TARGET "${GPU_TARGET} sm_80" ) +- endif() +- +- if (GPU_TARGET MATCHES sm_20) +- if (NOT MIN_ARCH) +- set( MIN_ARCH 200 ) +- endif() +- set( NV_SM ${NV_SM} -gencode arch=compute_20,code=sm_20 ) +- set( NV_COMP -gencode arch=compute_20,code=compute_20 ) +- message( STATUS " compile for CUDA arch 2.0 (Fermi)" ) +- endif() +- +- if (GPU_TARGET MATCHES sm_30) +- if (NOT MIN_ARCH) +- set( MIN_ARCH 300 ) +- endif() +- set( NV_SM ${NV_SM} -gencode arch=compute_30,code=sm_30 ) +- set( NV_COMP -gencode arch=compute_30,code=compute_30 ) +- message( STATUS " compile for CUDA arch 3.0 (Kepler)" ) +- endif() +- +- if (GPU_TARGET MATCHES sm_35) +- if (NOT MIN_ARCH) +- set( MIN_ARCH 300 ) +- endif() +- set( NV_SM ${NV_SM} -gencode arch=compute_35,code=sm_35 ) +- set( NV_COMP -gencode arch=compute_35,code=compute_35 ) +- message( STATUS " compile for CUDA arch 3.5 (Kepler)" ) +- endif() +- +- if (GPU_TARGET MATCHES sm_37) +- if (NOT MIN_ARCH) +- set( MIN_ARCH 300 ) +- endif() +- set( NV_SM ${NV_SM} -gencode arch=compute_37,code=sm_37 ) +- set( NV_COMP -gencode arch=compute_37,code=compute_37 ) +- message( STATUS " compile for CUDA arch 3.7 (Kepler)" ) +- endif() +- +- if (GPU_TARGET MATCHES sm_50) +- if (NOT MIN_ARCH) +- set( MIN_ARCH 500 ) +- endif() +- set( NV_SM ${NV_SM} -gencode arch=compute_50,code=sm_50 ) +- set( NV_COMP -gencode arch=compute_50,code=compute_50 ) +- message( STATUS " compile for CUDA arch 5.0 (Maxwell)" ) +- endif() +- +- if (GPU_TARGET MATCHES sm_52) +- if (NOT MIN_ARCH) +- set( MIN_ARCH 520 ) +- endif() +- set( NV_SM ${NV_SM} -gencode arch=compute_52,code=sm_52 ) +- set( NV_COMP -gencode arch=compute_52,code=compute_52 ) +- message( STATUS " compile for CUDA arch 5.2 (Maxwell)" ) +- endif() +- +- if (GPU_TARGET MATCHES sm_53) +- if (NOT MIN_ARCH) +- set( MIN_ARCH 530 ) +- endif() +- set( NV_SM ${NV_SM} -gencode arch=compute_53,code=sm_53 ) +- set( NV_COMP -gencode arch=compute_53,code=compute_53 ) +- message( STATUS " compile for CUDA arch 5.3 (Maxwell)" ) +- endif() +- +- if (GPU_TARGET MATCHES sm_60) +- if (NOT MIN_ARCH) +- set( MIN_ARCH 600 ) +- endif() +- set( NV_SM ${NV_SM} -gencode arch=compute_60,code=sm_60 ) +- set( NV_COMP -gencode arch=compute_60,code=compute_60 ) +- message( STATUS " compile for CUDA arch 6.0 (Pascal)" ) +- endif() +- +- if (GPU_TARGET MATCHES sm_61) +- if (NOT MIN_ARCH) +- set( MIN_ARCH 610 ) +- endif() +- set( NV_SM ${NV_SM} -gencode arch=compute_61,code=sm_61 ) +- set( NV_COMP -gencode arch=compute_61,code=compute_61 ) +- message( STATUS " compile for CUDA arch 6.1 (Pascal)" ) +- endif() +- +- if (GPU_TARGET MATCHES sm_62) +- if (NOT MIN_ARCH) +- set( MIN_ARCH 620 ) +- endif() +- set( NV_SM ${NV_SM} -gencode arch=compute_62,code=sm_62 ) +- set( NV_COMP -gencode arch=compute_62,code=compute_62 ) +- message( STATUS " compile for CUDA arch 6.2 (Pascal)" ) +- endif() +- +- if (GPU_TARGET MATCHES sm_70) +- if (NOT MIN_ARCH) +- set( MIN_ARCH 700 ) +- endif() +- set( NV_SM ${NV_SM} -gencode arch=compute_70,code=sm_70 ) +- set( NV_COMP -gencode arch=compute_70,code=compute_70 ) +- message( STATUS " compile for CUDA arch 7.0 (Volta)" ) +- endif() +- +- if (GPU_TARGET MATCHES sm_71) +- if (NOT MIN_ARCH) +- set( MIN_ARCH 710 ) +- endif() +- set( NV_SM ${NV_SM} -gencode arch=compute_71,code=sm_71 ) +- set( NV_COMP -gencode arch=compute_71,code=compute_71 ) +- message( STATUS " compile for CUDA arch 7.1 (Volta)" ) +- endif() +- +- if (GPU_TARGET MATCHES sm_75) +- if (NOT MIN_ARCH) +- set( MIN_ARCH 750 ) +- endif() +- set( NV_SM ${NV_SM} -gencode arch=compute_75,code=sm_75 ) +- set( NV_COMP -gencode arch=compute_75,code=compute_75 ) +- message( STATUS " compile for CUDA arch 7.5 (Turing)" ) +- endif() +- +- if (GPU_TARGET MATCHES sm_80) +- if (NOT MIN_ARCH) +- set( MIN_ARCH 800 ) +- endif() +- set( NV_SM ${NV_SM} -gencode arch=compute_80,code=sm_80 ) +- set( NV_COMP -gencode arch=compute_80,code=compute_80 ) +- message( STATUS " compile for CUDA arch 8.0 (Ampere)" ) +- endif() +- +- if (NOT MIN_ARCH) +- message( FATAL_ERROR "GPU_TARGET must contain one or more of Fermi, Kepler, Maxwell, Pascal, Volta, Turing, Ampere, or valid sm_[0-9][0-9]" ) +- endif() ++ # NVCC options for the different cards ++ # sm_xx is binary, compute_xx is PTX for forward compatability ++ # MIN_SM/MAX_SM is lowest/highest requested version ++ # NV_SM accumulates sm_xx for all requested versions ++ # NV_COMP is compute_xx for highest requested version ++ set( MIN_SM 99 ) ++ set( MAX_SM 0 ) ++ set( NV_SM "" ) ++ set( NV_COMP "" ) + +- set( CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} -Xcompiler -fPIC ${NV_SM} ${NV_COMP} ${FORTRAN_CONVENTION} ) +- #add_definitions( "-DMAGMA_HAVE_CUDA -DMAGMA_CUDA_ARCH_MIN=${MIN_ARCH}" ) +- set(MAGMA_HAVE_CUDA "1") +- set(MAGMA_CUDA_ARCH_MIN "${MIN_ARCH}") ++ string( REGEX MATCHALL "sm_[0-9][0-9]" sms "${GPU_TARGET}" ) ++ list( SORT sms ) # To make output easier to reason about ++ foreach (sm IN LISTS sms) ++ string( REPLACE "sm_" "" sm "${sm}") # Remove sm_ prefix ++ if (sm LESS MIN_SM) ++ set( MIN_SM "${sm}" ) ++ endif() ++ if (sm GREATER MAX_SM) ++ set( MAX_SM "${sm}" ) ++ endif() ++ list( APPEND NV_SM -gencode arch=compute_${sm},code=sm_${sm} ) ++ string( REGEX REPLACE "([0-9])([0-9])" "\\1.\\2" cuda_arch "${sm}" ) ++ message( STATUS " compile for CUDA arch ${cuda_arch}" ) ++ endforeach() ++ ++ if (NOT NV_SM) ++ message( FATAL_ERROR ++ "GPU_TARGET must contain one or more of " ++ "Fermi, Kepler, Maxwell, Pascal, Volta, Turing, Ampere, or valid sm_[0-9][0-9]" ++ "Was: ${GPU_TARGET}" ) ++ endif() ++ ++ set( MIN_ARCH ${MIN_SM}0 ) ++ set( NV_COMP -gencode arch=compute_${MAX_SM},code=compute_${MAX_SM} ) ++ ++ list( APPEND CUDA_NVCC_FLAGS -Xcompiler -fPIC ${NV_SM} ${NV_COMP} ${FORTRAN_CONVENTION} ) ++ add_definitions( -DMAGMA_HAVE_CUDA=1 ) ++ add_definitions( -DMAGMA_CUDA_ARCH_MIN=${MIN_ARCH} ) + message( STATUS "Define -DMAGMA_HAVE_CUDA -DMAGMA_CUDA_ARCH_MIN=${MIN_ARCH}" ) + else() + message( STATUS "Could not find CUDA" ) diff --git a/Golden_Repo/m/magma/magma-2.6.2-foss-2022a-CUDA-11.7.eb b/Golden_Repo/m/magma/magma-2.6.2-foss-2022a-CUDA-11.7.eb index 270b017de4d7da9ad11a4917b23378fbc61ee0e1..27a5e9a080037f1cf26611e2db75345fa2089368 100644 --- a/Golden_Repo/m/magma/magma-2.6.2-foss-2022a-CUDA-11.7.eb +++ b/Golden_Repo/m/magma/magma-2.6.2-foss-2022a-CUDA-11.7.eb @@ -26,12 +26,13 @@ builddependencies = [ ] dependencies = [ ('CUDA', '11.7', '', SYSTEM), - ('UCX', 'default'), ] # make sure both static and shared libs are built configopts = [ - '-DBUILD_SHARED_LIBS=%s -DGPU_TARGET="%%(cuda_sm_space_sep)s" ' % local_shared for local_shared in ('ON', 'OFF') + '-DMKL_ILP64=ON \ + -DBUILD_SHARED_LIBS=%s \ + -DGPU_TARGET="%%(cuda_sm_space_sep)s" ' % local_shared for local_shared in ('ON', 'OFF') ] sanity_check_paths = { diff --git a/Golden_Repo/m/myqlm/myqlm-1.7.3-GCCcore-11.3.0.eb b/Golden_Repo/m/myqlm/myqlm-1.7.3-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..b4793f582e6a589110997898cf343e1e1f1410b8 --- /dev/null +++ b/Golden_Repo/m/myqlm/myqlm-1.7.3-GCCcore-11.3.0.eb @@ -0,0 +1,148 @@ +easyblock = 'PythonBundle' + +name = 'myqlm' +version = '1.7.3' + +homepage = 'https://atos.net/en/lp/myqlm' +description = """myQLM is a quantum software stack for writing, simulating, optimizing, and executing quantum programs. + myQLM also interfaces with the QLM, for Quantum Learning Machine, the quantum programming appliance of Atos.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), # numpy + ('dill', '0.3.6'), + ('networkx', '2.8.4', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('tqdm', '4.64.0'), + ('matplotlib', '3.5.2', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('IPython', '8.14.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 = [ + ('pyDOE', '0.3.8', { + 'modulename': 'pyDOE', + 'sources': ['%(name)s-%(version)s.zip'], + 'checksums': ['cbd6f14ae26d3c9f736013205f53ea1191add4567033c3ee77b7dd356566c4b6'], + }), + ('Wand', '0.6.11', { + 'sources': ['%(name)s-%(version)s-py2.py3-none-any.whl'], + 'checksums': ['1b77e25439ace57f665d1ccc6cff2766fad0834005b89ae3e7aaf3ba12b124b0'], + }), + ('svgwrite', '1.4.3', { + 'sources': ['%(name)s-%(version)s-py3-none-any.whl'], + 'checksums': ['bb6b2b5450f1edbfa597d924f9ac2dd099e625562e492021d7dd614f65f8a22d'], + }), + ('thrift', '0.16.0', { + 'sources': ['%(name)s-%(version)s.tar.gz'], + 'checksums': ['2b5b6488fcded21f9d312aa23c9ff6a0195d0f6ae26ddbd5ad9e3e25dfc14408'], + }), + ('anytree', '2.8.0', { + 'sources': ['%(name)s-%(version)s-py2.py3-none-any.whl'], + 'checksums': ['14c55ac77492b11532395049a03b773d14c7e30b22aa012e337b1e983de31521'], + }), + ('qat_devices', '0.2.0', { + 'modulename': 'qat.devices', + 'sources': ['%(name)s-%(version)s-cp310-cp310-manylinux1_x86_64.whl'], + 'checksums': ['0d35fa689c1866a91f141a25bfb5b43f0c0a030686de8b37ff672f3b04389400'], + }), + ('qat_comm', '1.4.2', { + 'modulename': 'qat.comm', + 'sources': ['%(name)s-%(version)s-cp310-cp310-manylinux1_x86_64.whl'], + 'checksums': ['e063b07d4f9620f97805243a1fce898a4ef4ae86da9c9ede860d98a6339bed00'], + }), + ('myqlm_simulators', '1.7.1', { + 'modulename': 'qat.pylinalg', + 'sources': ['%(name)s-%(version)s-py3-none-any.whl'], + 'checksums': ['2df96e14c8ee10fef4dd23c00975f087e5b947359b48952272301b24b0d11a7b'], + }), + ('qat_core', '1.6.4', { + 'modulename': 'qat.core', + 'sources': ['%(name)s-%(version)s-cp310-cp310-manylinux1_x86_64.whl'], + 'checksums': ['8b275a1178e2415e75c825ac29024b1c0c07b9f95523be415eb2155b21032030'], + }), + ('myqlm_contrib', '1.7.1', { + 'modulename': 'qat.sabre', + 'sources': ['%(name)s-%(version)s-py3-none-any.whl'], + 'checksums': ['7768d239bb187f8d54a64a622b237a3d032de80e147575bdeaf5dd1089b4dbf9'], + }), + ('myqlm_fermion', '1.0.0', { + 'modulename': 'qat.fermion', + 'sources': ['%(name)s-%(version)s-py3-none-any.whl'], + 'checksums': ['b7ca8cd1698dc3c83892496f293137d0b437ebaa10143bebc4008611d3b5323a'], + }), + ('myqlm_clinalg', '0.0.5', { + 'modulename': 'qat.clinalg', + 'sources': ['%(name)s-%(version)s-cp310-cp310-manylinux1_x86_64.whl'], + 'checksums': ['28ff7d0c6b3ada76e2f5e0e0a54f67c2451e410593a07ea8ee5c5d0395d70e8e'], + }), + ('qat_variational', '1.4.0', { + 'modulename': 'qat.plugins', + 'sources': ['%(name)s-%(version)s-cp310-cp310-manylinux1_x86_64.whl'], + 'checksums': ['3737f70ec10999bc3255ecb21a4bde318b1fa316b770271267e68f333fc2ce8e'], + }), + ('qat_lang', '2.2.1', { + 'modulename': 'qat.lang', + 'sources': ['%(name)s-%(version)s-cp310-cp310-manylinux1_x86_64.whl'], + 'checksums': ['5a495e9b1d453907600b0776ab6d4e72531c2a3a57d16ecfc2e360fbef17b5e4'], + }), + (name, version, { + 'modulename': 'qat', + 'sources': ['%(name)s-%(version)s-py3-none-any.whl'], + 'checksums': ['7402230a97222ab9b989b44b3c494e281db784e60db46994452b7088c9556354'], + }), + ('myqlm_interop', '1.7.1', { + 'modulename': 'qat.interop', + 'sources': ['%(name)s-%(version)s-py3-none-any.whl'], + 'checksums': ['fd05af8e62e0bcf40d82c68a5c8da2c56c5112cbb9a358e9ca26f6c43eb8147f'], + }), +] + +# TODO: qat.magics.install creates file in $HOME +# "/p/home/jusers/gonzalezcalaza1/jureca/.ipython/profile_default/startup/myqlm.py" +# install in PyQuantum instead? +# postinstallcmds = [ +# # ensure we install in the correct directory !!! +# 'cd %(builddir)s', +# 'python3 -m venv %(installdir)s --system-site-packages', + +# 'echo "#!/bin/bash" > %(builddir)s/env.sh', +# 'echo "source %(installdir)s/bin/activate" >> %(builddir)s/env.sh', +# ( +# 'echo "export PYTHONPATH=' +# '%(installdir)s/lib/python%(pyshortver)s/site-packages:' +# '${EBROOTPYTHON}/lib/python%(pyshortver)s/site-packages:' +# '${PYTHONPATH}" >> %(builddir)s/env.sh' +# ), + +# 'echo "export PATH=%(installdir)s/bin:${PATH}" >> %(builddir)s/env.sh', +# 'cat %(builddir)s/env.sh', +# # install +# 'source %(builddir)s/env.sh && python -m qat.magics.install', + +# # Ensure we remove the virtuel environment to avoid wrong search path for python packages +# 'rm -f %(installdir)s/pyvenv.cfg', +# 'rm -f %(installdir)s/bin/python', +# 'rm -f %(installdir)s/bin/python3', +# 'rm -f %(installdir)s/bin/activate', +# 'rm -f %(installdir)s/bin/activate*', +# 'rm -f %(installdir)s/bin/easy_install*', +# 'rm -f %(installdir)s/bin/pip*', +# 'rm -rf %(installdir)s/lib/python%(pyshortver)s/site-packages/_distutils_hack', +# 'rm -f %(installdir)s/lib/python%(pyshortver)s/site-packages/distutils-precedence.pth', +# 'rm -rf %(installdir)s/lib/python%(pyshortver)s/site-packages/pip', +# 'rm -rf %(installdir)s/lib/python%(pyshortver)s/site-packages/pip-*', +# 'rm -rf %(installdir)s/lib/python%(pyshortver)s/site-packages/pkg_resources', +# 'rm -rf %(installdir)s/lib/python%(pyshortver)s/site-packages/setuptools', +# 'rm -rf %(installdir)s/lib/python%(pyshortver)s/site-packages/setuptools-*', +# ] + +moduleclass = 'quantum' diff --git a/Golden_Repo/n/NCO/NCO-5.1.3-gompi-2022a.eb b/Golden_Repo/n/NCO/NCO-5.1.3-gompi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..1319ae7517bf3e968d15a6c45e5418e2fc635a86 --- /dev/null +++ b/Golden_Repo/n/NCO/NCO-5.1.3-gompi-2022a.eb @@ -0,0 +1,45 @@ +easyblock = 'ConfigureMake' + +name = 'NCO' +version = '5.1.3' + +homepage = "https://github.com/nco/nco" +description = """The NCO toolkit manipulates and analyzes data stored in netCDF-accessible formats, +including DAP, HDF4, and HDF5.""" + +toolchain = {'name': 'gompi', 'version': '2022a'} + +source_urls = ['https://github.com/nco/nco/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = ['f6766627dab3f067c88f2cd713e3058c324ea4f900fabf9755bdd8918c32de7b'] + +builddependencies = [ + ('Bison', '3.8.2'), + ('flex', '2.6.4'), +] + +dependencies = [ + ('UDUNITS', '2.2.28'), + ('expat', '2.4.8'), + ('ANTLR', '2.7.7'), + ('libdap', '3.20.11'), + ('GSL', '2.7'), + ('netCDF', '4.9.0'), + # ('ESMF', '8.3.0'), # ncremap needs ESMF_RegridWeightGen +] + +configopts = "--enable-nco_cplusplus" + +sanity_check_paths = { + 'files': ['bin/nc%s' % x for x in ('ap2', 'atted', 'bo', 'diff', 'ea', 'ecat', 'es', + 'flint', 'ks', 'pdq', 'ra', 'rcat', 'rename', 'wa')] + + ['lib/libnco.a', 'lib/libnco.%s' % SHLIB_EXT, + 'lib/libnco_c++.a', 'lib/libnco_c++.%s' % SHLIB_EXT], + 'dirs': ['include'], +} +sanity_check_commands = [ + "ncks -O -7 --cnk_dmn time,10 " + "%(builddir)s/%(namelower)s-%(version)s/data/in.nc %(builddir)s/%(namelower)s-%(version)s/data/in4.cdl" +] + +moduleclass = 'tools' diff --git a/Golden_Repo/n/NCO/NCO-5.1.3-ipsmpi-2022a.eb b/Golden_Repo/n/NCO/NCO-5.1.3-ipsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..04c65b25fe78f6db74bc2ba1e4592be5a70d2e48 --- /dev/null +++ b/Golden_Repo/n/NCO/NCO-5.1.3-ipsmpi-2022a.eb @@ -0,0 +1,45 @@ +easyblock = 'ConfigureMake' + +name = 'NCO' +version = '5.1.3' + +homepage = "https://github.com/nco/nco" +description = """The NCO toolkit manipulates and analyzes data stored in netCDF-accessible formats, +including DAP, HDF4, and HDF5.""" + +toolchain = {'name': 'ipsmpi', 'version': '2022a'} + +source_urls = ['https://github.com/nco/nco/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = ['f6766627dab3f067c88f2cd713e3058c324ea4f900fabf9755bdd8918c32de7b'] + +builddependencies = [ + ('Bison', '3.8.2'), + ('flex', '2.6.4'), +] + +dependencies = [ + ('UDUNITS', '2.2.28'), + ('expat', '2.4.8'), + ('ANTLR', '2.7.7'), + ('libdap', '3.20.11'), + ('GSL', '2.7'), + ('netCDF', '4.9.0'), + # ('ESMF', '8.3.0'), # ncremap needs ESMF_RegridWeightGen +] + +configopts = "--enable-nco_cplusplus" + +sanity_check_paths = { + 'files': ['bin/nc%s' % x for x in ('ap2', 'atted', 'bo', 'diff', 'ea', 'ecat', 'es', + 'flint', 'ks', 'pdq', 'ra', 'rcat', 'rename', 'wa')] + + ['lib/libnco.a', 'lib/libnco.%s' % SHLIB_EXT, + 'lib/libnco_c++.a', 'lib/libnco_c++.%s' % SHLIB_EXT], + 'dirs': ['include'], +} +sanity_check_commands = [ + "ncks -O -7 --cnk_dmn time,10 " + "%(builddir)s/%(namelower)s-%(version)s/data/in.nc %(builddir)s/%(namelower)s-%(version)s/data/in4.cdl" +] + +moduleclass = 'tools' diff --git a/Golden_Repo/n/NCO/NCO-5.1.4-npsmpic-2022a.eb b/Golden_Repo/n/NCO/NCO-5.1.4-npsmpic-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..7c4d3cb823427ceaeae0af7f9118d3ad84790f1b --- /dev/null +++ b/Golden_Repo/n/NCO/NCO-5.1.4-npsmpic-2022a.eb @@ -0,0 +1,45 @@ +easyblock = 'ConfigureMake' + +name = 'NCO' +version = '5.1.4' + +homepage = "https://github.com/nco/nco" +description = """The NCO toolkit manipulates and analyzes data stored in netCDF-accessible formats, +including DAP, HDF4, and HDF5.""" + +toolchain = {'name': 'npsmpic', 'version': '2022a'} + +source_urls = ['https://github.com/nco/nco/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = ['4b1ec67b795b985990620be7b7422ecae6da77f5ec93e4407b799f0220dffc88'] + +builddependencies = [ + ('Bison', '3.8.2'), + ('flex', '2.6.4'), +] + +dependencies = [ + ('UDUNITS', '2.2.28'), + ('expat', '2.4.8'), + ('ANTLR', '2.7.7'), + ('libdap', '3.20.11'), + ('GSL', '2.7'), + ('netCDF', '4.9.0'), + # ('ESMF', '8.3.0'), # ncremap needs ESMF_RegridWeightGen +] + +configopts = "--enable-nco_cplusplus" + +sanity_check_paths = { + 'files': ['bin/nc%s' % x for x in ('ap2', 'atted', 'bo', 'diff', 'ea', 'ecat', 'es', + 'flint', 'ks', 'pdq', 'ra', 'rcat', 'rename', 'wa')] + + ['lib/libnco.a', 'lib/libnco.%s' % SHLIB_EXT, + 'lib/libnco_c++.a', 'lib/libnco_c++.%s' % SHLIB_EXT], + 'dirs': ['include'], +} +sanity_check_commands = [ + "ncks -O -7 --cnk_dmn time,10 " + "%(builddir)s/%(namelower)s-%(version)s/data/in.nc %(builddir)s/%(namelower)s-%(version)s/data/in4.cdl" +] + +moduleclass = 'tools' diff --git a/Golden_Repo/n/NVHPC/NVHPC-23.1.eb b/Golden_Repo/n/NVHPC/NVHPC-23.1.eb new file mode 100644 index 0000000000000000000000000000000000000000..a7fe10e3b168927c89b6cea4dc009fd59b4510ed --- /dev/null +++ b/Golden_Repo/n/NVHPC/NVHPC-23.1.eb @@ -0,0 +1,73 @@ +name = 'NVHPC' +version = '23.1' +local_gccver = '11.3.0' + +homepage = 'https://developer.nvidia.com/hpc-sdk/' +description = """C, C++ and Fortran compilers included with the NVIDIA HPC SDK (previously: PGI)""" + +toolchain = SYSTEM + +# By downloading, you accept the HPC SDK Software License Agreement (https://docs.nvidia.com/hpc-sdk/eula/index.html) +source_urls = ['https://developer.download.nvidia.com/hpc-sdk/%(version)s/'] +local_tarball_tmpl = 'nvhpc_2023_%%(version_major)s%%(version_minor)s_Linux_%s_cuda_multi.tar.gz' +sources = [local_tarball_tmpl % '%(arch)s'] +checksums = [ + { + local_tarball_tmpl % 'aarch64': + '5b430e03752954ea62ac1c745b1735cfdaa43b2e981a9412c1465ecb0412fff6', + local_tarball_tmpl % 'ppc64le': + '81759e7c747bf4f552b75e7657301f76ecc0828b94fe860f81108c6e83e6ad2b', + local_tarball_tmpl % 'x86_64': + '55a064415f6d4ce6a01823ee27ebd266f4fb579679871e7c1a7c054bdc18e9f5', + } +] + +dependencies = [ + ('GCCcore', local_gccver), + ('binutils', '2.38', '', ('GCCcore', local_gccver)), + ('CUDA', '11.7', '', SYSTEM), + # This is necessary to avoid cases where just libnuma.so.1 is present in the system and -lnuma fails + ('numactl', '2.0.15', '', ('GCCcore', local_gccver)) +] + +module_add_cuda = False + +# specify default CUDA version that should be used by NVHPC +# should match one of the CUDA versions that are included with this NVHPC version +# (see install_components/Linux_x86_64/22.3/cuda/) +# for NVHPC 22.3, those are: 11.6, 11.0, 10.2; +# this version can be tweaked from the EasyBuild command line with +# --try-amend=default_cuda_version="11.0" (for example) +default_cuda_version = '%(cudaver)s' + +# NVHPC EasyBlock supports some features, which can be set via CLI or this easyconfig. +# The following list gives examples for the easyconfig +# +# NVHPC needs CUDA to work. Two options are available: 1) Use NVHPC-bundled CUDA, 2) use system CUDA +# 1) Bundled CUDA +# If no easybuild dependency to CUDA is present, the bundled CUDA is taken. A version needs to be specified with +# default_cuda_version = "11.0" +# in this easyconfig file; alternatively, it can be specified through the command line during installation with +# --try-amend=default_cuda_version="10.2" +# 2) CUDA provided via EasyBuild +# Use CUDA as a dependency, for example +# dependencies = [('CUDA', '11.5.0')] +# The parameter default_cuda_version still can be set as above. +# If not set, it will be deduced from the CUDA module (via $EBVERSIONCUDA) +# +# Define a NVHPC-default Compute Capability +# cuda_compute_capabilities = "8.0" +# Can also be specified on the EasyBuild command line via --cuda-compute-capabilities=8.0 +# Only single values supported, not lists of values! +# +# Options to add/remove things to/from environment module (defaults shown) +# module_byo_compilers = False # Remove compilers from PATH (Bring-your-own compilers) +# module_nvhpc_own_mpi = False # Add NVHPC's own pre-compiled OpenMPI +# module_add_math_libs = False # Add NVHPC's math libraries (which should be there from CUDA anyway) +# module_add_profilers = False # Add NVHPC's NVIDIA Profilers +# module_add_nccl = False # Add NVHPC's NCCL library +# module_add_nvshmem = False # Add NVHPC's NVSHMEM library +# module_add_cuda = False # Add NVHPC's bundled CUDA + +# this bundle serves as a compiler-only toolchain, so it should be marked as compiler (important for HMNS) +moduleclass = 'compiler' diff --git a/Golden_Repo/n/Nsight-Compute/Nsight-Compute-2023.1.0-GCCcore-11.3.0.eb b/Golden_Repo/n/Nsight-Compute/Nsight-Compute-2023.1.0-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..f7b53fb537e17e6f09698ed73e924033cb939224 --- /dev/null +++ b/Golden_Repo/n/Nsight-Compute/Nsight-Compute-2023.1.0-GCCcore-11.3.0.eb @@ -0,0 +1,47 @@ +# jg (CSCS) +# AH (JSC) +easyblock = 'Binary' + +name = 'Nsight-Compute' +version = '2023.1.0' +homepage = 'https://developer.nvidia.com/nsight-compute' +description = 'NVIDIA Nsight Compute is an interactive kernel profiler for CUDA applications' + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +# Download source binary package manually, requires Nvidia Developer Account +# source_urls = 'https://developer.nvidia.com/nsight-compute' +sources = [{ + 'filename': 'nsight-compute-linux-%(version)s.16-32451174.run', + 'extract_cmd': '/bin/sh %s' +}] +checksums = ['3daa4906f8d878590a462839b3f9dc642ebe6070e6ac145bd36198b7c6309c99'] + +# Not really necessary, but useful if we use this as a template for another package +builddependencies = [ + ('binutils', '2.38'), +] + +dependencies = [ + ('X11', '20220504') +] + +extract_sources = True +unpack_options = '--nochown --noexec --nox11 --target %(builddir)s' + +install_cmd = 'cp -r %(builddir)s/pkg/* %(installdir)s/' + +# Workaround due to wrong permissions once the files are extracted from the .run file +postinstallcmds = [ + 'find %(installdir)s -type f -and -executable -and ! -name "lib*" -exec chmod go+x {} \;'] + +sanity_check_paths = { + 'files': ['ncu-ui', 'ncu'], + 'dirs': ['docs', 'extras', 'host', 'sections', 'target'] +} + +modluafooter = """ +add_property("arch","gpu") +""" + +moduleclass = 'tools' diff --git a/Golden_Repo/n/Nsight-Systems/Nsight-Systems-2023.2.1-GCCcore-11.3.0.eb b/Golden_Repo/n/Nsight-Systems/Nsight-Systems-2023.2.1-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..f1170c5ff0d73ce2e912f7c1d34e6f8c5acdc49e --- /dev/null +++ b/Golden_Repo/n/Nsight-Systems/Nsight-Systems-2023.2.1-GCCcore-11.3.0.eb @@ -0,0 +1,44 @@ +# jg (CSCS) +# AH (JSC) +easyblock = 'Binary' + +name = 'Nsight-Systems' +version = '2023.2.1' +homepage = 'https://developer.nvidia.com/nsight-systems' +description = 'NVIDIA Nsight Systems is a system-wide performance analysis tool' + +# GCCcore toolchain is not strictly necessary, but used to bring it to same level as Nsight Compute +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +# Download source binary package manually, requires Nvidia Developer Account +# source_urls = 'https://developer.nvidia.com/nsight-systems' +sources = [{ + 'filename': 'NsightSystems-linux-public-%(version)s.122-3259852.run', + 'extract_cmd': '/bin/sh %s' +}] +checksums = ['894a8a6bb08b1314eec41309a3c56386a4929ba58914278e49fa9a5fd2724f89'] + +dependencies = [ + ('X11', '20220504') +] + + +extract_sources = True +unpack_options = '--accept --nochown --noexec --nox11 --target %(builddir)s' + +install_cmd = 'cp -r %(builddir)s/pkg/* %(installdir)s/' + +sanity_check_paths = { + 'files': ['bin/nsys'], + 'dirs': ['target-linux-x64', 'host-linux-x64'] +} + +modextravars = { + 'NSIGHT_DOC': '%(installdir)s/documentation/nsys-exporter' +} + +modluafooter = """ +add_property("arch","gpu") +""" + +moduleclass = 'tools' diff --git a/Golden_Repo/n/netCDF-C++4/netCDF-C++4-4.3.1-gompi-2022a.eb b/Golden_Repo/n/netCDF-C++4/netCDF-C++4-4.3.1-gompi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..50ed6850d0a497990ee7ea3d71c66493c5a54cc0 --- /dev/null +++ b/Golden_Repo/n/netCDF-C++4/netCDF-C++4-4.3.1-gompi-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': 'gompi', '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-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-C++4/netCDF-C++4-4.3.1-npsmpic-2022a.eb b/Golden_Repo/n/netCDF-C++4/netCDF-C++4-4.3.1-npsmpic-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..40045482f03ecb4abb110933838af1687cd0d758 --- /dev/null +++ b/Golden_Repo/n/netCDF-C++4/netCDF-C++4-4.3.1-npsmpic-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': 'npsmpic', '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-nvompic-2022a.eb b/Golden_Repo/n/netCDF-C++4/netCDF-C++4-4.3.1-nvompic-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..9b395b3133583fced8baa3c67ef3d8c62bd2cb05 --- /dev/null +++ b/Golden_Repo/n/netCDF-C++4/netCDF-C++4-4.3.1-nvompic-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': 'nvompic', '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-Fortran/netCDF-Fortran-4.6.0-npsmpic-2022a.eb b/Golden_Repo/n/netCDF-Fortran/netCDF-Fortran-4.6.0-npsmpic-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..9334561e670015c3fddf0c64b822f9ba3e87fc1e --- /dev/null +++ b/Golden_Repo/n/netCDF-Fortran/netCDF-Fortran-4.6.0-npsmpic-2022a.eb @@ -0,0 +1,28 @@ +name = 'netCDF-Fortran' +version = '4.6.0' + +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': 'npsmpic', 'version': '2022a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = ['https://github.com/Unidata/netcdf-fortran/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['8194aa70e400c0adfc456127c1d97af2c6489207171d13b10cd754a16da8b0ca'] + +builddependencies = [ + ('M4', '1.4.19'), +] + +dependencies = [ + ('netCDF', '4.9.0'), + ('bzip2', '1.0.8'), +] + +# (too) parallel build fails, but single-core build is fairly quick anyway (~1min) +parallel = 1 + +moduleclass = 'data' diff --git a/Golden_Repo/n/netCDF-Fortran/netCDF-Fortran-4.6.0-nvompic-2022a.eb b/Golden_Repo/n/netCDF-Fortran/netCDF-Fortran-4.6.0-nvompic-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..f39c29f52521afd257c1809a77abbc0d8d721f3d --- /dev/null +++ b/Golden_Repo/n/netCDF-Fortran/netCDF-Fortran-4.6.0-nvompic-2022a.eb @@ -0,0 +1,28 @@ +name = 'netCDF-Fortran' +version = '4.6.0' + +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': 'nvompic', 'version': '2022a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = ['https://github.com/Unidata/netcdf-fortran/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['8194aa70e400c0adfc456127c1d97af2c6489207171d13b10cd754a16da8b0ca'] + +builddependencies = [ + ('M4', '1.4.19'), +] + +dependencies = [ + ('netCDF', '4.9.0'), + ('bzip2', '1.0.8'), +] + +# (too) parallel build fails, but single-core build is fairly quick anyway (~1min) +parallel = 1 + +moduleclass = 'data' diff --git a/Golden_Repo/n/netCDF/netCDF-4.9.0-npsmpic-2022a.eb b/Golden_Repo/n/netCDF/netCDF-4.9.0-npsmpic-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..aa9f7cd82d626169aabb1fecc0ab5a6e54bfec72 --- /dev/null +++ b/Golden_Repo/n/netCDF/netCDF-4.9.0-npsmpic-2022a.eb @@ -0,0 +1,78 @@ +name = 'netCDF' +version = '4.9.0' + +homepage = 'http://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': 'npsmpic', 'version': '2022a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = ['https://github.com/Unidata/netcdf-c/archive/'] +sources = ['v%s.tar.gz' % (version)] +patches = [ + 'netCDF-%(version)s_fix-lib-name.patch', + 'netCDF-%(version)s_fix-linking-errors.patch', + 'netCDF-%(version)s_skip-nasa-test.patch', +] +checksums = [ + '9f4cb864f3ab54adb75409984c6202323d2fc66c003e5308f3cdf224ed41c0a6', # v4.9.0.tar.gz + # netCDF-4.9.0_fix-lib-name.patch + 'ed45ae6c49cf8dcddaadef4c5cf403049bf3f761187413d7b03754d319345d6a', + # netCDF-4.9.0_fix-linking-errors.patch + '2b9579c149579d137eb16ae5d790787774033dcec49c0d4993d9859f224e7b15', + # netCDF-4.9.0_skip-nasa-test.patch + '19d99e03c048b037dc01f03f5b8ddc910ebaceb076d0f050540d348f26dfcd2a', +] + +builddependencies = [ + ('Autotools', '20220317'), + ('CMake', '3.23.1'), + ('Doxygen', '1.9.4'), +] + +dependencies = [ + ('HDF5', '1.12.2'), + ('cURL', '7.83.0'), + ('Szip', '2.1.1'), + ('zstd', '1.5.2'), + ('bzip2', '1.0.8'), + ('libxml2', '2.9.13'), + ('PnetCDF', '1.12.3'), +] + +# disable tests that fail only with NVHPC - only needed when building with tests and without PnetCDF +# comment out tests for put_varX_schar +# preconfigopts = ("sed -i -e 's|NC_TEST(nc_put_var_schar);|/*NC_TEST(nc_put_var_schar);*/|g'" +# " -e 's|NC_TEST(nc_put_var1_schar);|/*NC_TEST(nc_put_var1_schar);*/|g'" +# " -e 's|NC_TEST(nc_put_vara_schar);|/*NC_TEST(nc_put_vara_schar);*/|g'" +# " -e 's|NC_TEST(nc_put_vars_schar);|/*NC_TEST(nc_put_vars_schar);*/|g'" +# " -e 's|NC_TEST(nc_put_varm_schar);|/*NC_TEST(nc_put_varm_schar);*/|g'" +# " -e 's|NC_TEST(nc_put_att_schar);|/*NC_TEST(nc_put_att_schar);*/|g'" +# " %(builddir)s/%(namelower)s-c-%(version)s/nc_test/nc_test.c &&") + +# comment out chunking tests +# preconfigopts += ("sed -i -e 's|diff -b \${srcdir}/ref_rem.dmp tmp_rem_\${zext}.txt|echo \"skipped by EasyBuild\"|g'" +# " -e 's|diff -b \${srcdir}/ref_ndims.dmp tmp_ndims_\${zext}.dmp|echo \"skipped by EasyBuild\"|g'" +# " -e 's|diff -b ${srcdir}/ref_misc1.dmp tmp_misc1_${zext}.dmp|echo \"skipped by EasyBuild\"|g'" +# " %(builddir)s/%(namelower)s-c-%(version)s/nczarr_test/run_chunkcases.sh &&") + +# make sure both static and shared libs are built +# enable PnetCDF +# 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 -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 +# pretestopts = "OMPI_MCA_rmaps_base_oversubscribe=1 " + +# switch off tests to build with PnetCDF, as cmake configuration for pnetcdf-based tests contains bugs +# will be fixed in 4.9.1 +# https://github.com/Unidata/netcdf-c/pull/2437 +# runtest = 'test' + +moduleclass = 'data' diff --git a/Golden_Repo/n/netCDF/netCDF-4.9.0-nvompic-2022a.eb b/Golden_Repo/n/netCDF/netCDF-4.9.0-nvompic-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..d96fd0b7b761103dd2f0d3c2d5f5f1957d7b20d4 --- /dev/null +++ b/Golden_Repo/n/netCDF/netCDF-4.9.0-nvompic-2022a.eb @@ -0,0 +1,78 @@ +name = 'netCDF' +version = '4.9.0' + +homepage = 'http://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': 'nvompic', 'version': '2022a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = ['https://github.com/Unidata/netcdf-c/archive/'] +sources = ['v%s.tar.gz' % (version)] +patches = [ + 'netCDF-%(version)s_fix-lib-name.patch', + 'netCDF-%(version)s_fix-linking-errors.patch', + 'netCDF-%(version)s_skip-nasa-test.patch', +] +checksums = [ + '9f4cb864f3ab54adb75409984c6202323d2fc66c003e5308f3cdf224ed41c0a6', # v4.9.0.tar.gz + # netCDF-4.9.0_fix-lib-name.patch + 'ed45ae6c49cf8dcddaadef4c5cf403049bf3f761187413d7b03754d319345d6a', + # netCDF-4.9.0_fix-linking-errors.patch + '2b9579c149579d137eb16ae5d790787774033dcec49c0d4993d9859f224e7b15', + # netCDF-4.9.0_skip-nasa-test.patch + '19d99e03c048b037dc01f03f5b8ddc910ebaceb076d0f050540d348f26dfcd2a', +] + +builddependencies = [ + ('Autotools', '20220317'), + ('CMake', '3.23.1'), + ('Doxygen', '1.9.4'), +] + +dependencies = [ + ('HDF5', '1.12.2'), + ('cURL', '7.83.0'), + ('Szip', '2.1.1'), + ('zstd', '1.5.2'), + ('bzip2', '1.0.8'), + ('libxml2', '2.9.13'), + ('PnetCDF', '1.12.3'), +] + +# disable tests that fail only with NVHPC - only needed when building with tests and without PnetCDF +# comment out tests for put_varX_schar +# preconfigopts = ("sed -i -e 's|NC_TEST(nc_put_var_schar);|/*NC_TEST(nc_put_var_schar);*/|g'" +# " -e 's|NC_TEST(nc_put_var1_schar);|/*NC_TEST(nc_put_var1_schar);*/|g'" +# " -e 's|NC_TEST(nc_put_vara_schar);|/*NC_TEST(nc_put_vara_schar);*/|g'" +# " -e 's|NC_TEST(nc_put_vars_schar);|/*NC_TEST(nc_put_vars_schar);*/|g'" +# " -e 's|NC_TEST(nc_put_varm_schar);|/*NC_TEST(nc_put_varm_schar);*/|g'" +# " -e 's|NC_TEST(nc_put_att_schar);|/*NC_TEST(nc_put_att_schar);*/|g'" +# " %(builddir)s/%(namelower)s-c-%(version)s/nc_test/nc_test.c &&") + +# comment out chunking tests +# preconfigopts += ("sed -i -e 's|diff -b \${srcdir}/ref_rem.dmp tmp_rem_\${zext}.txt|echo \"skipped by EasyBuild\"|g'" +# " -e 's|diff -b \${srcdir}/ref_ndims.dmp tmp_ndims_\${zext}.dmp|echo \"skipped by EasyBuild\"|g'" +# " -e 's|diff -b ${srcdir}/ref_misc1.dmp tmp_misc1_${zext}.dmp|echo \"skipped by EasyBuild\"|g'" +# " %(builddir)s/%(namelower)s-c-%(version)s/nczarr_test/run_chunkcases.sh &&") + +# make sure both static and shared libs are built +# enable PnetCDF +# 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 -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 +# pretestopts = "OMPI_MCA_rmaps_base_oversubscribe=1 " + +# switch off tests to build with PnetCDF, as cmake configuration for pnetcdf-based tests contains bugs +# will be fixed in 4.9.1 +# https://github.com/Unidata/netcdf-c/pull/2437 +# runtest = 'test' + +moduleclass = 'data' 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/nodejs/nodejs-16.15.1-GCCcore-11.3.0.eb b/Golden_Repo/n/nodejs/nodejs-16.15.1-GCCcore-11.3.0.eb index 3fe69b1af4cfce6a5097bb1e5c98ddde64d03d58..b356c989a17966583df4a5edfebc61edff832820 100644 --- a/Golden_Repo/n/nodejs/nodejs-16.15.1-GCCcore-11.3.0.eb +++ b/Golden_Repo/n/nodejs/nodejs-16.15.1-GCCcore-11.3.0.eb @@ -22,8 +22,8 @@ builddependencies = [ ] configopts = [ - '--with-intl=none', # Fully disable ICU to avoid issues with the embedded icu-small library - '--shared --with-intl=none', # Build libnode.so in a second run + '--with-intl=full-icu', # Full ICU is default and required for RegExp Unicode Property Escapes + '--shared ', # Build libnode.so in a second run ] # Link libv8 libs to libnode @@ -32,6 +32,7 @@ postinstallcmds = [ "cd %%(installdir)s/lib; ln -s libnode.%s.%s libv8.%s" % (SHLIB_EXT, local_libversion, SHLIB_EXT), "cd %%(installdir)s/lib; ln -s libnode.%s.%s libv8_libbase.%s" % (SHLIB_EXT, local_libversion, SHLIB_EXT), "cd %%(installdir)s/lib; ln -s libnode.%s.%s libv8_libplatform.%s" % (SHLIB_EXT, local_libversion, SHLIB_EXT), + "export PATH=%(installdir)s/bin/:$PATH && %(installdir)s/bin/corepack enable", ] sanity_check_paths = { diff --git a/Golden_Repo/n/npsmpic/npsmpic-2022a.eb b/Golden_Repo/n/npsmpic/npsmpic-2022a.eb index b7c3900a29530edc7f1d33078fb1e79babdd5edd..863cd7d65002dacac9067cabdf7c07efe737f5d3 100644 --- a/Golden_Repo/n/npsmpic/npsmpic-2022a.eb +++ b/Golden_Repo/n/npsmpic/npsmpic-2022a.eb @@ -8,7 +8,7 @@ description = 'NVHPC based compiler toolchain, including Parastation MPICH2 for toolchain = SYSTEM -local_compiler = ('NVHPC', '22.11') +local_compiler = ('NVHPC', '23.1') dependencies = [ local_compiler, diff --git a/Golden_Repo/n/nvompic/nvompic-2022a.eb b/Golden_Repo/n/nvompic/nvompic-2022a.eb index 9ae3a04dafc21b4b8b23412bb2bf0d3fd9fbc2e7..0ce2fff27926b37a98103fa2dbb36fd2bd418217 100644 --- a/Golden_Repo/n/nvompic/nvompic-2022a.eb +++ b/Golden_Repo/n/nvompic/nvompic-2022a.eb @@ -8,7 +8,7 @@ description = 'NVHPC based compiler toolchain, including OpenMPI for MPI support toolchain = SYSTEM -local_compiler = ('NVHPC', '22.11') +local_compiler = ('NVHPC', '23.1') dependencies = [ local_compiler, 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/OTF2/OTF2-3.0.3-GCCcore-11.3.0.eb b/Golden_Repo/o/OTF2/OTF2-3.0.3-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..4ca72e1e0bb00ca25c2879c3684a00afea109d30 --- /dev/null +++ b/Golden_Repo/o/OTF2/OTF2-3.0.3-GCCcore-11.3.0.eb @@ -0,0 +1,49 @@ +## +# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild +# Copyright:: Copyright 2013-2022 Juelich Supercomputing Centre, Germany +# Authors:: Bernd Mohr <b.mohr@fz-juelich.de> +# Markus Geimer <m.geimer@fz-juelich.de> +# Christian Feld <c.feld@fz-juelich.de> +# License:: 3-clause BSD +# +# This work is based on experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +easyblock = 'EB_Score_minus_P' + +name = 'OTF2' +version = '3.0.3' + +homepage = 'https://www.score-p.org' +description = """ +The Open Trace Format 2 is a highly scalable, memory efficient event trace +data format plus support library. It is the new standard trace format for +Scalasca, Vampir, and TAU and is open for other tools. +""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['http://perftools.pages.jsc.fz-juelich.de/cicd/otf2/tags/otf2-%(version)s'] +sources = [SOURCELOWER_TAR_GZ] +checksums = [ + '18a3905f7917340387e3edc8e5766f31ab1af41f4ecc5665da6c769ca21c4ee8', # otf2-3.0.3.tar.gz +] + +builddependencies = [ + # use same binutils version that was used when building GCCcore + ('binutils', '2.38'), + # SIONlib container support (optional): + ('SIONlib', '1.7.7', '-tools'), +] + +configopts = '--enable-shared' + +sanity_check_paths = { + 'files': ['bin/otf2-config', 'include/otf2/otf2.h', + ('lib/libotf2.a', 'lib64/libotf2.a'), + ('lib/libotf2.%s' % SHLIB_EXT, 'lib64/libotf2.%s' % SHLIB_EXT)], + 'dirs': [], +} + +moduleclass = 'perf' diff --git a/Golden_Repo/o/Octave/Octave-8.2.0-gcccoremkl-11.3.0-2022.1.0.eb b/Golden_Repo/o/Octave/Octave-8.2.0-gcccoremkl-11.3.0-2022.1.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..7d674d1a3ac7b90cfd16a2df6d05b16670ae0c79 --- /dev/null +++ b/Golden_Repo/o/Octave/Octave-8.2.0-gcccoremkl-11.3.0-2022.1.0.eb @@ -0,0 +1,92 @@ +# 'optim' plugin added which is required for dynare +# Author: J. Sassmannshausen (Imperial College London/UK) + +name = 'Octave' +version = '8.2.0' + +homepage = 'https://www.gnu.org/software/octave/' +description = """GNU Octave is a high-level interpreted language, primarily intended for numerical computations.""" + +toolchain = {'name': 'gcccoremkl', 'version': '11.3.0-2022.1.0'} +toolchainopts = {'cstd': 'c++11'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['57d17f918a940d38ca3348211e110b34d735a322a87db71c177c4692a49a9c84'] + +builddependencies = [ + ('binutils', '2.38'), + ('Bison', '3.8.2'), + ('flex', '2.6.4'), + ('Autotools', '20220317'), + ('gperf', '3.1'), + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('X11', '20220504'), + ('PCRE', '8.45'), + ('ncurses', '6.3'), + ('libreadline', '8.1.2'), + ('ARPACK-NG', '3.8.0', '-nompi'), + ('cURL', '7.83.0'), + ('FLTK', '1.3.8'), + ('fontconfig', '2.14.0'), + ('freetype', '2.12.1'), + ('GLPK', '5.0'), + ('GL2PS', '1.4.2'), + ('gnuplot', '5.4.4'), + ('Java', '11', '', SYSTEM), + ('zlib', '1.2.12'), + ('OpenGL', '2022a'), + ('freeglut', '3.4.0'), + ('Qhull', '2020.2'), + ('Qt5', '5.15.5'), + ('HDF5', '1.12.2', '-serial'), + ('qrupdate', '1.1.2'), + ('SuiteSparse', '5.13.0', '-nompi'), + ('makeinfo', '6.8'), + ('libsndfile', '1.1.0'), + ('GraphicsMagick', '1.3.36'), + # ('SUNDIALS', '6.4.1'), + ('FFTW', '3.3.10'), + ('texlive', '20220321'), + ('GraphicsMagick', '1.3.36'), + ('Ghostscript', '9.56.1'), +] + +configopts = '--disable-docs ' +# correct for both GCC and Intel compilers +configopts += '--enable-fortran-calling-convention=gfortran' + +local_pkg_url = 'https://downloads.sourceforge.net/' +local_pkg_url += 'project/octave/Octave%20Forge%20Packages/Individual%20Package%20Releases/' +exts_default_options = {'source_urls': [local_pkg_url]} + +exts_list = [ + ('control', '3.5.0', { + 'checksums': ['507d14ea3ea80bdc55b67c146a9dc88229229714fe33febe983393a67dec714a'], + }), + ('general', '2.1.2', { + 'checksums': ['a30cd1a79743c62528dae46ebd4a83f848ae46a1c1dac3eaabc36662d42294cf'], + }), + ('io', '2.6.4', { + 'checksums': ['a74a400bbd19227f6c07c585892de879cd7ae52d820da1f69f1a3e3e89452f5a'], + }), + ('signal', '1.4.4', { + 'checksums': ['119df4b3a177834d6dd9c3124a2167c05aff5e6582fd0d32a7f9f306d302293a'], + }), + ('statistics', '1.4.3', { + 'checksums': ['9801b8b4feb26c58407c136a9379aba1e6a10713829701bb3959d9473a67fa05'], + }), + ('struct', '1.0.18', { + 'checksums': ['fccea7dd84c1104ed3babb47a28f05e0012a89c284f39ab094090450915294ce'], + }), + ('optim', '1.6.2', { + 'checksums': ['554a8e18bb7195ae861f5059c14f1a557844265c1addb5bfbf3ab9885524787e'], + }), +] + +runtest = 'check' + +moduleclass = 'math' 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/OpenMPI/OpenMPI-4.1.4-NVHPC-22.11.eb b/Golden_Repo/o/OpenMPI/OpenMPI-4.1.4-NVHPC-23.1.eb similarity index 97% rename from Golden_Repo/o/OpenMPI/OpenMPI-4.1.4-NVHPC-22.11.eb rename to Golden_Repo/o/OpenMPI/OpenMPI-4.1.4-NVHPC-23.1.eb index 40ed67dfed508275d69f8b49c83b2c6e551c8709..6bb054ba122071f808ba2a0f0f5f5faf57ed1b9b 100644 --- a/Golden_Repo/o/OpenMPI/OpenMPI-4.1.4-NVHPC-22.11.eb +++ b/Golden_Repo/o/OpenMPI/OpenMPI-4.1.4-NVHPC-23.1.eb @@ -4,7 +4,7 @@ version = '4.1.4' homepage = 'https://www.open-mpi.org/' description = """The Open MPI Project is an open source MPI-3 implementation.""" -toolchain = {'name': 'NVHPC', 'version': '22.11'} +toolchain = {'name': 'NVHPC', 'version': '23.1'} toolchainopts = {'pic': True} source_urls = ['https://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] 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/openpyxl/openpyxl-3.1.1-gcccoremkl-11.3.0-2022.1.0.eb b/Golden_Repo/o/openpyxl/openpyxl-3.1.1-gcccoremkl-11.3.0-2022.1.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..f6f394e9d8a3ae0c0812b767a7bca85de6159400 --- /dev/null +++ b/Golden_Repo/o/openpyxl/openpyxl-3.1.1-gcccoremkl-11.3.0-2022.1.0.eb @@ -0,0 +1,36 @@ +easyblock = 'PythonBundle' + +name = 'openpyxl' +version = '3.1.1' + +homepage = 'https://openpyxl.readthedocs.io' +description = "A Python library to read/write Excel 2010 xlsx/xlsm files" + +toolchain = {'name': 'gcccoremkl', 'version': '11.3.0-2022.1.0'} + +builddependencies = [('binutils', '2.38')] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('lxml', '4.9.1'), + ('Pillow-SIMD', '9.2.0'), +] + +use_pip = True + +exts_list = [ + ('et_xmlfile', '1.1.0', { + 'checksums': ['8eb9e2bc2f8c97e37a2dc85a09ecdcdec9d8a396530a6d5a33b30b9a92da0c5c'], + }), + ('jdcal', '1.4.1', { + 'checksums': ['472872e096eb8df219c23f2689fc336668bdb43d194094b5cc1707e1640acfc8'], + }), + (name, version, { + 'checksums': ['f06d44e2c973781068bce5ecf860a09bcdb1c7f5ce1facd5e9aa82c92c93ae72'], + }), +] + +sanity_pip_check = True + +moduleclass = 'data' 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/PETSc/PETSc-3.18.5-gpsmkl-2022a.eb b/Golden_Repo/p/PETSc/PETSc-3.18.5-gpsmkl-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..89c4166d819b17166996f6574393e16efa4557c0 --- /dev/null +++ b/Golden_Repo/p/PETSc/PETSc-3.18.5-gpsmkl-2022a.eb @@ -0,0 +1,59 @@ +import os as local_os + +name = "PETSc" +version = "3.18.5" + +homepage = 'http://www.mcs.anl.gov/petsc' +description = """PETSc, pronounced PET-see (the S is silent), is a suite +of data structures and routines for the scalable (parallel) solution +of scientific applications modeled by partial differential equations. + +This version is configured with several downloads of other libraries, +with --with-large-file-io and no debugging. It is a C and Fortran +version with default 4-Byte integer values. + +For more information see $PETSC_DIR/lib/petsc/conf/configure-hash. +""" + +toolchain = {'name': 'gpsmkl', 'version': '2022a'} + +toolchainopts = {'usempi': True, 'pic': True} + +source_urls = ['http://ftp.mcs.anl.gov/pub/petsc/release-snapshots'] +sources = ['petsc-%s.tar.gz' % version] +checksums = ['df73ae13a4c5758325a9d69350cac423742657d8a8fc5782504b0e469ce46499'] + +builddependencies = [ + ('CMake', '3.23.1') +] + +download_deps = [ + 'triangle', +] + +dependencies = [ + ('HDF5', '1.12.2'), + ('METIS', '5.1.0'), + ('ParMETIS', '4.0.3') +] + +download_deps_static = [ + 'hypre', + 'spooles', + 'superlu', + 'superlu_dist', + 'mumps', + 'spai', + 'chaco', + 'sundials2', + 'parms', +] + +configopts = '--with-large-file-io --with-cxx-dialect=C++11' +configopts += ' --with-fftw=1 --with-fftw-lib=[$EBROOTIMKLMINFFTW/lib/libfftw3xc_gnu_pic.a,\ +libfftw3x_cdft_lp64_pic.a,libmkl_cdft_core.a,libmkl_blacs_intelmpi_lp64.a,\ +libmkl_gf_lp64.a,libmkl_sequential.a,libmkl_core.a,libgfortran.a]' +configopts += ' --with-fftw-include=[$EBROOTIMKL/mkl/2022.1.0/include/fftw]' +shared_libs = 1 + +moduleclass = 'numlib' diff --git a/Golden_Repo/p/PETSc/petsc4py-3.18.5-gspmkl-2022a-Python-3.10.4.eb b/Golden_Repo/p/PETSc/petsc4py-3.18.5-gspmkl-2022a-Python-3.10.4.eb new file mode 100644 index 0000000000000000000000000000000000000000..0e6310f03491f2e85a8f53eb190d9d81a0d353af --- /dev/null +++ b/Golden_Repo/p/PETSc/petsc4py-3.18.5-gspmkl-2022a-Python-3.10.4.eb @@ -0,0 +1,29 @@ +easyblock = 'PythonPackage' + +name = 'petsc4py' +version = '3.18.5' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://bitbucket.org/petsc/petsc4py' +description = "petsc4py are Python bindings for PETSc, the Portable, Extensible Toolchain for Scientific Computation." + +toolchain = {'name': 'gpsmkl', 'version': '2022a'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['625cbb99d7d3000ad05afe60585c6aa24ca650894b09a1989127febb64b65470'] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-Stack', '2022a', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('PETSc', '3.18.5'), +] + +download_dep_fail = True + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +moduleclass = 'tools' diff --git a/Golden_Repo/p/PLUMED/PLUMED-2.8.1-intel-para-2022a.eb b/Golden_Repo/p/PLUMED/PLUMED-2.8.1-intel-para-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..f7c8f32884b7cf457635cabe83c6f0b0eec00cfa --- /dev/null +++ b/Golden_Repo/p/PLUMED/PLUMED-2.8.1-intel-para-2022a.eb @@ -0,0 +1,43 @@ +# by Ward Poelmans <wpoely86@gmail.com> + +easyblock = 'ConfigureMake' + +name = 'PLUMED' +version = '2.8.1' + +homepage = 'http://www.plumed.org' +description = """PLUMED is an open source library for free energy calculations in molecular systems which + works together with some of the most popular molecular dynamics engines. Free energy calculations can be + performed as a function of many order parameters with a particular focus on biological problems, using + state of the art methods such as metadynamics, umbrella sampling and Jarzynski-equation based steered MD. + The software, written in C++, can be easily interfaced with both fortran and C/C++ codes. +""" + +toolchain = {'name': 'intel-para', 'version': '2022a'} +toolchainopts = {'usempi': 'True'} + +source_urls = ['https://github.com/plumed/plumed2/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['f56bc9266c8a47241385c595717c2734a9b67148a7f4122b808bc0733710173e'] + +dependencies = [ + ('zlib', '1.2.12'), + ('GSL', '2.7'), + ('libmatheval', '1.1.11'), +] + +preconfigopts = 'env FC=$MPIF90 LIBS="$LIBLAPACK $LIBS" ' +configopts = ' --exec-prefix=%(installdir)s --enable-gsl --enable-modules=all' +prebuildopts = 'source sourceme.sh && ' + +sanity_check_paths = { + 'files': ['bin/plumed', 'lib/libplumedKernel.%s' % SHLIB_EXT, 'lib/libplumed.%s' % SHLIB_EXT], + 'dirs': ['lib/plumed'] +} + +modextrapaths = { + 'PLUMED_KERNEL': 'lib/libplumedKernel.%s' % SHLIB_EXT, + 'PLUMED_ROOT': 'lib/plumed', +} + +moduleclass = 'chem' 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/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..2ed375ca497a918efd06c86045903d96f9d1834f --- /dev/null +++ b/Golden_Repo/p/ParaView/ParaView-5.11.0-foss-2022a-EGL.eb @@ -0,0 +1,352 @@ +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'), # for CDI plugin + ('mpi4py', '3.1.4'), + ('double-conversion', '3.2.0'), + ('Eigen', '3.4.0'), + ('Qt5', '5.15.5'), + ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('matplotlib', '3.5.2', '', ('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..fe2372cac92477a690e7dcd1f47137fb52545e63 --- /dev/null +++ b/Golden_Repo/p/ParaView/ParaView-5.11.0-foss-2022a.eb @@ -0,0 +1,351 @@ +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'), # for CDI plugin + ('mpi4py', '3.1.4'), + ('double-conversion', '3.2.0'), + ('Eigen', '3.4.0'), + ('Qt5', '5.15.5'), + ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('matplotlib', '3.5.2', '', ('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..6c56837996516b1153c1c31fcb9ffb71151c5fd4 --- /dev/null +++ b/Golden_Repo/p/ParaView/ParaView-5.11.0-gpsmkl-2022a-EGL.eb @@ -0,0 +1,352 @@ +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'), # for CDI plugin + ('mpi4py', '3.1.4'), + ('double-conversion', '3.2.0'), + ('Eigen', '3.4.0'), + ('Qt5', '5.15.5'), + ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('matplotlib', '3.5.2', '', ('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..89f2cfcb7252526b387287430c9edb39d89425c4 --- /dev/null +++ b/Golden_Repo/p/ParaView/ParaView-5.11.0-gpsmkl-2022a.eb @@ -0,0 +1,351 @@ +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'), # for CDI plugin + ('mpi4py', '3.1.4'), + ('double-conversion', '3.2.0'), + ('Eigen', '3.4.0'), + ('Qt5', '5.15.5'), + ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('matplotlib', '3.5.2', '', ('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/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/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 index cd1a2525d6964372e38a125f7fe2226c1f9a0146..e1dabd5fe957dd28672956148c8552147afbe8c2 100644 --- 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 @@ -11,7 +11,8 @@ toolchainopts = {'pic': True} dependencies = [ ('Python', '3.10.4'), - ('SciPy-Stack', '2022a'), + ('SciPy-bundle', '2022.05'), + ('IPython', '8.14.0'), ('networkx', '2.8.4'), ] diff --git a/Golden_Repo/p/PySCF/PySCF-2.1.1-GCC-11.2.0.eb b/Golden_Repo/p/PySCF/PySCF-2.1.1-GCC-11.3.0.eb similarity index 100% rename from Golden_Repo/p/PySCF/PySCF-2.1.1-GCC-11.2.0.eb rename to Golden_Repo/p/PySCF/PySCF-2.1.1-GCC-11.3.0.eb diff --git a/Golden_Repo/p/PyTorch-Geometric/PyTorch-Geometric-2.1.0-foss-2022a-PyTorch-1.12.1-CUDA-11.7.eb b/Golden_Repo/p/PyTorch-Geometric/PyTorch-Geometric-2.1.0-foss-2022a-PyTorch-1.12.1-CUDA-11.7.eb index b8e62b72cb44515f5918896c717ae2948aa54e8f..a0288203743b7ded763d805b5d3d0718a71d5521 100644 --- a/Golden_Repo/p/PyTorch-Geometric/PyTorch-Geometric-2.1.0-foss-2022a-PyTorch-1.12.1-CUDA-11.7.eb +++ b/Golden_Repo/p/PyTorch-Geometric/PyTorch-Geometric-2.1.0-foss-2022a-PyTorch-1.12.1-CUDA-11.7.eb @@ -1,5 +1,6 @@ easyblock = 'PythonBundle' + name = 'PyTorch-Geometric' version = '2.1.0' local_pytorchver = '1.12.0' @@ -14,8 +15,8 @@ dependencies = [ ('Python', '3.10.4'), ('CUDA', '11.7', '', SYSTEM), ('PyTorch', local_pytorchver, '-CUDA-%(cudaver)s'), - ('scikit-learn', '1.1.2'), - ('scikit-image', '0.19.3'), + ('scikit-learn', '1.1.2', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('scikit-image', '0.19.3', '', ('gcccoremkl', '11.3.0-2022.1.0')), ('numba', '0.56.4', '-CUDA-%(cudaver)s'), ('h5py', '3.7.0'), ('tqdm', '4.64.0'), @@ -26,6 +27,11 @@ dependencies = [ use_pip = True +# This easyblock NEED to be installed from a compute node with gpu, +# see https://github.com/easybuilders/easybuild-easyconfigs/issues/18274 +# This here is needed, but not enough: +preinstallopts = "FORCE_CUDA=1" + exts_list = [ ('googledrivedownloader', '0.4', { 'modulename': 'google_drive_downloader', diff --git a/Golden_Repo/p/PyTorch-Lightning/PyTorch-Lightning-1.8.2-foss-2022a-CUDA-11.7.eb b/Golden_Repo/p/PyTorch-Lightning/PyTorch-Lightning-1.8.2-foss-2022a-CUDA-11.7.eb index 8f4749f4dae4ff3b9d774fe9be16e8fb52fd6d78..607b71f6b8d8f31cf4dc96eb021b966d3882c612 100644 --- a/Golden_Repo/p/PyTorch-Lightning/PyTorch-Lightning-1.8.2-foss-2022a-CUDA-11.7.eb +++ b/Golden_Repo/p/PyTorch-Lightning/PyTorch-Lightning-1.8.2-foss-2022a-CUDA-11.7.eb @@ -14,7 +14,7 @@ dependencies = [ ('Python', '3.10.4'), ('PyTorch', '1.12.0', versionsuffix), ('tqdm', '4.64.0'), - ('tensorboard', '2.10.0'), + ('tensorboard', '2.11.2'), ('typing-extensions', '4.3.0'), ] diff --git a/Golden_Repo/p/Python-Neuroimaging/Python-Neuroimaging-2023-gcccoremkl-11.3.0-2022.1.0-Python-3.10.4.eb b/Golden_Repo/p/Python-Neuroimaging/Python-Neuroimaging-2023-gcccoremkl-11.3.0-2022.1.0-Python-3.10.4.eb new file mode 100644 index 0000000000000000000000000000000000000000..fba275b4840d7c384c81d29aa0aea9c8a283889f --- /dev/null +++ b/Golden_Repo/p/Python-Neuroimaging/Python-Neuroimaging-2023-gcccoremkl-11.3.0-2022.1.0-Python-3.10.4.eb @@ -0,0 +1,175 @@ +easyblock = 'Bundle' +name = 'Python-Neuroimaging' +version = '2023' +versionsuffix = '-Python-%(pyver)s' + +homepage = '' +description = """Python Neuroimaging is a collection of open source software for neuroimaging using Python.""" + +toolchain = {'name': 'gcccoremkl', 'version': '11.3.0-2022.1.0'} +toolchainopts = {'pic': True} + +# This is a bundle of Python packages +exts_defaultclass = 'PythonPackage' + +exts_default_options = { + 'source_urls': [PYPI_SOURCE], + 'use_pip': True, + 'sanity_pip_check': True, + 'download_dep_fail': True, + 'use_pip_for_deps': False, +} + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('scikit-learn', '1.1.2'), + ('scikit-build', '0.15.0'), + ('scikit-image', '0.19.3'), + ('h5py', '3.7.0', '-serial'), + ('matplotlib', '3.5.2'), + ('PyOpenCL', '2022.2.4', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('Seaborn', '0.12.1'), + ('sympy', '1.11.1'), + ('tqdm', '4.64.0'), + ('xarray', '2022.9.0'), + ('RDFlib', '6.2.0'), + ('lxml', '4.9.1'), +] + +# Needed to make sure that the sanity check of mdt works +unwanted_env_vars = ['CUDA_VISIBLE_DEVICES'] + +exts_default_options = { + 'download_dep_fail': True, + 'sanity_pip_check': True, + 'source_urls': [PYPI_SOURCE], + 'use_pip': True, +} + +exts_list = [ + ('bz2file', '0.98', { + 'source_urls': ['https://pypi.python.org/packages/source/b/bz2file'], + 'checksums': ['64c1f811e31556ba9931953c8ec7b397488726c63e09a4c67004f43bdd28da88'], + }), + ('nibabel', '4.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nibabel'], + 'checksums': ['45c49b5349351b45f6c045a91aa02b4f0d367686ff3284632ef95ac65b930786'], + 'skipsteps': ['sanitycheck'], + }), + ('dipy', '1.5.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/dipy'], + 'checksums': ['a19cf40166be09c5b7c31ab00b12fed136ae9531483a9cd7019cc3f3b95f6271'], + }), + ('nilearn', '0.9.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nilearn'], + 'checksums': ['8da8d3835d92cd7b8a6cc92455a489d7e7f5994cf64fc71bce653e362773b9e4'], + }), + ('neurdflib', '5.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/n/neurdflib'], + 'checksums': ['d34493cee15029ff5db16157429585ff863ba5542675a4d8a94a0da1bc6e3a50'], + 'modulename': 'rdflib' + }), + ('etelemetry', '0.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/e/etelemetry'], + 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'unpack_sources': False, + 'checksums': ['78febd59a22eb53d052d731f10f24139eb2854fd237348fba683dd8616fb4a67'], + 'use_pip': True, + }), + ('ci-info', '0.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/c/ci_info'], + 'checksums': ['1fd50cbd401f29adffeeb18b0489e232d16ac1a7458ac6bc316deab6ae535fb0'], + 'modulename': 'ci_info' + }), + ('prov', '2.0.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/prov'], + 'checksums': ['b6438f2195ecb9f6e8279b58971e02bc51814599b5d5383366eef91d867422ee'], + }), + ('looseversion', '1.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/l/looseversion'], + 'checksums': ['035288860e1afe67d63ea9c700dd9d095c724e2e5722a39029dd91652d4316ed'], + }), + ('pydot', '1.4.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pydot'], + 'checksums': ['248081a39bcb56784deb018977e428605c1c758f10897a339fce1dd728ff007d'], + }), + ('frozenlist', '1.3.3', { + 'source_urls': ['https://pypi.python.org/packages/source/f/frozenlist'], + 'checksums': ['58bcc55721e8a90b88332d6cd441261ebb22342e238296bb330968952fbb3a6a'], + }), + ('aiosignal', '1.3.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/aiosignal'], + 'checksums': ['54cd96e15e1649b75d6c87526a6ff0b6c1b0dd3459f43d9ca11d48c339b68cfc'], + }), + ('async-timeout', '4.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/a/async-timeout'], + 'checksums': ['2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15'], + }), + ('ratelimit', '2.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/r/ratelimit'], + 'checksums': ['af8a9b64b821529aca09ebaf6d8d279100d766f19e90b5059ac6a718ca6dee42'], + }), + ('yarl', '1.8.2', { + 'source_urls': ['https://pypi.python.org/packages/source/y/yarl'], + 'checksums': ['49d43402c6e3013ad0978602bf6bf5328535c48d192304b91b97a3c6790b1562'], + }), + ('multidict', '6.0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/m/multidict'], + 'checksums': ['3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49'], + }), + ('aiohttp', '3.8.4', { + 'source_urls': ['https://pypi.python.org/packages/source/a/aiohttp'], + 'checksums': ['bf2e1a9162c1e441bf805a1fd166e249d574ca04e03b34f97e2928769e91ab5c'], + }), + ('argcomplete', '2.0.0', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argcomplete'], + 'checksums': ['6372ad78c89d662035101418ae253668445b391755cfe94ea52f1b9d22425b20'], + }), + ('traits', '6.3.2', { + 'source_urls': ['https://pypi.python.org/packages/source/t/traits'], + 'checksums': ['4520ef4a675181f38be4a5bab1b1d5472691597fe2cfe4faf91023e89407e2c6'], + }), + ('nipype', '1.8.5', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nipype'], + 'checksums': ['e3842743fb660464dd29de73dcfc9ef66d273be10bcc64059ff21cd5ef1e9655'], + }), + ('nipy', '0.5.0', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nipy'], + 'checksums': ['a8a2c97ce854fece4aced5a6394b9fdca5846150ad6d2a36b86590924af3c848'], + }), + ('mne', '1.2.2', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mne'], + 'checksums': ['d40743d6ca7ae3919a557166fd5fc4c00a9719e40c07346baad57964e15f02bb'], + }), + ('tatsu', '5.8.3', { + 'source_tmpl': 'TatSu-%(version)s.zip', + 'checksums': ['571ecbcdf33b7828c05e5cd95a8e8ad06af111c2c83a6a245be4d8f7c43de7bb'], + }), + ('mot', '0.11.4', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mot'], + 'checksums': ['a665ddc190419409f4c46b80847728db8376703c56fe10c7ec2adb31f6a9cb04'], + # to disable the test, since it needs a working OpenCL installation, which is not always the case in the logins + 'modulename': 'os' + }), + ('mdt', '1.2.7', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mdt'], + 'checksums': ['0fac9d86f30c473c81a909b47a32ea51eb489c78cc69595407ece888c91431d3'], + # to disable the test, since it needs a working OpenCL installation, which is not always the case in the logins + 'modulename': 'os' + }), + ('pysptools', '0.15.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pysptools'], + 'checksums': ['923c4e1af97c490d7d9ad86d04fdf8918b63106023493e6a4cf54323e244b05e'], + 'modulename': 'pysptools.util' + }), +] + +modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'} + +sanity_check_paths = { + 'files': [], + 'dirs': ['bin', 'lib/python%(pyshortver)s/site-packages', 'lib64/python%(pyshortver)s/site-packages'], +} + +moduleclass = 'vis' diff --git a/Golden_Repo/p/Python/Python-3.10.4-GCCcore-11.3.0.eb b/Golden_Repo/p/Python/Python-3.10.4-GCCcore-11.3.0.eb index 8b36fe930fc70f25b115a8a8781894d484e1ec4f..7cebb4fa69f716fc41ea4c845cd18a0c8f252648 100644 --- a/Golden_Repo/p/Python/Python-3.10.4-GCCcore-11.3.0.eb +++ b/Golden_Repo/p/Python/Python-3.10.4-GCCcore-11.3.0.eb @@ -99,14 +99,9 @@ exts_list = [ 'modulename': 'arff', 'checksums': ['3220d0af6487c5aa71b47579be7ad1d94f3849ff1e224af3bf05ad49a0b5c4da'], }), - ('pycrypto', '2.6.1', { + ('pycryptodome', '3.17', { 'modulename': 'Crypto', - 'patches': ['pycrypto-2.6.1_remove-usr-include.patch'], - 'checksums': [ - 'f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c', # pycrypto-2.6.1.tar.gz - # pycrypto-2.6.1_remove-usr-include.patch - '06c3d3bb290305e1360a023ea03f9281116c230de62382e6be9474996086712e', - ], + 'checksums': ['bce2e2d8e82fcf972005652371a3e8731956a0c1fbb719cc897943b3695ad91b'], }), ('ecdsa', '0.17.0', { 'checksums': ['b9f500bb439e4153d0330610f5d26baaf18d17b8ced1bc54410d189385ea68aa'], diff --git a/Golden_Repo/p/pscom/pscom-5.7.0-1-GCCcore-11.3.0.eb b/Golden_Repo/p/pscom/pscom-5.7.0-1-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..fc7d0cf03d78ed9a486125071d7bfe3c7902f2c7 --- /dev/null +++ b/Golden_Repo/p/pscom/pscom-5.7.0-1-GCCcore-11.3.0.eb @@ -0,0 +1,51 @@ +easyblock = 'CMakeMake' + +name = 'pscom' +# Create drop-in replacement version that ensures overriding behaviour +version = '5.7.0-1' +local_realversion = version +homepage = 'http://www.par-tec.com' +description = f"""ParaStation is a robust and efficient cluster middleware, consisting of a high-performance +communication layer (MPI) and a sophisticated management layer. + +The real version of this package is {local_realversion} +""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['https://github.com/ParaStation/%(name)s/archive/'] +sources = ['%s.tar.gz' % local_realversion] +checksums = ['5ee1c2cc1438a9c3cfa2e1521ff98860b98a753f574a3acc2eb6186656040fc3'] + +builddependencies = [ + ('binutils', '2.38'), + ('popt', '1.18'), + ('CUDA', '11.7', '', SYSTEM), + ('CMake', '3.23.1'), +] + +dependencies = [ + ('UCX', 'default'), +] + +build_type = 'RelWithDebInfo' + +preconfigopts = 'export UCP_LDFLAGS="-L$EBROOTUCX/lib" && ' +preconfigopts += 'export CUDA_LDFLAGS="-L$EBROOTNVIDIA/lib64" &&' + +configopts = '-DCUDA_ENABLED=ON' + +sanity_check_paths = { + 'files': [ + 'include/%(name)s.h', + ('lib/libpscom.so', 'lib64/libpscom.so'), + ('lib/libpscom4ucp.so', 'lib64/libpscom4ucp.so'), + ], + 'dirs': [], +} + +modextravars = { + 'PSCOMVERSION': '%s' % local_realversion, +} + +moduleclass = 'tools' diff --git a/Golden_Repo/p/psmpi/psmpi-5.7.0-1-GCC-11.3.0.eb b/Golden_Repo/p/psmpi/psmpi-5.7.0-1-GCC-11.3.0.eb index 0673d21762810ae538f1bcd39c7ebb7a8dbad1d2..debebd99c73a80f1987686ef239be3ae2e8a7634 100644 --- a/Golden_Repo/p/psmpi/psmpi-5.7.0-1-GCC-11.3.0.eb +++ b/Golden_Repo/p/psmpi/psmpi-5.7.0-1-GCC-11.3.0.eb @@ -2,7 +2,7 @@ name = 'psmpi' version = '5.7.0-1' homepage = 'https://github.com/ParaStation/psmpi2' -description = """ParaStation MPI is an open source high-performance MPI 3.0 implementation, +description = """ParaStation MPI is an open source high-performance MPI 3.1 implementation, based on MPICH v3. It provides extra low level communication libraries and integration with various batch systems for tighter process control. """ @@ -17,6 +17,8 @@ checksums = [ '978eb3223c978477c40987f745c07fda26ccbad2f468616faf92f0d71b81a156', # psmpi_shebang.patch # psmpi-5.5.0-1_ime.patch 'c2418b9511560dca197242508de9c7b6b117122912b6d3a4aa18398834f465ff', + # psmpi-5.7.0-1_singleton-fix.patch + '5ab46de53f6025367f444e77cd3374fe36a0728cde38c72db55603ebc08b50a2', ] dependencies = [ @@ -29,7 +31,8 @@ dependencies = [ patches = [ 'psmpi_shebang.patch', - 'psmpi-5.5.0-1_ime.patch' + 'psmpi-5.5.0-1_ime.patch', + 'psmpi-5.7.0-1_singleton-fix.patch' ] mpich_opts = '--enable-static --with-file-system=ime+ufs+gpfs --enable-romio' diff --git a/Golden_Repo/p/psmpi/psmpi-5.7.0-1-NVHPC-22.11.eb b/Golden_Repo/p/psmpi/psmpi-5.7.0-1-NVHPC-23.1.eb similarity index 83% rename from Golden_Repo/p/psmpi/psmpi-5.7.0-1-NVHPC-22.11.eb rename to Golden_Repo/p/psmpi/psmpi-5.7.0-1-NVHPC-23.1.eb index 70c5404b67724cae1ef03be50ff593f2cbcec683..8dd9bcd9c76dfdf463dba6a6194410d91f2fde72 100644 --- a/Golden_Repo/p/psmpi/psmpi-5.7.0-1-NVHPC-22.11.eb +++ b/Golden_Repo/p/psmpi/psmpi-5.7.0-1-NVHPC-23.1.eb @@ -2,12 +2,12 @@ name = 'psmpi' version = '5.7.0-1' homepage = 'https://github.com/ParaStation/psmpi2' -description = """ParaStation MPI is an open source high-performance MPI 3.0 implementation, +description = """ParaStation MPI is an open source high-performance MPI 3.1 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'} +toolchain = {'name': 'NVHPC', 'version': '23.1'} sources = [SOURCE_TAR_GZ] source_urls = ['https://github.com/ParaStation/psmpi/archive/'] @@ -17,6 +17,8 @@ checksums = [ '978eb3223c978477c40987f745c07fda26ccbad2f468616faf92f0d71b81a156', # psmpi_shebang.patch # psmpi-5.5.0-1_ime.patch 'c2418b9511560dca197242508de9c7b6b117122912b6d3a4aa18398834f465ff', + # psmpi-5.7.0-1_singleton-fix.patch + '5ab46de53f6025367f444e77cd3374fe36a0728cde38c72db55603ebc08b50a2', ] dependencies = [ @@ -29,7 +31,8 @@ dependencies = [ patches = [ 'psmpi_shebang.patch', - 'psmpi-5.5.0-1_ime.patch' + 'psmpi-5.5.0-1_ime.patch', + 'psmpi-5.7.0-1_singleton-fix.patch' ] mpich_opts = '--enable-static --with-file-system=ime+ufs+gpfs --enable-romio' diff --git a/Golden_Repo/p/psmpi/psmpi-5.7.0-1-intel-compilers-2022.1.0.eb b/Golden_Repo/p/psmpi/psmpi-5.7.0-1-intel-compilers-2022.1.0.eb index ba1eecdd475c808b2cdbe9d9653e597f2152c405..e9a133052d10aecda529944c5fe60f4f643da833 100644 --- a/Golden_Repo/p/psmpi/psmpi-5.7.0-1-intel-compilers-2022.1.0.eb +++ b/Golden_Repo/p/psmpi/psmpi-5.7.0-1-intel-compilers-2022.1.0.eb @@ -2,7 +2,7 @@ name = 'psmpi' version = '5.7.0-1' homepage = 'https://github.com/ParaStation/psmpi2' -description = """ParaStation MPI is an open source high-performance MPI 3.0 implementation, +description = """ParaStation MPI is an open source high-performance MPI 3.1 implementation, based on MPICH v3. It provides extra low level communication libraries and integration with various batch systems for tighter process control. """ @@ -17,6 +17,8 @@ checksums = [ '978eb3223c978477c40987f745c07fda26ccbad2f468616faf92f0d71b81a156', # psmpi_shebang.patch # psmpi-5.5.0-1_ime.patch 'c2418b9511560dca197242508de9c7b6b117122912b6d3a4aa18398834f465ff', + # psmpi-5.7.0-1_singleton-fix.patch + '5ab46de53f6025367f444e77cd3374fe36a0728cde38c72db55603ebc08b50a2', ] dependencies = [ @@ -29,7 +31,8 @@ dependencies = [ patches = [ 'psmpi_shebang.patch', - 'psmpi-5.5.0-1_ime.patch' + 'psmpi-5.5.0-1_ime.patch', + 'psmpi-5.7.0-1_singleton-fix.patch' ] mpich_opts = '--enable-static --with-file-system=ime+ufs+gpfs --enable-romio' diff --git a/Golden_Repo/p/psmpi/psmpi-5.7.0-1_singleton-fix.patch b/Golden_Repo/p/psmpi/psmpi-5.7.0-1_singleton-fix.patch new file mode 100644 index 0000000000000000000000000000000000000000..4643f36c3c5d1c98102c0e4b3bb37b67b8da4c02 --- /dev/null +++ b/Golden_Repo/p/psmpi/psmpi-5.7.0-1_singleton-fix.patch @@ -0,0 +1,40 @@ +From 56ce43874fe1f97b2cc7cbd1a1a0b487432404f4 Mon Sep 17 00:00:00 2001 +From: Carsten Clauss <clauss@par-tec.com> +Date: Thu, 22 Sep 2022 13:08:18 +0200 +Subject: [PATCH] init: Fix version check for the singleton case. + +In the singleton case, there is no need to check the version -- and +moreover, there is no KVS available (and hence put/get functions for +it must not be called) since no process manager connected. +--- + mpich2/src/mpid/psp/src/mpid_init.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/mpich2/src/mpid/psp/src/mpid_init.c b/mpich2/src/mpid/psp/src/mpid_init.c +index 5654d5cb9..f31d301b4 100644 +--- a/mpich2/src/mpid/psp/src/mpid_init.c ++++ b/mpich2/src/mpid/psp/src/mpid_init.c +@@ -245,6 +245,11 @@ static + int i_version_set(int pg_rank, const char *ver) + { + int mpi_errno = MPI_SUCCESS; ++ ++ /* There is no need to check for version in the singleton case and we moreover must ++ not use MPIR_pmi_kvs_put() in this case either since there is no process manager. */ ++ if (MPIDI_Process.singleton_but_no_pm) goto fn_exit; ++ + if (pg_rank == 0) { + mpi_errno = MPIR_pmi_kvs_put("i_version", ver); + MPIR_ERR_CHECK(mpi_errno); +@@ -262,6 +267,11 @@ static + int i_version_check(int pg_rank, const char *ver) + { + int mpi_errno = MPI_SUCCESS; ++ ++ /* There is no need to check for version in the singleton case and we moreover must ++ not use MPIR_pmi_kvs_get() in this case either since there is no process manager. */ ++ if (MPIDI_Process.singleton_but_no_pm) goto fn_exit; ++ + if (pg_rank != 0) { + char val[100] = "unknown"; + mpi_errno = MPIR_pmi_kvs_get(0, "i_version", val, sizeof(val)); diff --git a/Golden_Repo/p/psmpi/psmpi-5.7.1-1-GCC-11.3.0.eb b/Golden_Repo/p/psmpi/psmpi-5.7.1-1-GCC-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..482733003700cafd44d9d5cdb76e7e378c7ae4aa --- /dev/null +++ b/Golden_Repo/p/psmpi/psmpi-5.7.1-1-GCC-11.3.0.eb @@ -0,0 +1,47 @@ +name = 'psmpi' +version = '5.7.1-1' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 3.1 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://github.com/ParaStation/psmpi/archive/'] +checksums = [ + # psmpi-5.7.1-1.tar.gz + 'fe6fee71ff7586295347c4d06e1be872adcbe136119152c5a0983bad643e967b', + '978eb3223c978477c40987f745c07fda26ccbad2f468616faf92f0d71b81a156', # psmpi_shebang.patch + # psmpi-5.5.0-1_ime.patch + 'c2418b9511560dca197242508de9c7b6b117122912b6d3a4aa18398834f465ff', + # psmpi-5.7.0-1_singleton-fix.patch + '5ab46de53f6025367f444e77cd3374fe36a0728cde38c72db55603ebc08b50a2', +] + +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_shebang.patch', + 'psmpi-5.5.0-1_ime.patch', + 'psmpi-5.7.0-1_singleton-fix.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.7.1-1-NVHPC-23.1.eb b/Golden_Repo/p/psmpi/psmpi-5.7.1-1-NVHPC-23.1.eb new file mode 100644 index 0000000000000000000000000000000000000000..2c07243d7475dd30839c7c0b0aff4286f162b72a --- /dev/null +++ b/Golden_Repo/p/psmpi/psmpi-5.7.1-1-NVHPC-23.1.eb @@ -0,0 +1,47 @@ +name = 'psmpi' +version = '5.7.1-1' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 3.1 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': '23.1'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['https://github.com/ParaStation/psmpi/archive/'] +checksums = [ + # psmpi-5.7.1-1.tar.gz + 'fe6fee71ff7586295347c4d06e1be872adcbe136119152c5a0983bad643e967b', + '978eb3223c978477c40987f745c07fda26ccbad2f468616faf92f0d71b81a156', # psmpi_shebang.patch + # psmpi-5.5.0-1_ime.patch + 'c2418b9511560dca197242508de9c7b6b117122912b6d3a4aa18398834f465ff', + # psmpi-5.7.0-1_singleton-fix.patch + '5ab46de53f6025367f444e77cd3374fe36a0728cde38c72db55603ebc08b50a2', +] + +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_shebang.patch', + 'psmpi-5.5.0-1_ime.patch', + 'psmpi-5.7.0-1_singleton-fix.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.7.1-1-intel-compilers-2022.1.0.eb b/Golden_Repo/p/psmpi/psmpi-5.7.1-1-intel-compilers-2022.1.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..11f887ac6c593826d7d9968e9b0a8762a8cc01da --- /dev/null +++ b/Golden_Repo/p/psmpi/psmpi-5.7.1-1-intel-compilers-2022.1.0.eb @@ -0,0 +1,47 @@ +name = 'psmpi' +version = '5.7.1-1' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 3.1 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://github.com/ParaStation/psmpi/archive/'] +checksums = [ + # psmpi-5.7.1-1.tar.gz + 'fe6fee71ff7586295347c4d06e1be872adcbe136119152c5a0983bad643e967b', + '978eb3223c978477c40987f745c07fda26ccbad2f468616faf92f0d71b81a156', # psmpi_shebang.patch + # psmpi-5.5.0-1_ime.patch + 'c2418b9511560dca197242508de9c7b6b117122912b6d3a4aa18398834f465ff', + # psmpi-5.7.0-1_singleton-fix.patch + '5ab46de53f6025367f444e77cd3374fe36a0728cde38c72db55603ebc08b50a2', +] + +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_shebang.patch', + 'psmpi-5.5.0-1_ime.patch', + 'psmpi-5.7.0-1_singleton-fix.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-GCC-11.3.0-mt.eb b/Golden_Repo/p/psmpi/psmpi-5.8.0-1-GCC-11.3.0-mt.eb new file mode 100644 index 0000000000000000000000000000000000000000..3eb47585933c92d29a62a580a8e16d06881b5c84 --- /dev/null +++ b/Golden_Repo/p/psmpi/psmpi-5.8.0-1-GCC-11.3.0-mt.eb @@ -0,0 +1,43 @@ +name = 'psmpi' +version = '5.8.0-1' +versionsuffix = '-mt' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 4.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 = True + +cuda = True + +moduleclass = 'mpi' 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..78e233679f6cf47e24787cffdd953092cb75a567 --- /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 4.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-23.1-mt.eb b/Golden_Repo/p/psmpi/psmpi-5.8.0-1-NVHPC-23.1-mt.eb new file mode 100644 index 0000000000000000000000000000000000000000..8f1563b731f4681d955cb018d686ba1b7909a0bd --- /dev/null +++ b/Golden_Repo/p/psmpi/psmpi-5.8.0-1-NVHPC-23.1-mt.eb @@ -0,0 +1,43 @@ +name = 'psmpi' +version = '5.8.0-1' +versionsuffix = '-mt' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 4.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': '23.1'} + +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 = True + +cuda = True + +moduleclass = 'mpi' diff --git a/Golden_Repo/p/psmpi/psmpi-5.8.0-1-NVHPC-23.1.eb b/Golden_Repo/p/psmpi/psmpi-5.8.0-1-NVHPC-23.1.eb new file mode 100644 index 0000000000000000000000000000000000000000..acfba0132b18d8c4c0774707d059dd2aee1830bc --- /dev/null +++ b/Golden_Repo/p/psmpi/psmpi-5.8.0-1-NVHPC-23.1.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 4.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': '23.1'} + +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-mt.eb b/Golden_Repo/p/psmpi/psmpi-5.8.0-1-intel-compilers-2022.1.0-mt.eb new file mode 100644 index 0000000000000000000000000000000000000000..171314f94752c4437095357cf5dff4ada73f9a31 --- /dev/null +++ b/Golden_Repo/p/psmpi/psmpi-5.8.0-1-intel-compilers-2022.1.0-mt.eb @@ -0,0 +1,43 @@ +name = 'psmpi' +version = '5.8.0-1' +versionsuffix = '-mt' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 4.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 = True + +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..3ab1a0ef79fa549da4697d19d4c41a40bafafe4f --- /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 4.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/p/psmpi/psmpi-5.8.1-1-GCC-11.3.0-mt.eb b/Golden_Repo/p/psmpi/psmpi-5.8.1-1-GCC-11.3.0-mt.eb new file mode 100644 index 0000000000000000000000000000000000000000..70f804c55c1bd5fafd5ea06a4d747130a6db624b --- /dev/null +++ b/Golden_Repo/p/psmpi/psmpi-5.8.1-1-GCC-11.3.0-mt.eb @@ -0,0 +1,43 @@ +name = 'psmpi' +version = '5.8.1-1' +versionsuffix = '-mt' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 4.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.1-1.tar.gz + '54dee42a2eb6ac26d43f5e0371ddc1e75225512365749b3d03856543b6a7366d', + # 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 = True + +cuda = True + +moduleclass = 'mpi' diff --git a/Golden_Repo/p/psmpi/psmpi-5.8.1-1-GCC-11.3.0.eb b/Golden_Repo/p/psmpi/psmpi-5.8.1-1-GCC-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..6936bf35ac6d4cc1a915bfe729fdb7295482997f --- /dev/null +++ b/Golden_Repo/p/psmpi/psmpi-5.8.1-1-GCC-11.3.0.eb @@ -0,0 +1,42 @@ +name = 'psmpi' +version = '5.8.1-1' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 4.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.1-1.tar.gz + '54dee42a2eb6ac26d43f5e0371ddc1e75225512365749b3d03856543b6a7366d', + # 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.1-1-NVHPC-23.1-mt.eb b/Golden_Repo/p/psmpi/psmpi-5.8.1-1-NVHPC-23.1-mt.eb new file mode 100644 index 0000000000000000000000000000000000000000..d1fa4481085579216ed08125fbbeb0345dcca4dd --- /dev/null +++ b/Golden_Repo/p/psmpi/psmpi-5.8.1-1-NVHPC-23.1-mt.eb @@ -0,0 +1,43 @@ +name = 'psmpi' +version = '5.8.1-1' +versionsuffix = '-mt' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 4.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': '23.1'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['https://gitlab.jsc.fz-juelich.de/ParTec/psmpi/uploads/762714c8eec01fe59239a52798a70e1c/'] +checksums = [ + # psmpi-5.8.1-1.tar.gz + '54dee42a2eb6ac26d43f5e0371ddc1e75225512365749b3d03856543b6a7366d', + # 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 = True + +cuda = True + +moduleclass = 'mpi' diff --git a/Golden_Repo/p/psmpi/psmpi-5.8.1-1-NVHPC-23.1.eb b/Golden_Repo/p/psmpi/psmpi-5.8.1-1-NVHPC-23.1.eb new file mode 100644 index 0000000000000000000000000000000000000000..29e5a42433f303f72dfa7844ea86f1e2aa3777dc --- /dev/null +++ b/Golden_Repo/p/psmpi/psmpi-5.8.1-1-NVHPC-23.1.eb @@ -0,0 +1,42 @@ +name = 'psmpi' +version = '5.8.1-1' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 4.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': '23.1'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['https://gitlab.jsc.fz-juelich.de/ParTec/psmpi/uploads/762714c8eec01fe59239a52798a70e1c/'] +checksums = [ + # psmpi-5.8.1-1.tar.gz + '54dee42a2eb6ac26d43f5e0371ddc1e75225512365749b3d03856543b6a7366d', + # 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.1-1-intel-compilers-2022.1.0-mt.eb b/Golden_Repo/p/psmpi/psmpi-5.8.1-1-intel-compilers-2022.1.0-mt.eb new file mode 100644 index 0000000000000000000000000000000000000000..41daa4e50081c1b104fb6a50794a4be0e5f5381e --- /dev/null +++ b/Golden_Repo/p/psmpi/psmpi-5.8.1-1-intel-compilers-2022.1.0-mt.eb @@ -0,0 +1,43 @@ +name = 'psmpi' +version = '5.8.1-1' +versionsuffix = '-mt' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 4.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.1-1.tar.gz + '54dee42a2eb6ac26d43f5e0371ddc1e75225512365749b3d03856543b6a7366d', + # 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 = True + +cuda = True + +moduleclass = 'mpi' diff --git a/Golden_Repo/p/psmpi/psmpi-5.8.1-1-intel-compilers-2022.1.0.eb b/Golden_Repo/p/psmpi/psmpi-5.8.1-1-intel-compilers-2022.1.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..74b179c63e94a37e6fbd8a6e3b66e0e4bea15c21 --- /dev/null +++ b/Golden_Repo/p/psmpi/psmpi-5.8.1-1-intel-compilers-2022.1.0.eb @@ -0,0 +1,42 @@ +name = 'psmpi' +version = '5.8.1-1' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 4.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.1-1.tar.gz + '54dee42a2eb6ac26d43f5e0371ddc1e75225512365749b3d03856543b6a7366d', + # 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/pulser/pulser-0.12.0-GCCcore-11.3.0.eb b/Golden_Repo/p/pulser/pulser-0.12.0-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..6af36eb89f6010e9fd68a6acc6916acbd62ab8bd --- /dev/null +++ b/Golden_Repo/p/pulser/pulser-0.12.0-GCCcore-11.3.0.eb @@ -0,0 +1,74 @@ +easyblock = 'PythonBundle' + +name = 'pulser' +version = '0.12.0' + +homepage = 'https://github.com/pasqal-io/Pulser' +description = """Pulser is a framework for composing, simulating and executing pulse + sequences for neutral-atom quantum devices.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +dependencies = [ + ('Python', '3.10.4'), + ('Pillow-SIMD', '9.2.0'), + ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), # numpy + ('matplotlib', '3.5.2', '', ('gcccoremkl', '11.3.0-2022.1.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 = [ + ('contourpy', '1.0.7', { + 'checksums': ['d8165a088d31798b59e91117d1f5fc3df8168d8b48c4acc10fc0df0d0bdbcc5e'], + }), + ('types-cryptography', '3.3.23.2', { + 'checksums': ['09cc53f273dd4d8c29fa7ad11fefd9b734126d467960162397bc5e3e604dea75'], + 'modulename': 'cryptography', + }), + ('requests-mock', '1.9.3', { + 'checksums': ['8d72abe54546c1fc9696fa1516672f1031d72a55a1d66c85184f972a24ba0eba'], + }), + ('qutip', '4.7.1', { + 'checksums': ['9a87178e68b145c2145b526caa943ccc8400a111325ced45bd17f9b893663af2'], + }), + ('PyJWT', '2.6.0', { + 'modulename': 'jwt', + 'checksums': ['69285c7e31fc44f68a1feb309e948e0df53259d579295e6cfe2b1792329f05fd'], + }), + ('auth0_python', '3.24.1', { + 'modulename': 'auth0', + 'sources': ['%(name)s-%(version)s-py2.py3-none-any.whl'], + 'checksums': ['87dbf603c89fcebfd35f5ba29bc8a820af72a7d5a772f53752ae04d30f191712'], + }), + ('pasqal_cloud', '0.2.5', { + 'sources': ['%(name)s-%(version)s-py3-none-any.whl'], + 'checksums': ['bac961acb67443c8e6c24321e68129188419e8980a10c0f1497a47525c0b0fde'], + }), + ('pulser_pasqal', version, { + 'sources': ['%(name)s-%(version)s-py3-none-any.whl'], + 'checksums': ['4949f3ceef9a63bd05592733595faa437b8ef89a206e224414471e99f739561b'], + }), + ('pulser_core', version, { + 'modulename': 'pulser', + 'sources': ['%(name)s-%(version)s-py3-none-any.whl'], + 'checksums': ['5c9715187edfdd8a29172c9efa69d6e89e0994001a9d783159f315422311a192'], + }), + ('pulser_simulation', version, { + 'sources': ['%(name)s-%(version)s-py3-none-any.whl'], + 'checksums': ['1f56f4e345b8a37f8014637ed789b959cbb4aba41ab735effc31012e02462583'], + }), + (name, version, { + 'sources': ['%(name)s-%(version)s-py3-none-any.whl'], + 'checksums': ['dfd9870880ccd915b9a6ae4abaac17ecef757dc4b090a316b1068f94ef3d45fc'], + }), +] + + +moduleclass = 'quantum' 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..8fb211f6d8647cb381f664b98377e0c9caff0716 --- /dev/null +++ b/Golden_Repo/q/Qiskit/Qiskit-0.41.0-gpsmkl-2022a.eb @@ -0,0 +1,159 @@ +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-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('lxml', '4.9.1'), + ('sympy', '1.11.1', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('dill', '0.3.6'), + ('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', { + 'modulename': False, + 'checksums': ['d58c5f284d6a9bf8379dab423259fe8f85b70d5fa5d2916d5791a84594b122b1'], + }), + ('requests_ntlm', '1.1.0', { + 'checksums': ['9189c92e8c61ae91402a64b972c4802b2457ce6a799d658256ebf084d5c7eb71'], + }), + ('fastdtw', '0.3.4', { + 'checksums': ['2350fa6ec36bcad186eaf81f46eff35181baf04e324f522de8aeb43d0243f64f'], + }), + ('inflection', '0.5.1', { + 'checksums': ['1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417'], + }), + ('soupsieve', '2.3.1', { + 'checksums': ['b8d49b1cd4f037c7082a9683dfa1801aa2597fb11c3a1155b7a5b94829b4f1f9'], + }), + ('beautifulsoup4', '4.11.1', { + 'modulename': 'bs4', + 'checksums': ['ad9aa55b65ef2808eb405f46cf74df7fcb7044d5cbc26487f96eb2ef2e436693'], + }), + ('pytz', '2022.7.1', { + 'checksums': ['01a0681c4b9684a28304615eba55d1ab31ae00bf68ec157ec3708a8182dbbcd0'], + }), + ('multitasking', '0.0.11', { + 'checksums': ['4d6bc3cc65f9b2dca72fb5a787850a88dae8f620c2b36ae9b55248e51bcd6026'], + }), + ('frozendict', '2.3.4', { + 'checksums': ['15b4b18346259392b0d27598f240e9390fafbff882137a9c48a1e0104fb17f78'], + }), + ('Nasdaq_Data_Link', '1.0.4', { + 'modulename': False, + 'source_tmpl': '%(name)s-%(version)s-py2.py3-none-any.whl', + 'checksums': ['214a620551da1c7521476839fb96f932234d4d78e7ba44310722709ca37b0691'], + }), + ('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/R/HWxtest-1.1.9_add-fcommon.patch b/Golden_Repo/r/R/HWxtest-1.1.9_add-fcommon.patch new file mode 100644 index 0000000000000000000000000000000000000000..a4e41eea63ece68f9bb90d4ff46e89ccece46bff --- /dev/null +++ b/Golden_Repo/r/R/HWxtest-1.1.9_add-fcommon.patch @@ -0,0 +1,21 @@ +fix "multiple definition" errors by adding -fcommon compiler options, +see https://www.gnu.org/software/gcc/gcc-10/porting_to.html + +author: Kenneth Hoste (HPC-UGent) + +diff -ruN HWxtest.orig/MD5 HWxtest/MD5 +--- HWxtest.orig/MD5 2020-11-08 21:15:03.612622261 +0100 ++++ HWxtest/MD5 2020-11-08 21:13:24.278691443 +0100 +@@ -40,6 +40,7 @@ + 4657a2011dc5363ed1cfd1d29a7040d5 *src/HWmtest.c + 08ec52ea231752fbb2bb11a529107806 *src/HWxcount.c + 23598383650c211dd18d54bded68b9bd *src/HWxtest.c ++8b6d9aec8b8cef60d1b245e0f290bfed *src/Makevars + 886a6d855fb0b59e565b919a1ff69eb0 *vignettes/HWxtest.Rmd + fcf857c5f98963f740c5c2f95e33ccc9 *vignettes/HWxtest.md + b93f768037a75ec9edd60ca89fd4c1db *vignettes/bibHW.txt +diff -ruN HWxtest.orig/src/Makevars HWxtest/src/Makevars +--- HWxtest.orig/src/Makevars 1970-01-01 01:00:00.000000000 +0100 ++++ HWxtest/src/Makevars 2020-11-08 21:15:51.340615023 +0100 +@@ -0,0 +1 @@ ++PKG_CFLAGS = -fcommon diff --git a/Golden_Repo/r/R/R-4.2.1-gcccoremkl-11.3.0-2022.1.0.eb b/Golden_Repo/r/R/R-4.2.1-gcccoremkl-11.3.0-2022.1.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..741b738e38f2e6fd25a3c8fdc232ea1519f7cd26 --- /dev/null +++ b/Golden_Repo/r/R/R-4.2.1-gcccoremkl-11.3.0-2022.1.0.eb @@ -0,0 +1,3355 @@ +name = 'R' +version = '4.2.1' + +homepage = 'https://www.r-project.org/' +description = """R is a free software environment for statistical computing + and graphics.""" + +toolchain = {'name': 'gcccoremkl', 'version': '11.3.0-2022.1.0'} + +source_urls = ['https://cloud.r-project.org/src/base/R-%(version_major)s'] +sources = [SOURCE_TAR_GZ] +checksums = ['4d52db486d27848e54613d4ee977ad952ec08ce17807e1b525b10cd4436c643f'] + +builddependencies = [ + ('pkgconf', '1.8.0'), + ('Autotools', '20220317'), + ('binutils', '2.38'), + ('texlive', '20220321'), + ('XServer', '21.1.6'), +] +dependencies = [ + ('X11', '20220504'), + ('OpenGL', '2022a'), + ('cairo', '1.17.4'), + ('libreadline', '8.1.2'), + ('ncurses', '6.3'), + ('bzip2', '1.0.8'), + ('XZ', '5.2.5'), + ('zlib', '1.2.12'), + ('SQLite', '3.38.3'), + ('PCRE2', '10.40'), + ('libpng', '1.6.37'), # for plotting in R + ('libjpeg-turbo', '2.1.3'), # for plottting in R + ('LibTIFF', '4.3.0'), + ('Java', '11', '', SYSTEM), + ('Tk', '8.6.12'), # for tcltk + ('cURL', '7.83.0'), # for RCurl + ('libxml2', '2.9.13'), # for XML + ('GMP', '6.2.1'), # for igraph + ('NLopt', '2.7.1'), # for nloptr + ('FFTW', '3.3.10'), # for fftw + ('libsndfile', '1.1.0'), # for seewave + ('ICU', '71.1'), # for rJava & gdsfmt + ('HDF5', '1.12.2', '-serial'), # for hdf5r + ('UDUNITS', '2.2.28'), # for units + ('GSL', '2.7'), # for RcppGSL + ('ImageMagick', '7.1.0-37'), # for animation + ('GLPK', '5.0'), # for Rglpk + ('nodejs', '16.15.1'), # for V8 (required by rstan) + ('GDAL', '3.5.0'), # for sf + ('MPFR', '4.1.0'), # for Rmpfr + ('libgit2', '1.4.3'), + ('OpenSSL', '1.1', '', SYSTEM), +] + +# Some R extensions (mclust, quantreg, waveslim for example) require the math library (-lm) to avoid undefined symbols. +# Adding it to FLIBS makes sure it is present when needed. +preconfigopts = 'export FLIBS="$FLIBS -lm" && ' + +configopts = "--with-pic --enable-threads --enable-R-shlib" +# some recommended packages may fail in a parallel build (e.g. Matrix), and +# we're installing them anyway below +configopts += " --with-recommended-packages=no" + +# specify that at least EasyBuild v3.5.0 is required, +# since we rely on the updated easyblock for R to configure correctly w.r.t. BLAS/LAPACK +easybuild_version = '3.5.0' + +exts_default_options = { + 'source_urls': [ + 'https://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'https://cran.r-project.org/src/contrib/', # current version of packages + 'https://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], + 'source_tmpl': '%(name)s_%(version)s.tar.gz', +} + +# !! order of packages is important !! +# packages updated on 23rd June 2022 +exts_list = [ + 'base', + 'compiler', + 'datasets', + 'graphics', + 'grDevices', + 'grid', + 'methods', + 'parallel', + 'splines', + 'stats', + 'stats4', + 'tcltk', + 'tools', + 'utils', + ('abind', '1.4-5', { + 'checksums': ['3a3ace5afbcb86e56889efcebf3bf5c3bb042a282ba7cc4412d450bb246a3f2c'], + }), + ('magic', '1.6-0', { + 'checksums': ['4516d48c9618e3f395db873e886f5deb3b66b32ebe10d4c26c1420ac848acbbf'], + }), + ('Rcpp', '1.0.8.3', { + 'checksums': ['9da5b84cdaf56e972b41e669d496b1ece2e91bcd435505c68b9f2bd98375f8bf'], + }), + ('RcppProgress', '0.4.2', { + 'checksums': ['b1624b21b7aeb1dafb30f092b2a4bef4c3504efd2d6b00b2cdf55dc9df194b48'], + }), + ('lpSolve', '5.6.15', { + 'checksums': ['4627be4178abad34fc85a7d264c2eb5e27506f007e46687b0b8a4f8fbdf4f3ba'], + }), + ('linprog', '0.9-4', { + 'checksums': ['81a6aa2fdc075f12dc912794d0554f87705a8b872b99c89a90a69ee9ada864b4'], + }), + ('geometry', '0.4.6', { + 'checksums': ['910465a8c8043faca73bcc7c81c9249b9938677ee6649468003b438a6503f5d8'], + }), + ('bit', '4.0.4', { + 'checksums': ['e404841fbe4ebefe4ecd4392effe673a8c9fa05f97952c4ce6e2f6159bd2f168'], + }), + ('filehash', '2.4-3', { + 'checksums': ['f394e2c93233e8ad1c104562ea9349855dc8e303131f559cd59834f9aa3e41bd'], + }), + ('ff', '4.0.7', { + 'checksums': ['0a47333d31c7afc3f95387166e21a3e4c763cbef47d9b5927753aef4ff8d83fa'], + }), + ('bnlearn', '4.7.1', { + 'checksums': ['243930daa7f71c63fe1aa6717e5d55a116a597b83e08745cbcbe9a418d7c1509'], + }), + ('bootstrap', '2019.6', { + 'checksums': ['5252fdfeb944cf1fae35016d35f9333b1bd1fc8c6d4a14e33901160e21968694'], + }), + ('combinat', '0.0-8', { + 'checksums': ['1513cf6b6ed74865bfdd9f8ca58feae12b62f38965d1a32c6130bef810ca30c1'], + }), + ('deal', '1.2-39', { + 'checksums': ['a349db8f1c86cbd8315c068da49314ce9eb585dbb50d2e5ff09300506bd8806b'], + }), + ('fdrtool', '1.2.17', { + 'checksums': ['3452601adbead9be4820794e3af2666f710fdf9b801186df565b80b43629c5dd'], + }), + ('formatR', '1.12', { + 'checksums': ['8b52efbf43cbef25d837bb99a793a590c0958b753052c032b52304724e808c8b'], + }), + ('gtools', '3.9.2.2', { + 'checksums': ['352086375d06cc55becfe8b8d65953645249661a44881cad83c7f79d7280d843'], + }), + ('gdata', '2.18.0.1', { + 'checksums': ['5e2f3d5b9398d52a4c07a4d35f5f936450a44567c7db8d8f68b4cc6946e032d9'], + }), + ('GSA', '1.03.2', { + 'checksums': ['177d6059fc645d3d8883806d2dea1c5dfc68efdada9aadde8a96b6d57acf35b8'], + }), + ('xfun', '0.31', { + 'checksums': ['d169f3e682dab0c3f2ca381f2dba9b7014a5e2ca3d6863dbae3d1bca699ef235'], + }), + ('highr', '0.9', { + 'checksums': ['beff11390d936c90fdcc00e7ed0eb72220f3de403a51b56659e3d3e0b6d8ed4d'], + }), + ('infotheo', '1.2.0.1', { + 'checksums': ['c0fb8ec97ad3a49f231c4c993b5eee70c6a61c8c30dc4a46197867e4763a29d4'], + }), + ('lars', '1.3', { + 'checksums': ['c69e6a8da6a3344c0915dd1fd4c78fec5cdf50c62cf6297476e9bb7dc10b549d'], + }), + ('lazy', '1.2-17', { + 'checksums': ['27bf1216ac6220712fe7e86c0a288b7d7118f9088989f67e0a86b3d0f99c3370'], + }), + ('kernlab', '0.9-31', { + 'checksums': ['7359c665c1c5e6780e1ce44b143347c8eec839301c3079d7f19e29159873278a'], + }), + ('mime', '0.12', { + 'checksums': ['a9001051d6c1e556e881910b1816b42872a1ee41ab76d0040ce66a27135e3849'], + }), + ('markdown', '1.1', { + 'checksums': ['8d8cd47472a37362e615dbb8865c3780d7b7db694d59050e19312f126e5efc1b'], + }), + ('mlbench', '2.1-3', { + 'checksums': ['b1f92be633243185ab86e880a1e1ac5a4dd3c535d01ebd187a4872d0a8c6f194'], + }), + ('NLP', '0.2-1', { + 'checksums': ['05eaa453ad2757311c073fd30093c738b20a977c5089031eb454345a1d01f2b6'], + }), + ('mclust', '5.4.10', { + 'checksums': ['2a1bbbf3c4a17df08d1ba8bc4d3c6d9c7241ed5fd68b8aabe660115597b60672'], + }), + ('RANN', '2.6.1', { + 'checksums': ['b299c3dfb7be17aa41e66eff5674fddd2992fb6dd3b10bc59ffbf0c401697182'], + }), + ('rmeta', '3.0', { + 'checksums': ['b9f9d405935cffcd7a5697ff13b033f9725de45f4dc7b059fd68a7536eb76b6e'], + }), + ('MASS', '7.3-57', { + 'checksums': ['bd8b880105bc1aadb2db699086f74bd92a8611287979a24243187f9d80795a8d'], + }), + ('lattice', '0.20-45', { + 'checksums': ['22388d92bdb7d3959da84d7308d9026dd8226ef07580783729e8ad2f7d7507ad'], + }), + ('nlme', '3.1-158', { + 'checksums': ['a55bb401c2ba2706763d1f40283780699eb812b0d090b3d1903fae8aa956bf23'], + }), + ('segmented', '1.6-0', { + 'checksums': ['6baf7f0a4f5d37b945312d28fcbca47cc3c171d097c43a28cf7ffc998a4ce569'], + }), + ('som', '0.3-5.1', { + 'checksums': ['a6f4c0e5b36656b7a8ea144b057e3d7642a8b71972da387a7133f3dd65507fb9'], + }), + ('SuppDists', '1.1-9.7', { + 'checksums': ['6b5527e2635c0ff762eb7af8154704c85e66d7f79a9524089a5c98dfa94dab08'], + }), + ('stabledist', '0.7-1', { + 'checksums': ['06c5704d3a3c179fa389675c537c39a006867bc6e4f23dd7e406476ed2c88a69'], + }), + ('survivalROC', '1.0.3', { + 'checksums': ['1449e7038e048e6ad4d3f7767983c0873c9c7a7637ffa03a4cc7f0e25c31cd72'], + }), + ('pspline', '1.0-19', { + 'checksums': ['ba55bf193f1df9785a0e13b7ef727d5fd2415b318cd6a26b48a2db490c4dfe40'], + }), + ('timeDate', '3043.102', { + 'checksums': ['377cba03cddab8c6992e31d0683c1db3a73afa9834eee3e95b3b0723f02d7473'], + }), + ('longmemo', '1.1-2', { + 'checksums': ['7964e982287427dd58f98e1144e468ae0cbd572d25a4bea6ca9ae9c7522f3207'], + }), + ('ADGofTest', '0.3', { + 'checksums': ['9cd9313954f6ecd82480d373f6c5371ca84ab33e3f5c39d972d35cfcf1096846'], + }), + ('pixmap', '0.4-12', { + 'checksums': ['893ba894d4348ba05e6edf9c1b4fd201191816b444a214f7a6b2c0a79b0a2aec'], + }), + ('sp', '1.5-0', { + 'checksums': ['939a06adf78ec8de7a663d6ca5bba426780852b357773446b00cc298200ff81c'], + }), + ('pkgconfig', '2.0.3', { + 'checksums': ['330fef440ffeb842a7dcfffc8303743f1feae83e8d6131078b5a44ff11bc3850'], + }), + ('rlang', '1.0.2', { + 'checksums': ['8de87c3e6fb0b3cce2dabc6908186f8e1528cc0c16b54de965fe02d405fdd7cc'], + }), + ('ellipsis', '0.3.2', { + 'checksums': ['a90266e5eb59c7f419774d5c6d6bd5e09701a26c9218c5933c9bce6765aa1558'], + }), + ('digest', '0.6.29', { + 'checksums': ['792c1f14a4c8047745152f5e45ce7351978af8d770c29d2ea39c7acd5d619cd9'], + }), + ('glue', '1.6.2', { + 'checksums': ['9da518f12be584c90e75fe8e07f711ee3f6fc0d03d817f72c25dc0f66499fdbf'], + }), + ('cli', '3.3.0', { + 'checksums': ['c3a9ebbcb9017fb9aeda4f7df5ca981e42b169cbd7ce13e592cda2cd74250d63'], + }), + ('vctrs', '0.4.1', { + 'checksums': ['9676881e009aa1217818f326338e8b35dd9a9438918f8b1ac249f4c8afe460dd'], + }), + ('lifecycle', '1.0.1', { + 'checksums': ['1da76e1c00f1be96ca34e122ae611259430bf99d6a1b999fdef70c00c30f7ba0'], + }), + ('hms', '1.1.1', { + 'checksums': ['6b5f30db1845c70d27b5de33f31caa487cdd0787cd80a4073375e5f482269062'], + }), + ('prettyunits', '1.1.1', { + 'checksums': ['9a199aa80c6d5e50fa977bc724d6e39dae1fc597a96413053609156ee7fb75c5'], + }), + ('R6', '2.5.1', { + 'checksums': ['8d92bd29c2ed7bf15f2778618ffe4a95556193d21d8431a7f75e7e5fc102bf48'], + }), + ('crayon', '1.5.1', { + 'checksums': ['c025c73b78a8e88e8e4363c8e1a941da5089a7baea39e59ea5342ab9ebe45df9'], + }), + ('progress', '1.2.2', { + 'checksums': ['b4a4d8ed55db99394b036a29a0fb20b5dd2a91c211a1d651c52a1023cc58ff35'], + }), + ('ade4', '1.7-19', { + 'checksums': ['c85111881ff93a261ca34a5b5ef313d1c0ff9b84f0b23596bc56cfa696f165ef'], + }), + ('AlgDesign', '1.2.1', { + 'checksums': ['5989626c526bd7c3d9bdda326c962056879be03392065a0b7ddb9b8cf9309d05'], + }), + ('base64enc', '0.1-3', { + 'checksums': ['6d856d8a364bcdc499a0bf38bfd283b7c743d08f0b288174fba7dbf0a04b688d'], + }), + ('BH', '1.78.0-0', { + 'checksums': ['3b9e9d07682013e0c06a396dda176b405eab99a7273eca6c40d1b4c4110e8cb3'], + }), + ('brew', '1.0-7', { + 'checksums': ['38b859c1dca63479f6937c593da8f806f2b3279585bb6e20ecff1b898469e76e'], + }), + ('Brobdingnag', '1.2-7', { + 'checksums': ['73a734342736da5b29c2827d91f662101873503af7ad9cdf9e9e697bb32dd742'], + }), + ('corpcor', '1.6.10', { + 'checksums': ['71a04c503c93ec95ddde09abe8c7ddeb36175b7da76365a14b27066383e10e09'], + }), + ('longitudinal', '1.1.13', { + 'checksums': ['57f04a0f387c1cc30d2feb945dc3ed35d2a304d94d21d3bc2cac8c92571fdc10'], + }), + ('backports', '1.4.1', { + 'checksums': ['845c3c59fbb05e5a892c4231b955a0afdd331d82b7cc815bcff0672023242474'], + }), + ('checkmate', '2.1.0', { + 'checksums': ['b784dd5163a0350d084ef34882d9781373839dedeaa9a8b8e6187d773d0d21c6'], + }), + ('cubature', '2.0.4.4', { + 'checksums': ['087b3b2c4f25d873fa95e9d38766a17a7201d03a6f4960f1e080a8db8b67d569'], + }), + ('DEoptimR', '1.0-11', { + 'checksums': ['1874b30f4b75f9bfa891986598f1ebe1fce27fdced14f8f417d3535cac08165b'], + }), + ('fastmatch', '1.1-3', { + 'checksums': ['1defa0b08bc3f48e4c3e4ba8df4f1b9e8299932fd8c747c67d32de44f90b9861'], + }), + ('ffbase', '0.13.3', { + 'checksums': ['b3f61f80ba6851130247779786903d42a24ee5219aa24556c8470aece8a2e6b6'], + }), + ('iterators', '1.0.14', { + 'checksums': ['cef3075a0930e1408c764e4da56bbadd4f7d14315809df8f38dd51f80ccc677b'], + }), + ('maps', '3.4.0', { + 'checksums': ['7918ccb2393ca19589d4c4e77d9ebe863dc6317ebfc1ff41869dbfaf439f5747'], + }), + ('nnls', '1.4', { + 'checksums': ['0e5d77abae12bc50639d34354f96a8e079408c9d7138a360743b73bd7bce6c1f'], + }), + ('sendmailR', '1.2-1.1', { + 'checksums': ['20d7d54f247dd1b444d2d74170646977cc4bd52f5a4152c72a9c3665b9a1fdb5'], + }), + ('dotCall64', '1.0-1', { + 'checksums': ['f10b28fcffb9453b1d8888a72c8fd2112038b5ac33e02a481492c7bd249aa5c6'], + }), + ('spam', '2.8-0', { + 'checksums': ['d98177435b028d1c706d0197ea8132bfaffae6052c3ce6064a7f64178512d6aa'], + }), + ('subplex', '1.8', { + 'checksums': ['3bc31d8990380c9f790c9c7d84cb2e39f4945eff934eddfa1196d597465be5a5'], + }), + ('stringi', '1.7.6', { + 'checksums': ['0ea3d5afec5701977ff53de9afbaceb53b00aa34f5fb641cadc1eeb7759119ec'], + }), + ('magrittr', '2.0.3', { + 'checksums': ['a2bff83f792a1acb801bfe6330bb62724c74d5308832f2cb6a6178336ace55d2'], + }), + ('stringr', '1.4.0', { + 'checksums': ['87604d2d3a9ad8fd68444ce0865b59e2ffbdb548a38d6634796bbd83eeb931dd'], + }), + ('evaluate', '0.15', { + 'checksums': ['885aee530a8b6aa7fd3acaa1ecd94ab58b71038c879ca37405f948e105907c5d'], + }), + ('logspline', '2.1.17', { + 'checksums': ['03b72b860896f8801014b7b3b907389cc3cbe2e13bc1049241606df685a08815'], + }), + ('ncbit', '2013.03.29', { + 'checksums': ['4480271f14953615c8ddc2e0666866bb1d0964398ba0fab6cc29046436820738'], + }), + ('permute', '0.9-7', { + 'checksums': ['eff88ffb579aaeb994e9f8609b776b2d9d9d56bc2879ddf180e3a2ad19f48dc0'], + }), + ('plotrix', '3.8-2', { + 'checksums': ['bb72953102889cea41cd6521874e35d2458ebd10aab97ba6f262e102cac0bc1f'], + }), + ('randomForest', '4.7-1.1', { + 'checksums': ['f59ea87534480edbcd6baf53d7ec57e8c69f4532c2d2528eacfd48924efa2cd6'], + }), + ('scatterplot3d', '0.3-41', { + 'checksums': ['4c8326b70a3b2d37126ca806771d71e5e9fe1201cfbe5b0d5a0a83c3d2c75d94'], + }), + ('SparseM', '1.81', { + 'checksums': ['bd838f381ace680fa38508ff70b3d83cb9ffa28ac1ab568509249bca53c34b33'], + }), + ('tripack', '1.3-9.1', { + 'checksums': ['7f82f8d63741c468767acc6fb35281bd9903f6c3c52e8fada60a6ae317511fbe'], + }), + ('irace', '3.4.1', { + 'checksums': ['7eea92ba42e6ba320fa8bdca3c53091ae42f26a0f097244f65e7e117f6d514b6'], + }), + ('rJava', '1.0-6', { + 'checksums': ['e290d0493317a5d6c452793e92baa914e37ef03faef19b2e436329b4ec8658c6'], + }), + ('RColorBrewer', '1.1-3', { + 'checksums': ['4f42f5423c45688b39f492c7892d93f37b4541831c8ffb140364d2bd89031ac0'], + }), + ('png', '0.1-7', { + 'checksums': ['e269ff968f04384fc9421d17cfc7c10cf7756b11c2d6d126e9776f5aca65553c'], + }), + ('jpeg', '0.1-9', { + 'checksums': ['01a175442ec209b838a56a66a3908193aca6f040d537da7838d9368e46913072'], + }), + ('latticeExtra', '0.6-29', { + 'checksums': ['6cadc31d56f73d926e2e8d72e43ae17ac03607a4d1a374719999a4a231e3df11'], + }), + ('Matrix', '1.4-1', { + 'checksums': ['42b24f1d1e94482b0ff0ef1292e2df29f69694bdbee47b3d6bfeec46fafb2f7e'], + }), + ('RcppArmadillo', '0.11.2.0.0', { + 'checksums': ['f9e17af85ef5c0c8d63771b6e7da0cdcdbecc7ac8bd40d5035a64952c4ce1938'], + }), + ('plyr', '1.8.7', { + 'checksums': ['7d9fdaf1157035a49c3661da3bbaa7bfcf782aafe1b98f7b5a68b0520046e87f'], + }), + ('gtable', '0.3.0', { + 'checksums': ['fd386cc4610b1cc7627dac34dba8367f7efe114b968503027fb2e1265c67d6d3'], + }), + ('reshape2', '1.4.4', { + 'checksums': ['d88dcf9e2530fa9695fc57d0c78adfc5e361305fe8919fe09410b17da5ca12d8'], + }), + ('dichromat', '2.0-0.1', { + 'checksums': ['a10578e9ad8a581bd8fe0d8a8370051f3cdcf12c7d282f3af2a18dacda566081'], + }), + ('colorspace', '2.0-3', { + 'checksums': ['e75681cc4dd6e4b70303fd96a6d4597065dc6bffcaa4ae4244b73ff19016857f'], + }), + ('munsell', '0.5.0', { + 'checksums': ['d0f3a9fb30e2b5d411fa61db56d4be5733a2621c0edf017d090bdfa5e377e199'], + }), + ('labeling', '0.4.2', { + 'checksums': ['e022d79276173e0d62bf9e37d7574db65ab439eb2ae1833e460b1cff529bd165'], + }), + ('viridisLite', '0.4.0', { + 'checksums': ['849955dc8ad9bc52bdc50ed4867fd92a510696fc8294e6971efa018437c83c6a'], + }), + ('farver', '2.1.0', { + 'checksums': ['e5c8630607049f682fb3002b99ca4f5e7c6b94f8b2a4342df594e7853b77cef4'], + }), + ('scales', '1.2.0', { + 'checksums': ['185d50240e6b3e84d36ec7fbca6aef7a85db7c8c1b0dde51d4af28d363ce02df'], + }), + ('utf8', '1.2.2', { + 'checksums': ['a71aee87d43a9bcf29249c7a5a2e9ca1d2a836e8d5ee3a264d3062f25378d8f4'], + }), + ('zeallot', '0.1.0', { + 'checksums': ['439f1213c97c8ddef9a1e1499bdf81c2940859f78b76bc86ba476cebd88ba1e9'], + }), + ('assertthat', '0.2.1', { + 'checksums': ['85cf7fcc4753a8c86da9a6f454e46c2a58ffc70c4f47cac4d3e3bcefda2a9e9f'], + }), + ('fansi', '1.0.3', { + 'checksums': ['86a7b83d8c9d28baebbde310cd0b459d0950a9c7ff1a6276ce5858f6a89bc06a'], + }), + ('pillar', '1.7.0', { + 'checksums': ['7841f89658cc8935568c0ff24dc480b4481bac896de2f6447050abc4360a13bb'], + }), + ('tibble', '3.1.7', { + 'checksums': ['e1a50891f476803526960b4c4d736a72e7d9c3d366946744a02d6347f591c872'], + }), + ('lazyeval', '0.2.2', { + 'checksums': ['d6904112a21056222cfcd5eb8175a78aa063afe648a562d9c42c6b960a8820d4'], + }), + ('withr', '2.5.0', { + 'checksums': ['37317b3ed790a08407072993a05ab255f6305f95a12a16e0e28aa6aa80fc8bc0'], + }), + ('mgcv', '1.8-40', { + 'checksums': ['dbe627266c3b339232e2d4228d5370ba88c86540319e6891d161242efba7e4a5'], + }), + ('rprojroot', '2.0.3', { + 'checksums': ['50604247470e910cecfe9b76df754bf96a0d701f81b732f7aa9c90a20d30f897'], + }), + ('desc', '1.4.1', { + 'checksums': ['8f9ebb51eccf925b2e76bc65ecf495e8f3882b8c0053023f396622f0402d6f54'], + }), + ('ps', '1.7.1', { + 'checksums': ['9c458a377d47cc972d3cd0b2a17d0b7ad3cf3b62226410803072089a57a55ef1'], + }), + ('processx', '3.6.1', { + 'checksums': ['87705769601e67799d976945c0e3e1cdd09e52a25900252e6f9b80a1cf90f2f5'], + }), + ('callr', '3.7.0', { + 'checksums': ['d67255148595c6d0ba4c4d241bc9f6b5e00cafe25fdc13e38c10acc38653360a'], + }), + ('pkgbuild', '1.3.1', { + 'checksums': ['7c6a82d1e6b19e136a7d16095743c50cd7b6340eeda594e4a8e14d74972ddb48'], + }), + ('rstudioapi', '0.13', { + 'checksums': ['aac35bbdcb4a8e8caba943bc8a2b98120e8940b80cd1020224bb1a26ff776d8b'], + }), + ('pkgload', '1.2.4', { + 'checksums': ['d6912bc824a59ccc9b2895c3cf3b08a3ff310a333888bb8e90d1a6ce754dd90f'], + }), + ('praise', '1.0.0', { + 'checksums': ['5c035e74fd05dfa59b03afe0d5f4c53fbf34144e175e90c53d09c6baedf5debd'], + }), + ('brio', '1.1.3', { + 'checksums': ['eaa89041856189bee545bf1c42c7920a0bb0f1f70bb477487c467ee3e8fedcc6'], + }), + ('jsonlite', '1.8.0', { + 'checksums': ['7b1892efebcb4cf4628f716000accd4b43bbf82b3e6ba90b9529d4fa0e55cd4c'], + }), + ('diffobj', '0.3.5', { + 'checksums': ['d860a79b1d4c9e369282d7391b539fe89228954854a65ba47181407c53e3cf60'], + }), + ('rematch2', '2.1.2', { + 'checksums': ['fe9cbfe99dd7731a0a2a310900d999f80e7486775b67f3f8f388c30737faf7bb'], + }), + ('waldo', '0.4.0', { + 'checksums': ['57ee89eec9bcbba58cf8fa29c8e097f038768c30833eaf812682826333127eaa'], + }), + ('testthat', '3.1.4', { + 'checksums': ['a47eec031b4e186a8bd331031371b2347063a283050eca2adbfaa37d7a6c9c09'], + }), + ('isoband', '0.2.5', { + 'checksums': ['46f53fa066f0966f02cb2bf050190c0d5e950dab2cdf565feb63fc092c886ba5'], + }), + ('ggplot2', '3.3.6', { + 'checksums': ['bfcb4eb92a0fcd3fab713aca4bb25e916e05914f2540271a45522ad7e43943a9'], + }), + ('pROC', '1.18.0', { + 'checksums': ['d5ef54b384176ece6d6448014ba40570a98181b58fee742f315604addb5f7ba9'], + }), + ('quadprog', '1.5-8', { + 'checksums': ['22128dd6b08d3516c44ff89276719ad4fe46b36b23fdd585274fa3a93e7a49cd'], + }), + ('BB', '2019.10-1', { + 'checksums': ['04d0b6ce6e5f070b109478a6005653dbe78613bb4e3ea4903203d851b5d3c94d'], + }), + ('data.table', '1.14.2', { + 'checksums': ['f741b951e5937440139514aedbae78dbd6862d825066848bdb006aa02c2f3d2b'], + }), + ('BBmisc', '1.12', { + 'checksums': ['900a633f69b7d9b13d58709eeae2fca2c1bc510765d778623a2af32cc870053e'], + }), + ('fail', '1.3', { + 'checksums': ['ede8aa2a9f2371aff5874cd030ac625adb35c33954835b54ab4abf7aeb34d56d'], + }), + ('rlecuyer', '0.3-5', { + 'checksums': ['4723434ff7624d4f404a6854ffa0673fc43daa46f58f064dbeeaa17da28ab626'], + }), + ('snow', '0.4-4', { + 'checksums': ['84587f46f222a96f3e2fde10ad6ec6ddbd878f4e917cd926d632f61a87db13c9'], + }), + ('tree', '1.0-42', { + 'checksums': ['5a17c30423f4a1b81ae4fdf4a1c0079724000c9fdb339306438db442e17c72e0'], + }), + ('pls', '2.8-0', { + 'checksums': ['eff3a92756ca34cdc1661fa36d2bf7fc8e9f4132d2f1ef9ed0105c83594618bf'], + }), + ('class', '7.3-20', { + 'checksums': ['e65b046bc72b312ff0c5dc7feba4fa3e9bc63387274d44911493782b85f65483'], + }), + ('proxy', '0.4-27', { + 'checksums': ['249991a4c4d70ad139e93f3a24e17f161ad1ec854951813ea192daf79478563f'], + }), + ('e1071', '1.7-11', { + 'checksums': ['48c18e10e7cabc742d37b563672e2eddb6061f2378b69e5563be79ab9948d92f'], + }), + ('nnet', '7.3-17', { + 'checksums': ['ee750bb8164aa058edf93823af987ab2c7ec64128dce2abeaae1b7d3661e9a67'], + }), + ('minqa', '1.2.4', { + 'checksums': ['cfa193a4a9c55cb08f3faf4ab09c11b70412523767f19894e4eafc6e94cccd0c'], + }), + ('RcppEigen', '0.3.3.9.2', { + 'checksums': ['2547e794d5a6fb8d9fbadf19e64afa0bcf413cc69ecf3f428995fa5a0fced493'], + }), + ('MatrixModels', '0.5-0', { + 'checksums': ['a87faf1a185219f79ea2307e6787d293e1d30bf3af9398e8cfe1e079978946ed'], + }), + ('matrixStats', '0.62.0', { + 'checksums': ['85e2016b6dd20cbfe32d38a2ef2578ae80e688d9a3590aefd1d2f4bf4bd44eca'], + }), + ('codetools', '0.2-18', { + 'checksums': ['1a9ea6b9792dbd1688078455929385acc3a5e4bef945c77bec1261fa4a084c28'], + }), + ('foreach', '1.5.2', { + 'checksums': ['56338d8753f9f68f262cf532fd8a6d0fe25a71a2ff0107f3ce378feb926bafe4'], + }), + ('ModelMetrics', '1.2.2.2', { + 'checksums': ['5e06f1926aebca5654e1329c66ef19b04058376b2277ebb16e3bf8c208d73457'], + }), + ('generics', '0.1.2', { + 'checksums': ['63eab37a9148f820ce2d67bda3dab6dedb9db6890baa5284949c39ab1b4c5898'], + }), + ('purrr', '0.3.4', { + 'checksums': ['23ebc93bc9aed9e7575e8eb9683ff4acc0270ef7d6436cc2ef4236a9734840b2'], + }), + ('tidyselect', '1.1.2', { + 'checksums': ['0389a3b15417954a30d6d692f6ebdd3d0f318cb94a5c9b05365df2f4ea1d8270'], + }), + ('dplyr', '1.0.9', { + 'checksums': ['e2e1f7312618b4e32ada9a1da79cef32eaec12acd408c973a6b069c6be4fb46b'], + }), + ('gower', '1.0.0', { + 'checksums': ['671cb7baafe05140d822e8f26f9cd3576fc3bf4c6572b7223fb54da754ea385d'], + }), + ('rpart', '4.1.16', { + 'checksums': ['27ec75258a5a3459ad999f5f36760ead974930744249605bf8465f234f31425c'], + }), + ('survival', '3.3-1', { + 'checksums': ['14878705cd0c7edcfead79011444aa84f680759293bde8634721c49f37cb4dc7'], + }), + ('KernSmooth', '2.23-20', { + 'checksums': ['20eb75051e2473933d41eedc9945b03c632847fd581e2207d452cf317fa5ec39'], + }), + ('globals', '0.15.0', { + 'checksums': ['f83689a420590b0d62b049c40a944c1c8c7202b3f1cc12102712c63104e99496'], + }), + ('listenv', '0.8.0', { + 'checksums': ['fd2aaf3ff2d8d546ce33d1cb38e68401613975117c1f9eb98a7b41facf5c485f'], + }), + ('parallelly', '1.32.0', { + 'checksums': ['909ca35e7931b08dab7c8e48747c9b55c4f92480d87a85f98331a03b5f85e179'], + }), + ('future', '1.26.1', { + 'checksums': ['a35c0bdae86265ebe86119231802b6fbf7b1d533b57cb423d8483fbe779390d5'], + }), + ('future.apply', '1.9.0', { + 'checksums': ['6166c1c5ce30b9745059c3d30c8110f7c1d51871e58aa414f195cb1f91c467f5'], + }), + ('progressr', '0.10.1', { + 'checksums': ['8f83024b2a6f52996750d45bf6698c2b438fb1062985f1df936ba3af313caed1'], + }), + ('numDeriv', '2016.8-1.1', { + 'checksums': ['d8c4d19ff9aeb31b0c628bd4a16378e51c1c9a3813b525469a31fe89af00b345'], + }), + ('SQUAREM', '2021.1', { + 'checksums': ['66e5e18ca29903e4950750bbd810f0f9df85811ee4195ce0a86d939ba8183a58'], + }), + ('lava', '1.6.10', { + 'checksums': ['7a88f8a885872e2abb3011c446e9e1c4884cd4dbe6ab4cfe9207538e5560232e'], + }), + ('prodlim', '2019.11.13', { + 'checksums': ['6809924f503a14681de84730489cdaf9240d7951c64f5b98ca37dc1ce7809b0f'], + }), + ('ipred', '0.9-13', { + 'checksums': ['6168a062d93c2d3063c064a8f242cd3716dee99822e20363a1801261319c4c98'], + }), + ('cpp11', '0.4.2', { + 'checksums': ['403ce0bf82358d237176053b0fb1e958cb6bfa4d0fb3555bf5801db6a6939b99'], + }), + ('lubridate', '1.8.0', { + 'checksums': ['87d66efdb1f3d680db381d7e40a202d35645865a0542e2f270ef008a19002ba5'], + }), + ('tidyr', '1.2.0', { + 'checksums': ['8cd01da9e97827521d01ea50b9225f2705c46b7538bbf74bec6249a04c1213a8'], + }), + ('hardhat', '1.1.0', { + 'checksums': ['0374a9f5af2e8eaf100b4dbda951a5289258d0d466e5ef10768e8ffda928b4b1'], + }), + ('recipes', '0.2.0', { + 'checksums': ['3d0073e3eb98ac089a94bf8430f3c50915ff1f495d8e967c37baa6a0f6cea0a4'], + }), + ('caret', '6.0-92', { + 'checksums': ['1d814a2a921a23ad8b9a7da6f788e6abc06f5668b3918bd440d4355bc4b81511'], + }), + ('conquer', '1.3.0', { + 'checksums': ['ac354e18c9ad6f41ed5200fad1c99fa5b124fc6fa5bba8f3434be2478f53d5fa'], + }), + ('quantreg', '5.93', { + 'checksums': ['d4a94984a500bf4c92dec21013441f001a4aa0541c4c651384e257a4b4e9e539'], + }), + ('robustbase', '0.95-0', { + 'checksums': ['5cfaea1c46df6d45086614fea5f152c8da8ebfcadf33bb8df5b82e742eef9724'], + }), + ('zoo', '1.8-10', { + 'checksums': ['c9a282d8004c22651c4fa1d657d3cad946c5ec55c4dc068569d860ee9b31ed47'], + }), + ('lmtest', '0.9-40', { + 'checksums': ['64400d4d6cc635316531042971f1783539686e9015c76f5741c07304fa14d997'], + }), + ('vcd', '1.4-10', { + 'checksums': ['7188192afa289350cc1b89790f4f8f5a5114c1c88bee7715a0c8f5347aa0b35b'], + }), + ('snowfall', '1.84-6.1', { + 'checksums': ['5c446df3a931e522a8b138cf1fb7ca5815cc82fcf486dbac964dcbc0690e248d'], + }), + ('bindr', '0.1.1', { + 'checksums': ['7c785ca77ceb3ab9282148bcecf64d1857d35f5b800531d49483622fe67505d0'], + }), + ('plogr', '0.2.0', { + 'checksums': ['0e63ba2e1f624005fe25c67cdd403636a912e063d682eca07f2f1d65e9870d29'], + }), + ('bindrcpp', '0.2.2', { + 'checksums': ['48130709eba9d133679a0e959e49a7b14acbce4f47c1e15c4ab46bd9e48ae467'], + }), + ('tmvnsim', '1.0-2', { + 'checksums': ['97f63d0bab3b240cc7bdbe6e6e74e90ad25a4382a345ee51a26fe3959edeba0f'], + }), + ('mnormt', '2.1.0', { + 'checksums': ['2d498505e32d8aa9fa54a1ab328c35ae3a85e0b20a0cf0d519a4df84e2b307b8'], + }), + ('foreign', '0.8-82', { + 'checksums': ['f8ed0684d59bec7f3a39cde1aa5ec7b3e6e36aaecacb28120c9c54f7b13f80fb'], + }), + ('psych', '2.2.5', { + 'checksums': ['dcc3f9b30ed44dfd1de0366295a308e0b52959eb7ac9cb3bc3f32dc5b15fc321'], + }), + ('broom', '0.8.0', { + 'checksums': ['66a1095d4430450dc810a5cea61cd7e7bee0e23739dcf5ddc5b57c9894fcf999'], + }), + ('nloptr', '2.0.3', { + 'checksums': ['7b26ac1246fd1bd890817b0c3a145456c11aec98458b8518de863650b99616d7'], + }), + ('boot', '1.3-28', { + 'checksums': ['9f7158fd2714659f590c3955651893dc24bd8f39196bc5a4cc35b0b031744a32'], + }), + ('statmod', '1.4.36', { + 'checksums': ['14e897c83d426caca4d920d3d5bead7ae9a679276b3cb2e227f299ad189d7bc2'], + }), + ('lme4', '1.1-29', { + 'checksums': ['83d97de48cc4706a5a9615b126ba1a86f1a3009d3f38b8da3e57dd619519e826'], + }), + ('ucminf', '1.1-4', { + 'checksums': ['a2eb382f9b24e949d982e311578518710f8242070b3aa3314a331c1e1e7f6f07'], + }), + ('ordinal', '2019.12-10', { + 'checksums': ['7a41e7b7e852a8fa3e911f8859d36e5709ccec5ca42ee3de14a813b7aaac7725'], + }), + ('jomo', '2.7-3', { + 'checksums': ['9d3987f3a73d305f3ab6fc66efc04a196a7eb8b65e20c411131dc17af51f0063'], + }), + ('clipr', '0.8.0', { + 'checksums': ['32c2931992fbec9c31b71de3e27059f1cbb45b4b1f45fd42e0e8dbcec6de3be9'], + }), + ('tzdb', '0.3.0', { + 'checksums': ['6099f0ec1fba692b51b4360aa776902a39f10dae815933c31994b8e4d4277038'], + }), + ('bit64', '4.0.5', { + 'checksums': ['25df6826ea5e93241c4874cad4fa8dadc87a40f4ff74c9107aa12a9e033e1578'], + }), + ('vroom', '1.5.7', { + 'checksums': ['d087cb148f71c222fc89199d03df2502689149873414a6d89c2f006d3a109fde'], + }), + ('readr', '2.1.2', { + 'checksums': ['94afd03a1fa4abcf2985ec903bbf5995d7c590e1a50512ed80d081ef4fe10c1b'], + }), + ('forcats', '0.5.1', { + 'checksums': ['c4fb96e874e2bedaa8a1aa32ea22abdee7906d93b5c5c7b42c0894c0c5b6a289'], + }), + ('haven', '2.5.0', { + 'checksums': ['b580311bc1b28efc6b123e29a331282b9f7eb552c485f4e5cacab39fe534aff4'], + }), + ('pan', '1.6', { + 'checksums': ['adc0df816ae38bc188bce0aef3aeb71d19c0fc26e063107eeee71a81a49463b6'], + }), + ('mitml', '0.4-3', { + 'checksums': ['49bd3eb68a60fb2a269e7ddca8b862e1e81e0651e2b29759482fb7bcad452102'], + }), + ('mice', '3.14.0', { + 'checksums': ['f87bb73d8bfee36c6bf4f15779c59ff6b70c70ca25b1388b4ee236757276d605'], + }), + ('urca', '1.3-0', { + 'checksums': ['621cc82398e25b58b4a16edf000ed0a1484d9a0bc458f734e97b6f371cc76aaa'], + }), + ('fracdiff', '1.5-1', { + 'checksums': ['b8103b32a4ca3a59dda1624c07da08ecd144c7a91a747d1f4663e99421950eb6'], + }), + ('operator.tools', '1.6.3', { + 'checksums': ['e5b74018fb75bfa02820dec4b822312f1640422f01d9fec1b58d880ffb798dec'], + }), + ('formula.tools', '1.7.1', { + 'checksums': ['4fe0e72d9d96f2398e86cbd8536d0c84de38e5583d4ff7dcd73f415ddd8ca395'], + }), + ('logistf', '1.24.1', { + 'checksums': ['e7e0d9054cf7f3221ba363afa0fdf1c8bb65b8841700ec0010fa4886be26a661'], + }), + ('akima', '0.6-3.4', { + 'checksums': ['95657592a81d2e3628cb054b60127827ae64e65c58b77d059aa510bc6781ad3e'], + }), + ('bitops', '1.0-7', { + 'checksums': ['e9b5fc92c39f94a10cd0e13f3d6e2a9c17b75ea01467077a51d47a5f708517c4'], + }), + ('mixtools', '1.2.0', { + 'checksums': ['ef033ef13625209065d26767bf70d129972e6808927f755629f1d70a118b9023'], + }), + ('cluster', '2.1.3', { + 'checksums': ['a3ad7a9455d634c4e0c6ccf8ea7a3a392a0ecf9c2bdb368d127ffa68a93164a9'], + }), + ('gclus', '1.3.2', { + 'checksums': ['9cc61cdff206c11213e73afca3d570a7234250cf6044a9202c2589932278e0b3'], + }), + ('coda', '0.19-4', { + 'checksums': ['422d3cfd34797a3631e9c4812431940599c0ca4bb9937797bed07b7b1d6fe58f'], + }), + ('doMC', '1.3.8', { + 'checksums': ['b2186f851448251ae6af5d14b9e3e7f9221f90887e5f8de6a68c91caf16619a3'], + }), + ('DBI', '1.1.3', { + 'checksums': ['38bb33753da5bddb78893a5228a5d269dae3bf16f21dc5d9853ac9c24d31428d'], + }), + ('gam', '1.20.1', { + 'checksums': ['5787c6fabea5aaba29fe214db305a7369916082efc6a18f84e4c9ef81c8e7dad'], + }), + ('gamlss.data', '6.0-2', { + 'checksums': ['dbb3b6f855540928ccdbda497f8d552144895e34565799e8b595e704096db71e'], + }), + ('gamlss.dist', '6.0-3', { + 'checksums': ['ec90ea83cd81b894c73f987f69814077697be33abf0708e0f3e2a39d02c912bf'], + }), + ('gamlss', '5.4-3', { + 'checksums': ['6619d4fdc183ab492615d44961a126c827d18db20a0d59362e54de877f0a3076'], + }), + ('gamlss.tr', '5.1-7', { + 'checksums': ['8f9975bceaf8000b1d39317daf490e59c8385b5291326ed6a2630be11dae3137'], + }), + ('hwriter', '1.3.2.1', { + 'checksums': ['ed2fa254ab27cf65d397e181339976fc3261dfb4f6b600fea8c5689620dab6f3'], + }), + ('xts', '0.12.1', { + 'checksums': ['d680584af946fc30be0b2046e838cff7b3a65e00df1eadba325ca5e96f3dca2c'], + }), + ('curl', '4.3.2', { + 'checksums': ['90b1facb4be8b6315bb3d272ba2dd90b88973f6ea1ab7f439550230f8500a568'], + }), + ('TTR', '0.24.3', { + 'checksums': ['4d9aef32647664be5cf965b05f21ed62cde9425fa87c21530852e05ef7aaba87'], + }), + ('quantmod', '0.4.20', { + 'checksums': ['f757df41595d885f7927e18f4835bc233d78d2d3ae48fd11c8874d4338c48e94'], + }), + ('mvtnorm', '1.1-3', { + 'checksums': ['ff4e302139ba631280fc9c4a2ab168596bfd09e17a805974199b043697c02448'], + }), + ('pcaPP', '2.0-1', { + 'checksums': ['9690e2f263162452d5a14bd8c52264cb70b317d30907411af4e5b6df4086121a'], + }), + ('pscl', '1.5.5', { + 'checksums': ['054c9b88a991abdec3338688f58e81b6ba55f91edb988621864b24fd152fee6f'], + }), + ('fastmap', '1.1.0', { + 'checksums': ['9113e526b4c096302cfeae660a06de2c4c82ae4e2d3d6ef53af6de812d4c822b'], + }), + ('cachem', '1.0.6', { + 'checksums': ['9a9452f7bcf3f79436c418b3c3290449fb8fd338714d9b992153754d112f1864'], + }), + ('memoise', '2.0.1', { + 'checksums': ['f85034ee98c8ca07fb3cd826142c1cd1e1e5747075a94c75a45783bbc4fe2deb'], + }), + ('blob', '1.2.3', { + 'checksums': ['2d88d683ee3d1b56b332b5c7769979b5d3994b5d9285ea634ec919576da3631b'], + }), + ('RSQLite', '2.2.14', { + 'checksums': ['2ae36a875ebc02497985b2ad9ddc6a5434f576e2ab25769580749d9e4f3b607c'], + }), + ('BatchJobs', '1.9', { + 'checksums': ['5da9c381df461320ed4033523bad1ee97f88a4670d2714fec32be92964115c77'], + }), + ('sandwich', '3.0-2', { + 'checksums': ['6e30b6b554eb19430a60c45a8132fb7918ddb0013577bf6a62caeb163bdfe2b4'], + }), + ('sfsmisc', '1.1-13', { + 'checksums': ['a81710357de2dcdaf00d9fa30a29cde0dd83616edc358452fd6105ea88f34218'], + }), + ('spatial', '7.3-15', { + 'checksums': ['e5613be94d6f5c1f54813dadc96e4a86b3417dea28106cc90cb24dfd6c3c8cef'], + }), + ('VGAM', '1.1-6', { + 'checksums': ['446a61bac5dd4794e05d20c2f3901eec54afac52c6e23ce2787c5575170dd417'], + }), + ('waveslim', '1.8.3', { + 'checksums': ['988bdce52ce1c31cb0abb4fb7a9f1e9192283f597c2a418f0010f780dbe3b37b'], + }), + ('xtable', '1.8-4', { + 'checksums': ['5abec0e8c27865ef0880f1d19c9f9ca7cc0fd24eadaa72bcd270c3fb4075fd1c'], + }), + ('profileModel', '0.6.1', { + 'checksums': ['91dc25e81f52506593f5c8d80a6131510b14525262f65b4ac10ae0cad0b2a506'], + }), + ('brglm', '0.7.2', { + 'checksums': ['56098d2ce238478e7a27cacc4cdec0bc65f287fe746b38fbb1edda20c1675023'], + }), + ('deSolve', '1.32', { + 'checksums': ['74670f16eaafddd044a3ac1813acd5d164aed3f862b87aa1ac275b600e27d9ad'], + }), + ('tseriesChaos', '0.1-13.1', { + 'checksums': ['23cb5fea56409a305e02a523ff8b7642ec383942d415c9cffdc92208dacfd961'], + }), + ('tseries', '0.10-51', { + 'checksums': ['a55f20704883710ab58ea479e20cf0f263c50d54282f693793cda4af664c207f'], + }), + ('fastICA', '1.2-3', { + 'checksums': ['e9ef82644cb64bb49ae3b7b6e0885f4fb2dc08ae030f8c76fe8dd8507b658950'], + }), + ('R.methodsS3', '1.8.2', { + 'checksums': ['822d5e61dad4c91e8883be2b38d7b89f87492046d0fe345704eb5d2658927c2e'], + }), + ('R.oo', '1.25.0', { + 'checksums': ['b8b19061774918ee7d9d4330c16c0ea505f7cd02d01343df1e8b2e4fb847beef'], + }), + ('sys', '3.4', { + 'checksums': ['17f88fbaf222f1f8fd07919461093dac0e7175ae3c3b3264b88470617afd0487'], + }), + ('askpass', '1.1', { + 'checksums': ['db40827d1bdbb90c0aa2846a2961d3bf9d76ad1b392302f9dd84cc2fd18c001f'], + }), + ('openssl', '2.0.2', { + 'checksums': ['862d3dc9bb69d92e36e83a7506be83443d4a4957f5f08f6617d7873c67a1f1c4'], + }), + ('httr', '1.4.3', { + 'checksums': ['9a8613fa96173ac910c021391af1ced4d0609169049c802cf7cdfe1c40897c6a'], + }), + ('cgdsr', '1.3.0', { + 'checksums': ['4aa2a3564cee2449c3ff39ab2ad631deb165d4c78b8107e0ff77a9095340cc1f'], + }), + ('R.utils', '2.11.0', { + 'checksums': ['622860f995f78be3a6e439f29d945874c5cb0866f6a73a9b43ac1d4d7f23fed8'], + }), + ('R.matlab', '3.6.2', { + 'checksums': ['1ba338f470a24b7f6ef68cadbd04eb468ead4a689f263d2642408ad591b786bb'], + }), + ('gridExtra', '2.3', { + 'checksums': ['81b60ce6f237ec308555471ae0119158b115463df696d2eca9b177ded8988e3b'], + }), + ('gbm', '2.1.8', { + 'checksums': ['7d5de3b980b8f23275e86ac9bed48a497c9aa53c58e407dfd676309f38272ec1'], + }), + ('Formula', '1.2-4', { + 'checksums': ['cb70e373b5ed2fc8450937fb3321d37dfd22dcc6f07cb872a419d51205125caf'], + }), + ('acepack', '1.4.1', { + 'checksums': ['82750507926f02a696f6cc03693e8d4a5ee7e92500c8c15a16a9c12addcd28b9'], + }), + ('proto', '1.0.0', { + 'checksums': ['9294d9a3b2b680bb6fac17000bfc97453d77c87ef68cfd609b4c4eb6d11d04d1'], + }), + ('chron', '2.3-57', { + 'checksums': ['9645d86a84d1afc12a0accf4f826fdd40e6d050a313424ad70f8085e8f19c232'], + }), + ('viridis', '0.6.2', { + 'checksums': ['69b58cd1d992710a08b0b227fd0a9590430eea3ed4858099412f910617e41311'], + }), + ('yaml', '2.3.5', { + 'checksums': ['3edf6c0554a0e184a25e8bec5721a2e66b4ab0dceb3737428e22705e52eb5140'], + }), + ('htmltools', '0.5.2', { + 'checksums': ['7dc7d50436e5a82a5801f85bcd2f572a06a98b4027d71aa17b4854ec9b2767fb'], + }), + ('htmlwidgets', '1.5.4', { + 'checksums': ['1a3fc60f40717de7f1716b754fd1c31a132e489a2560a278636ee78eba46ffc1'], + }), + ('knitr', '1.39', { + 'checksums': ['c91a65edebdca779af7f7480fa6636667497c9291ad55d6efd982db0bb91ac72'], + }), + ('htmlTable', '2.4.0', { + 'checksums': ['4ca2b5616d77cfeee8ae5ca74307b86407d478b12d1ce17ba9c447e233b89a9d'], + }), + ('Hmisc', '4.7-0', { + 'checksums': ['29ec2d9ca11c790c350e93323126bef4f498c69c41c31bb335fd04671e0f87bd'], + }), + ('fastcluster', '1.2.3', { + 'checksums': ['1f229129e1cddc78c7bb5ecc90c4d28ed810ee68cf210004c7cdfa12cfaf2a01'], + }), + ('registry', '0.5-1', { + 'checksums': ['dfea36edb0a703ec57e111016789b47a1ba21d9c8ff30672555c81327a3372cc'], + }), + ('bibtex', '0.4.2.3', { + 'checksums': ['7bad194920b412781ac9754ad41058d52d3cd7186e1851c2bce3640490e9bc6d'], + }), + ('pkgmaker', '0.32.2', { + 'checksums': ['ce45b22def771a9c90a414093823e6befe7e23489c500eeccee5154b44d3ef91'], + }), + ('rngtools', '1.5.2', { + 'checksums': ['7f8c76ca4c7851b69a86e27be09b02ddc86357f0388659ef8787634682e8a74d'], + }), + ('doParallel', '1.0.17', { + 'checksums': ['b96a25ad105a654d70c7b4ca27290dc9967bc47f4668b2763927a886b178abd7'], + }), + ('gridBase', '0.4-7', { + 'checksums': ['be8718d24cd10f6e323dce91b15fc40ed88bccaa26acf3192d5e38fe33e15f26'], + }), + ('irlba', '2.3.5', { + 'checksums': ['26fc8c0d36460e422ab77f43a597b8ec292eacd452628c54d34b8bf7d5269bb9'], + }), + ('igraph', '1.3.2', { + 'checksums': ['0f5066180e223e165d28cee050054008ca23102e8392ff4ecd72e733537ec320'], + }), + ('GeneNet', '1.2.16', { + 'checksums': ['c1e98073ccdaa18f4952630bfe4fc0617106eeaf7ed94d347cb2773bd48333e4'], + }), + ('ape', '5.6-2', { + 'checksums': ['9b62450a0390a1f07df007d348ad4cedcd814d42cb11c5a300ed33550fd41257'], + }), + ('RJSONIO', '1.3-1.6', { + 'checksums': ['82d1c9ea7758b2a64ad683f9c46223dcba9aa8146b43c1115bf9aa76a657a09f'], + }), + ('caTools', '1.18.2', { + 'checksums': ['75d61115afec754b053ed1732cc034f2aeb27b13e6e1932aa0f26bf590cf0293'], + }), + ('gplots', '3.1.3', { + 'checksums': ['9f853b9e205264d087e61e8825f797ce36c9eb585b187dab794563613a526716'], + }), + ('ROCR', '1.0-11', { + 'checksums': ['57385a773220a3aaef5b221a68b2d9c2a94794d4f9e9fc3c1eb9521767debb2a'], + }), + ('later', '1.3.0', { + 'checksums': ['08f50882ca3cfd2bb68c83f1fcfbc8f696f5cfb5a42c1448c051540693789829'], + }), + ('promises', '1.2.0.1', { + 'checksums': ['8d3a8217909e91f4c2a2eebba5ac8fc902a9ac1a9e9d8a30815c9dc0f162c4b7'], + }), + ('httpuv', '1.6.5', { + 'checksums': ['f5f63629ca5e9d0e396a89982d95b5286726c0cb425166f35a3ad32a60a79156'], + }), + ('rjson', '0.2.21', { + 'checksums': ['982b56d35ccc0c7db0b20c1d3eab5f5f47c620309646fdc278ff1cc3433ea2e2'], + }), + ('sourcetools', '0.1.7', { + 'checksums': ['47984406efb3b3face133979ccbae9fefb7360b9a6ca1a1c11473681418ed2ca'], + }), + ('xml2', '1.3.3', { + 'checksums': ['cb4e9c0d31618ed67d2bfa4c7b5e52680e11612ed356a8164b541d44163c1c8d'], + }), + ('commonmark', '1.8.0', { + 'checksums': ['7d07e72937b1cf158e69f183722bf79dbb91b8967a9dd29f4fa145500c2be668'], + }), + ('jquerylib', '0.1.4', { + 'checksums': ['f0bcc11dcde3a6ff180277e45c24642d3da3c8690900e38f44495efbc9064411'], + }), + ('rappdirs', '0.3.3', { + 'checksums': ['49959f65b45b0b189a2792d6c1339bef59674ecae92f8c2ed9f26ff9e488c184'], + }), + ('fs', '1.5.2', { + 'checksums': ['35cad1781d6d17c1feb56adc4607079c6844b63794d0ce1e74bb18dbc11e1987'], + }), + ('sass', '0.4.1', { + 'checksums': ['850fcb6bd49085d5afd25ac18da0744234385baf1f13d8c0a320f4da2de608bb'], + }), + ('bslib', '0.3.1', { + 'checksums': ['5f5cb56e5cab9039a24cd9d70d73b69c2cab5b2f5f37afc15f71dae0339d9849'], + }), + ('fontawesome', '0.2.2', { + 'checksums': ['572db64d1b3c9be301935e0ca7baec69f3a6e0aa802e23f1f224b3724259df64'], + }), + ('shiny', '1.7.1', { + 'checksums': ['c03b2056fb41430352c7c0e812bcc8632e6ec4caef077d2f7633512d91721d00'], + }), + ('seqinr', '4.2-16', { + 'checksums': ['c4f3253832fc255197bdce7b4dd381db606c6b787d2e888751b4963acf3a4032'], + }), + ('LearnBayes', '2.15.1', { + 'checksums': ['9b110858456523ca0b2a63f22013c4e1fbda6674b9d84dc1f4de8bffc5260532'], + }), + ('deldir', '1.0-6', { + 'checksums': ['6df6d8325c607e0b7d63cbc53c29e774eff95ad4acf9c7ec8f70693b0505f8c5'], + }), + ('gmodels', '2.18.1.1', { + 'checksums': ['da7d48021b7cd2fd8a7cd8d0bb9658b12342a32698a13877b25ca94aa03f1e95'], + }), + ('expm', '0.999-6', { + 'checksums': ['2c79912fd2e03fcf89c29f09555880934402fcb2359af8b4579d79b4f955addc'], + }), + ('terra', '1.5-34', { + 'checksums': ['3cad88f4fad6517713861a8debc8c7c746c32e0c2ee851bb0c2bc43744fcaa1c'], + }), + ('raster', '3.5-15', { + 'checksums': ['29c7d3c5d34284f8b5a2ddc9989fbcf092ce209d5eb5310ebc772b5ebdfdd685'], + }), + ('spData', '2.0.1', { + 'checksums': ['c635a3e2e5123b4cdb2e6877b9b09e3d50169e1512a53b2ba2db7fbe63b990fc'], + }), + ('units', '0.8-0', { + 'checksums': ['9c46fe138e8c1c3d3a51268776412f02d09673656516148cccb71b1071beb21a'], + }), + ('classInt', '0.4-7', { + 'checksums': ['a30e3a8987ce133944897100ab5bdc31b019d897969c452c3795f50ac234606e'], + }), + ('vegan', '2.6-2', { + 'checksums': ['ab77d110c959d19b0c6268ae0c8f78c897e2419eff3f1f7b19c1bb2f8db7c059'], + }), + ('rncl', '0.8.6', { + 'checksums': ['fcc972c04fb43ace0876eb640a6433caddf6ec8304f7ceee37107d812ce68ffb'], + }), + ('XML', '3.99-0.10', { + 'checksums': ['c45991b5edadc3cf7e2d80c38e798a5d6c4e27baf6007004d4db5a6ca97ff35b'], + }), + ('tinytex', '0.40', { + 'checksums': ['3f5e7adb2c047a8181a39fe5fee1f709039e6e94245f98c64282fdecc183d88d'], + }), + ('rmarkdown', '2.14', { + 'checksums': ['e9ec17afa4d9d6e8cf555b56e0c00acc189d8ec0b4406680b14d71d62f0c3220'], + }), + ('reshape', '0.8.9', { + 'checksums': ['791178b3b5f30c166ebf5910a5ab1c67b54e7023b10b6c2e2ddd1cc02a1e4048'], + }), + ('triebeard', '0.3.0', { + 'checksums': ['bf1dd6209cea1aab24e21a85375ca473ad11c2eff400d65c6202c0fb4ef91ec3'], + }), + ('urltools', '1.7.3', { + 'checksums': ['6020355c1b16a9e3956674e5dea9ac5c035c8eb3eb6bbdd841a2b5528cafa313'], + }), + ('httpcode', '0.3.0', { + 'checksums': ['593a030a4f94c3df8c15576837c17344701bac023ae108783d0f06c476062f76'], + }), + ('crul', '1.2.0', { + 'checksums': ['be1a149b21cf219ef55adfb56a6a5eb9892a9acf0d5f5421a22e52f2a7066f8c'], + }), + ('bold', '1.2.0', { + 'checksums': ['8f1597f04acbe6b090232929325734c802049d82649ae102b438e1fa3af5a464'], + }), + ('rredlist', '0.7.0', { + 'checksums': ['d2e66b655c43565a4cc0984dc3fcc9732652cb9677baaa9bb2b82e9f9d65e7f0'], + }), + ('rentrez', '1.2.3', { + 'checksums': ['fb256597ebe7780e38bef9c4c2626b3feacd60c7a5a29fc6a218cf0d8d132f74'], + }), + ('rotl', '3.0.12', { + 'checksums': ['1688b3284139803a9b1339d7f34a5db94bb1f2f4fd4c395423f7164dbdb3d98e'], + }), + ('solrium', '1.2.0', { + 'checksums': ['7ec64199497cc69f542fded955b709fc548cf8e2734c9db0f4a99a0ea67ca49b'], + }), + ('ritis', '1.0.0', { + 'checksums': ['327b221872408b1f0fe0cce953685535b66d2fa5d6cac628e1142a26e4856136'], + }), + ('worrms', '0.4.2', { + 'checksums': ['1ab228ea762a431a5e3a565b589b804fcb2865ceaa2b1459bd2ab3ebe8f5ebbe'], + }), + ('natserv', '1.0.0', { + 'checksums': ['30f90f938e963191ef19b1433db1e265f67d8efe29c92a1d3603c3dc9a03d5c8'], + }), + ('WikipediR', '1.5.0', { + 'checksums': ['f8d0e6f04fb65f7ad9c1c068852a6a8b699ffe8d39edf1f3fa07d32d087e8ff0'], + }), + ('ratelimitr', '0.4.1', { + 'checksums': ['2b21e4574521c5336feeb3041eaf096bde7857b140049cdeb6ec97dc652aa71b'], + }), + ('rex', '1.2.1', { + 'checksums': ['af42e649c06e4bbdba94d5a1870a7e8347903571c90cd5e5ca40f52307a3bfd6'], + }), + ('WikidataQueryServiceR', '1.0.0', { + 'checksums': ['0e14eec8471a72227f800b41b331cfc49a94b4d4f49e68936448ebbae0b281ae'], + }), + ('pbapply', '1.5-0', { + 'checksums': ['effdfee286e5ba9534dc2ac3cee96590a37f5cd2af28c836d00c25ca9f070a55'], + }), + ('WikidataR', '2.3.3', { + 'checksums': ['3da74b0584b8141a1b61b4d8f58e53c0e46524d811b1642bcc01fb7fd6180888'], + }), + ('wikitaxa', '0.4.0', { + 'checksums': ['ba872853af59fdc8f1121d6e205f15e5bf4f2ec5ad68cd5755a423fa783bf7fc'], + }), + ('phangorn', '2.9.0', { + 'checksums': ['3262dbe002bedc636467d4ac77044965f4976da09fa710c606075c5ddf26da23'], + }), + ('uuid', '1.1-0', { + 'checksums': ['e75b50ee7dc8c4c8e7083023e954ffd1c6a004431bf5e9094463e46aa760f42f'], + }), + ('conditionz', '0.1.0', { + 'checksums': ['ccd81e4f2534d29cddf44cf697f76ff01417cbeb22001a93477edc61cdd35646'], + }), + ('taxize', '0.9.100', { + 'checksums': ['e2e578fc45eb5d1306332892c67535fa4bc32d63129532df2c6cde393993cd29'], + }), + ('RNeXML', '2.4.7', { + 'checksums': ['cb311d6dda33a95521a6df360a2d2f4e6d6bc6b330ac5e19ea721ca665bce6fe'], + }), + ('phylobase', '0.8.10', { + 'checksums': ['5a44380ff49bab333a56f6f96157324ade8afb4af0730e013194c4badb0bf94b'], + }), + ('magick', '2.7.3', { + 'checksums': ['83877b2e23ea43fbc1164de9c2422eafbe7858393ac384df5adf3a7eec122441'], + }), + ('animation', '2.7', { + 'checksums': ['88418f1b04ec785963bad492f30eb48b05914e9e5d88c7eef705d949cbd7e469'], + }), + ('bigmemory.sri', '0.1.3', { + 'checksums': ['55403252d8bae9627476d1f553236ea5dc7aa6e54da6980526a6cdc66924e155'], + }), + ('bigmemory', '4.6.1', { + 'checksums': ['b56e157c87ed6c4fc69d4cb9c697ae9a2001726e776e41aa7c48b35327b65141'], + }), + ('calibrate', '1.7.7', { + 'checksums': ['713b09b415c954e1ef5216088acd40621b0546c45afbb8c2c6f118ecb5cd6fa6'], + }), + ('clusterGeneration', '1.3.7', { + 'checksums': ['534f29d8f7ed11e6e9a496f15845b588ec7133f3da5e6def8140b88500e52d5c'], + }), + ('dismo', '1.3-5', { + 'checksums': ['812e1932d42c0f40acf2ab5c5b2d068f93128caf648626e1d11baf1a09340ee7'], + }), + ('extrafontdb', '1.0', { + 'checksums': ['faa1bafee5d4fbc24d03ed237f29f1179964ebac6e3a46ac25b0eceda020b684'], + }), + ('Rttf2pt1', '1.3.10', { + 'checksums': ['81886b4f686341ce5139816233c957e840541d17a1d2db0047af17d527f0e1ba'], + }), + ('extrafont', '0.18', { + 'checksums': ['44e6a9798914b99c1460a1177c1f1503cf2a2f74844e3e7858fb98462b08a857'], + }), + ('fields', '13.3', { + 'checksums': ['c652838b1ae7eb368831522824bfbc1d1db7b9d1db5e9bb52b194098549944c3'], + }), + ('shapefiles', '0.7', { + 'checksums': ['eeb18ea4165119519a978d4a2ba1ecbb47649deb96a7f617f5b3100d63b3f021'], + }), + ('fossil', '0.4.0', { + 'checksums': ['37c082fa15ebae89db99d6071b2bb2cad6a97a0405e9b4ef77f62a8f6ad274c1'], + }), + ('phytools', '1.0-3', { + 'checksums': ['bfe2aec6aae8235264c1494eee42be494fed81a676c6de9e39c57a6e3682b37d'], + }), + ('geiger', '2.0.10', { + 'checksums': ['2895cfb73fb91764be2ec3f931e4f3b2e75ae00a1431af4b40dc90e7c0693be0'], + }), + ('shape', '1.4.6', { + 'checksums': ['b9103e5ed05c223c8147dbe3b87a0d73184697343634a353a2ae722f7ace0b7b'], + }), + ('glmnet', '4.1-4', { + 'checksums': ['f6b0f70a0b3d81ff91c2b94f795a2a32e90dd458270f1a29e49e085dd65000f9'], + }), + ('crosstalk', '1.2.0', { + 'checksums': ['4237baab35cd246a8a98fb9cf4ce53b6ddbc31d00742ded4edea0479613d1ea0'], + }), + ('miniUI', '0.1.1.1', { + 'checksums': ['452b41133289f630d8026507263744e385908ca025e9a7976925c1539816b0c0'], + }), + ('webshot', '0.5.3', { + 'checksums': ['b7c4f2be61c8c4730202a9c3604072478e30cb85b423b7497cd703cc3f49dbc0'], + }), + ('shinyjs', '2.1.0', { + 'checksums': ['7ec20cbf1b1fd7a32d85a56dfc0df8b5f67c828d241da400a21d893cb37ea9c5'], + }), + ('manipulateWidget', '0.11.1', { + 'checksums': ['5b73728d7d6dcc32f32d861375074cd65112c03a01e4ee4fa94e21b063fdefb6'], + }), + ('rgl', '0.109.2', { + 'checksums': ['117504ce5a22ead0b068314988804f4aeec0fb8a354c4c5f214cfe2de29d2c97'], + }), + ('Rtsne', '0.16', { + 'checksums': ['52a05adc826c28212e97d11c54eba3fec45d14eb52039c0f47f62a8e338ffbd5'], + }), + ('labdsv', '2.0-1', { + 'checksums': ['5a4d55e9be18222dc47e725008b450996448ab117d83e7caaa191c0f13fd3925'], + }), + ('stabs', '0.6-4', { + 'checksums': ['f8507337789f668e421a6ee7b11dd5ea331bf8bff0f9702dd1b93f46c2f3c1d9'], + }), + ('modeltools', '0.2-23', { + 'checksums': ['6b3e8d5af1a039db5c178498dbf354ed1c5627a8cea9229726644053443210ef'], + }), + ('strucchange', '1.5-3', { + 'checksums': ['cac6b4028f68cc8d39202377161d0f7f72ea229b552a5c35769053ab89f90f86'], + }), + ('TH.data', '1.1-1', { + 'checksums': ['edf3ab16b142f4c52d21fc64e41409ed138e5b3e142f2fae964b00f02d53dd7a'], + }), + ('multcomp', '1.4-19', { + 'checksums': ['f03473b1cfbc714cd85a0ee948e2ecdb23bcdccbe95e27237ee25e9c71e3e557'], + }), + ('libcoin', '1.0-9', { + 'checksums': ['2d7dd0b7c6dfc20472430570419ea36a714da7bbafd336da1fb53c5c6463d9eb'], + }), + ('coin', '1.4-2', { + 'checksums': ['7546d1f27a82d98b4b3e43e4659eba0f74a67d5919ce85d2fb360282ba3cfbb2'], + }), + ('party', '1.3-10', { + 'checksums': ['e5892955f6ce662ade568e646d1d672c3ecbf5d4e74b4a887a353e6160f7b56a'], + }), + ('inum', '1.0-4', { + 'checksums': ['5febef69c43a4b95b376c1418550a949d988a5f26b1383ca01c9728a94fc13ce'], + }), + ('partykit', '1.2-16', { + 'checksums': ['e643d4e29c1894497e3dd5fe274783319d0044dec50282ed807cebc21736ddb2'], + }), + ('mboost', '2.9-7', { + 'checksums': ['0242cb91656280c4bd705643b65674900a1475305d9f80cfc12ef4b5fa069606'], + }), + ('msm', '1.6.9', { + 'checksums': ['aefcd9bb40b0167311d088d6fe23fdf7aa35deaac0f8b47ef02377cff5577023'], + }), + ('nor1mix', '1.3-0', { + 'checksums': ['9ce4ee92f889a4a4041b5ea1ff09396780785a9f12ac46f40647f74a37e327a0'], + }), + ('np', '0.60-11', { + 'checksums': ['a3b31b8ad70c42826076786b2b1b63b79cdbadfa55fe126773bc357686fd33a9'], + }), + ('polynom', '1.4-1', { + 'checksums': ['bc1edb7bb16c8b299103f80a52ab8c5fc200cd07a9056578c1f672e9f5019278'], + }), + ('polspline', '1.1.20', { + 'checksums': ['6992484e9e41036debef1e705e26959f8f5c7a68d3e1fda58273d2a72297a1b5'], + }), + ('rms', '6.3-0', { + 'checksums': ['6c41eb670daf5e4391cc2f2a19e20a591f90769c124300a7ccf555820140d3f9'], + }), + ('RWekajars', '3.9.3-2', { + 'checksums': ['16e6b019aab1646f89c5203f0d6fc1cb800129e5169b15aaef30fd6236f5da1a'], + }), + ('RWeka', '0.4-44', { + 'checksums': ['f3239437aeeb01453b7ce235f9680bc281886b46de0b536d9c8413c6294c7bc8'], + }), + ('slam', '0.1-50', { + 'checksums': ['7899bf3266c204ecccefc1878f96940b117d4503af128f4fbc50fc409163f8bd'], + }), + ('tm', '0.7-8', { + 'checksums': ['b1eb1683d956db1a207b61cc086ae08b3ca7f46b6b8bc46d09ba5a4fafa66256'], + }), + ('leaps', '3.1', { + 'checksums': ['3d7c3a102ce68433ecf167ece96a7ebb4207729e4defd0ac8fc00e7003f5c3b6'], + }), + ('cNORM', '3.0.2', { + 'checksums': ['31231a0612915ee5171676b28273f82acdc8914bd6385fc9e7b17f930e66c91a'], + }), + ('weights', '1.0.4', { + 'checksums': ['efbe65e8a9d05824a86095d45ed62ce24d82101d4ca3b94828d443e08e83ccba'], + }), + ('TraMineR', '2.2-4', { + 'checksums': ['b69ef547443453f1d814d09141f7b9be1dd09ef374cc50771d1a8d3f0815e1a7'], + }), + ('chemometrics', '1.4.2', { + 'checksums': ['b705832fa167dc24b52b642f571ed1efd24c5f53ba60d02c7797986481b6186a'], + }), + ('FNN', '1.1.3.1', { + 'checksums': ['52b0e20611481a95bced40be4126f44b002fd3a9c4c9674bb34db4e1e3b5be5a'], + }), + ('miscTools', '0.6-26', { + 'checksums': ['be3c5a63ca12ce7ce4d43767a1815cd3dcf32664728ade251cfb03ea6f77fc9a'], + }), + ('maxLik', '1.5-2', { + 'checksums': ['7cee05be0624b6a76911fa7b0d66f3e1b78460e0c55ed8bc904ce1e8af7bb15d'], + }), + ('gbRd', '0.4-11', { + 'checksums': ['0251f6dd6ca987a74acc4765838b858f1edb08b71dbad9e563669b58783ea91b'], + }), + ('rbibutils', '2.2.8', { + 'checksums': ['f1aecdeeba99042d34de19234238c5bbdc18a26f271f6adf9c9b7e349d50d152'], + }), + ('Rdpack', '2.3.1', { + 'checksums': ['b53e5e9db53e31f514e2fef46bafa00bc7cd8828e36e5c933e28e9ac892d448a'], + }), + ('dfidx', '0.0-4', { + 'checksums': ['04255de9b002b2f89db04144edcd72e21804e0c129a3e5082b4a21630c850702'], + }), + ('mlogit', '1.1-1', { + 'checksums': ['6f3ea97db410be929a3078422f3d354d2f17855a21bbdc7c2c09d901e233d143'], + }), + ('getopt', '1.20.3', { + 'checksums': ['531f5fdfdcd6b96a73df2b39928418de342160ac1b0043861e9ea844f9fbf57f'], + }), + ('gsalib', '2.1', { + 'checksums': ['e1b23b986c18b89a94c58d9db45e552d1bce484300461803740dacdf7c937fcc'], + }), + ('optparse', '1.7.1', { + 'checksums': ['324e304c13efd565d766766193d4ccd75e2cd949dfcfb416afc3939489071fe7'], + }), + ('labelled', '2.9.1', { + 'checksums': ['9eb10b245f64f3fb7346121aa4cd98638946e1cc4208dd5e28791ef8fd62fa40'], + }), + ('R.cache', '0.15.0', { + 'checksums': ['adb4d3b08f7917e10fe6188c7b90a3318701a974c58eaa09943b929382bdf126'], + }), + ('styler', '1.7.0', { + 'checksums': ['3e49f3ac2e65f9bdab15837a4e629db35c8fd0a15a74daa057354ba01e3022ce'], + }), + ('questionr', '0.7.7', { + 'checksums': ['ce24c40bd98dbeca615b9eb2a9cd2da26852821dc3840f8394eeecb0739dfd56'], + }), + ('klaR', '1.7-0', { + 'checksums': ['b4795250ef19fd1b5e1b9a59343fd01159a33dbdbb504a06258220e37a718198'], + }), + ('neuRosim', '0.2-12', { + 'checksums': ['f4f718c7bea2f4b61a914023015f4c71312f8a180124dcbc2327b71b7be256c3'], + }), + ('locfit', '1.5-9.5', { + 'checksums': ['fd9f2bad9d8beec8be4843dc80e38ebe0f388835a7003490f67e57eeb9e6de23'], + }), + ('GGally', '2.1.2', { + 'checksums': ['30352f36bf061bc98bdd5fa373ea0f23d007040bd908c7c018c8e627e0fb28e5'], + }), + ('beanplot', '1.3.1', { + 'checksums': ['49158aee3449108fd857ef43fb777f55a2b975b350a4a710788996ad19dd15ad'], + }), + ('clValid', '0.7', { + 'checksums': ['037da469891462021eb177f9c9e18caefa8532f08c68fb576fae1668a1f451a1'], + }), + ('DiscriMiner', '0.1-29', { + 'checksums': ['5aab7671086ef9940e030324651976456f0e84dab35edb7048693ade885228c6'], + }), + ('ellipse', '0.4.3', { + 'checksums': ['02ef2b11c3462a8b800332e522183f4c7c40c7d2d66c5174d5f3f6d8cc68a946'], + }), + ('pbkrtest', '0.5.1', { + 'checksums': ['b2a3452003d93890f122423b3f2487dcb6925440f5b8a05578509e98b6aec7c5'], + }), + ('carData', '3.0-5', { + 'checksums': ['02e77159b33e3afb8cd9cfab11cf5a996a93175f924b07d991ce44bc6e16451a'], + }), + ('maptools', '1.1-4', { + 'checksums': ['f3ee25f9787d97c8373dac3651c6a198c932948eb3a6006b8618c91c6344fdc9'], + }), + ('zip', '2.2.0', { + 'checksums': ['9f95987c964039834f770ecda2d5f7e3d3a9de553c89db2a5926c4219bf4b9d8'], + }), + ('openxlsx', '4.2.5', { + 'checksums': ['65d06d2819b656ac30fc78437ee712a83fb5a7ab750f56268e5c9e578c582519'], + }), + ('rematch', '1.0.1', { + 'checksums': ['a409dec978cd02914cdddfedc974d9b45bd2975a124d8870d52cfd7d37d47578'], + }), + ('cellranger', '1.1.0', { + 'checksums': ['5d38f288c752bbb9cea6ff830b8388bdd65a8571fd82d8d96064586bd588cf99'], + }), + ('readxl', '1.4.0', { + 'checksums': ['ab9239c249f79b649f7665a612b3dbf4b774ab633115e6dee41091a8cb2491f7'], + }), + ('rio', '0.5.29', { + 'checksums': ['9fa63187e1814053e6ed2a164665b4924e08c3453adccb78f7211d403dcc5412'], + }), + ('car', '3.1-0', { + 'checksums': ['bd52b4eaea46ce828fccd93445301d06ebd265e2ffff796064875a8c0f0aea21'], + }), + ('flashClust', '1.01-2', { + 'checksums': ['48a7849bb86530465ff3fbfac1c273f0df4b846e67d5eee87187d250c8bf9450'], + }), + ('ggrepel', '0.9.1', { + 'checksums': ['29fb916d4799ba6503a5dd019717ffdf154d2aaae9ff1736f03e2be24af6bdfc'], + }), + ('DT', '0.23', { + 'checksums': ['360ae2fcb1141125a1b16448570fc37d14c4dd3f78a872c26df4fda1787cdc70'], + }), + ('FactoMineR', '2.4', { + 'checksums': ['b9e3adce9a66b4daccc85fa67cb0769d6be230beeb126921b386ccde5db2e851'], + }), + ('flexclust', '1.4-1', { + 'checksums': ['d67977df059e622832358069509f8968d506074320a45d34bfd21c65f898538d'], + }), + ('flexmix', '2.3-18', { + 'checksums': ['462201ef49088845c83083e4ed6725cf069aafb12a814041618aaf09ebd69b51'], + }), + ('prabclus', '2.3-2', { + 'checksums': ['f421bcbcb557281e0de4a06b15f9a496adb5c640e883c0f7bb12051efc69e441'], + }), + ('diptest', '0.76-0', { + 'checksums': ['508a5ebb161519cd0fcd156dc047b51becb216d545d62c6522496463f94ec280'], + }), + ('trimcluster', '0.1-5', { + 'checksums': ['9239f20e4a06ac2fa89e5d5d89b23a45c8c534a7264d89bede8a35d43dda518b'], + }), + ('fpc', '2.2-9', { + 'checksums': ['29b0006e96c8645645d215d3378551bd6525aaf45abde2d9f12933cf6e75fa38'], + }), + ('BiasedUrn', '1.07', { + 'checksums': ['2377c2e59d68e758a566452d7e07e88663ae61a182b9ee455d8b4269dda3228e'], + }), + ('TeachingDemos', '2.12', { + 'checksums': ['3e75405ce1affa406d6df85e06f96381412bc7a2810b25d8c81bfe64c4698644'], + }), + ('kohonen', '3.0.11', { + 'checksums': ['018d820acdb7dfa716275ba24c4d671cb0202cb1fee584b673d0118e2c9063ae'], + }), + ('base64', '2.0', { + 'checksums': ['8e259c2b12446197d1152b83a81bab84ccb5a5b77021a9b5645dd4c63c804bd1'], + }), + ('doRNG', '1.8.2', { + 'checksums': ['33e9d45b91b0fde2e35e911b9758d0c376049121a98a1e4c73a1edfcff11cec9'], + }), + ('nleqslv', '3.3.2', { + 'checksums': ['f54956cf67f9970bb3c6803684c84a27ac78165055745e444efc45cfecb63fed'], + }), + ('Deriv', '4.1.3', { + 'checksums': ['dbdbf5ed8babf706373ae33a937d013c46110a490aa821bcd158a70f761d0f8c'], + }), + ('RGCCA', '2.1.2', { + 'checksums': ['20f341fca8f616c556699790814debdf2ac7aa4dd9ace2071100c66af1549d7d'], + }), + ('pheatmap', '1.0.12', { + 'checksums': ['579d96ee0417203b85417780eca921969cda3acc210c859bf9dfeff11539b0c1'], + }), + ('pvclust', '2.2-0', { + 'checksums': ['7892853bacd413b5a921006429641ad308a344ca171b3081c15e4c522a8b0201'], + }), + ('RCircos', '1.2.2', { + 'checksums': ['5bbdc3baff2d22a8922685af02b2af07541a1bcf1914abd9c166850b4c550afc'], + }), + ('lambda.r', '1.2.4', { + 'checksums': ['d252fee39065326c6d9f45ad798076522cec05e73b8905c1b30f95a61f7801d6'], + }), + ('futile.options', '1.0.1', { + 'checksums': ['7a9cc974e09598077b242a1069f7fbf4fa7f85ffe25067f6c4c32314ef532570'], + }), + ('futile.logger', '1.4.3', { + 'checksums': ['5e8b32d65f77a86d17d90fd8690fc085aa0612df8018e4d6d6c1a60fa65776e4'], + }), + ('VennDiagram', '1.7.3', { + 'checksums': ['e7c2475f7613241787e6c85bd03315e4fd88413ccbbb735959756a8c2eeb8c46'], + }), + ('xlsxjars', '0.6.1', { + 'checksums': ['37c1517f95f8bca6e3514429394d2457b9e62383305eba288416fb53ab2e6ae6'], + }), + ('xlsx', '0.6.5', { + 'checksums': ['378c5ed475a3d7631ea1ea13e0a69d619c1a52260922abda42818752dbb32107'], + }), + ('uroot', '2.1-2', { + 'checksums': ['bd7fd9e35928d09d0e8fae9e4359a2b2bca6e6865b278436319e2f91db0e4b37'], + }), + ('forecast', '8.16', { + 'checksums': ['9f01eb895a883a7e1e23725b167b46edc1b0b152fd4120278aaa5f7b2621767f'], + }), + ('fma', '2.4', { + 'checksums': ['69a94c3bd464176a80232d49fcd04d478d4dd59f9bf128d6a9f46e49612d27f4'], + }), + ('expsmooth', '2.3', { + 'checksums': ['ac7da36347f983d6ec71715daefd2797fe2fc505c019f4965cff9f77ce79982a'], + }), + ('fpp', '0.5', { + 'checksums': ['9c87dd8591b8a87327cae7a03fd362a5492495a96609e5845ccbeefb96e916cb'], + }), + ('tensor', '1.5', { + 'checksums': ['e1dec23e3913a82e2c79e76313911db9050fb82711a0da227f94fc6df2d3aea6'], + }), + ('polyclip', '1.10-0', { + 'checksums': ['74dabc0dfe5a527114f0bb8f3d22f5d1ae694e6ea9345912909bae885525d34b'], + }), + ('goftest', '1.2-3', { + 'checksums': ['3a5f74b6ae7ece5b294781ae57782abe12375d61789c55ff5e92e4aacf347f19'], + }), + ('spatstat.utils', '2.3-1', { + 'checksums': ['5b914308df0585993084b5e95967864eea0314c98ed6af58267b64b2235dfe22'], + }), + ('spatstat.data', '2.2-0', { + 'checksums': ['d3943bb4f6509d60bf68e79ce4533c5ec5261f411da6b0ef5238c124fc37c3e5'], + }), + ('spatstat.geom', '2.4-0', { + 'checksums': ['32b89a409ce87ffe901e4c8720a26cac9629f9816e163c4ad68b7aa012d69e67'], + }), + ('spatstat.sparse', '2.1-1', { + 'checksums': ['9a35ad69715b767b3ae60b02dce05ccf108fcccdf95bbc8f7d02557bcbde7303'], + }), + ('spatstat.random', '2.2-0', { + 'checksums': ['45f0bbdb9dbd53b6c4151c3cdd098451cf787729717ccbb063cd1f33910e604d'], + }), + ('spatstat.core', '2.4-4', { + 'checksums': ['e38c39efe8b14d6e8fdbee8dd870b90c52f78ea571ab7988fd3685f48347d13b'], + }), + ('spatstat.linnet', '2.3-2', { + 'checksums': ['9c78a4b680debfff0f3ae934575c30d03ded49bc9a7179475384af0ebaf13778'], + }), + ('spatstat', '2.3-4', { + 'checksums': ['4ea0f8d70b926b92bf4a06521f985a0bb6d573619f5d526957c87860ccb999da'], + }), + ('pracma', '2.3.8', { + 'checksums': ['2302d454406e72711714732658d0c59c9d5a1ead698f22ee23f38cba63d42764'], + }), + ('RCurl', '1.98-1.7', { + 'checksums': ['2ac22d0160633fe3b6b26f3eda5df839eee1120f0111e1172f0fc801f874188d'], + }), + ('bio3d', '2.4-3', { + 'checksums': ['c6031f0d9033260a938171d0fa70720962e352935eb7bd2ddb9b92b93abe6a74'], + }), + ('AUC', '0.3.2', { + 'checksums': ['836b25b654a82f6ab69b86be95acc22a214da0ad06d71eab787ae1ebe721ae1f'], + }), + ('interpretR', '0.2.4', { + 'checksums': ['4c08a6dffd6fd5764f27812f3a085c53e6a21d59ae82d903c9c0da93fd1dd059'], + }), + ('cvAUC', '1.1.4', { + 'checksums': ['48b4a3c34e9beb63239e9c7372dd125fe87648262ad5490e0bee2a1f14285ed4'], + }), + ('SuperLearner', '2.0-28', { + 'checksums': ['5f42233abd48f1740c33aae1ec4ad8e9952fddb5df1ee49ff2d43d5d89f05601'], + }), + ('mediation', '4.5.0', { + 'checksums': ['210206618787c395a67689be268283df044deec7199d9860ed95218ef1e60845'], + }), + ('CVST', '0.2-3', { + 'checksums': ['efa296230395f323c2a398a7b386e3a88e75a5b9b645307459d0b7c14d03f32d'], + }), + ('DRR', '0.0.4', { + 'checksums': ['93e365a4907e301ae01f7d943e6bdcda71ef23c51a4759ba3c94bcf842d4e0f8'], + }), + ('dimRed', '0.2.5', { + 'checksums': ['ab043bcbac4636faadb81c0654cab58aeeec850fba3f8b7a749bea8a58c30efd'], + }), + ('ddalpha', '1.3.13', { + 'checksums': ['e4a60a4e0950a3587db2a2d5958ab4fbe07b2548f7c3d4795912fe45c77a4eae'], + }), + ('RcppRoll', '0.3.0', { + 'checksums': ['cbff2096443a8a38a6f1dabf8c90b9e14a43d2196b412b5bfe5390393f743f6b'], + }), + ('adabag', '4.2', { + 'checksums': ['47019eb8cefc8372996fbb2642f64d4a91d7cedc192690a8d8be6e7e03cd3c81'], + }), + ('parallelMap', '1.5.1', { + 'checksums': ['c108a634a335ed47b0018f532a52b032487e239c5061f939ba32355dfefde7e1'], + }), + ('ParamHelpers', '1.14', { + 'checksums': ['b17652d0a69de3241a69f20be4ad1bfe02c413328a17f3c1ac7b73886a6ba2eb'], + }), + ('ggvis', '0.4.7', { + 'checksums': ['9e6b067e11d497c796d42156570e2481afb554c5db265f42afbb74d2ae0865e3'], + }), + ('mlr', '2.19.0', { + 'checksums': ['1149c9b453896481c85906045aa82d511d96979ddecbe5a3faf04f9f4a5e6113'], + }), + ('unbalanced', '2.0', { + 'checksums': ['9be32b1ce9d972f1abfff2fbe18f5bb5ba9c3f4fb1282063dc410b82ad4d1ea2'], + }), + ('RSNNS', '0.4-14', { + 'checksums': ['7f6262cb2b49b5d5979ccce9ded9cbb2c0b348fd7c9eabc1ea1d31c51a102c20'], + }), + ('abc.data', '1.0', { + 'checksums': ['b242f43c3d05de2e8962d25181c6b1bb6ca1852d4838868ae6241ca890b161af'], + }), + ('abc', '2.2.1', { + 'checksums': ['db52a397a204a0040ec1368ae217cf7b0d8e99e2567927dbe3ae89f93d1de598'], + }), + ('lhs', '1.1.5', { + 'checksums': ['7a3c6fdcc953490e51026e17a0b1a9dc0ca8d03e6fc989457a7cdda2075b6339'], + }), + ('tensorA', '0.36.2', { + 'checksums': ['8e8947566bd3b65a54de4269df1abaa3d49cf5bfd2a963c3274a524c8a819ca7'], + }), + ('EasyABC', '1.5', { + 'checksums': ['1dd7b1383a7c891cafb34d9cec65d92f1511a336cff1b219e63c0aa791371b9f'], + }), + ('whisker', '0.4', { + 'checksums': ['7a86595be4f1029ec5d7152472d11b16175737e2777134e296ae97341bf8fba8'], + }), + ('roxygen2', '7.2.0', { + 'checksums': ['2ebfcfd567b9db6c606c6d42be1645b4e987f987995a2ad8954fa963a519448b'], + }), + ('git2r', '0.30.1', { + 'checksums': ['85d913ddc7659e32c1b98ebc247fa1cc1b7717a5bd413fa78ea84696986ca840'], + }), + ('rversions', '2.1.1', { + 'checksums': ['79aaacf5a1258d91ac0ddedf3c8c16a2d10d39010993dcc7b0a2638afee27cb1'], + }), + ('xopen', '1.0.0', { + 'checksums': ['e207603844d69c226142be95281ba2f4a056b9d8cbfae7791ba60535637b3bef'], + }), + ('sessioninfo', '1.2.2', { + 'checksums': ['f56283857c53ac8691e3747ed48fe03e893d8ff348235bff7364658bcfb0c7cb'], + }), + ('rcmdcheck', '1.4.0', { + 'checksums': ['bbd4ef7d514b8c2076196a7c4a6041d34623d55fbe73f2771758ce61fd32c9d0'], + }), + ('remotes', '2.4.2', { + 'checksums': ['f2ef875f24a485bf4f55a8c830f87cdd5db868f9a8cdb624dc452d0bf66ba516'], + }), + ('clisymbols', '1.2.0', { + 'checksums': ['0649f2ce39541820daee3ed408d765eddf83db5db639b493561f4e5fbf88efe0'], + }), + ('ini', '0.3.1', { + 'checksums': ['7b191a54019c8c52d6c2211c14878c95564154ec4865f57007953742868cd813'], + }), + ('gitcreds', '0.1.1', { + 'checksums': ['b14aaf4e910a9d2d6c65c93e645f0b0159c00898e669f917f83c03dfedb1dfea'], + }), + ('gh', '1.3.0', { + 'checksums': ['a44039054e8ca56496f2d9c7a10cdadf4a7383bc91086e768ba7e7f1fbcaed1c'], + }), + ('credentials', '1.3.2', { + 'checksums': ['2ffa7c11bedbfa034adf553d0a2f2e4f6a496b858af753a09a89219cff9028b8'], + }), + ('gert', '1.6.0', { + 'checksums': ['8c440aeebabf1cb3b57124ec9280e0f46b2ab56f2bca07d72b5c7a7f4edc2964'], + }), + ('usethis', '2.1.6', { + 'checksums': ['31dc6707577065ac1d4acb7d4cbf135942727c5cc2699092198c544be86f6818'], + }), + ('covr', '3.5.1', { + 'checksums': ['a54cfc3623ea56084158ac5d7fe33f216f45191f6dcddab9c9ed4ec1d9d8ac6c'], + }), + ('devtools', '2.4.3', { + 'checksums': ['e42159a9bca0b219170e76c282862e27ca283649d6cbf6a868175d8982e06b4f'], + }), + ('Rook', '1.1-1', { + 'checksums': ['00f4ecfa4c5c57018acbb749080c07154549a6ecaa8d4130dd9de79427504903'], + }), + ('Cairo', '1.5-15', { + 'checksums': ['bb3ab1ff6431c15eb01a66ddf90695cd9a2af3d5a384753f5180cd0401d2e89d'], + }), + ('RMTstat', '0.3.1', { + 'checksums': ['bb4827d76106f5377044cd2b230208881eb714cae65f512f4b95988d9b162ae4'], + }), + ('Lmoments', '1.3-1', { + 'checksums': ['7c9d489a08f93fa5877e2f233ab9732e0d1b2761596b3f6ac91f2295e41a865d'], + }), + ('distillery', '1.2-1', { + 'checksums': ['4b88f0b34e472b9134ad403fb32283424f1883a5943e52c55f1fe05995efb5fa'], + }), + ('extRemes', '2.1-2', { + 'checksums': ['a7a38dc9a876967d54843872b4355c65e1910c324b0630f91a50009c2f3005a7'], + }), + ('tkrplot', '0.0-26', { + 'checksums': ['dd66264c2553f6927aff297c6b1c3b61867d6c63aec080f40a1e9d53cfc9d120'], + }), + ('misc3d', '0.9-1', { + 'checksums': ['a07bbb0de153e806cd79675ed478d2d9221cff825654f59a71a9cf61f4293d65'], + }), + ('multicool', '0.1-12', { + 'checksums': ['487d28d9c3c606be0cf56e2d8f8b0d79fb71949c68886ea9251fbb1c01664a36'], + }), + ('plot3D', '1.4', { + 'checksums': ['d04a45197646fb36bc38870c1c2351cb56b912bd772b1ebfa25eaeef35fda9c0'], + }), + ('plot3Drgl', '1.0.3', { + 'checksums': ['85421213e01e1b5f8b929ee1644232f37bacd723305e549c32850f6b6d6924a4'], + }), + ('OceanView', '1.0.6', { + 'checksums': ['2c5165975d6c49fdc83a892cb0406584928dd44000c9774fffc00fbd2fec86f3'], + }), + ('ks', '1.13.5', { + 'checksums': ['d1c4d06d704f301628455787ba929add1e774debc343d0952a768abea6cc7815'], + }), + ('logcondens', '2.1.6', { + 'checksums': ['785bbda00b9a25e56440e11356ac219cfbf0fdf8b08c7b0728e53a9febe7a365'], + }), + ('Iso', '0.0-18.1', { + 'checksums': ['2fa5f78a7603cbae94a5e38e791938596a053d48c609a7c120a19cbb7d93c66f'], + }), + ('penalized', '0.9-52', { + 'checksums': ['d8e38e6c4e993c74998ca8f986b4e11e09c0b9971103e1d5c7ebdee75f6d6a21'], + }), + ('clusterRepro', '0.9', { + 'checksums': ['940d84529ff429b315cf4ad25700f93e1156ccacee7b6c38e4bdfbe2d4c6f868'], + }), + ('data.tree', '1.0.0', { + 'checksums': ['40674c90a5bd00f5185db9adbd221c6f1114043e69095249f5fa8b3044af3f5e'], + }), + ('influenceR', '0.1.0.1', { + 'checksums': ['63c46f1175fced33fb1b78d4d56e37fbee09b408945b0106dac36e3344cd4766'], + }), + ('visNetwork', '2.1.0', { + 'checksums': ['a2b91e7fbbd9d08a9929a5b2c891d9c0bca5977ad772fa37510d96656af1152f'], + }), + ('downloader', '0.4', { + 'checksums': ['1890e75b028775154023f2135cafb3e3eed0fe908138ab4f7eff1fc1b47dafab'], + }), + ('DiagrammeR', '1.0.9', { + 'checksums': ['64a426fe27110dddd8b0c1223ae4c397a2e553ae5e81ddd4ff67c026cfc40abf'], + }), + ('randomForestSRC', '3.1.0', { + 'checksums': ['a38fbd465eea87c65c7e7406972de84b1073560b40b1e9c806d46bf874a445c0'], + }), + ('sm', '2.2-5.7', { + 'checksums': ['2607a2cafc68d7e99005daf99e36f4a66eaf569ebb6b7500e962642cf58be80f'], + }), + ('pbivnorm', '0.6.0', { + 'checksums': ['07c37d507cb8f8d2d9ae51a9a6d44dfbebd8a53e93c242c4378eaddfb1cc5f16'], + }), + ('lavaan', '0.6-11', { + 'checksums': ['2cc193b82463a865cd8dadb7332409fdebf47e4035d5fe8dbf3414a7ae18d308'], + }), + ('matrixcalc', '1.0-5', { + 'checksums': ['5906e1ef06dbc18efc7a4b370adc180ef8941b5438119703bd981d1c76a06fca'], + }), + ('arm', '1.12-2', { + 'checksums': ['816ba1c31eec00feef472c57e280488d3d233b592f6f0a1a30e4abb903cb4f5d'], + }), + ('mi', '1.1', { + 'checksums': ['4d7a9790dbdc675605d70755af9aa80c21a279be5a5d712b22d77465772cc785'], + }), + ('servr', '0.24', { + 'checksums': ['d94e1d31802ce6bbab7a5838ff94cbca8cd998237d834ff25fedf7514f41a087'], + }), + ('rgexf', '0.16.2', { + 'checksums': ['6ee052b0de99d0c7492366b991d345a51b3d0cc890d10a68b8670e1bd4fc8201'], + }), + ('sem', '3.1-15', { + 'checksums': ['ad023b00e6e8eb20d107039caf1008c4b05104c7c69709e59c66fbddbf381316'], + }), + ('statnet.common', '4.6.0', { + 'checksums': ['ddad51128b50d465e1d1aca3a53b452810b9ba578e96b08b8f50f5850d7bb21d'], + }), + ('network', '1.17.2', { + 'checksums': ['9588a198807c8c68da147f479ca9af5bcb4468cf91b6a90b8044d313d9fa30f7'], + }), + ('rle', '0.9.2', { + 'checksums': ['803cbe310af6e882e27be61d37d660dbe5910ac1ee1eff61a480bcf724a04f69'], + }), + ('sna', '2.7', { + 'checksums': ['440fa4347c7b437e93c73127d34894068afd240d3128898474a7201e740a434d'], + }), + ('glasso', '1.11', { + 'checksums': ['4c37844b26f55985184a734e16b8fe880b192e3d2763614b0ab3f99b4530e30a'], + }), + ('huge', '1.3.5', { + 'checksums': ['9240866e2f773cd0ac8a02514871149d2babaa162a49e151eab9591ad42984ea'], + }), + ('d3Network', '0.5.2.1', { + 'checksums': ['5c798dc0c87c6d574abb7c1f1903346e6b0fec8adfd1df7aef5e4f9e7e3a09be'], + }), + ('BDgraph', '2.67', { + 'checksums': ['1f424c9254db3d553f6421b3c095b49c57683d25afefbdb195fed12f0c215268'], + }), + ('graphlayouts', '0.8.0', { + 'checksums': ['d724266778e4d97ca7a762253c293ffa3d09e2627cb1c3c7a654c690819defd0'], + }), + ('tweenr', '1.0.2', { + 'checksums': ['1805f575da6705ca4e5ec1c4605222fc826ba806d9ff9af41770294fe08ff69f'], + }), + ('ggforce', '0.3.3', { + 'checksums': ['2a283bb409da6b96929863a926b153bcc59b2c6f00551805db1d1d43e5929f2f'], + }), + ('tidygraph', '1.2.1', { + 'checksums': ['2fbdc2db18c5ad48c72f14d2d04111f4b0d4c434ad87c280eda3bcb98673ad36'], + }), + ('ggraph', '2.0.5', { + 'checksums': ['e36ad49dba92ee8652e18b1fb197be0ceb9f0a2f8faee2194453a62578449654'], + }), + ('qgraph', '1.9.2', { + 'checksums': ['baf190f6db30c4d5a3dc7ab5043b8ec0f79071d515c818c8e7666b9bcf2a4264'], + }), + ('HWxtest', '1.1.9', { + 'patches': ['HWxtest-1.1.9_add-fcommon.patch'], + 'checksums': [ + {'HWxtest_1.1.9.tar.gz': 'a37309bed4a99212ca104561239d834088217e6c5e5e136ff022544c706f25e6'}, + {'HWxtest-1.1.9_add-fcommon.patch': '4ce08c35035dbcc4edf092cdb405ae32c21c05b3786c15c0aa4bfe13bd81f451'}, + ], + }), + ('diveRsity', '1.9.90', { + 'checksums': ['b8f49cdbfbd82805206ad293fcb2dad65b962fb5523059a3e3aecaedf5c0ee86'], + }), + ('doSNOW', '1.0.20', { + 'checksums': ['917cabed166aa2d1ec291691c17e1e3d344e858543e1682e3a442cc0c504bbb8'], + }), + ('geepack', '1.3.4', { + 'checksums': ['efc73fc92429973a5dc29b0913ac45ec364a4a264140cf388df54d4873d458d9'], + }), + ('biom', '0.3.12', { + 'checksums': ['4ad17f7811c7346dc4923bd6596a007c177eebb1944a9f46e5674afcc5fdd5a1'], + }), + ('pim', '2.0.2', { + 'checksums': ['1195dbdbd67348dfef4b6fc34fcec643da685ebe58d34bbe049ab121aca9944f'], + }), + ('minpack.lm', '1.2-2', { + 'checksums': ['c70956122528575433c57a5669e26f4f9b1e160b004f135a38658c2c2634df87'], + }), + ('rootSolve', '1.8.2.3', { + 'checksums': ['b5b3d1641642a3fd1279dbd1245f968d2331ac9588d77f872b113f7dc4594ba0'], + }), + ('diagram', '1.6.5', { + 'checksums': ['e9c03e7712e0282c5d9f2b760bafe2aac9e99a9723578d9e6369d60301f574e4'], + }), + ('FME', '1.3.6.2', { + 'checksums': ['65a200f8171e27f0a3d7ffce3e49b01561f219a11f3cb515ff613a45927ff618'], + }), + ('bmp', '0.3', { + 'checksums': ['bdf790249b932e80bc3a188a288fef079d218856cf64ffb88428d915423ea649'], + }), + ('tiff', '0.1-11', { + 'checksums': ['b8c3ea15114d972f8140541c7b01f5ce2e5322af1f63c1a083aaf766fd3eec75'], + }), + ('readbitmap', '0.1.5', { + 'checksums': ['737d7d585eb33de2c200da64d16781e3c9522400fe2af352e1460c6a402a0291'], + }), + ('imager', '0.42.13', { + 'checksums': ['d90a9893d11190ba249c7fae5bd6517a77907efbce2941452cb2aec57bb5cf7f'], + }), + ('signal', '0.7-7', { + 'checksums': ['67a015c46d67de7548c3adb83a1b22524de75501a861d91668c3c2ea761a4e61'], + }), + ('tuneR', '1.4.0', { + 'checksums': ['561eeae1bfe10ac4a950d2a60afc6db05d28557a8cb932e00ac7b7f57b6ea0e9'], + }), + ('pastecs', '1.3.21', { + 'checksums': ['8c1ef2affe88627f0b23295aa5edb758b8fd6089ef09f60f37c46445128b8d7c'], + }), + ('audio', '0.1-10', { + 'checksums': ['82c731a88c741a6b4efe5069ce7dc2f765932d769323ac8d3fbb84ac30afc4dd'], + }), + ('fftw', '1.0-7', { + 'checksums': ['f69f63467b84e107f3e0b18d1f034a37140545e6f50e6be3b887df2b4eec3a1e'], + }), + ('seewave', '2.2.0', { + 'checksums': ['943b1864fe50359b253a4511522c00b0a7dbc1ce5b4033516086a0410fa1212e'], + }), + ('gsw', '1.0-6', { + 'checksums': ['147ce73da75777799af9cb712862ef25b52fcae146a64ce0a525460ddfea1deb'], + }), + ('wk', '0.6.0', { + 'checksums': ['af2c2837056a6dcc9f64d5ace29601d6d668c95769f855ca0329648d7326eaf5'], + }), + ('s2', '1.0.7', { + 'checksums': ['2010c1c6ae29938ec9cd153a8b2c06a333ea4d647932369b2fc7d0c68d6d9e3f'], + }), + ('sf', '1.0-7', { + 'checksums': ['d0731fab9438d73a55af7232f0474b36f4b2a4e6d66adaa141632f4a60265453'], + }), + ('oce', '1.7-6', { + 'checksums': ['3aaa7600bd2b322062cdeb0a0d910f6fa872fecc4dbc2e30665d51acb12261a8'], + }), + ('ineq', '0.2-13', { + 'checksums': ['e0876403f59a3dfc2ea7ffc0d965416e1ecfdecf154e5856e5f54800b3efda25'], + }), + ('soundecology', '1.3.3', { + 'checksums': ['276164d5eb92c78726c647be16232d2443acbf7061371ddde2672b4fdb7a069a'], + }), + ('memuse', '4.2-1', { + 'checksums': ['f5e9dbaad4efbbfe219a93f446e318a00cad5b294bfc60ca2146eca894b47cf3'], + }), + ('pinfsc50', '1.2.0', { + 'checksums': ['ed1fe214b9261feef8abfbf724c2bd9070d68e99a6ea95208aff2c57bbef8794'], + }), + ('vcfR', '1.12.0', { + 'checksums': ['dd87ff010365de363864a44ca49887c0fdad0dd18d0d9c66e44e39c2d4581d52'], + }), + ('glmmML', '1.1.3', { + 'checksums': ['24e34f0834bded06d52cbd9cb025dc65ea2db2faa7dbee01d545aa33eea35e7c'], + }), + ('cowplot', '1.1.1', { + 'checksums': ['c7dce625b456dffc59ba100c816e16226048d12fdd29a7335dc1f6f6e12eed48'], + }), + ('tsne', '0.1-3.1', { + 'checksums': ['14abc65bc0a3f3ed63c04dda19620e483a21d1f5f33feb74aba9f3221434d888'], + }), + ('sn', '2.0.2', { + 'checksums': ['957b49027c2111f51893433e902486141a942a5ed384ca605714605de80d1790'], + }), + ('tclust', '1.5-1', { + 'checksums': ['73328b30774bb0767d613d7f2b60b75706b19fab864c712645ea18181f1af327'], + }), + ('ranger', '0.14.1', { + 'checksums': ['5d99401d555da1cfb11c70e59d1bb545ce48720073a06a2a32eb396f622dee1b'], + }), + ('hexbin', '1.28.2', { + 'checksums': ['6241f8d3a6c6be2c1c693c3ddb99554bc103e3c6cf602d0c2787c0ce6fd1702d'], + }), + ('lobstr', '1.1.2', { + 'checksums': ['9bc533ed7e8f816097a03acfbca33308c9940ba26d02674f4ba06311cf3a1718'], + }), + ('pryr', '0.1.5', { + 'checksums': ['7b1653ec51850f4633cee8e2eb7d0b2724fb587b801539488b426cf88f0f770b'], + }), + ('moments', '0.14.1', { + 'checksums': ['2ed2b84802da132ae0cf826a65de5bfa85042b82e086be844002fe1ce270d864'], + }), + ('laeken', '0.5.2', { + 'checksums': ['22790f7157f23eb0b7b0b89e2ea53478fb3c0d15b5be8ad11525d3e6d5626cdc'], + }), + ('VIM', '6.1.1', { + 'checksums': ['7581adca64cf20b93d5a111da83f663215b4529868b065b3463c4238bca97739'], + }), + ('smoother', '1.1', { + 'checksums': ['91b55b82f805cfa1deedacc0a4e844a2132aa59df593f3b05676954cf70a195b'], + }), + ('dynamicTreeCut', '1.63-1', { + 'checksums': ['831307f64eddd68dcf01bbe2963be99e5cde65a636a13ce9de229777285e4db9'], + }), + ('beeswarm', '0.4.0', { + 'checksums': ['51f4339bf4080a2be84bb49a844c636625657fbed994abeaa42aead916c3d504'], + }), + ('vipor', '0.4.5', { + 'checksums': ['7d19251ac37639d6a0fed2d30f1af4e578785677df5e53dcdb2a22771a604f84'], + }), + ('ggbeeswarm', '0.6.0', { + 'checksums': ['bbac8552f67ff1945180fbcda83f7f1c47908f27ba4e84921a39c45d6e123333'], + }), + ('shinydashboard', '0.7.2', { + 'checksums': ['a56ee48572649830cd8d82f1caa2099411461e19e19223cbad36a375299f3843'], + }), + ('rrcov', '1.7-0', { + 'checksums': ['cbcca84a82d63fa50556aa8db29312b9bb588a638eb306ce4a81c271529228fd'], + }), + ('WriteXLS', '6.4.0', { + 'checksums': ['644b90a82683c668b6e05bb4f940111a42cd634f63a5b559351e8cd4274a19b7'], + }), + ('bst', '0.3-23', { + 'checksums': ['70957f1db8800bf0d628a9e6f72b7273329786dd119427790b326844591aa0f3'], + }), + ('pamr', '1.56.1', { + 'checksums': ['d0e527f2336ee4beee91eefb2a8f0dfa96413d9b5a5841d6fc7ff821e67c9779'], + }), + ('WeightSVM', '1.7-9', { + 'checksums': ['983733b618631d9ad754fb12f5e576912aff1f529cafdee4fddfd38d81ccc710'], + }), + ('mpath', '0.4-2.22', { + 'checksums': ['f9709532b2254befea7fd4046179ee60ebcb4ac1fa7b0564fe34643d22f59b44'], + }), + ('timereg', '2.0.2', { + 'checksums': ['b1f62be5d34d4d36c3b14cd3c719f936c9e3a80e2907bdeab240821267db3559'], + }), + ('peperr', '1.4', { + 'checksums': ['0a44f40cfeb298cbe990dba0d9c979070d7a8659581dea09dd3238526fb59f39'], + }), + ('heatmap3', '1.1.9', { + 'checksums': ['594c33947b2be2cc8a592075f41a0df2398c892add7d63a15c613a5eeb8fdb69'], + }), + ('GlobalOptions', '0.1.2', { + 'checksums': ['47890699668cfa9900a829c51f8a32e02a7a7764ad07cfac972aad66f839753e'], + }), + ('circlize', '0.4.15', { + 'checksums': ['d602d55313fe7c675109153d6ed3b99bdba5292e1deefed71d5a21e0db595cc7'], + }), + ('GetoptLong', '1.0.5', { + 'checksums': ['8c237986ed3dfb72d956ad865ef7768644eebf144675ad66140acfd1aca9d701'], + }), + ('dendextend', '1.15.2', { + 'checksums': ['4ba3885b66694589d455ffef31c218fe653fa25aff3efb7e8db6c25008d2921b'], + }), + ('RInside', '0.2.17', { + 'checksums': ['0be28c44ee34cba669a7264d2b99c289230645598ca78e21682559dc31824348'], + }), + ('limSolve', '1.5.6', { + 'checksums': ['b97ea9930383634c8112cdbc42f71c4e93fe0e7bfaa8f401921835cb44cb49a0'], + }), + ('dbplyr', '2.2.0', { + 'checksums': ['4a6e092c9349f8b3030c752f8c6cc551637d6fbca3c84be0da89968f1e9adce1'], + }), + ('modelr', '0.1.8', { + 'checksums': ['825ba77d95d60cfb94920bec910872ca2ffe7790a44148b2992be2759cb361c4'], + }), + ('debugme', '1.1.0', { + 'checksums': ['4dae0e2450d6689a6eab560e36f8a7c63853abbab64994028220b8fd4b793ab1'], + }), + ('reprex', '2.0.1', { + 'checksums': ['0e6d8667cacb63135476a766fba3a4f91e5ad86274ea66d2b1e6d773b5ca6426'], + }), + ('selectr', '0.4-2', { + 'checksums': ['5588aed05f3f5ee63c0d29953ef53da5dac7afccfdd04b7b22ef24e1e3b0c127'], + }), + ('rvest', '1.0.2', { + 'checksums': ['89bb477e0944c80298a52ccf650db8f6377fd7ed3c1bc7034d000f695fdf05a4'], + }), + ('dtplyr', '1.2.1', { + 'checksums': ['2640e9cde4eaa06f02cff29e3f2b99fdd08488df07ea2e6629b2ed6a8285d0f3'], + }), + ('gargle', '1.2.0', { + 'checksums': ['4d46ca2933f19429ca5a2cfe47b4130a75c7cd9931c7758ade55bac0c091d73b'], + }), + ('googledrive', '2.0.0', { + 'checksums': ['605c469a6a086ef4b049909c2e20a35411c165ce7ce4f62d68fd39ffed8c5a26'], + }), + ('ids', '1.0.1', { + 'checksums': ['b6212a186063c23116c5cbd3cca65dbb8977dd737261e4526ebee8f64852cfe8'], + }), + ('googlesheets4', '1.0.0', { + 'checksums': ['0a107d76aac99d6db48d97ce55810c1412b2197f457b8476f676169a36c7cc7a'], + }), + ('tidyverse', '1.3.1', { + 'checksums': ['83cf95109d4606236274f5a8ec2693855bf75d3a1b3bc1ab4426dcc275ed6632'], + }), + ('R.rsp', '0.44.0', { + 'checksums': ['8969075bdcabd43bad40eef6b82223e119426279fded041163fd41e55cee3a59'], + }), + ('gdistance', '1.3-6', { + 'checksums': ['2ccabeb2f8cf44630c0bd2da79815fe357b812737ebece1bed8f90b27c126a24'], + }), + ('vioplot', '0.3.7', { + 'checksums': ['06475d9a47644245ec91598e9aaef7db1c393802d9fc314420ac5139ae56adb6'], + }), + ('emulator', '1.2-21', { + 'checksums': ['9b50b2c1e673dbc5e846a4fa72e8bd03434add9f659bde6d7b0c4f1bbd713346'], + }), + ('gmm', '1.6-6', { + 'checksums': ['b1b321ad1b4a4a14a2825a2c3eb939ce2f2bcef995247a1d638eca250e59739b'], + }), + ('tmvtnorm', '1.5', { + 'checksums': ['1c7a606bdce4319a6fdb4180fef499c293df3412d8583e296869521ece5460fe'], + }), + ('IDPmisc', '1.1.20', { + 'checksums': ['bcb9cd7b8097e5089d1936286ef310ac2030ea7791350df706382ba470afc67f'], + }), + ('gap.datasets', '0.0.5', { + 'checksums': ['2299b52efee322ce0eaf66c66ae440f46618b647701cd741568c08bdc3111c9c'], + }), + ('plotly', '4.10.0', { + 'checksums': ['bd995c654dbc8c09a84adaba8def99766919e3894caf18b551bb26b2f591389a'], + }), + ('gap', '1.2.3-6', { + 'checksums': ['0ef352aa98a3bf27908b256f27a903058502176ea9112a4ffc41928ebbc48c22'], + }), + ('qrnn', '2.0.5', { + 'checksums': ['3bd83ee8bd83941f9defdab1b5573d0ceca02bf06759a67665e5b9358ff92f52'], + }), + ('TMB', '1.9.0', { + 'checksums': ['2c9dd281d911c2cb1cc01c6a8e114826891280f15e0ed4a00b4f195e15df25d7'], + }), + ('glmmTMB', '1.1.3', { + 'checksums': ['b9d1e97587b213e52ff304f62480ddee77c658f29a7e99334a4032d0df60b275'], + }), + ('gmp', '0.6-5', { + 'checksums': ['8ae76f3d17542eab3e7468341dabeebe28b11da8c1b4b3f7bbdb00d379689e52'], + }), + ('ROI', '1.0-0', { + 'checksums': ['b0d87fb4ed2137d982734f3c5cdc0305aabe6e80f95de29655d02a9e82a0a341'], + }), + ('Rglpk', '0.6-4', { + 'checksums': ['a28dbc3130b9618d6ed2ef718d2c55df8ed8c44a47161097c53fe15fa3bfbfa6'], + }), + ('ROI.plugin.glpk', '1.0-0', { + 'checksums': ['b361b0d4222d74b21432cdc6990762affecdbcec8fd6bbdb13b78b59cb04b444'], + }), + ('spaMM', '3.12.0', { + 'checksums': ['ff3af7ab107655bd521bba68093696f343de29294602d00dee7601cc91245f2d'], + }), + ('qgam', '1.3.4', { + 'checksums': ['7633120a48a85ab73f7e1bc8b02c98319285c2abd05f9d13d25339d7aaaacacb'], + }), + ('DHARMa', '0.4.5', { + 'checksums': ['0fcd41099ababedff010d8fe05f8efa630cceb829dbb87af8b8d650ad49d88bf'], + }), + ('mvnfast', '0.2.7', { + 'checksums': ['b67d50936c9a466977669ef6bb7b23df8e7c90a820ac916328c20e41ef8e0b72'], + }), + ('bridgesampling', '1.1-2', { + 'checksums': ['54ecd39aa2e36d4d521d3d36425f9fe56a3f8547df6048c814c5931d790f3e6b'], + }), + ('BayesianTools', '0.1.7', { + 'checksums': ['af49389bdeb794da3c39e1d63f59e6219438ecb8613c5ef523b00c6fed5a600c'], + }), + ('gomms', '1.0', { + 'checksums': ['52828c6fe9b78d66bde5474e45ff153efdb153f2bd9f0e52a20a668e842f2dc5'], + }), + ('feather', '0.3.5', { + 'checksums': ['50ff06d5e24d38b5d5d62f84582861bd353b82363e37623f95529b520504adbf'], + }), + ('dummies', '1.5.6', { + 'checksums': ['7551bc2df0830b98c53582cac32145d5ce21f5a61d97e2bb69fd848e3323c805'], + }), + ('SimSeq', '1.4.0', { + 'checksums': ['5ab9d4fe2cb1b7634432ff125a9e04d2f574fed06246a93859f8004e10790f19'], + }), + ('uniqueAtomMat', '0.1-3-2', { + 'checksums': ['f7024e73274e1e76a870ce5e26bd58f76e8f6df0aa9775c631b861d83f4f53d7'], + }), + ('PoissonSeq', '1.1.2', { + 'checksums': ['6f3dc30ad22e33e4fcfa37b3427c093d591c02f1b89a014d85e63203f6031dc2'], + }), + ('aod', '1.3.2', { + 'checksums': ['9b85be7b12b31ac076f2456853a5b18d8a79ce2b86d00055264529a0cd28515c'], + }), + ('cghFLasso', '0.2-1', { + 'checksums': ['6e697959b35a3ceb2baa1542ef81f0335006a5a9c937f0173c6483979cb4302c'], + }), + ('svd', '0.5.1', { + 'checksums': ['d4dcb650757bfbf8ae388622686be20e8d55cca68096146a30aee8ced96aa113'], + }), + ('Rssa', '1.0.4', { + 'checksums': ['4115b516f6782d52f02695bbbd52921a474aafc7232d49aca85010f1c33b08a7'], + }), + ('JBTools', '0.7.2.9', { + 'checksums': ['b33cfa17339df7113176ad1832cbb0533acf5d25c36b95e888f561d586c5d62f'], + }), + ('RUnit', '0.4.32', { + 'checksums': ['23a393059989000734898685d0d5509ece219879713eb09083f7707f167f81f1'], + }), + ('DistributionUtils', '0.6-0', { + 'checksums': ['7443d6cd154760d55b6954142908eae30385672c4f3f838dd49876ec2f297823'], + }), + ('gapfill', '0.9.6-1', { + 'checksums': ['22f04755873e34a9077bb1b1de8d16f5bc56cb8c395c4f797f9ad0b209b1b996'], + }), + ('gee', '4.13-23', { + 'checksums': ['f8217c3bb077cb805e0cd7761efecac1231035bfc195246b9f185f744c550e6c'], + }), + ('Matching', '4.10-2', { + 'checksums': ['1e75dc61553c1687b2b520dc52688409c2e84285e4b6c16c94d8d85fd5ccece0'], + }), + ('MatchIt', '4.4.0', { + 'checksums': ['e79a96e7972097829a839c855c0bc97638eeae4b148e01340dfa5296323e6c06'], + }), + ('RItools', '0.1-18', { + 'checksums': ['714685d8e04acafe5d5ddf93edac69afec0c62045a7b93478734771b6a0fa928'], + }), + ('mitools', '2.4', { + 'checksums': ['f204f3774e29d79810f579f128de892539518f2cbe6ed237e08c8e7283155d30'], + }), + ('survey', '4.1-1', { + 'checksums': ['05e89a1678a39e32bfb41af8a31d643b04fc4d2660a96e701825e6bffcd75a52'], + }), + ('rlemon', '0.2.0', { + 'checksums': ['e06792875f05a0c6cd637b7bf16bd51c3891e0df6bad78ffba0ee195abe8d3a0'], + }), + ('optmatch', '0.10.3', { + 'checksums': ['ed09be71b0e293273412d4a181c1f085ad93f4038996dc7c90beae8466574aeb'], + }), + ('SPAtest', '3.1.2', { + 'checksums': ['b3d74ed2b0a6475a9966dd50eb5d363d0b2985636271dfbf82f0472b8d22b9f4'], + }), + ('RSpectra', '0.16-1', { + 'checksums': ['cba5d3403d6a7d0e27abf6279fbfea6e0d0fe36b28c688bbadb8eafb3841329a'], + }), + ('SKAT', '2.2.4', { + 'checksums': ['2b349896560ad18c3428e245fc25b17e9c2946676044fa56025ddf9c87ff08bf'], + }), + ('GillespieSSA', '0.6.2', { + 'checksums': ['f4233b4a44c7d4b9e3459b1efa9a8087a602ef93806b4d70eadbb537b67567c2'], + }), + ('startupmsg', '0.9.6', { + 'checksums': ['1d60ff13bb260630f797bde66a377a5d4cd65d78ae81a3936dc4374572ec786e'], + }), + ('distr', '2.8.0', { + 'checksums': ['bb7df05d6b946bcdbbec2e3397c7c7e349b537cabfcbb13a34bcf6312a71ceb7'], + }), + ('distrEx', '2.8.0', { + 'checksums': ['b064cde7d63ce93ec9969c8c4463c1e327758b6f8ea7765217d77f9ba9d590bf'], + }), + ('minerva', '1.5.10', { + 'checksums': ['2f26353d8fcc989ac698c4e45bb683801b1a7bb60b14903d05a4d73c629c590f'], + }), + ('KODAMA', '1.9', { + 'checksums': ['e4f8bbfeae9d2f628f7338c708a538aae481a633e59e86727f9b6f9c72920ecf'], + }), + ('locfdr', '1.1-8', { + 'checksums': ['42d6e12593ae6d541e6813a140b92591dabeb1df94432a515507fc2eee9a54b9'], + }), + ('ica', '1.0-2', { + 'checksums': ['e721596fc6175d3270a60d5e0b5b98be103a8fd0dd93ef16680af21fe0b54179'], + }), + ('dtw', '1.22-3', { + 'checksums': ['df7cf9adf613422ddb22a160597eb5f5475ab6c67c0d790092edb7f72ba98f00'], + }), + ('SDMTools', '1.1-221.2', { + 'checksums': ['f0dd8c5f98d2f2c012536fa56d8f7a58aaf0c11cbe3527e66d4ee3194f6a6cf7'], + }), + ('ggridges', '0.5.3', { + 'checksums': ['f5eafab17f2d4a8a2a83821ad3e96ae7c26b62bbce9de414484c657383c7b42e'], + }), + ('TFisher', '0.2.0', { + 'checksums': ['bd9b7484d6fba0165841596275b446f85ba446d40e92f3b9cb37381a3827e76f'], + }), + ('lsei', '1.3-0', { + 'checksums': ['6289058f652989ca8a5ad6fa324ce1762cc9e36c42559c00929b70f762066ab6'], + }), + ('npsurv', '0.5-0', { + 'checksums': ['bc87db76e7017e178c2832a684fcd49c42e20054644b21b586413d26c8821dc6'], + }), + ('fitdistrplus', '1.1-8', { + 'checksums': ['f3c72310f40773b3839a9506c3cb781d044e09b94f2f38d332bb24e5f9960f5a'], + }), + ('here', '1.0.1', { + 'checksums': ['08ed908033420d3d665c87248b3a14d1b6e2b37844bf736be620578c20ca346b'], + }), + ('RcppTOML', '0.1.7', { + 'checksums': ['2f09f00cbee6c6eeff5d5f0195c10de0155496de15fbe8189c18627ee3090541'], + }), + ('reticulate', '1.25', { + 'checksums': ['2125af9e75939c3b7c0dc74f28f42606e816d63aa1143baf631c318ff5ff3a2c'], + }), + ('hdf5r', '1.3.5', { + 'installopts': '--configure-args="--with-hdf5=$EBROOTHDF5/bin/h5cc"', + 'preinstallopts': "unset LIBS && ", + 'checksums': ['87b75173ab226a9fbaa5b28289349f3c56b638629560a172994b8f9323c1622f'], + }), + ('DTRreg', '1.7', { + 'checksums': ['f0fad2244d960cec8fc33d9a1078df359ceb0aadff980ce6149aa9f01c62223b'], + }), + ('pulsar', '0.3.7', { + 'checksums': ['78c9f7e3b2bf8a8d16a81d6ee43bb05b0c360219be473d920c8c8ccb2aba4e3d'], + }), + ('bayesm', '3.1-4', { + 'checksums': ['061b216c62bc72eab8d646ad4075f2f78823f9913344a781fa53ea7cf4a48f94'], + }), + ('gsl', '2.1-7.1', { + 'checksums': ['ee98d1382d37ffa77538a90ccdbf44affbf1710a9e66b8ada73fa72e67921985'], + }), + ('energy', '1.7-10', { + 'checksums': ['543de4875c46cc90e711e71c45b082d962fbb5158a094f9f10d37d3f57e1bea7'], + }), + ('compositions', '2.0-4', { + 'checksums': ['7b9c7a3bf654fb02d9eb1b4a7566469b2f5232f3b2c1b324c02239fd31060faf'], + }), + ('clustree', '0.4.4', { + 'checksums': ['7a6100f88c9a6e8d10b253ee227ecf1dc4e84e418eb8da64cd801d2a158b956f'], + }), + ('tweedie', '2.3.3', { + 'checksums': ['a032cad512dac37a8619e6f66cb513eb82a88a5a2ffbe91e92c2d44d1756d0d9'], + }), + ('RcppGSL', '0.3.11', { + 'checksums': ['f094ea26c99b04d9e203986a1f2003f02472ceca0e2ef1c3beefd3ae80aeada8'], + }), + ('mvabund', version, { + 'checksums': ['ed6946c95609443584081100cd38624d2309f7f5d210fd4b8ec12ad25bd27a06'], + }), + ('fishMod', '0.29', { + 'checksums': ['5989e49ca6d6b2c5d514655e61f75b019528a8c975f0d6056143f17dc4277a5d'], + }), + ('gllvm', '1.3.1', { + 'checksums': ['cd3f72b84f0c722e9c0b21c2b2de7683ec742345d7f8e62f67c8c93342c1a5c6'], + }), + ('grpreg', '3.4.0', { + 'checksums': ['fd57d20baf63d2cc5821998bca5c3fdcbe46c933c9553caa492911b12654d6ad'], + }), + ('trust', '0.1-8', { + 'checksums': ['952e348b62aec35988b103fd152329662cb6a451538f184549252fbf49d7dcac'], + }), + ('lpSolveAPI', '5.5.2.0-17.7', { + 'checksums': ['9ebc8e45ad73eb51e0b25049598a5bc758370cf89508e2328cf4bd93d68d55bb'], + }), + ('ergm', '4.2.2', { + 'checksums': ['ced92b0a32c78c85546d665c32fb3993fe77a3809aa88f43c3eee39e2577f2f0'], + }), + ('networkDynamic', '0.11.2', { + 'checksums': ['beefaf50eb8609528358b75f5814a8f1cdc4d2db8059b99be69919da2bc02beb'], + }), + ('tergm', '4.1.0', { + 'checksums': ['abff35b48b53a182d9424c78c5240bde1259b695c2328861000193bf88044a50'], + }), + ('ergm.count', '4.1.1', { + 'checksums': ['446893614ad8b41aa39c37c2bf45a167f575536bb6778b8ad1fbcddb7b934932'], + }), + ('tsna', '0.3.5', { + 'checksums': ['4ee2f773d573f0f4bd93131156fdccf01d7f1a3f725eff3e885021098c6bff65'], + }), + ('statnet', '2019.6', { + 'checksums': ['0903e1a81ed1b6289359cefd12da1424c92456d19e062c3f74197b69e536b29d'], + }), + ('aggregation', '1.0.1', { + 'checksums': ['86f88a02479ddc8506bafb154117ebc3b1a4a44fa308e0193c8c315109302f49'], + }), + ('ComICS', '1.0.4', { + 'checksums': ['0af7901215876f95f309d7da6e633c38e4d7faf04112dd6fd343bc15fc593a2f'], + }), + ('dtangle', '2.0.9', { + 'checksums': ['c375068c1877c2e8cdc5601cfd5a9c821645c3dff90ddef64817f788f372e179'], + }), + ('mcmc', '0.9-7', { + 'checksums': ['b7c4d3d5f9364c67a4a3cd49296a61c315ad9bd49324a22deccbacb314aa8260'], + }), + ('MCMCpack', '1.6-3', { + 'checksums': ['cb14ba20690b31fd813b05565484c866425f072a5ad99a5cbf1da63588958db3'], + }), + ('shinythemes', '1.2.0', { + 'checksums': ['37d68569ce838c7da9f0ea7e2b162ecf38fba2ae448a4888b6dd29c4bb5b2963'], + }), + ('csSAM', '1.2.4', { + 'checksums': ['3d6442ad8c41fa84633cbbc275cd67e88490a160927a5c55d29da55a36e148d7'], + }), + ('bridgedist', '0.1.1', { + 'checksums': ['14f67ce96dd8f1cb457614271b0b4376dd6fd3073a2e727a17c0964be67272cb'], + }), + ('asnipe', '1.1.16', { + 'checksums': ['be50f9fdef0f4bf9676b9c3c2906d0431afc678af55cf48b1119f9fc0adac44f'], + }), + ('liquidSVM', '1.2.4', { + 'patches': ['liquidSVM-1.2.4-fix_ppc_and_aarch64_build.patch'], + 'preinstallopts': 'LIQUIDSVM_TARGET="empty"', + 'checksums': [ + {'liquidSVM_1.2.4.tar.gz': '15a9c7f2930e2ed3f4c5bcd9b042884ea580d2b2e52e1c68041600c196046aba'}, + {'liquidSVM-1.2.4-fix_ppc_and_aarch64_build.patch': + '46b09e441c3b59af535f20d8db0dee7f1d6a7ddd511175d252115b53cb8b86f8'}, + ], + }), + ('oddsratio', '2.0.1', { + 'checksums': ['2097e7a8bf623379d55652de5dce4946d05163e85d30df50dc19055962bf60b5'], + }), + ('mltools', '0.3.5', { + 'checksums': ['7093ffceccdf5d4c3f045d8c8143deaa8ab79935cc6d5463973ffc7d3812bb10'], + }), + ('h2o', '3.36.1.2', { + 'checksums': ['d470dc71e637d589bf228e59ddb021ade240d74536323d8ca77ac1fb334d3535'], + }), + ('mlegp', '3.1.9', { + 'checksums': ['63296d17a162fdce0958b10f45cb7d5dab4b3ee29340528d33cedcae08a040b3'], + }), + ('itertools', '0.1-3', { + 'checksums': ['b69b0781318e175532ad2d4f2840553bade9637e04de215b581704b5635c45d3'], + }), + ('missForest', '1.5', { + 'checksums': ['417055a03b02ad8359cf1bdc8f89d49531a3a8ee2c98edf90c8a01432f44838d'], + }), + ('bartMachineJARs', '1.1', { + 'checksums': ['f2c31cb94d7485174a2519771127a102e35b9fe7f665e27beda3e76a56feeef2'], + }), + ('bartMachine', '1.2.6', { + 'checksums': ['5e1ac0033da5b41a96d95782886a167e51ff8e43822800e8d40874ff9c13847f'], + }), + ('lqa', '1.0-3', { + 'checksums': ['3889675dc4c8cbafeefe118f4f20c3bd3789d4875bb725933571f9991a133990'], + }), + ('PresenceAbsence', '1.1.10', { + 'checksums': ['59266ffdf702ab1ecca7cbcf0538afe38d1a15abea66056734b62c0c15609c7c'], + }), + ('GUTS', '1.2.3', { + 'checksums': ['40061ec1677def40b410b5ef90d01e0bcb0095abed1545513a33a01d4444adc2'], + }), + ('GenSA', '1.1.7', { + 'checksums': ['9d99d3d0a4b7770c3c3a6de44206811272d78ab94481713a8c369f7d6ae7b80f'], + }), + ('parsedate', '1.3.0', { + 'checksums': ['1e9399d6b16079e6cdc43fa33742d6b7e6e2b6bb2ba470bfe9d30d55b7be4cb0'], + }), + ('circular', '0.4-95', { + 'checksums': ['483d3e31e9c7afe59e6bcb98ad17c4f6333d19b6c70f948b168c9ee16e90bce2'], + }), + ('cobs', '1.3-5', { + 'checksums': ['7fae7da8f940975d544120c836e2d3b874f9b0cbab9631851ce986709f51c611'], + }), + ('resample', '0.6', { + 'checksums': ['1b958009b18c92a47971847c782af76952ea4e85d5f1e3e1e70fa35c67b95265'], + }), + ('MIIVsem', '0.5.8', { + 'checksums': ['a908f51e1598290d25864c358d57201bd50c1c40775d4d0405cbc8077bee61e1'], + }), + ('medflex', '0.6-7', { + 'checksums': ['d28107a4bbbb0ace1d571f0aa6884ee4c50d7731c04bceba207fd55a39b83b9c'], + }), + ('Rserve', '1.8-10', { + 'checksums': ['af63a28a4958dbe82597586494d0277272842bb3869db70c547d0896f1345d2c'], + }), + ('spls', '2.2-3', { + 'checksums': ['bbd693da80487eef2939c37aba199f6d811ec289828c763d9416a05fa202ab2e'], + }), + ('Boruta', '7.0.0', { + 'checksums': ['6ff520d27d68637058c33a34c547a656bb44d5e351b7cc7afed6cd4216275c78'], + }), + ('dr', '3.0.10', { + 'checksums': ['ce523c1bdb62a9dda30afc12b1dd96975cc34695c61913012236f3b80e24bf36'], + }), + ('CovSel', '1.2.1', { + 'checksums': ['b375d00cc567e125ff106b4357654f43bba3abcadeed2238b6dea4b7a68fda09'], + }), + ('tmle', '1.5.0.2', { + 'checksums': ['4772c352e8d3d9b5a0b7480c0e0962de4f5060fb7bf3fcb8ee4fa1cb10f93fd4'], + }), + ('ctmle', '0.1.2', { + 'checksums': ['e3fa0722cd87aa0e0b209c2dddf3fc44c6d09993f1e66a6c43285fe950948161'], + }), + ('BayesPen', '1.0', { + 'checksums': ['772df9ae12cd8a3da1d5b7d1f1629602c7693f0eb03945784df2809e2bb061b0'], + }), + ('inline', '0.3.19', { + 'checksums': ['0ee9309bb7dab0b97761ddd18381aa12bd7d54678ccd7bec00784e831f4c99d5'], + }), + ('BMA', '3.18.17', { + 'checksums': ['6d8c514fa179f8a48c2105b551a8a08e28ea4375d06150a4b8ab4ccda577daf5'], + }), + ('BCEE', '1.3.0', { + 'checksums': ['82afc9b8c6d617f5f728341960ae32922194f637c550916b3bea12c231414fa7'], + }), + ('bacr', '1.0.1', { + 'checksums': ['c847272e2c03fd08ed79b3b739f57fe881af77404b6fd087caa0c398c90ef993'], + }), + ('clue', '0.3-61', { + 'checksums': ['71311b16ce380fd9a8834be95b55b3d1b47e4ee2b8acb35b8d481138c314dc31'], + }), + ('bdsmatrix', '1.3-6', { + 'checksums': ['f9c871d54378408902931792b3dbf8bda863d6aa67af6a0472a6ec1c420760bc'], + }), + ('fftwtools', '0.9-11', { + 'checksums': ['f1f0c9a9086c7b2f72c5fb0334717cc917213a004eaef8448eab4940c9852c7f'], + }), + ('imagerExtra', '1.3.2', { + 'checksums': ['0ebfa1eabb89459d774630ab73c7a97a93b9481ea5afc55482975475acebd5b8'], + }), + ('MALDIquant', '1.21', { + 'checksums': ['0771f82034aa6a77af67f3572c900987b7e6b578d04d707c6e06689d021a2ff8'], + }), + ('threejs', '0.3.3', { + 'checksums': ['76c759c8b20fb34f4f7a01cbd1b961296e1f19f4df6dded69aae7f1bca80219c'], + }), + ('LaplacesDemon', '16.1.6', { + 'checksums': ['57b53882fd7a195b38bbdbbf0b17745405eb3159b1b42f7f11ce80c78ab94eb7'], + }), + ('rda', '1.0.2-2.1', { + 'checksums': ['eea3a51a2e132a023146bfbc0c384f5373eb3ea2b61743d7658be86a5b04949e'], + }), + ('sampling', '2.9', { + 'checksums': ['7f5ba5978f6cdbbbdb6f51958197b28b6fc63e7eeee59e6845ea09fb37d1b187'], + }), + ('lda', '1.4.2', { + 'checksums': ['5606a1e1bc24706988853528023f7a004c725791ae1a7309f1aea2fc6681240f'], + }), + ('jiebaRD', '0.1', { + 'checksums': ['045ee670f5378fe325a45b40fd55136b355cbb225e088cb229f512c51abb4df1'], + }), + ('jiebaR', '0.11', { + 'checksums': ['adde8b0b21c01ec344735d49cd33929511086719c99f8e10dce4ca9479276623'], + }), + ('hdm', '0.3.1', { + 'checksums': ['ba087565e9e0a8ea30a6095919141895fd76b7f3c05a03e60e9e24e602732bce'], + }), + ('abe', '3.0.1', { + 'checksums': ['66d2e9ac78ba64b7d27b22b647fc00378ea832f868e51c18df50d6fffb8029b8'], + }), + ('SignifReg', '4.3', { + 'checksums': ['f755808fcb618582acb862729b20e267d9c2214f22e6e7a0c8d29073d8faa7b8'], + }), + ('bbmle', '1.0.25', { + 'checksums': ['86a8c69902fbf6caf337f9bc532afe89dc2a59dd24287a2423d781797010b255'], + }), + ('emdbook', '1.3.12', { + 'checksums': ['0646caf9e15aaa61ff917a4b5fdf82c06ac17ef221a61dec3fbb554e7bff4353'], + }), + ('SOAR', '0.99-11', { + 'checksums': ['d5a0fba3664087308ce5295a1d57d10bad149eb9771b4fe67478deae4b7f68d8'], + }), + ('rasterVis', '0.51.2', { + 'checksums': ['c116f979ed891ec55f3e1e7b9a92436b5ec9430c1170439a501ecb7e2a33ef4d'], + }), + ('tictoc', '1.0.1', { + 'checksums': ['a09a1535c417ddf6637bbbda5fca6edab6c7f7b252a64e57e99d4d0748712705'], + }), + ('ISOcodes', '2022.01.10', { + 'checksums': ['b25ddec624b46f5630c29267bdf4a749cfb9d001ef029fb9ca84dafe56b1c73f'], + }), + ('stopwords', '2.3', { + 'checksums': ['c5ec1c6ab1bad1786d87d7823d4b63abc94d2fd84ed7d8e985906e96fb6321b2'], + }), + ('janeaustenr', '0.1.5', { + 'checksums': ['992f6673653daf7010fe176993a01cd4127d9a88be428da8da7a28241826d6f3'], + }), + ('SnowballC', '0.7.0', { + 'checksums': ['b10fee9d322f567a22c580b49b5d4ba1c86eae40a71794ca92552c726b3895f3'], + }), + ('tokenizers', '0.2.1', { + 'checksums': ['28617cdc5ddef5276abfe14a2642999833322b6c34697de1d4e9d6dc7670dd00'], + }), + ('hunspell', '3.0.1', { + 'checksums': ['1fedbb913bc13c790d2fabfe4edda0a987db3a078bea8c0ca9b777d20af08662'], + }), + ('topicmodels', '0.2-12', { + 'checksums': ['afd83a4381bf39e470446ebefd41ed03f314be400c1b2f702a4b1060eb8fd1b4'], + }), + ('tidytext', '0.3.3', { + 'checksums': ['753b2bcea6e343ac439869b92e7c11b0aaf98ce5c0373965da6c7d087d57924e'], + }), + ('splitstackshape', '1.4.8', { + 'checksums': ['656032c3f1e3dd5b8a3ee19ffcae617e07104c0e342fc3da4d863637a770fe56'], + }), + ('grImport2', '0.2-0', { + 'checksums': ['a102a2d877e42cd4e4e346e5510a77b2f3e57b43ae3c6d5c272fdceb506b00a7'], + }), + ('preseqR', '4.0.0', { + 'checksums': ['0143db473fb9a811f9cf582a348226a5763e62d9857ce3ef4ec41412abb559bc'], + }), + ('idr', '1.3', { + 'checksums': ['6b3910dc48495439cd01828f8999823864a6712f73560ee3e6c903065c67d1e4'], + }), + ('entropy', '1.3.1', { + 'checksums': ['6f5a89f5ce0e90cbed1695b81259326c976e7a8f538157e223ee5f63b54412b8'], + }), + ('kedd', '1.0.3', { + 'checksums': ['38760abd8c8e8f69ad85ca7992803060acc44ce68358de1763bd2415fdf83c9f'], + }), + ('HiddenMarkov', '1.8-13', { + 'checksums': ['7186d23e561818f3e1f01376a4fb2af9ccee775ce5afc1e3175f3b07a81db515'], + }), + ('lmerTest', '3.1-3', { + 'checksums': ['35aa75e9f5f2871398ff56a482b013e6828135ef04916ced7d1d7e35257ea8fd'], + }), + ('loo', '2.5.1', { + 'checksums': ['866a2f54a4e8726cc3062e27daa8a073e6ac4aeb6719af7845284f7a668745f1'], + }), + ('RcppParallel', '5.1.5', { + 'checksums': ['6396322b3b6d6f7019aac808ceb74707bc5c4ed01677fab408372c2a5508c2ea'], + }), + ('StanHeaders', '2.21.0-7', { + 'checksums': ['27546e064f0e907e031d9185ad55245d118d82fbe3074ecb1d76fae8b9f2336b'], + }), + ('V8', '4.2.0', { + 'installopts': '--configure-vars="INCLUDE_DIR=$CPATH LIB_DIR=$LIBRARY_PATH"', + 'preinstallopts': "export CPATH=$EBROOTNODEJS/include/node:$CPATH && ", + 'checksums': ['6c62fdc974cc30fa975cad4ccb1e3796112fc2490a807f6e3d7878c3a5544743'], + }), + ('rstan', '2.21.5', { + 'checksums': ['86e4fe562d8ddcd0b02336f35a420fa8786dd21de7ca2bebb4ed6e9c252bb9ea'], + }), + ('Rborist', '0.2-3', { + 'checksums': ['f3b3f953ca99e0d17425ac6ba9a7b1e9d6098343abace575cdb492bca2a9c461'], + }), + ('VSURF', '1.1.0', { + 'checksums': ['eee99e0c441795c2ccb21cc6e0a37b24f580241e494c83e811b726b43469eeab'], + }), + ('mRMRe', '2.1.2', { + 'checksums': ['a59a3cb3cca89f51d9ee6702cd479fd7db8bc2e25b72f45cb6712da983777ca0'], + }), + ('dHSIC', '2.1', { + 'checksums': ['94c86473790cf69f11c68ed8ba9d6ae98218c7c69b7a9a093f235d175cf83db0'], + }), + ('ggsci', '2.9', { + 'checksums': ['4af14e6f3657134c115d5ac5e65a2ed74596f9a8437c03255447cd959fe9e33c'], + }), + ('ggsignif', '0.6.3', { + 'checksums': ['ca8545b25590e531512a90a18449a2cbab945f7434a1d60188c41f7d1839a7a9'], + }), + ('corrplot', '0.92', { + 'checksums': ['e8c09f963f9c4837036c439ebfe00fa3a6e462ccbb786d2cf90850ddcd9428bd'], + }), + ('rstatix', '0.7.0', { + 'checksums': ['a5ae17dc32cc26fc5dcab9ff0a9747ce3786c9fe091699247ad8b9f823f2600c'], + }), + ('ggfan', '0.1.3', { + 'checksums': ['5c888b203ecf5e3dc7a317a790ca059c733002fbca4b4bc1a4f62b7ded5f70dc'], + }), + ('ggpubr', '0.4.0', { + 'checksums': ['abb21ec0b1ae3fa1c58eedca2d59b9b009621b30e3660f1247b3880c5fa50675'], + }), + ('yaImpute', '1.0-32', { + 'checksums': ['08eee5d851b80aad9c7c80f9531aadd50d60e4b16b3a80657a50212269cd73ff'], + }), + ('intrinsicDimension', '1.2.0', { + 'checksums': ['6cc9180a83aa0d123f1e420136bb959c0d5877867fa170b79536f5ee22106a32'], + }), + ('patchwork', '1.1.1', { + 'checksums': ['cf0d7d9f92945729b499d6e343441c55007d5b371206d5389b9e5154dc7cf481'], + }), + ('leiden', '0.4.2', { + 'checksums': ['cace86748c4aa1720508210658ee2f63f7875be5bac215084001fdc59d22e2bd'], + }), + ('sctransform', '0.3.3', { + 'checksums': ['83af125c40f211e1ddae5098f88766aea1453c02ae98486081f3efadb3620b2b'], + }), + ('packrat', '0.8.0', { + 'checksums': ['3025b9052974bec00fb09299226b80004d48e611e15a65e5a0bc49d3538844ef'], + }), + ('colourpicker', '1.1.1', { + 'checksums': ['a0d09982b048b143e2c3438ccec039dd20d6f892fa0dedc9fdcb0d40de883ce0'], + }), + ('ggExtra', '0.10.0', { + 'checksums': ['dc6855bbb7e81ffa58d6b65b594d22718fa36b7f50b2284386f70fa8ccc6a3e5'], + }), + ('findpython', '1.0.7', { + 'checksums': ['59f904b9c2ec84b589380de59d13afbf14d1ec3b670e3a07e820298aaf04c149'], + }), + ('argparse', '2.1.5', { + 'checksums': ['83e112beb47733849980b286d93ac930f0cbe6ac78fcb94fc9f6b0eea882658d'], + }), + ('intergraph', '2.0-2', { + 'checksums': ['6cbe77f1e87fa1c110db2d46010f2f3ae72bfdb708ce2ca84c1cdc2cd6eb47a1'], + }), + ('ggnetwork', '0.5.10', { + 'checksums': ['1b655dbab8eed8d0aa3ab2148aac8e0e5bfa190468f5e3c06b001ce88b7f0d3f'], + }), + ('qqman', '0.1.8', { + 'checksums': ['58da8317df8d726d1fde4805919da5d64f880894a423ee20937cafb479b9d8a8'], + }), + ('rstantools', '2.2.0', { + 'checksums': ['cb810baeb90c67668361b666c6862df9917aff6aaec63d2c3a485f28407c4eb7'], + }), + ('distributional', '0.3.0', { + 'checksums': ['fab36c7346617d8f2ca4b3cd0e3c9da93cb2f95fb7f102a3ae88670e694751d6'], + }), + ('posterior', '1.2.2', { + 'checksums': ['d615ed75b43b2927002b79d2982c624a6144c851aac7b81fa14e4ec9cc3d353b'], + }), + ('bayesplot', '1.9.0', { + 'checksums': ['0a81a4b99cf781334e57cfc3c469fad8b932a68204016a3bbca33cab4e2a1e43'], + }), + ('dygraphs', '1.1.1.6', { + 'checksums': ['c3d331f30012e721a048e04639f60ea738cd7e54e4f930ac9849b95f0f005208'], + }), + ('rsconnect', '0.8.26', { + 'checksums': ['faafabbed803743799b345051f221aef2b4497b421fc98092ca41c05ef6b5fed'], + }), + ('shinystan', '2.6.0', { + 'checksums': ['a084856a2d66d8744f2c72e3e19ca35e600a508ed7ef1f7ebed8c7fc0738d529'], + }), + ('optimx', '2022-4.30', { + 'checksums': ['ebe9887a22296cf4b2db07981aaa1f898bf7c17fb61a4b398c228d4077d0b410'], + }), + ('gamm4', '0.2-6', { + 'checksums': ['57c5b66582b2adc32f6a3bb6a259f5b95198e283a96d966a6007e8e48b380c89'], + }), + ('projpred', '2.1.2', { + 'checksums': ['a88a651e533c118aad0e8c2c905cfcf688d9c419ed195896036b8f6667b5cfb0'], + }), + ('brms', '2.17.0', { + 'checksums': ['24e5a3a40b81bea558e8f660d0de7fd1a4c2080c7553baac98f34dd2682ece71'], + }), + ('drgee', '1.1.10', { + 'checksums': ['e684f07f7dfec922380d4202922c11094f859721f77b31ff38b0d35d0f42c743'], + }), + ('stdReg', '3.4.1', { + 'checksums': ['285335dbe29b6898641e1151ab2f06acf76c6f4d6fbeadd66d151c25d7e38a74'], + }), + ('mcmcse', '1.5-0', { + 'checksums': ['4a820dc22c48efd32b7f9d1e1b897b4b3f165cd64b2ff85ba7029621cf9e7463'], + }), + ('copCAR', '2.0-4', { + 'checksums': ['8b4ed53c58a665f70e48bdca689a992a81d5ecb5a6051ca7361d3870e13c77f3'], + }), + ('batchmeans', '1.0-4', { + 'checksums': ['8694573009d9070a76007281407d3314da78902e122a9d8aec1f819d3bbe562c'], + }), + ('ngspatial', '1.2-2', { + 'checksums': ['3fa79e45d3a502a58c1454593ec83dfc73144e92b34c14f617a6126557dd0d26'], + }), + ('BIGL', '1.6.6', { + 'checksums': ['8edb6607c5d91cea5ba32290eeb76c35317383a24d726bde6eca61f9cce96bb9'], + }), + ('drugCombo', '1.2.1', { + 'checksums': ['9a605c655c159604033558d757711e6d83d33dfc286c1280f722d4cb7d130f80'], + }), + ('betareg', '3.1-4', { + 'checksums': ['5106986096a68b2b516215968158589b71969ce7912879253d6e930355a18101'], + }), + ('unmarked', '1.2.5', { + 'checksums': ['a54f49f42d30a7a69eb6c3db00d3cd2e1f8e549aec28fa5487fcdd27a37f87fe'], + }), + ('maxlike', '0.1-8', { + 'checksums': ['90aaab9602f259cbfae61fe96e105cc4a0c2a385b42380f85c14f5d544107251'], + }), + ('coxme', '2.2-17', { + 'checksums': ['dd0565f97adb7ff978d1dbd6cb7d6e44edee5e2a31cf6d5d4806a0151d1b1318'], + }), + ('AICcmodavg', '2.3-1', { + 'checksums': ['d0517da15a38e9b1df20fa73f5342b586624e65792d266e7dff278ad7fc458b0'], + }), + ('pacman', '0.5.1', { + 'checksums': ['9ec9a72a15eda5b8f727adc877a07c4b36f8372fe7ed80a1bc6c2068dab3ef7c'], + }), + ('spaa', '0.2.2', { + 'checksums': ['a5a54454d4a7af473ce797875f849bd893005cb04325bf3e0dbddb19fe8d7198'], + }), + ('maxnet', '0.1.4', { + 'checksums': ['fd21e5ecf3c1ac00ef1bbe79fab4cdd62789e0c4c45f126f1b64bda667238216'], + }), + ('oai', '0.3.2', { + 'checksums': ['ebfa756e08f6ac0aa61556b1a5bbe611f407bfff8aef1f8d075a24c361678bfd'], + }), + ('wellknown', '0.7.4', { + 'checksums': ['483e6fc43edf09ed583e74ce5ca7e2d7838ef8a32291e06d774c37546eed1a34'], + }), + ('rgbif', '3.7.2', { + 'checksums': ['460f9e80bb3d90618bb80a8b57ac6fed99a22e8919279df47b6d0710b6a89d5f'], + }), + ('rgdal', '1.5-32', { + 'checksums': ['4583a4e187492eb936b59bc6bfeefea687b115bc3ae25172e0ed348b38f473ed'], + }), + ('rgeos', '0.5-9', { + 'checksums': ['ab90cbfe6a3680a9d2eed5e655064a075adc66788e304468969ab7cc2df0e3d4'], + }), + ('mapproj', '1.2.8', { + 'checksums': ['865f108f1ee54cda38571b86cd46063a903824d9b4eabfdf75218023d08a7781'], + }), + ('rbison', '1.0.0', { + 'checksums': ['9957e5f85ce68f5dd0ddc3c4b2b3c9d2f52d6f37587e1022ab8a44863534a83c'], + }), + ('rebird', '1.3.0', { + 'checksums': ['b238d3f246aa0249145894e1f3a90f46902f6615fc2f23b24c99bb5feecc55d3'], + }), + ('rvertnet', '0.8.2', { + 'checksums': ['2de9a3ec33a213c7592b49cca1d510a25aef0625369376d9b1b4e5d0da519226'], + }), + ('ridigbio', '0.3.5', { + 'checksums': ['e5cfb2e4dd8ddd1452a5afcf24fcc260889179d0f52eff4f41835adf99b64614'], + }), + ('spocc', '1.2.0', { + 'checksums': ['4bac45db5e69bfa3bf6cebd1b0c9241214c95561f275cee6d31e00911aa79d84'], + }), + ('spThin', '0.2.0', { + 'checksums': ['2e997afb79a2a990eded34c71afaac83986669cfa9ac51b15ae3f2b558902048'], + }), + ('rangeModelMetadata', '0.1.4', { + 'checksums': ['529d529ca90437db3d1e45118443e27a920422806383c7edaa2102beb43f5f80'], + }), + ('ENMeval', '2.0.3', { + 'checksums': ['4b39173a8d9dc4f36d09509e0177abcf91b7b1b51dc219eebcb007a0fb8c3c41'], + }), + ('plotmo', '3.6.2', { + 'checksums': ['cde33a8ec558b12d8e11d7d0531e73f6678a25ee589b79897d2fc425a3fd353c'], + }), + ('earth', '5.3.1', { + 'checksums': ['0bbe06ba974ceb8ec5de1d59cb53f9487d1828d7130fe2503c48b6cb449c4b03'], + }), + ('mda', '0.5-3', { + 'checksums': ['bda6409c17f385fae97da458cc742334e7b47aab8217a975b7551e2e18d38463'], + }), + ('biomod2', '3.5.1', { + 'checksums': ['30ed33ff980558a59782ec9e35f9c2c710a540718010654363f63878cdc0ac18'], + }), + ('poLCA', '1.6.0.1', { + 'checksums': ['ed8c60a42bff0402c9ba2f9ce1422dd171e711c1a64498c4d96010ddb29f6b16'], + }), + ('PermAlgo', '1.2', { + 'checksums': ['aa2c774d6c6dcfeec882c1936e8723ef49bd36030fb10c17ca60bb9d4a519443'], + }), + ('coxed', '0.3.3', { + 'checksums': ['d0d6cb8fea9516b3c63b34d0d81f3804c18a07f97a83e51555575c8ed4c75626'], + }), + ('testit', '0.13', { + 'checksums': ['90d47168ab6bdbd1274b600b457626ac07697ce09792c92b2043be5f5b678d80'], + }), + ('NISTunits', '1.0.1', { + 'checksums': ['eaccd68db5c73d6a089ce5b323cdd51bc6a6a58ce467987158ba8c9be6a0a94e'], + }), + ('celestial', '1.4.6', { + 'checksums': ['9f647f41465ac65b254717698f1978871c378ad8e6ccaa693abf579437069abe'], + }), + ('fasterize', '1.0.3', { + 'checksums': ['62b459625e9bdb00251ec5f6cb873e0c59713f3e86dc1e2c8332adc0cea17f81'], + }), + ('RPMM', '1.25', { + 'checksums': ['f04a524b13918062616beda50c4e759ce2719ce14150a0e677d07132086c88c8'], + }), + ('RefFreeEWAS', '2.2', { + 'checksums': ['de2812f166caabf6ea01c0533402e5cd9d8a525a2a7583e4757decf22319caab'], + }), + ('wordcloud', '2.6', { + 'checksums': ['53716954430acd4f164bfd8eacd7068a908ee3358293ded6cd992d53b7f72649'], + }), + ('JADE', '2.0-3', { + 'checksums': ['56d68a993fa16fc6dec758c843960eee840814c4ca2271e97681a9d2b9e242ba'], + }), + ('awsMethods', '1.1-1', { + 'checksums': ['50934dc20cf4e015f1304a89de6703fed27e7bd54c6b9fc9fb253cdf2ecb7541'], + }), + ('aws', '2.5-1', { + 'checksums': ['e8abadc5614f132edc3fb9cb1c82ce4dacc1315b727fbd49db7399aee24115ba'], + }), + ('ruv', '0.9.7.1', { + 'checksums': ['a0c54e56ba3d8f6ae178ae4d0e417a79295abf5dcb68bbae26c4b874734d98d8'], + }), + ('mhsmm', '0.4.16', { + 'checksums': ['fab573abdc0dd44e8c8bc7242a1428df20b3ec64c4c194e5f1f907393f902d01'], + }), + ('dbarts', '0.9-22', { + 'checksums': ['68fa2bfe274811c91ea7b67da46c4ffe527eb662d75edbec26ffe934ddc7150a'], + }), + ('proftools', '0.99-3', { + 'checksums': ['e034eb1531af54013143da3e15229e1d4c2260f8eb79c93846014db3bdefb724'], + }), + ('NCmisc', '1.1.6', { + 'checksums': ['2aa85997d5ec2222e610604022684c004a4925241761d9a0104919f1cf3a8c79'], + }), + ('reader', '1.0.6', { + 'checksums': ['905c7c5a1b035ac8213fc533fa26e511abfeea40bd22e3edfde42a49074e88f4'], + }), + ('gnumeric', '0.7-8', { + 'checksums': ['28b10c91d693b938ebca610933889095ca160b22e6ca750c46103dfd2b009447'], + }), + ('tcltk2', '1.2-11', { + 'checksums': ['ad183ae3b7190501504a0589e0b3be480f04267303e3384fef00987446a37dc5'], + }), + ('readODS', '1.7.0', { + 'checksums': ['f6a8ec724df68983c9b176a1b3b3b01239cc4e99aac4bfb42ce1c2b3d40922c2'], + }), + ('nortest', '1.0-4', { + 'checksums': ['a3850a048181d5d059c1e74903437569873b430c915b709808237d71fee5209f'], + }), + ('EnvStats', '2.7.0', { + 'checksums': ['09a6f0d5b60856c7298371e4a8a085a1db7abf0e71ccb9a2dc9ca24248fb5d81'], + }), + ('outliers', '0.15', { + 'checksums': ['cc31d7f2faefd2c3a27f8ce78c7e67d3b321dcd6690292fad2468125e5e635fb'], + }), + ('elementR', '1.3.7', { + 'checksums': ['4275f88f372a2efe96ccd0afc20f4f12be92f28c7db35c68b80bb0ffb2c2ab07'], + }), + ('gWidgets2', '1.0-9', { + 'checksums': ['d4d9ef7b2788efeb8209aa8dd610af4cd86286392fbdf9ea70bcfeafda95d4c5'], + }), + ('gWidgets2tcltk', '1.0-8', { + 'modulename': False, + 'preinstallopts': "xvfb-run ", + 'checksums': ['10399cc636eeeb5484c3379970c37c56df10d979bf866a35b66d0c75b7222c0a'], + }), + ('mgsub', '1.7.3', { + 'checksums': ['c9ae2560fe2690bedc5248af3fc89e7ef2bc6c147d46ced28f9824584c3791d5'], + }), + ('ie2misc', '0.8.8', { + 'checksums': ['c81441af7588c62ab019ef2fbf31f61e0c2e3440a5e131938b1c5946cd2bce1a'], + }), + ('assertive.base', '0.0-9', { + 'checksums': ['4bf0910b0eaa507e0e11c3c43c316b524500c548d307eb045d6f89047e6ba01e'], + }), + ('assertive.properties', '0.0-5', { + 'checksums': ['b68954f53082561f0242682611bf3373e0bf30d8ac2256d82474edc5f992f4dd'], + }), + ('assertive.types', '0.0-3', { + 'checksums': ['ab6db2eb926e7bc885f2043fab679330aa336d07755375282d89bf9f9d0cb87f'], + }), + ('assertive.numbers', '0.0-2', { + 'checksums': ['bae18c0b9e5b960a20636e127eb738ecd8a266e5fc29d8bc5ca712498cd68349'], + }), + ('assertive.strings', '0.0-3', { + 'checksums': ['d541d608a01640347d661cc9a67af8202904142031a20caa270f1c83d0ccd258'], + }), + ('assertive.datetimes', '0.0-3', { + 'checksums': ['014e2162f5a8d95138ed8330f7477e71c908a29341697c09a1b7198b7e012d94'], + }), + ('assertive.files', '0.0-2', { + 'checksums': ['be6adda6f18a0427449249e44c2deff4444a123244b16fe82c92f15d24faee0a'], + }), + ('assertive.sets', '0.0-3', { + 'checksums': ['876975a16ed911ea1ad12da284111c6eada6abfc0118585033abc0edb5801bb3'], + }), + ('assertive.matrices', '0.0-2', { + 'checksums': ['3462a7a7e11d7cc24180330d48cc3067cf92eab1699b3e4813deec66d99f5e9b'], + }), + ('assertive.models', '0.0-2', { + 'checksums': ['b9a6d8786f352d53371dbe8c5f2f2a62a7866e30313f268e69626d5c3691c42e'], + }), + ('assertive.data', '0.0-3', { + 'checksums': ['5a00fb48ad870d9b3c872ce3d6aa20a7948687a980f49fe945b455339e789b01'], + }), + ('assertive.data.uk', '0.0-2', { + 'checksums': ['ab48dab6977e8f43d6fffb33228d158865f68dde7026d123c693d77339dcf2bb'], + }), + ('assertive.data.us', '0.0-2', { + 'checksums': ['180e64dfe6339d25dd27d7fe9e77619ef697ef6e5bb6a3cf4fb732a681bdfaad'], + }), + ('assertive.reflection', '0.0-5', { + 'checksums': ['c2ca9b27cdddb9b9876351afd2ebfaf0fbe72c636cd12aa2af5d64e33fbf34bd'], + }), + ('assertive.code', '0.0-3', { + 'checksums': ['ef80e8d1d683d776a7618e78ddccffca7f72ab4a0fcead90c670bb8f8cb90be2'], + }), + ('assertive', '0.3-6', { + 'checksums': ['c403169e83c433b65e911f7fd640b378e2a4a4765a36063584b8458168a4ea0a'], + }), + ('rdrop2', '0.8.2.1', { + 'checksums': ['b9add765fe8e7c966f0d36eef939a9e38f253958bd2a3c656b890cbb0366300b'], + }), + ('Exact', '3.1', { + 'checksums': ['d67f5c71b1209bea655d1e8d7530fa72359e0bcac25312551524501d0287e3cf'], + }), + ('lmom', '2.9', { + 'checksums': ['363e62751a73e0870fd0206206f1743a884a23aeac9b31b9afc71c0a1b51bb90'], + }), + ('gld', '2.6.4', { + 'checksums': ['0db6daee1b6e256d64d292c1f6795c505677331dcf2f97e04e264566ded93323'], + }), + ('DescTools', '0.99.45', { + 'checksums': ['8dfe7057fdcec475bc444761b00db59f6fb7313fd39c7bd6aebeca7f67aceb05'], + }), + ('orthopolynom', '1.0-6', { + 'checksums': ['17576157374c927da2959459caf2ed161b49a4a7768ea3d3fbe47656cafacc5b'], + }), + ('gaussquad', '1.0-3', { + 'checksums': ['a3337ce52bc53435cb4565a38bf48b72b384be397d2e86bb66f62973004dc810'], + }), + ('nlsem', '0.8', { + 'checksums': ['495a5d07aa5f59efdcd43acf429ae842453abd6c0720a80e2102d663fa997c60'], + }), + ('tableone', '0.13.2', { + 'checksums': ['b1cf15579abd4240e24435d2d9aad255c839d2a0293e28cb2eef0c808c4727af'], + }), + ('jstable', '1.0.7', { + 'checksums': ['a8f66172973dc75d1d751d7015e0f028c441263f6649909bd25fa944be0042c3'], + }), + ('RCAL', '2.0', { + 'checksums': ['10f5f938a8322d8737159e1e49ce9d12419a5130699b8a19c6ca53d6508da8cc'], + }), + ('stargazer', '5.2.3', { + 'checksums': ['208e9b48a11cf56ce142731c204f3d2bcb5b68719f84309a36362cd925414265'], + }), + ('sensemakr', '0.1.4', { + 'checksums': ['6a1354f05392fa9343b90f69a54022c995651fb3c3d05cb08fa088ef52258caf'], + }), + ('CompQuadForm', '1.4.3', { + 'checksums': ['042fc56c800dd8f5f47a017e2efa832caf74f0602824abf7099898d9708660c4'], + }), + ('nonnest2', '0.5-5', { + 'checksums': ['027f510e322122fc75c936251a95ddd392f96047ac86e0fae6cf8f883ac7aab5'], + }), + ('blavaan', '0.4-3', { + 'checksums': ['a9f9f7b32aab7e7f179340c9f0f9d154b5fac51352c4fd590d317c201fe81b74'], + }), + ('mathjaxr', '1.6-0', { + 'checksums': ['ecc47607111b788d84789459af7f4f9102719f98640b7a23bd5a4eb1a6d3c179'], + }), + ('metadat', '1.2-0', { + 'checksums': ['f0cce5e30c3d256eaf5a41e4f52ffc7108e195016a4b99409e0ab4c2ef58f5b8'], + }), + ('metafor', '3.4-0', { + 'checksums': ['92e1bc21c4d135b6e651fbefc4b40666fc02c66a6a4f6f28effee0e73a21c26e'], + }), + ('fmri', '1.9.6', { + 'checksums': ['7614290d880667512744d3450480a670cc38abdb270f3f776ac9a17a793f07f2'], + }), + ('linkcomm', '1.0-14', { + 'checksums': ['36f1557c65d862fc87635eedfad77f18a5deb66da00895e50e2d5eac0f23b597'], + }), + ('rnetcarto', '0.2.5', { + 'checksums': ['2cab23b60d9d97474c946da7369e859c19dee20288eeccdcb123fccdc50a3999'], + }), + ('DEoptim', '2.2-6', { + 'checksums': ['8c63397d83a067212d003ef3e639fd81f5f00bf61e3c271b4e4999031a69e2e1'], + }), + ('optextras', '2019-12.4', { + 'checksums': ['59006383860826be502ea8757e39ed94338f04d246c4fc398a088e004d8b13eb'], + }), + ('setRNG', '2022.4-1', { + 'checksums': ['61c06e6bd6b43c295472c6990266fe87ca41e57db04d3460e756a35ef24e0824'], + }), + ('Rvmmin', '2018-4.17.1', { + 'checksums': ['55000ac4ff57d42f172c46c7d6b0a603da3b65866d6440d6b32bac4d2b81814e'], + }), + ('Rcgmin', '2022-4.30', { + 'checksums': ['2684b8e7fb970da2afbc00e482031cf4447416249d04c4c1740400ad112fb911'], + }), + ('optimr', '2019-12.16', { + 'checksums': ['73b1ed560ffd74599517e8baa4c5b293aa062e9c8d50219a3a24b63e72fa7c00'], + }), + ('DMCfun', '2.0.2', { + 'checksums': ['430cbc18f17db11a7941e6a8274a0eefbb8a6b0bdac8800970530d60d5881fde'], + }), + ('miceadds', '3.13-12', { + 'checksums': ['74ab5503d6f3c0d016166a4c664918d60f1adb0672d8aefbc57385be3d287c3a'], + }), + ('visdat', '0.5.3', { + 'checksums': ['527c76b6643b8475a58516763ef40238cdc61ec62d2dcf690f7c316b93b878c6'], + }), + ('UpSetR', '1.4.0', { + 'checksums': ['351e5fee64204cf77fd378cf2a2c0456cc19d4d98a2fd5f3dac74b69a505f100'], + }), + ('norm', '1.0-10.0', { + 'checksums': ['4384791af74c1008238f036abe0dda4b4048b9700cc4acd7b45025598fd20cc7'], + }), + ('naniar', '0.6.1', { + 'checksums': ['d546ca15bf6c224f3103eb1441abef91d34feebb7320c2398d598f5d50177450'], + }), + ('stringdist', '0.9.8', { + 'checksums': ['efccd6ccc5c74c578be95b7dae1099c52b0d7805452ab14ee91ca34adb8261bb'], + }), + ('image.binarization', '0.1.2', { + 'checksums': ['0621ca94a74264bb73f689b1a00484b5a3bbef93fc203d9c001d791a18fcc13f'], + }), + ('lassosum', '0.4.5', { + 'source_urls': ['https://github.com/tshmak/%(name)s/releases/download/v%(version)s/'], + 'sources': ['%(name)s_%(version)s.tar.gz'], + 'checksums': ['18c0d0b5022bcf81a9bf1b3b6647da3e080f221828b473ea2a45a9bf98474fbc'], + }), + ('lslx', '0.6.10', { + 'checksums': ['adc2b2a621625b52165245ab2f3a0bfba4f4db64fcc6ad48a3e5b219c3bd2fa1'], + }), + ('truncnorm', '1.0-8', { + 'checksums': ['49564e8d87063cf9610201fbc833859ed01935cc0581b9e21c42a0d21a47c87e'], + }), + ('Rsolnp', '1.16', { + 'checksums': ['3142776062beb8e2b45cdbc4fe6e5446b6d33505253d79f2890fe4178d9cf670'], + }), + ('regsem', '1.8.0', { + 'checksums': ['28ff1c2dbddcafc6ed6c30154f46074aa0c8974757466680529b71a5f3e463ec'], + }), + ('semPLS', '1.0-10', { + 'checksums': ['cb587ccfdaf970f426dc7146035c7e010b1c51c17bf4fc089fd796eda58db460'], + }), + ('GxEScanR', '2.0.2', { + 'checksums': ['6d42fd15d83dd1491405b282d26fa472f9f9902a9dc68836d6a48b459ada6a4c'], + }), + ('alabama', '2022.4-1', { + 'checksums': ['a8c62859b39a8340ecf7bbf411fac303c059e4237d28ff7bba9ba3daaca1d36c'], + }), + ('admisc', '0.29', { + 'checksums': ['ce46df3d75afd47dd97824bc3e740c708b25ae023d007f1a180dcb88ca14740b'], + }), + ('polycor', '0.8-1', { + 'checksums': ['f05f53e0b5c992de0e5b4c6b2e998148cf83310358821e1bba180d81face0509'], + }), + ('multipol', '1.0-7', { + 'checksums': ['0abe3c894c0d8e928a920e73708a397133386a0d73a1e7952c4075afe67879e6'], + }), + ('symmoments', '1.2.1', { + 'checksums': ['9a6be1f8fe44f6ab5a1790e870fd8b18de1686a48a14a9fca2d035bfb5458672'], + }), + ('cSEM', '0.4.0', { + 'checksums': ['7753ac7db9d2c0392e51dd31ec8638e1a7fcbb2546dd9103f5ecc03dd51836c1'], + }), + ('cubelyr', '1.0.1', { + 'checksums': ['740a34100592b2c6b7bc89a31bddccf4c8fd95720caf68f530104f17aada77bc'], + }), + ('furrr', '0.3.0', { + 'checksums': ['3fe91cc1614f9404c708ea3a15b6a40289fa57f40f3ece54452093408d91fd84'], + }), + ('broom.mixed', '0.2.9.4', { + 'checksums': ['7631cd29316a32050b9e72057754e053d7f9064a75900bb7e69b29ebca6c60b2'], + }), + ('DiceKriging', '1.6.0', { + 'checksums': ['ab5d1332809f2bb16d156ed234b102eb9fbd6de792e4291f9f6ea4652215cb49'], + }), + ('grf', '2.1.0', { + 'checksums': ['02a4fe9c8147768f1345be2f8ca73fca079af5f07ccaa4900f9ec255ca66bb19'], + }), + ('xgboost', '1.6.0.1', { + 'checksums': ['9ae99a20997e1b02ffd21cabada2a55e53f5754746238ee900de5eb6cd964ebd'], + }), + ('twang', '2.5', { + 'checksums': ['fc355527c57e4f6e0f60d26d7c690c4475fcd5fb165d125fea7cc6b9fafc4ce5'], + }), + ('neuralnet', '1.44.2', { + 'checksums': ['5f66cd255db633322c0bd158b9320cac5ceff2d56f93e4864a0540f936028826'], + }), + ('PCAmatchR', '0.3.2', { + 'checksums': ['fe0c67cda541639a1a2147f68cae29d17cd05ff8edb6f7bea8d44be346a5f1b6'], + }), + ('origami', '1.0.5', { + 'checksums': ['8d0d08aaecc428cbbf5db4615ad3623777c10c6d7947a1cc3ccc7f8db8cb5263'], + }), + ('hal9001', '0.4.3', { + 'checksums': ['f2489e7a0a16db6dc65da8ce13bfb7f0854e6f303c9ec05f6158d46c66b6588c'], + }), + ('cobalt', '4.3.2', { + 'checksums': ['b9bfd0746e41de6a61fd8f3fa51eb344190a226445e51ef032931b026d5d314c'], + }), + ('CBPS', '0.23', { + 'checksums': ['ed8fe09b642db459a516bdeb03a49e718a7d5ad915cbf82400029508efe9b32d'], + }), + ('SBdecomp', '1.2', { + 'checksums': ['0be4e1c9e8bed87fd1712e62346a97148a1a295ff56981e832921cc390006e5c'], + }), + ('naturalsort', '0.1.3', { + 'checksums': ['cd38a9c5f323f61459e6096cdbf4493851d40497baf671af4f8dfe9a7c00e857'], + }), + ('lwgeom', '0.2-8', { + 'checksums': ['f48a92de222da0590b37a30d5cbf2364555044a842795f6b488afecc650b8b34'], + }), + ('finalfit', '1.0.4', { + 'checksums': ['446940d300c8b725e798bf2a2829a41165d25a939d2c59425768234438a2deb1'], + }), + ('broom.helpers', '1.7.0', { + 'checksums': ['2b7087ca73af04a130e78dfbf4941590e3557bcce4ec7e0106b012df061581f5'], + }), + ('gt', '0.6.0', { + 'checksums': ['469384e0daecd4b09d5814e4e56b17e9220d872a1906625cc6f609d22ce226fb'], + }), + ('gtsummary', '1.6.1', { + 'checksums': ['fe04caf79826ecf4fd9da0ef5d4705775a15bf18a7d508a53492a086798ce35c'], + }), + ('ncdf4', '1.19', { + 'checksums': ['cb8d139211fc7475c435ce9f6a43e47710603409dc523b053c8b7de9848dfb63'], + }), + ('geex', '1.0.12', { + 'checksums': ['037aece09bc0c4349897cd1d8f5dcf1e680598cdfdf72148b6d1506e02690e7f'], + }), + ('momentfit', '0.2', { + 'checksums': ['a10d43ac23bb61b9c67efa4800e3e2b6a444c1afaca8bad351648accd7e003f6'], + }), + ('StatMatch', '1.4.1', { + 'checksums': ['0c5479c444cb831d21b6305fc4cdcdf2653723ff08a31427dc2b236ca4f25bc5'], + }), + ('stars', '0.5-5', { + 'checksums': ['f359577c9e08066cb9ea6aab9b8eae574efea95ba6efcc250663f2c350fe8b41'], + }), + ('rapidjsonr', '1.2.0', { + 'checksums': ['62c94fcdcf5d0fbdfa2f6168affe526bf547c37c16d94e2e1b78d7bf608eed1f'], + }), + ('jsonify', '1.2.1', { + 'checksums': ['929191ab32e34af6a02ad991e29314cc78ea40763fcf232388ef2d132137fbce'], + }), + ('geometries', '0.2.0', { + 'checksums': ['8cf5094f3c2458fef5d755799c766afd27c66cd1c292574a6ab532d608360314'], + }), + ('sfheaders', '0.4.0', { + 'checksums': ['86bcd61018a0491fc8a1e7fb0422c918296287b82be299a79ccee8fcb515e045'], + }), + ('geojsonsf', '2.0.3', { + 'checksums': ['275ca14672d982e6a95884515f49d8a0aad14f3be62ea01b675a91b0bffb46d1'], + }), + ('leaflet.providers', '1.9.0', { + 'checksums': ['9e8fc75c83313ab24663c2e718135459599549ed6e7396086cacb44e36cfd67b'], + }), + ('leaflet', '2.1.1', { + 'checksums': ['32f6a043759a0d2d98ea05739b7b4c55a266aa01272e48243e3c44046c7a5677'], + }), + ('leafsync', '0.1.0', { + 'checksums': ['7d8fd8dbbbf66417cf32575f14c0fe68199762ecf1c036c7905c7c5ff859d75c'], + }), + ('leafem', '0.2.0', { + 'checksums': ['97eb78b3eaf6012940f2c4f73effd8ff2d39aa46fef5f2ddf0005990b07dba8d'], + }), + ('widgetframe', '0.3.1', { + 'checksums': ['44089a2cf8b0941a6f3da55da36353e2f44653ca58bfec7960ee5b71ea380d48'], + }), + ('tmaptools', '3.1-1', { + 'checksums': ['fd89cb0d7fb44e0a5dd5311fa3e75a729746bf2e8e158d5ec423e5963f1b542d'], + }), + ('tmap', '3.3-3', { + 'checksums': ['60e58eef0f8c723db855d59117ca9f9b5e3663ba34b5ca783dc889bf20285e04'], + }), + ('collapse', '1.8.6', { + 'checksums': ['9c13f4322d496702255652c9467fc2a202bfdb36cee6d78791780b7ab988f3ef'], + }), + ('genoPlotR', '0.8.11', { + 'checksums': ['f127f7fe8b19c899ecfdf98bf69d2e18926afb593a72fc40097acca66d401607'], + }), + ('VineCopula', '2.4.4', { + 'checksums': ['8449b1181fd7f325a2f0539cdaa4a4ff895c41424f462f52258729436078c90a'], + }), + ('Rmpfr', '0.8-9', { + 'checksums': ['cfee5ab47d49c6433c372a267f7d849c8f7c61a84e00d08afb047eaafcdbbc8a'], + }), + ('scam', '1.2-12', { + 'checksums': ['0ce5f844221370884719424eb5b2b22c34a8a8ad64eac3de981e5539b6e88f4a'], + }), + ('copula', '1.1-0', { + 'checksums': ['9ab76e6256534db2a18d3880143b8c67e385767010de861bbde25212aa75d924'], + }), + ('evd', '2.3-6', { + 'checksums': ['8edb8bc4f06d246c4343fd923bb5d5df99724d6db8821bfd996220343a834cb6'], + }), + ('ismev', '1.42', { + 'checksums': ['0d57fbeca83bd478e84fcff795967d51d8448c629abe7adc6c4c18c7fb8bf1a5'], + }), + ('GJRM', '0.2-6', { + 'checksums': ['f8abe1900a83892a9ee96bc62cdb1a42fabf8ba66eed60e44f59bd203b5f6779'], + }), + ('penfa', '0.1.1', { + 'checksums': ['a22a8ac3d4a040c77e50ddc92328c1989eae536d79fe56013e9372ba27c114e5'], + }), + ('rngWELL', '0.10-7', { + 'checksums': ['0c00c54e69d7d552cfa08d766e4854c01c6c1c8e2c558f387760b91a55ef2d38'], + }), + ('randtoolbox', '2.0.1', { + 'checksums': ['c4f28963fe5dbc821427691527a204aa6e08ab40bf00337f220cc60b81d552dc'], + }), + ('kde1d', '1.0.4', { + 'checksums': ['124eb2e427e08fd24ca37e0baa697736601785d6c6fb1c97c2ebcc5146bb4556'], + }), + ('RcppThread', '2.1.3', { + 'checksums': ['127e3d333dd412334d89d633e92f40135f65d68c91b7945fa63ce0e35abcf946'], + }), + ('wdm', '0.2.3', { + 'checksums': ['5f0184f6f0f9e9b8c47fb571e4d34dff309644a50afe5f18e42b9c37f52c593b'], + }), + ('rvinecopulib', '0.6.1.1.3', { + 'checksums': ['212189441b4cd2383e485c2aa410837456ba70357834f443c9275e4775b8bf22'], + }), + ('PearsonDS', '1.2.2', { + 'checksums': ['443a0619b824332ba5e50733a2aaf2913230925a64960a9f589ae368bcba3dc8'], + }), + ('covsim', '1.0.0', { + 'checksums': ['3788e91ee7f7fd44b290feb22185637493e8301a64f9511ca80e1ed361c3f44f'], + }), + ('semTools', '0.5-6', { + 'checksums': ['f522ce3c02ac580ad49af7a7278141dae39fdfaeccc7d1379faf1266ce9fcaf2'], + }), + ('GPArotation', '2022.4-1', { + 'checksums': ['231e7edcdcc091fbecfb4f2e88d1a4344967cf7ea58074b385a4b8b48d9da224'], + }), + ('dcurver', '0.9.2', { + 'checksums': ['cc6c55090d3607910515981ea0c7221e40e7a29e0da0c5a5f42c3847012290ec'], + }), + ('mirt', '1.36.1', { + 'checksums': ['5215a0f4eb5949a3985a84a7d4776d4dd7471973a980c1d158ce82b3bde185bb'], + }), + ('rpf', '1.0.11', { + 'checksums': ['e1fd670ae7c3e947db08ce50d6b16ce1b3b8f63a9016b03baba760aee78921fb'], + }), + ('OpenMx', '2.20.6', { + 'checksums': ['65c50ce09f9c006b41b7311ec05eba3ae77926d84fb44e3905905208404826ed'], + }), + ('matlab', '1.0.4', { + 'checksums': ['1988a2220703444a575f2bad4eb090a0da71478599eb53081dd7237b7ec216ea'], + }), + ('FactorCopula', '0.8', { + 'checksums': ['d95b0ccd1b0eebcf27a90286e9392f662b878a669c693fbbb4145798045134ff'], + }), + ('rpact', '3.3.0', { + 'checksums': ['a568bb04b4dcecf163024269042124a4d75c5431edbf06776515aa524506f11c'], + }), + ('ldbounds', '2.0.0', { + 'checksums': ['d4279d5f9952643f9051cf37eeb8441fff7ac050a49ef6363a9f5cbc8287a26a'], + }), + ('catlearn', '0.9.1', { + 'checksums': ['c6c492f5cc6a9ec6fdbd3721dd64a4bb2e146152d64eeeab4db3d0575bd2f650'], + }), + ('MetaUtility', '2.1.2', { + 'checksums': ['e38c21588c239aa8926e64d916aa0f3b04108c2992f0e801095e4c7920b9ad5d'], + }), + ('EValue', '4.1.3', { + 'checksums': ['52a8d4df8ddc80eddf7c2f6684ed6f0fd71f3bd1bfc096ed07cfe875a367e446'], + }), + ('dagitty', '0.3-1', { + 'checksums': ['7d44b5d259ec3fef776a7e3fcb21d1c379f930d6ae9ae5fbfff54494ad78e8a8'], + }), + ('ggdag', '0.2.4', { + 'checksums': ['372ec4ef0ded9637304a19b50bce908e84a034e54dbd2a52a061bb747b2b08a0'], + }), + ('simex', '1.8', { + 'checksums': ['80c7841196b9377a9367eb6960ad80ca0bf8de511b8b18a0031bfbe7bde289a0'], + }), + ('hash', '2.2.6.2', { + 'checksums': ['75a3a64014d2a99f08d12594d14fdade136f278abcf6252119cc20558ed14c9f'], + }), + ('nabor', '0.5.0', { + 'checksums': ['47938dcc987279281c13abfd667660bf1b3b76af116136a27eb066ee1a4b43da'], + }), + ('harmony', '0.1.0', { + 'checksums': ['e0598c220ae90d1334e47c9958ccccf7defbe6ac530159bc69424923894f724a'], + }), + ('apcluster', '1.4.10', { + 'checksums': ['a214f72fa2f84563f3ca1aabb5322ef3e266007a6273ee8434bc2e2a7b9040a0'], + }), + ('DataCombine', '0.2.21', { + 'checksums': ['352b235612e2cf8234b3ab5f9aa6f7a394b006b98d24e315940ccc65c4218b47'], + }), + ('docstring', '1.0.0', { + 'checksums': ['14528bc85bbb299fb8fe1a7116034f8df49ae0c26fb299376185b5d56176e5a7'], + }), + ('gdalUtils', '2.0.3.2', { + 'checksums': ['4c6faabee2db8a87b7ea0f8e67e9fce3c5db7f4be353d7d86ea559507cbb2a4f'], + }), + ('openair', '2.10-0', { + 'checksums': ['1acdeafa1b96bbcb13c73f2ef965efb635e6306678cc22468d383c4bb5098a92'], + }), + ('pdp', '0.8.1', { + 'checksums': ['e23db66e5d575337d5c8fd664ccd0548cc85da2aca6613d90ce187be1dca376c'], + }), + ('date', '1.2-39', { + 'checksums': ['b5b1935638b73373809c009f94b77f993cd301744488d9bdf71ef79c82099757'], + }), + ('cmprsk', '2.2-11', { + 'checksums': ['844027cb2c162cf7ef97034d01237ad7b81aa192fe302250d22d2c5528110e14'], + }), + ('mets', '1.2.9', { + 'checksums': ['5faccc064e715c44234def40f4f560e90f2dbd34c915a8687b48103b39814ab5'], + }), + ('Publish', '2020.12.23', { + 'checksums': ['a7a98fc52801bee30b9c8cb423e4e0082ea42d05134f7d3324ac3e95242cfbe2'], + }), + ('riskRegression', '2022.03.22', { + 'checksums': ['4e1a66a45be73ae07bbc537192d3132e1cfc67ad24bc4b281b5cffa44282a047'], + }), + ('pec', '2022.05.04', { + 'checksums': ['47a1079b5d4aa5df8aaa716324ee48c55660025c4cf10c93b5ee1d7250761468'], + }), + ('pammtools', '0.5.8', { + 'checksums': ['37197edd0984f8bf0e0a39a4ac1cfce897050dbb7f610553c349118fceb3ca93'], + }), + ('relsurv', '2.2-7', { + 'checksums': ['82c84bbe0a3eb9b391cbb885b3f3e7114adda5243aa83f974922d2edca918317'], + }), + ('mstate', '0.3.2', { + 'checksums': ['3c473dff6854e31cdbdaf79f8fe7eaf97119b01a581874a894b283555afe8d14'], + }), + ('microbenchmark', '1.4.9', { + 'checksums': ['443d2caf370ef33e4ac2773176ad9eb86f8790f43b430968ef9647699dbbffd2'], + }), + ('prettyGraphs', '2.1.6', { + 'checksums': ['fece08924fc7ed05ec419afa14a2216a2bb23d9da5ed3fc61472d6e45be7577a'], + }), + ('ExPosition', '2.8.23', { + 'checksums': ['0510bc51b1c8c883ff3652a5ed56242f91c2b7b7cf3100755436bffa1e002475'], + }), + ('alluvial', '0.1-2', { + 'checksums': ['77b6dc4651b33b03aaaf1e09a35f9c3536e5fddac2eda34f5a34e0ae33cf2e0d'], + }), + ('SNFtool', '2.3.1', { + 'checksums': ['982fe7c57f52c0c272b8cb5863dc5d50623b368e24ff6e27fc8b17acc0101f16'], + }), + ('BayesLogit', '2.1', { + 'checksums': ['3a423f68339ed1bf25e21be53b1fd68452ed7807b17c36239fba759dc6fc6b70'], + }), + ('Hmsc', '3.0-11', { + 'checksums': ['318e95ea88a15939dac33691886a9ce0c54765b25a3f4ef483d168bfc699098a'], + }), + ('MonteCarlo', '1.0.6', { + 'checksums': ['f21aecfba957bbea9576b09f75b1f7c7621637a04532a8fed2c6bb8ffc1a98cb'], + }), + ('RhpcBLASctl', '0.21-247.1', { + 'checksums': ['5be55fd5ddd8173167a48b9f072835a34062ad0268308f2b3fbd1781a5c99769'], + }), + ('chkptstanr', '0.1.1', { + 'checksums': ['433b29d597d7ea6c21ed652782a7bf2d766f9223a3b7bfed235c8fe7fffd175c'], + }), + ('MLmetrics', '1.1.1', { + 'checksums': ['777f1b76b16837387b830e2b65304ede234b9299d17efd09c7fd403356122118'], + }), + ('renv', '0.15.5', { + 'checksums': ['b4f1a9a7daa82f0c3123ebd4eeba06e98d5485215518e5292b25bc56741d582e'], + }), + ('elliptic', '1.4-0', { + 'checksums': ['b65729b1a1c7a84a5b1a59bfc893a2d35106853eaadcae31cda5c9ee3c500bb6'], + }), + ('contfrac', '1.1-12', { + 'checksums': ['95bfc5e970513416c080486a1cd8dfd9f8d59fb691b02ef6ccbe0ce1ed61056b'], + }), + ('hypergeo', '1.2-13', { + 'checksums': ['6d5b78353aad1d13091ccbeb340867dad7b9eb00d0e2185286dc7e13848f4d8e'], + }), + ('rtdists', '0.11-5', { + 'checksums': ['97cf2ea758aa02b1dfaeef5032c6e50570777552aa771ed9a86df048b7871eed'], + }), + ('AMAPVox', '0.12.0', { + 'checksums': ['b30fefef8661e27ffe3883665204b623eda2143dbcd3084a1d5810f8ea834c85'], + }), + ('LCFdata', '2.0', { + 'checksums': ['b58f4d93b9023dd1ba2db96a59ddfc058397085933d8de4cdb38ee064d5e7bf4'], + }), + ('LMERConvenienceFunctions', '3.0', { + 'checksums': ['eb430de9fbf836173f716960d60afc2de91de7f986471f406c3ca9027142e849'], + }), +] + +moduleclass = 'lang' diff --git a/Golden_Repo/r/R/liquidSVM-1.2.4-fix_ppc_and_aarch64_build.patch b/Golden_Repo/r/R/liquidSVM-1.2.4-fix_ppc_and_aarch64_build.patch new file mode 100644 index 0000000000000000000000000000000000000000..56af45097b778929832cdb4b0af770543e61c5ce --- /dev/null +++ b/Golden_Repo/r/R/liquidSVM-1.2.4-fix_ppc_and_aarch64_build.patch @@ -0,0 +1,49 @@ +The code requires C++11 but nvcc is not passed any flag for it, do that to avoid 'error: identifier "__ieee128" is undefined' on PPC +Use uppercase __PPC64__ to detect PPC 64bit (defined by GCC) +Use lowercase __aarch64__ to detect aarch64 (defined by GCC) +diff -aur liquidSVM-orig/MD5 liquidSVM/MD5 +--- liquidSVM-orig/MD5 2020-02-20 15:51:17.387058566 +0100 ++++ liquidSVM/MD5 2020-02-20 16:48:06.042078399 +0100 +@@ -66,7 +66,7 @@ + e0ea06f050a2ae8ed2f2e401d968f0ce *man/test.liquidSVM.Rd + 8874fc45419e3174bf06013d887f6582 *man/trainSVMs.Rd + 4cf2abf7c6d415a4a8cd7f5dee2df959 *man/write.liquidData.Rd +-854c1eecccd169acdb80b03ad6d768dc *src/Makevars.in ++8c4346267f7b7f649ff27fb5288d4e23 *src/Makevars.in + e6d47b428caa2cc55798b431cb5e504f *src/kernel_calculator.cpp + 13af8529f5c2bccd4ea03288e9adf908 *src/kernel_calculator.h + dc2c86cbe61e7b7c5dd433f9fa41fac6 *src/liquidSVM.cpp +@@ -155,7 +155,7 @@ + 8b39ec05680bf3416bc1de3ad92f043f *src/sources/shared/system_support/cuda_simple_vector_operations.h + 806ca83732bff4b1b89adfc3494e90da *src/sources/shared/system_support/full_64bit_support.h + dfb08cdb449d490d86dd33bee186aac5 *src/sources/shared/system_support/memory_allocation.cpp +-aec0000be577e69e88c040b641d6818a *src/sources/shared/system_support/memory_allocation.h ++f0231e65bd627116f1b5ebcc45ab1e66 *src/sources/shared/system_support/memory_allocation.h + 683d4ee517b1c760dc410c69c5508ce2 *src/sources/shared/system_support/memory_allocation.ins.cpp + cbd209324ad752e19be10d8975d65e2f *src/sources/shared/system_support/os_specifics.h + 54e8583d2e8e269ff2b6d7a79d57cbd5 *src/sources/shared/system_support/parallel_control.cpp +diff -aur liquidSVM-orig/src/Makevars.in liquidSVM/src/Makevars.in +--- liquidSVM-orig/src/Makevars.in 2020-02-20 15:51:17.377058962 +0100 ++++ liquidSVM/src/Makevars.in 2020-02-20 16:47:44.042949538 +0100 +@@ -39,7 +39,7 @@ + # The architecure flag can be set to higher values, if the hardware supports this. + # The value below should be safe for essentially all non stone-age systems. + +-NVCCFLAGS= -arch sm_30 -L$(CUDA_LIB_PATH) -DCOMPILE_WITH_CUDA__ -U__SSE2__ -U__AVX__ ++NVCCFLAGS= -arch sm_30 -L$(CUDA_LIB_PATH) -DCOMPILE_WITH_CUDA__ -U__SSE2__ -U__AVX__ -std=c++11 + + + #----------- CUDA related flags for GCC ---------------------------------------------------- +diff -aur liquidSVM-orig/src/sources/shared/system_support/memory_allocation.h liquidSVM/src/sources/shared/system_support/memory_allocation.h +--- liquidSVM-orig/src/sources/shared/system_support/memory_allocation.h 2020-02-20 15:51:17.377058962 +0100 ++++ liquidSVM/src/sources/shared/system_support/memory_allocation.h 2020-02-20 15:56:04.905673381 +0100 +@@ -42,7 +42,7 @@ + + // Check for GCC + #if __GNUC__ +- #if __x86_64__ || __ppc64__ ++ #if __x86_64__ || __ppc64__ || __PPC64__ || __aarch64__ + #define SYSTEM_WITH_64BIT + #else + #define SYSTEM_WITH_32BIT + diff --git a/Golden_Repo/r/Rust/Rust-1.67.1-GCCcore-11.3.0.eb b/Golden_Repo/r/Rust/Rust-1.67.1-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..576b77803195085ba32d339244a3dba233a997af --- /dev/null +++ b/Golden_Repo/r/Rust/Rust-1.67.1-GCCcore-11.3.0.eb @@ -0,0 +1,58 @@ +easyblock = 'ConfigureMake' + +name = 'Rust' +version = '1.67.1' + +homepage = 'https://www.rust-lang.org' +description = """Rust is a systems programming language that runs blazingly fast, prevents segfaults, + and guarantees thread safety.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['https://static.rust-lang.org/dist/'] +sources = ['rustc-%(version)s-src.tar.gz'] +patches = ['Rust-1.60_sysroot-fix-interpreter.patch'] +checksums = [ + {'rustc-1.67.1-src.tar.gz': '46483d3e5de85a3bd46f8e7a3ae1837496391067dbe713a25d3cf051b3d9ff6e'}, + {'Rust-1.60_sysroot-fix-interpreter.patch': 'b59ed4c2591fc9098277299be21dd6752654f6f193d8652b7d21cb0fa0dd8716'}, +] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1'), + ('Python', '3.10.4', '-bare'), + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('OpenSSL', '1.1', '', True), +] + +configopts = "--enable-extended --sysconfdir=%(installdir)s/etc " + +# avoid build dependency on Ninja, which requires Python, +# since Rust is a build dependency for cryptography that is included with Python +configopts += "--set=llvm.ninja=false " + +# Use ./x.py to bootstrap so that options like -j N are correctly passed through +# see: https://rustc-dev-guide.rust-lang.org/building/how-to-build-and-run.html#what-is-xpy +# (ConfigureMake already adds `-j %(parallel)s` to the `build_cmd`) +build_cmd = "./x.py build" +install_cmd = "./x.py install -j %(parallel)s" + +# avoid failure when home directory is an NFS mount, +# see https://github.com/rust-lang/cargo/issues/6652 +prebuildopts = "export CARGO_HOME=%(builddir)s/cargo && " +preinstallopts = prebuildopts + +sanity_check_paths = { + 'files': ['bin/cargo', 'bin/rustc', 'bin/rustdoc'], + 'dirs': ['lib/rustlib', 'share/doc', 'share/man'], +} + +sanity_check_commands = [ + "cargo --version", + "rustc --version", +] + +moduleclass = 'lang' 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/SLEPc/SLEPc-3.18.2-gpsmkl-2022a.eb b/Golden_Repo/s/SLEPc/SLEPc-3.18.2-gpsmkl-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..1f739b100355a8d227f63e8023828b16db456ee8 --- /dev/null +++ b/Golden_Repo/s/SLEPc/SLEPc-3.18.2-gpsmkl-2022a.eb @@ -0,0 +1,29 @@ +name = 'SLEPc' + +version = '3.18.2' + +homepage = 'http://slepc.upv.es/' + +description = """SLEPc (Scalable Library for Eigenvalue Problem Computations) is a software library for the solution +of large scale sparse eigenvalue problems on parallel computers. It is an extension of PETSc and can be used for +either standard or generalized eigenproblems, with real or complex arithmetic. It can also be used for computing a +partial SVD of a large, sparse, rectangular matrix, and to solve quadratic eigenvalue problems.""" +examples = 'Examples can be found in $EBROOTSLEPC/share/slepc/examples/' + +toolchain = {'name': 'gpsmkl', 'version': '2022a'} +toolchainopts = {'usempi': True, 'openmp': True} +source_urls = ['http://slepc.upv.es/download/distrib'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['5bd90a755934e702ab1fdb3320b9fe75ab5fc28c93d364248ea86a372fbe6a62'] + +dependencies = [('PETSc', '3.18.5')] +petsc_arch = 'installed-arch-linux2-c-opt' + +modextravars = { + 'SLEPc_ROOT': '%(installdir)s', + 'SLEPcROOT': '%(installdir)s', + 'SLEPc_INCLUDE': '%(installdir)s/include/', + 'SLEPc_LIB': '%(installdir)s/lib', +} + +moduleclass = 'numlib' diff --git a/Golden_Repo/s/SciPy-Stack/SciPy-Stack-2022a-gcccoremkl-11.3.0-2022.1.0.eb b/Golden_Repo/s/SciPy-Stack/SciPy-Stack-2022a-gcccoremkl-11.3.0-2022.1.0.eb index 75e2b199c39e9233a05d8f8b0c6e58b05488623a..a90454d685879b08b33bd8d1ba8bf1e7a25678be 100644 --- a/Golden_Repo/s/SciPy-Stack/SciPy-Stack-2022a-gcccoremkl-11.3.0-2022.1.0.eb +++ b/Golden_Repo/s/SciPy-Stack/SciPy-Stack-2022a-gcccoremkl-11.3.0-2022.1.0.eb @@ -5,7 +5,7 @@ version = '2022a' homepage = 'http://www.scipy.org' description = """SciPy Stack is a collection of open source software for scientific computing in Python. SciPy Stack includes SciPy-bundle/2022.05, matplotlib/3.5.2, Seaborn/0.12.1, sympy/1.11.1, xarray/2022.9.0 -and IPython 8.5.0. +and IPython 8.14.0. """ toolchain = {'name': 'gcccoremkl', 'version': '11.3.0-2022.1.0'} @@ -17,7 +17,7 @@ dependencies = [ ('Seaborn', '0.12.1'), ('sympy', '1.11.1'), ('xarray', '2022.9.0'), - ('IPython', '8.5.0'), + ('IPython', '8.14.0'), ] moduleclass = 'vis' diff --git a/Golden_Repo/s/SciPy-bundle/SciPy-bundle-2022.05-gcccoremkl-11.3.0-2022.1.0.eb b/Golden_Repo/s/SciPy-bundle/SciPy-bundle-2022.05-gcccoremkl-11.3.0-2022.1.0.eb index 788dd8af5a41d3d9c8202e9505fb78313fd319c4..3c50e33aad5ef06a900ecd416ccec68f58aca9cf 100644 --- a/Golden_Repo/s/SciPy-bundle/SciPy-bundle-2022.05-gcccoremkl-11.3.0-2022.1.0.eb +++ b/Golden_Repo/s/SciPy-bundle/SciPy-bundle-2022.05-gcccoremkl-11.3.0-2022.1.0.eb @@ -77,12 +77,8 @@ exts_list = [ ('mpmath', '1.2.1', { 'checksums': ['79ffb45cf9f4b101a807595bcb3e72e0396202e0b1d25d689134b48c4216a81a'], }), - ('deap', '1.3.1', { - 'patches': ['deap-1.3.1_no_2to3.patch'], - 'checksums': [ - '11f54493ceb54aae10dde676577ef59fc52d52f82729d5a12c90b0813c857a2f', # deap-1.3.1.tar.gz - '3fa9fac74b0750ac6667371ce0634c797d62d270c76eee9c258b55f4a5a5e689', # deap-1.3.1_no_2to3.patch - ], + ('deap', '1.3.3', { + 'checksums': ['8772f1b0fff042d5e516b0aebac2c706243045aa7d0de8e0b8658f380181cf31'], }), ] diff --git a/Golden_Repo/s/Score-P/Score-P-8.1-gompi-2022a.eb b/Golden_Repo/s/Score-P/Score-P-8.1-gompi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..322e24504bfaa6c3941bf7699eb8b543344ed118 --- /dev/null +++ b/Golden_Repo/s/Score-P/Score-P-8.1-gompi-2022a.eb @@ -0,0 +1,67 @@ +## +# 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> +# Markus Geimer <m.geimer@fz-juelich.de> +# Christian Feld <c.feld@fz-juelich.de> +# License:: 3-clause BSD +# +# This work is based on experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +easyblock = 'EB_Score_minus_P' + +name = 'Score-P' +version = '8.1' + +homepage = 'https://www.score-p.org' +description = """ +The Score-P measurement infrastructure is a highly scalable and easy-to-use +tool suite for profiling, event tracing, and online analysis of HPC +applications. +""" + +toolchain = {'name': 'gompi', 'version': '2022a'} + +source_urls = ['http://perftools.pages.jsc.fz-juelich.de/cicd/scorep/tags/scorep-%(version)s'] +sources = ['scorep-%(version)s.tar.gz'] +checksums = [ + '3a40b481fce610871ddf6bdfb88a6d06b9e5eb38c6080faac6d5e44990060a37', # scorep-8.1.tar.gz +] + +builddependencies = [ + ('CUDA', '11.7', '', SYSTEM), + ('CubeLib', '4.8.1'), + ('CubeWriter', '4.8.1'), + # Unwinding/sampling support (optional): + ('libunwind', '1.6.2'), +] + +dependencies = [ + # binutils is implicitly available via GCC toolchain + ('OPARI2', '2.0.7'), + ('OTF2', '3.0.3'), + # Hardware counter support (optional): + ('PAPI', '7.0.0'), +] + +configopts = '--enable-shared --with-machine-name=$SYSTEMNAME ' +# Enable CUDA support +configopts += '--with-libOpenCL=$EBROOTCUDA/targets/x86_64-linux ' +# Make OMPT default, if available +configopts += '--enable-default=ompt ' + +postinstallcmds = ['make installcheck'] + +sanity_check_paths = { + 'files': ['bin/scorep', 'include/scorep/SCOREP_User.h', + ('lib/libscorep_adapter_mpi_event.a', 'lib64/libscorep_adapter_mpi_event.a'), + ('lib/libscorep_adapter_mpi_event.%s' % SHLIB_EXT, 'lib64/libscorep_adapter_mpi_event.%s' % SHLIB_EXT)], + 'dirs': [], +} + +# Ensure that local metric documentation is found by CubeGUI +modextrapaths = {'CUBE_DOCPATH': 'share/doc/scorep/profile'} + +moduleclass = 'perf' diff --git a/Golden_Repo/s/Score-P/Score-P-8.1-gpsmpi-2022a.eb b/Golden_Repo/s/Score-P/Score-P-8.1-gpsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..ac63d8bbb423b929edf36c9d4ce03a64ce2408af --- /dev/null +++ b/Golden_Repo/s/Score-P/Score-P-8.1-gpsmpi-2022a.eb @@ -0,0 +1,67 @@ +## +# 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> +# Markus Geimer <m.geimer@fz-juelich.de> +# Christian Feld <c.feld@fz-juelich.de> +# License:: 3-clause BSD +# +# This work is based on experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +easyblock = 'EB_Score_minus_P' + +name = 'Score-P' +version = '8.1' + +homepage = 'https://www.score-p.org' +description = """ +The Score-P measurement infrastructure is a highly scalable and easy-to-use +tool suite for profiling, event tracing, and online analysis of HPC +applications. +""" + +toolchain = {'name': 'gpsmpi', 'version': '2022a'} + +source_urls = ['http://perftools.pages.jsc.fz-juelich.de/cicd/scorep/tags/scorep-%(version)s'] +sources = ['scorep-%(version)s.tar.gz'] +checksums = [ + '3a40b481fce610871ddf6bdfb88a6d06b9e5eb38c6080faac6d5e44990060a37', # scorep-8.1.tar.gz +] + +builddependencies = [ + ('CUDA', '11.7', '', SYSTEM), + ('CubeLib', '4.8.1'), + ('CubeWriter', '4.8.1'), + # Unwinding/sampling support (optional): + ('libunwind', '1.6.2'), +] + +dependencies = [ + # binutils is implicitly available via GCC toolchain + ('OPARI2', '2.0.7'), + ('OTF2', '3.0.3'), + # Hardware counter support (optional): + ('PAPI', '7.0.0'), +] + +configopts = '--enable-shared --with-machine-name=$SYSTEMNAME ' +# Enable CUDA support +configopts += '--with-libOpenCL=$EBROOTCUDA/targets/x86_64-linux ' +# Make OMPT default, if available +configopts += '--enable-default=ompt ' + +postinstallcmds = ['make installcheck'] + +sanity_check_paths = { + 'files': ['bin/scorep', 'include/scorep/SCOREP_User.h', + ('lib/libscorep_adapter_mpi_event.a', 'lib64/libscorep_adapter_mpi_event.a'), + ('lib/libscorep_adapter_mpi_event.%s' % SHLIB_EXT, 'lib64/libscorep_adapter_mpi_event.%s' % SHLIB_EXT)], + 'dirs': [], +} + +# Ensure that local metric documentation is found by CubeGUI +modextrapaths = {'CUBE_DOCPATH': 'share/doc/scorep/profile'} + +moduleclass = 'perf' diff --git a/Golden_Repo/s/Score-P/Score-P-8.1-ipsmpi-2022a.eb b/Golden_Repo/s/Score-P/Score-P-8.1-ipsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..9c4b609723f5ba69f2efb3715e03aaf359f9f490 --- /dev/null +++ b/Golden_Repo/s/Score-P/Score-P-8.1-ipsmpi-2022a.eb @@ -0,0 +1,67 @@ +## +# 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> +# Markus Geimer <m.geimer@fz-juelich.de> +# Christian Feld <c.feld@fz-juelich.de> +# License:: 3-clause BSD +# +# This work is based on experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +easyblock = 'EB_Score_minus_P' + +name = 'Score-P' +version = '8.1' + +homepage = 'https://www.score-p.org' +description = """ +The Score-P measurement infrastructure is a highly scalable and easy-to-use +tool suite for profiling, event tracing, and online analysis of HPC +applications. +""" + +toolchain = {'name': 'ipsmpi', 'version': '2022a'} + +source_urls = ['http://perftools.pages.jsc.fz-juelich.de/cicd/scorep/tags/scorep-%(version)s'] +sources = ['scorep-%(version)s.tar.gz'] +checksums = [ + '3a40b481fce610871ddf6bdfb88a6d06b9e5eb38c6080faac6d5e44990060a37', # scorep-8.1.tar.gz +] + +builddependencies = [ + ('CUDA', '11.7', '', SYSTEM), + ('CubeLib', '4.8.1'), + ('CubeWriter', '4.8.1'), + # Unwinding/sampling support (optional): + ('libunwind', '1.6.2'), +] + +dependencies = [ + # binutils is implicitly available via GCC toolchain + ('OPARI2', '2.0.7'), + ('OTF2', '3.0.3'), + # Hardware counter support (optional): + ('PAPI', '7.0.0'), +] + +configopts = '--enable-shared --with-machine-name=$SYSTEMNAME ' +# Enable CUDA support +configopts += '--with-libOpenCL=$EBROOTCUDA/targets/x86_64-linux ' +# Make OMPT default, if available +configopts += '--enable-default=ompt ' + +postinstallcmds = ['make installcheck'] + +sanity_check_paths = { + 'files': ['bin/scorep', 'include/scorep/SCOREP_User.h', + ('lib/libscorep_adapter_mpi_event.a', 'lib64/libscorep_adapter_mpi_event.a'), + ('lib/libscorep_adapter_mpi_event.%s' % SHLIB_EXT, 'lib64/libscorep_adapter_mpi_event.%s' % SHLIB_EXT)], + 'dirs': [], +} + +# Ensure that local metric documentation is found by CubeGUI +modextrapaths = {'CUBE_DOCPATH': 'share/doc/scorep/profile'} + +moduleclass = 'perf' diff --git a/Golden_Repo/s/Score-P/Score-P-8.1-npsmpic-2022a.eb b/Golden_Repo/s/Score-P/Score-P-8.1-npsmpic-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..17d41f01eef781abdf5c54f9ae6cf8ab7a229b27 --- /dev/null +++ b/Golden_Repo/s/Score-P/Score-P-8.1-npsmpic-2022a.eb @@ -0,0 +1,67 @@ +## +# 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> +# Markus Geimer <m.geimer@fz-juelich.de> +# Christian Feld <c.feld@fz-juelich.de> +# License:: 3-clause BSD +# +# This work is based on experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +easyblock = 'EB_Score_minus_P' + +name = 'Score-P' +version = '8.1' + +homepage = 'https://www.score-p.org' +description = """ +The Score-P measurement infrastructure is a highly scalable and easy-to-use +tool suite for profiling, event tracing, and online analysis of HPC +applications. +""" + +toolchain = {'name': 'npsmpic', 'version': '2022a'} + +source_urls = ['http://perftools.pages.jsc.fz-juelich.de/cicd/scorep/tags/scorep-%(version)s'] +sources = ['scorep-%(version)s.tar.gz'] +checksums = [ + '3a40b481fce610871ddf6bdfb88a6d06b9e5eb38c6080faac6d5e44990060a37', # scorep-8.1.tar.gz +] + +builddependencies = [ + ('CUDA', '11.7', '', SYSTEM), + ('CubeLib', '4.8.1'), + ('CubeWriter', '4.8.1'), + # Unwinding/sampling support (optional): + ('libunwind', '1.6.2'), +] + +dependencies = [ + # binutils is implicitly available via GCC toolchain + ('OPARI2', '2.0.7'), + ('OTF2', '3.0.3'), + # Hardware counter support (optional): + ('PAPI', '7.0.0'), +] + +configopts = '--enable-shared --with-machine-name=$SYSTEMNAME ' +# Enable CUDA support +configopts += '--with-libOpenCL=$EBROOTCUDA/targets/x86_64-linux ' +# Make OMPT default, if available +configopts += '--enable-default=ompt ' + +postinstallcmds = ['make installcheck'] + +sanity_check_paths = { + 'files': ['bin/scorep', 'include/scorep/SCOREP_User.h', + ('lib/libscorep_adapter_mpi_event.a', 'lib64/libscorep_adapter_mpi_event.a'), + ('lib/libscorep_adapter_mpi_event.%s' % SHLIB_EXT, 'lib64/libscorep_adapter_mpi_event.%s' % SHLIB_EXT)], + 'dirs': [], +} + +# Ensure that local metric documentation is found by CubeGUI +modextrapaths = {'CUBE_DOCPATH': 'share/doc/scorep/profile'} + +moduleclass = 'perf' diff --git a/Golden_Repo/s/Score-P/Score-P-8.1-nvompic-2022a.eb b/Golden_Repo/s/Score-P/Score-P-8.1-nvompic-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..2464a970ac4184b5fee64a350378ff63f809648b --- /dev/null +++ b/Golden_Repo/s/Score-P/Score-P-8.1-nvompic-2022a.eb @@ -0,0 +1,67 @@ +## +# 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> +# Markus Geimer <m.geimer@fz-juelich.de> +# Christian Feld <c.feld@fz-juelich.de> +# License:: 3-clause BSD +# +# This work is based on experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +easyblock = 'EB_Score_minus_P' + +name = 'Score-P' +version = '8.1' + +homepage = 'https://www.score-p.org' +description = """ +The Score-P measurement infrastructure is a highly scalable and easy-to-use +tool suite for profiling, event tracing, and online analysis of HPC +applications. +""" + +toolchain = {'name': 'nvompic', 'version': '2022a'} + +source_urls = ['http://perftools.pages.jsc.fz-juelich.de/cicd/scorep/tags/scorep-%(version)s'] +sources = ['scorep-%(version)s.tar.gz'] +checksums = [ + '3a40b481fce610871ddf6bdfb88a6d06b9e5eb38c6080faac6d5e44990060a37', # scorep-8.1.tar.gz +] + +builddependencies = [ + ('CUDA', '11.7', '', SYSTEM), + ('CubeLib', '4.8.1'), + ('CubeWriter', '4.8.1'), + # Unwinding/sampling support (optional): + ('libunwind', '1.6.2'), +] + +dependencies = [ + # binutils is implicitly available via GCC toolchain + ('OPARI2', '2.0.7'), + ('OTF2', '3.0.3'), + # Hardware counter support (optional): + ('PAPI', '7.0.0'), +] + +configopts = '--enable-shared --with-machine-name=$SYSTEMNAME ' +# Enable CUDA support +configopts += '--with-libOpenCL=$EBROOTCUDA/targets/x86_64-linux ' +# Make OMPT default, if available +configopts += '--enable-default=ompt ' + +postinstallcmds = ['make installcheck'] + +sanity_check_paths = { + 'files': ['bin/scorep', 'include/scorep/SCOREP_User.h', + ('lib/libscorep_adapter_mpi_event.a', 'lib64/libscorep_adapter_mpi_event.a'), + ('lib/libscorep_adapter_mpi_event.%s' % SHLIB_EXT, 'lib64/libscorep_adapter_mpi_event.%s' % SHLIB_EXT)], + 'dirs': [], +} + +# Ensure that local metric documentation is found by CubeGUI +modextrapaths = {'CUBE_DOCPATH': 'share/doc/scorep/profile'} + +moduleclass = 'perf' 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/scikit-image/scikit-image-0.19.3-foss-2022a.eb b/Golden_Repo/s/scikit-image/scikit-image-0.19.3-foss-2022a.eb deleted file mode 100644 index d0f19c038b4264631acf12b9692cbbf47cd282d7..0000000000000000000000000000000000000000 --- a/Golden_Repo/s/scikit-image/scikit-image-0.19.3-foss-2022a.eb +++ /dev/null @@ -1,43 +0,0 @@ -easyblock = 'PythonBundle' - -name = 'scikit-image' -version = '0.19.3' - -homepage = 'https://scikit-image.org/' -description = "scikit-image is a collection of algorithms for image processing." - -toolchain = {'name': 'foss', 'version': '2022a'} - -dependencies = [ - ('Python', '3.10.4'), - ('matplotlib', '3.5.2', '', ('gcccoremkl', '11.3.0-2022.1.0')), - ('Pillow-SIMD', '9.2.0'), - ('networkx', '2.8.4', '', ('gcccoremkl', '11.3.0-2022.1.0')), - ('dask', '2022.10.2', '', ('gcccoremkl', '11.3.0-2022.1.0')), - ('imageio', '2.22.2'), -] - -use_pip = True -sanity_pip_check = True - -exts_list = [ - ('PyWavelets', '1.4.1', { - 'modulename': 'pywt', - 'checksums': ['6437af3ddf083118c26d8f97ab43b0724b956c9f958e9ea788659f6a2834ba93'], - }), - ('imread', '0.7.4', { - 'checksums': ['0487adef11a22168700968c1727020361a72f6132b6ced2b8826b02d8cbf744f'], - }), - ('pooch', '1.6.0', { - 'checksums': ['57d20ec4b10dd694d2b05bb64bc6b109c6e85a6c1405794ce87ed8b341ab3f44'], - }), - ('tifffile', '2022.10.10', { - 'checksums': ['50b61ba943b866d191295bc38a00191c9fdab23ece063544c7f1a264e3f6aa8e'], - }), - (name, version, { - 'modulename': 'skimage', - 'checksums': ['24b5367de1762da6ee126dd8f30cc4e7efda474e0d7d70685433f0e3aa2ec450'], - }), -] - -moduleclass = 'vis' diff --git a/Golden_Repo/s/scikit-image/scikit-image-0.19.3-gcccoremkl-11.3.0-2022.1.0.eb b/Golden_Repo/s/scikit-image/scikit-image-0.19.3-gcccoremkl-11.3.0-2022.1.0.eb index 434e5161cffc25c54576b18682a45026d1a7dbf1..1d1e65d6f84ce4abf03c191d775c3922bf4362fa 100644 --- a/Golden_Repo/s/scikit-image/scikit-image-0.19.3-gcccoremkl-11.3.0-2022.1.0.eb +++ b/Golden_Repo/s/scikit-image/scikit-image-0.19.3-gcccoremkl-11.3.0-2022.1.0.eb @@ -13,7 +13,7 @@ dependencies = [ ('matplotlib', '3.5.2'), ('Pillow-SIMD', '9.2.0'), ('networkx', '2.8.4'), - ('dask', '2022.10.2'), + ('dask', '2022.12.0'), ('imageio', '2.22.2'), ] diff --git a/Golden_Repo/s/scikit-learn/scikit-learn-1.1.2-foss-2022a.eb b/Golden_Repo/s/scikit-learn/scikit-learn-1.1.2-foss-2022a.eb deleted file mode 100644 index a2a04fa2ba1d6533415dad716ab243dc9ff95743..0000000000000000000000000000000000000000 --- a/Golden_Repo/s/scikit-learn/scikit-learn-1.1.2-foss-2022a.eb +++ /dev/null @@ -1,32 +0,0 @@ -easyblock = 'PythonBundle' - -name = 'scikit-learn' -version = '1.1.2' - -homepage = 'https://scikit-learn.org/stable/index.html' -description = """Scikit-learn integrates machine learning algorithms in the tightly-knit scientific Python world, -building upon numpy, scipy, and matplotlib. As a machine-learning module, -it provides versatile tools for data mining and analysis in any field of science and engineering. -It strives to be simple and efficient, accessible to everybody, and reusable in various contexts.""" - -toolchain = {'name': 'foss', 'version': '2022a'} - -dependencies = [ - ('Python', '3.10.4'), - ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), -] - -use_pip = True -sanity_pip_check = True - -exts_list = [ - (name, version, { - 'modulename': 'sklearn', - 'checksums': ['7c22d1305b16f08d57751a4ea36071e2215efb4c09cb79183faa4e8e82a3dbf8'], - }), - ('sklearn', '0.0', { - 'checksums': ['e23001573aa194b834122d2b9562459bf5ae494a2d59ca6b8aa22c85a44c0e31'], - }), -] - -moduleclass = 'data' diff --git a/Golden_Repo/s/shpc/shpc-0.1.17-GCCcore-11.3.0.eb b/Golden_Repo/s/shpc/shpc-0.1.19-GCCcore-11.3.0.eb similarity index 93% rename from Golden_Repo/s/shpc/shpc-0.1.17-GCCcore-11.3.0.eb rename to Golden_Repo/s/shpc/shpc-0.1.19-GCCcore-11.3.0.eb index 04e02382d017cdd8ca86d6d9ffea5e80fcbc6614..664f4a179d95a7013ee2cb46add918a9dd7e2014 100644 --- a/Golden_Repo/s/shpc/shpc-0.1.17-GCCcore-11.3.0.eb +++ b/Golden_Repo/s/shpc/shpc-0.1.19-GCCcore-11.3.0.eb @@ -1,7 +1,7 @@ easyblock = 'PythonBundle' name = 'shpc' -version = '0.1.17' +version = '0.1.19' homepage = 'https://github.com/singularityhub/singularity-hpc' @@ -10,8 +10,6 @@ Environement Modules. Works for users and admins.""" toolchain = {'name': 'GCCcore', 'version': '11.3.0'} -# -# sources = ['%(version)s.tar.gz'] builddependencies = [('binutils', '2.38')] @@ -37,7 +35,7 @@ exts_list = [ (name, version, { 'source_urls': ['https://github.com/singularityhub/singularity-hpc/archive/refs/tags/'], 'sources': ['%(version)s.tar.gz'], - 'checksums': ['ca5315142d0b3690a07fc12ea147c404a05ed75f9552ce7f563f833cf8832b58'], + 'checksums': ['5dbccd6e05d09a547a6d70e137ed626f514ac29623d4557799b076f7db04b0a5'], }), ] diff --git a/Golden_Repo/t/TensorFlow/TensorFlow-2.11.0-foss-2022a-CUDA-11.7.eb b/Golden_Repo/t/TensorFlow/TensorFlow-2.11.0-foss-2022a-CUDA-11.7.eb new file mode 100644 index 0000000000000000000000000000000000000000..a7347f45536d400834abb7f705036277d411b9bd --- /dev/null +++ b/Golden_Repo/t/TensorFlow/TensorFlow-2.11.0-foss-2022a-CUDA-11.7.eb @@ -0,0 +1,231 @@ +easyblock = 'PythonBundle' + +name = 'TensorFlow' +version = '2.11.0' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://www.tensorflow.org/' +description = "An open-source software library for Machine Intelligence" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'pic': True} + +builddependencies = [ + ('Bazel', '5.1.1'), + ('protobuf', '3.19.4'), + # git 2.x required, see also https://github.com/tensorflow/tensorflow/issues/29053 + ('git', '2.36.0', '-nodocs'), + ('pybind11', '2.9.2'), + ('UnZip', '6.0'), + ('LLVM', '14.0.3'), # for debugging with llvm-symbolizer, to be removed +] +dependencies = [ + ('CUDA', '11.7', '', SYSTEM), + ('cuDNN', '8.6.0.163', versionsuffix, SYSTEM), + ('NCCL', 'default', versionsuffix), + ('Python', '3.10.4'), + ('h5py', '3.7.0'), + ('cURL', '7.83.0'), + ('dill', '0.3.6'), + ('double-conversion', '3.2.0'), + ('flatbuffers', '2.0.7'), + ('giflib', '5.2.1'), + ('hwloc', '2.7.1'), + ('ICU', '71.1'), + ('JsonCpp', '1.9.5'), + ('libjpeg-turbo', '2.1.3'), + ('LMDB', '0.9.29'), + ('NASM', '2.15.05'), + ('nsync', '1.25.0'), + ('SQLite', '3.38.3'), + ('protobuf-python', '3.19.4'), + ('libpng', '1.6.37'), + ('snappy', '1.1.9'), + ('zlib', '1.2.12'), + ('networkx', '2.8.4', '', ('gcccoremkl', '11.3.0-2022.1.0')), # required for pythran +] + +use_pip = True +sanity_pip_check = True + +# Dependencies created and updated using findPythonDeps.sh: +# https://gist.github.com/Flamefire/49426e502cd8983757bd01a08a10ae0d +exts_list = [ + ('wrapt', '1.14.1', { + 'checksums': ['380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d'], + }), + ('termcolor', '1.1.0', { + 'checksums': ['1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b'], + }), + ('tensorflow-estimator', version, { + 'source_tmpl': 'tensorflow_estimator-%(version)s-py2.py3-none-any.whl', + 'checksums': ['ea3b64acfff3d9a244f06178c9bdedcbdd3f125b67d0888dba8229498d06468b'], + }), + ('Werkzeug', '2.2.2', { + 'checksums': ['7ea2d48322cc7c0f8b3a215ed73eabd7b5d75d0b50e31ab006286ccff9e00b8f'], + }), + ('tensorboard-plugin-wit', '1.8.1', { + 'source_tmpl': 'tensorboard_plugin_wit-%(version)s-py3-none-any.whl', + 'checksums': ['ff26bdd583d155aa951ee3b152b3d0cffae8005dc697f72b44a8e8c2a77a8cbe'], + }), + ('tensorboard-data-server', '0.6.1', { + 'source_tmpl': 'tensorboard_data_server-%(version)s-py3-none-any.whl', + 'checksums': ['809fe9887682d35c1f7d1f54f0f40f98bb1f771b14265b453ca051e2ce58fca7'], + }), + ('Markdown', '3.4.1', { + 'checksums': ['3b809086bb6efad416156e00a0da66fe47618a5d6918dd688f53f40c8e4cfeff'], + }), + ('grpcio', '1.51.1', { + 'modulename': 'grpc', + 'preinstallopts': "export GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS=%(parallel)s && ", + 'checksums': ['e6dfc2b6567b1c261739b43d9c59d201c1b89e017afd9e684d85aa7a186c9f7a'], + }), + ('oauthlib', '3.2.2', { + 'checksums': ['9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918'], + }), + ('requests-oauthlib', '1.3.1', { + 'checksums': ['75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a'], + }), + ('rsa', '4.9', { + 'checksums': ['e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21'], + }), + ('pyasn1-modules', '0.2.8', { + 'checksums': ['905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e'], + }), + ('cachetools', '5.2.1', { + 'checksums': ['5991bc0e08a1319bb618d3195ca5b6bc76646a49c21d55962977197b301cc1fe'], + }), + ('google-auth', '2.16.0', { + 'modulename': 'google.auth', + 'checksums': ['ed7057a101af1146f0554a769930ac9de506aeca4fd5af6543ebe791851a9fbd'], + }), + ('google-auth-oauthlib', '0.4.6', { + 'checksums': ['a90a072f6993f2c327067bf65270046384cda5a8ecb20b94ea9a687f1f233a7a'], + }), + ('absl-py', '1.4.0', { + 'modulename': 'absl', + 'checksums': ['d2c244d01048ba476e7c080bd2c6df5e141d211de80223460d5b3b8a2a58433d'], + }), + ('tensorboard', '2.11.1', { + 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'checksums': ['0c7529f3f43691e8cc2ece8e564c2e103c51ade317c6af626d415239b5088018'], + }), + ('opt-einsum', '3.3.0', { + 'source_tmpl': 'opt_einsum-%(version)s.tar.gz', + 'checksums': ['59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549'], + }), + ('keras', version, { + 'source_tmpl': '%(name)s-%(version)s-py2.py3-none-any.whl', + 'checksums': ['38c6fff0ea9a8b06a2717736565c92a73c8cd9b1c239e7125ccb188b7848f65e'], + }), + ('google-pasta', '0.2.0', { + 'modulename': 'pasta', + 'checksums': ['c9f2c8dfc8f96d0d5808299920721be30c9eec37f2389f28904f454565c8a16e'], + }), + ('astunparse', '1.6.3', { + 'checksums': ['5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872'], + }), + ('gast', '0.4.0', { + 'checksums': ['40feb7b8b8434785585ab224d1568b857edb18297e5a3047f1ba012bc83b42c1'], + }), + ('beniget', '0.3.0', { + 'checksums': ['062c893be9cdf87c3144fb15041cce4d81c67107c1591952cd45fdce789a0ff1'], + }), + ('pythran', '0.9.11', { + 'checksums': ['a317f91e2aade9f6550dc3bf40b5caeb45b7e012daf27e2b3e4ad928edb01667'], + }), + ('portpicker', '1.5.2', { + 'checksums': ['c55683ad725f5c00a41bc7db0225223e8be024b1fa564d039ed3390e4fd48fb3'], + }), + ('tblib', '1.7.0', { + 'checksums': ['059bd77306ea7b419d4f76016aef6d7027cc8a0785579b5aad198803435f882c'], + }), + ('astor', '0.8.1', { + 'checksums': ['6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e'], + }), + ('gviz-api', '1.10.0', { + 'source_tmpl': 'gviz_api-%(version)s.tar.gz', + 'checksums': ['846692dd8cc73224fc31b18e41589bd934e1cc05090c6576af4b4b26c2e71b90'], + }), + ('tensorboard-plugin-profile', '2.11.1', { + 'source_tmpl': 'tensorboard_plugin_profile-%(version)s.tar.gz', + 'checksums': ['7a97c02d502fde98a0336aadcab15b37169744d5bf6966af7d576c7a3f0a89f4'], + }), + (name, version, { + 'patches': [ + '%(name)s-2.4.0_dont-use-var-lock.patch', + '%(name)s-2.5.0-fix-alias-violation-in-absl.patch', + '%(name)s-2.5.0_fix-crash-on-shutdown.patch', + '%(name)s-2.8.4_exclude-xnnpack-on-ppc.patch', + '%(name)s-2.8.4_resolve-gcc-symlinks.patch', + '%(name)s-2.9.1_remove-duplicate-gpu-tests.patch', + '%(name)s-%(version)s_disable-avx512-extensions.patch', + '%(name)s-%(version)s_fix-eigen-atan-on-PPC.patch', + '%(name)s-%(version)s_fix-eigen-gemm-on-PPC.patch', + '%(name)s-%(version)s_fix-link-error.patch', + '%(name)s-%(version)s_remove-libclang-and-io-gcs-deps.patch', + ('tensorboard-2.11.1-jupyter.fix', 'tools'), + ], + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/tensorflow/tensorflow/archive/'], + 'test_script': 'TensorFlow-2.x_mnist-test.py', + 'test_tag_filters_cpu': '-gpu,-tpu,-no_cuda_on_cpu_tap,-no_pip,-no_oss,-oss_serial,-benchmark-test,-v1only', + 'test_tag_filters_gpu': "gpu,-no_gpu,-nogpu,-gpu_cupti, \ + -no_cuda11,-no_pip,-no_oss,-oss_serial,-benchmark-test,-v1only", + 'test_targets': [ + '//tensorflow/core/...', + '-//tensorflow/core:example_java_proto', + '-//tensorflow/core/example:example_protos_closure', + '//tensorflow/cc/...', + '//tensorflow/c/...', + '//tensorflow/python/...', + '-//tensorflow/c/eager:c_api_test_gpu', + '-//tensorflow/c/eager:c_api_distributed_test', + '-//tensorflow/c/eager:c_api_distributed_test_gpu', + '-//tensorflow/c/eager:c_api_cluster_test_gpu', + '-//tensorflow/c/eager:c_api_remote_function_test_gpu', + '-//tensorflow/c/eager:c_api_remote_test_gpu', + '-//tensorflow/core/common_runtime:collective_param_resolver_local_test', + '-//tensorflow/core/common_runtime:mkl_layout_pass_test', + '-//tensorflow/core/kernels/mkl:mkl_fused_ops_test', + '-//tensorflow/core/kernels/mkl:mkl_fused_batch_norm_op_test', + '-//tensorflow/core/ir/importexport/tests/roundtrip/...', + ], + 'testopts': "--test_timeout=3600 --test_size_filters=small", + 'testopts_gpu': "--test_timeout=3600 --test_size_filters=small \ + --run_under=//tensorflow/tools/ci_build/gpu_build:parallel_gpu_execute", + 'with_xla': True, + 'checksums': [ + {'v2.11.0.tar.gz': '99c732b92b1b37fc243a559e02f9aef5671771e272758aa4aec7f34dc92dac48'}, + {'TensorFlow-2.4.0_dont-use-var-lock.patch': + 'b14f2493fd2edf79abd1c4f2dde6c98a3e7d5cb9c25ab9386df874d5f072d6b5'}, + {'TensorFlow-2.5.0-fix-alias-violation-in-absl.patch': + '12454fda3330fb45cd380377e283f04488b40e0b8ae7378e786ddf731a581f75'}, + {'TensorFlow-2.5.0_fix-crash-on-shutdown.patch': + '578c7493221ebd3dc25ca43d63a72cbb28fdf4112b1e2baa7390f25781bd78fd'}, + {'TensorFlow-2.8.4_exclude-xnnpack-on-ppc.patch': + 'ebd404ac56cc4ca662483f1f591e62e11749361be57a7ba5f4b2f0d03e829884'}, + {'TensorFlow-2.8.4_resolve-gcc-symlinks.patch': + '43ce9acc6bffff68a31d2263d0064d272999b2e0a2c6546690287cd1c9c90f04'}, + {'TensorFlow-2.9.1_remove-duplicate-gpu-tests.patch': + '6fe50faab28387c622c68dc3fc0cbfb2a51000cd750c1a82f8420b54fcd2509f'}, + {'TensorFlow-2.11.0_disable-avx512-extensions.patch': + 'fb8e7694b5d2377cc44e6674ff85a7c50dc725f2f507cbcfda65f129f534b1cc'}, + {'TensorFlow-2.11.0_fix-eigen-atan-on-PPC.patch': + 'd9f4779f72ffd2c5f9c5da0a7735328dd25756515edccf603087dba2bf4d1612'}, + {'TensorFlow-2.11.0_fix-eigen-gemm-on-PPC.patch': + '4f18ff0563b0ef8556904db1bb4974f8068bf0d2ee1effb24e0c779eb32517e3'}, + {'TensorFlow-2.11.0_fix-link-error.patch': + '0a2f5c9c5be425f305bdc08f5a5ffce210e66f6ad4120d94ea0209246fc0449f'}, + {'TensorFlow-2.11.0_remove-libclang-and-io-gcs-deps.patch': + '21d5723ab4e9a3be349cf3d57bb55cbe43e28785a8c8b19c52cee9dcc4dcf0de'}, + {'tensorboard-2.11.1-jupyter.fix': + '8a1c3bf40880f8522bcfe6849604bb2084e8c7a4526c035f617795138a405ff7'}, + ], + }), +] + +postinstallcmds = [ + 'patch -p0 -d %(installdir)s < %(builddir)s/TensorFlow/tensorflow-%(version)s/tools/tensorboard-2.11.1-jupyter.fix'] + +moduleclass = 'lib' diff --git a/Golden_Repo/t/TensorFlow/TensorFlow-2.11.0-gcccoremkl-11.3.0-2022.1.0-CUDA-11.7.eb b/Golden_Repo/t/TensorFlow/TensorFlow-2.11.0-gcccoremkl-11.3.0-2022.1.0-CUDA-11.7.eb new file mode 100644 index 0000000000000000000000000000000000000000..17c8e10eb126320520c2d12524f70e20c6297ce8 --- /dev/null +++ b/Golden_Repo/t/TensorFlow/TensorFlow-2.11.0-gcccoremkl-11.3.0-2022.1.0-CUDA-11.7.eb @@ -0,0 +1,232 @@ +# This file is part of JSC's public easybuild repository (https://github.com/easybuilders/jsc) +easyblock = 'PythonBundle' + +name = 'TensorFlow' +version = '2.11.0' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://www.tensorflow.org/' +description = "An open-source software library for Machine Intelligence" + +toolchain = {'name': 'gcccoremkl', 'version': '11.3.0-2022.1.0'} +toolchainopts = {'pic': True} + +builddependencies = [ + ('Bazel', '5.1.1'), + ('protobuf', '3.19.4'), + # git 2.x required, see also https://github.com/tensorflow/tensorflow/issues/29053 + ('git', '2.36.0', '-nodocs'), + ('pybind11', '2.9.2'), + ('UnZip', '6.0'), + ('LLVM', '14.0.3'), # for debugging with llvm-symbolizer, to be removed +] +dependencies = [ + ('CUDA', '11.7', '', SYSTEM), + ('cuDNN', '8.6.0.163', versionsuffix, SYSTEM), + ('NCCL', 'default', versionsuffix), + ('Python', '3.10.4'), + ('h5py', '3.7.0', '-serial'), + ('cURL', '7.83.0'), + ('dill', '0.3.6'), + ('double-conversion', '3.2.0'), + ('flatbuffers', '2.0.7'), + ('giflib', '5.2.1'), + ('hwloc', '2.7.1'), + ('ICU', '71.1'), + ('JsonCpp', '1.9.5'), + ('libjpeg-turbo', '2.1.3'), + ('LMDB', '0.9.29'), + ('NASM', '2.15.05'), + ('nsync', '1.25.0'), + ('SQLite', '3.38.3'), + ('protobuf-python', '3.19.4'), + ('libpng', '1.6.37'), + ('snappy', '1.1.9'), + ('zlib', '1.2.12'), + ('networkx', '2.8.4', '', ('gcccoremkl', '11.3.0-2022.1.0')), # required for pythran +] + +use_pip = True +sanity_pip_check = True + +# Dependencies created and updated using findPythonDeps.sh: +# https://gist.github.com/Flamefire/49426e502cd8983757bd01a08a10ae0d +exts_list = [ + ('wrapt', '1.14.1', { + 'checksums': ['380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d'], + }), + ('termcolor', '1.1.0', { + 'checksums': ['1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b'], + }), + ('tensorflow-estimator', version, { + 'source_tmpl': 'tensorflow_estimator-%(version)s-py2.py3-none-any.whl', + 'checksums': ['ea3b64acfff3d9a244f06178c9bdedcbdd3f125b67d0888dba8229498d06468b'], + }), + ('Werkzeug', '2.2.2', { + 'checksums': ['7ea2d48322cc7c0f8b3a215ed73eabd7b5d75d0b50e31ab006286ccff9e00b8f'], + }), + ('tensorboard-plugin-wit', '1.8.1', { + 'source_tmpl': 'tensorboard_plugin_wit-%(version)s-py3-none-any.whl', + 'checksums': ['ff26bdd583d155aa951ee3b152b3d0cffae8005dc697f72b44a8e8c2a77a8cbe'], + }), + ('tensorboard-data-server', '0.6.1', { + 'source_tmpl': 'tensorboard_data_server-%(version)s-py3-none-any.whl', + 'checksums': ['809fe9887682d35c1f7d1f54f0f40f98bb1f771b14265b453ca051e2ce58fca7'], + }), + ('Markdown', '3.4.1', { + 'checksums': ['3b809086bb6efad416156e00a0da66fe47618a5d6918dd688f53f40c8e4cfeff'], + }), + ('grpcio', '1.51.1', { + 'modulename': 'grpc', + 'preinstallopts': "export GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS=%(parallel)s && ", + 'checksums': ['e6dfc2b6567b1c261739b43d9c59d201c1b89e017afd9e684d85aa7a186c9f7a'], + }), + ('oauthlib', '3.2.2', { + 'checksums': ['9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918'], + }), + ('requests-oauthlib', '1.3.1', { + 'checksums': ['75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a'], + }), + ('rsa', '4.9', { + 'checksums': ['e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21'], + }), + ('pyasn1-modules', '0.2.8', { + 'checksums': ['905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e'], + }), + ('cachetools', '5.2.1', { + 'checksums': ['5991bc0e08a1319bb618d3195ca5b6bc76646a49c21d55962977197b301cc1fe'], + }), + ('google-auth', '2.16.0', { + 'modulename': 'google.auth', + 'checksums': ['ed7057a101af1146f0554a769930ac9de506aeca4fd5af6543ebe791851a9fbd'], + }), + ('google-auth-oauthlib', '0.4.6', { + 'checksums': ['a90a072f6993f2c327067bf65270046384cda5a8ecb20b94ea9a687f1f233a7a'], + }), + ('absl-py', '1.4.0', { + 'modulename': 'absl', + 'checksums': ['d2c244d01048ba476e7c080bd2c6df5e141d211de80223460d5b3b8a2a58433d'], + }), + ('tensorboard', '2.11.1', { + 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'checksums': ['0c7529f3f43691e8cc2ece8e564c2e103c51ade317c6af626d415239b5088018'], + }), + ('opt-einsum', '3.3.0', { + 'source_tmpl': 'opt_einsum-%(version)s.tar.gz', + 'checksums': ['59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549'], + }), + ('keras', version, { + 'source_tmpl': '%(name)s-%(version)s-py2.py3-none-any.whl', + 'checksums': ['38c6fff0ea9a8b06a2717736565c92a73c8cd9b1c239e7125ccb188b7848f65e'], + }), + ('google-pasta', '0.2.0', { + 'modulename': 'pasta', + 'checksums': ['c9f2c8dfc8f96d0d5808299920721be30c9eec37f2389f28904f454565c8a16e'], + }), + ('astunparse', '1.6.3', { + 'checksums': ['5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872'], + }), + ('gast', '0.4.0', { + 'checksums': ['40feb7b8b8434785585ab224d1568b857edb18297e5a3047f1ba012bc83b42c1'], + }), + ('beniget', '0.3.0', { + 'checksums': ['062c893be9cdf87c3144fb15041cce4d81c67107c1591952cd45fdce789a0ff1'], + }), + ('pythran', '0.9.11', { + 'checksums': ['a317f91e2aade9f6550dc3bf40b5caeb45b7e012daf27e2b3e4ad928edb01667'], + }), + ('portpicker', '1.5.2', { + 'checksums': ['c55683ad725f5c00a41bc7db0225223e8be024b1fa564d039ed3390e4fd48fb3'], + }), + ('tblib', '1.7.0', { + 'checksums': ['059bd77306ea7b419d4f76016aef6d7027cc8a0785579b5aad198803435f882c'], + }), + ('astor', '0.8.1', { + 'checksums': ['6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e'], + }), + ('gviz-api', '1.10.0', { + 'source_tmpl': 'gviz_api-%(version)s.tar.gz', + 'checksums': ['846692dd8cc73224fc31b18e41589bd934e1cc05090c6576af4b4b26c2e71b90'], + }), + ('tensorboard-plugin-profile', '2.11.1', { + 'source_tmpl': 'tensorboard_plugin_profile-%(version)s.tar.gz', + 'checksums': ['7a97c02d502fde98a0336aadcab15b37169744d5bf6966af7d576c7a3f0a89f4'], + }), + (name, version, { + 'patches': [ + '%(name)s-2.4.0_dont-use-var-lock.patch', + '%(name)s-2.5.0-fix-alias-violation-in-absl.patch', + '%(name)s-2.5.0_fix-crash-on-shutdown.patch', + '%(name)s-2.8.4_exclude-xnnpack-on-ppc.patch', + '%(name)s-2.8.4_resolve-gcc-symlinks.patch', + '%(name)s-2.9.1_remove-duplicate-gpu-tests.patch', + '%(name)s-%(version)s_disable-avx512-extensions.patch', + '%(name)s-%(version)s_fix-eigen-atan-on-PPC.patch', + '%(name)s-%(version)s_fix-eigen-gemm-on-PPC.patch', + '%(name)s-%(version)s_fix-link-error.patch', + '%(name)s-%(version)s_remove-libclang-and-io-gcs-deps.patch', + ('tensorboard-2.11.1-jupyter.fix', 'tools'), + ], + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/tensorflow/tensorflow/archive/'], + 'test_script': 'TensorFlow-2.x_mnist-test.py', + 'test_tag_filters_cpu': '-gpu,-tpu,-no_cuda_on_cpu_tap,-no_pip,-no_oss,-oss_serial,-benchmark-test,-v1only', + 'test_tag_filters_gpu': "gpu,-no_gpu,-nogpu,-gpu_cupti, \ + -no_cuda11,-no_pip,-no_oss,-oss_serial,-benchmark-test,-v1only", + 'test_targets': [ + '//tensorflow/core/...', + '-//tensorflow/core:example_java_proto', + '-//tensorflow/core/example:example_protos_closure', + '//tensorflow/cc/...', + '//tensorflow/c/...', + '//tensorflow/python/...', + '-//tensorflow/c/eager:c_api_test_gpu', + '-//tensorflow/c/eager:c_api_distributed_test', + '-//tensorflow/c/eager:c_api_distributed_test_gpu', + '-//tensorflow/c/eager:c_api_cluster_test_gpu', + '-//tensorflow/c/eager:c_api_remote_function_test_gpu', + '-//tensorflow/c/eager:c_api_remote_test_gpu', + '-//tensorflow/core/common_runtime:collective_param_resolver_local_test', + '-//tensorflow/core/common_runtime:mkl_layout_pass_test', + '-//tensorflow/core/kernels/mkl:mkl_fused_ops_test', + '-//tensorflow/core/kernels/mkl:mkl_fused_batch_norm_op_test', + '-//tensorflow/core/ir/importexport/tests/roundtrip/...', + ], + 'testopts': "--test_timeout=3600 --test_size_filters=small", + 'testopts_gpu': "--test_timeout=3600 --test_size_filters=small \ + --run_under=//tensorflow/tools/ci_build/gpu_build:parallel_gpu_execute", + 'with_xla': True, + 'checksums': [ + {'v2.11.0.tar.gz': '99c732b92b1b37fc243a559e02f9aef5671771e272758aa4aec7f34dc92dac48'}, + {'TensorFlow-2.4.0_dont-use-var-lock.patch': + 'b14f2493fd2edf79abd1c4f2dde6c98a3e7d5cb9c25ab9386df874d5f072d6b5'}, + {'TensorFlow-2.5.0-fix-alias-violation-in-absl.patch': + '12454fda3330fb45cd380377e283f04488b40e0b8ae7378e786ddf731a581f75'}, + {'TensorFlow-2.5.0_fix-crash-on-shutdown.patch': + '578c7493221ebd3dc25ca43d63a72cbb28fdf4112b1e2baa7390f25781bd78fd'}, + {'TensorFlow-2.8.4_exclude-xnnpack-on-ppc.patch': + 'ebd404ac56cc4ca662483f1f591e62e11749361be57a7ba5f4b2f0d03e829884'}, + {'TensorFlow-2.8.4_resolve-gcc-symlinks.patch': + '43ce9acc6bffff68a31d2263d0064d272999b2e0a2c6546690287cd1c9c90f04'}, + {'TensorFlow-2.9.1_remove-duplicate-gpu-tests.patch': + '6fe50faab28387c622c68dc3fc0cbfb2a51000cd750c1a82f8420b54fcd2509f'}, + {'TensorFlow-2.11.0_disable-avx512-extensions.patch': + 'fb8e7694b5d2377cc44e6674ff85a7c50dc725f2f507cbcfda65f129f534b1cc'}, + {'TensorFlow-2.11.0_fix-eigen-atan-on-PPC.patch': + 'd9f4779f72ffd2c5f9c5da0a7735328dd25756515edccf603087dba2bf4d1612'}, + {'TensorFlow-2.11.0_fix-eigen-gemm-on-PPC.patch': + '4f18ff0563b0ef8556904db1bb4974f8068bf0d2ee1effb24e0c779eb32517e3'}, + {'TensorFlow-2.11.0_fix-link-error.patch': + '0a2f5c9c5be425f305bdc08f5a5ffce210e66f6ad4120d94ea0209246fc0449f'}, + {'TensorFlow-2.11.0_remove-libclang-and-io-gcs-deps.patch': + '21d5723ab4e9a3be349cf3d57bb55cbe43e28785a8c8b19c52cee9dcc4dcf0de'}, + {'tensorboard-2.11.1-jupyter.fix': + '8a1c3bf40880f8522bcfe6849604bb2084e8c7a4526c035f617795138a405ff7'}, + ], + }), +] + +postinstallcmds = [ + 'patch -p0 -d %(installdir)s < %(builddir)s/TensorFlow/tensorflow-%(version)s/tools/tensorboard-2.11.1-jupyter.fix'] + +moduleclass = 'lib' diff --git a/Golden_Repo/t/TensorFlow/TensorFlow-2.11.0_disable-avx512-extensions.patch b/Golden_Repo/t/TensorFlow/TensorFlow-2.11.0_disable-avx512-extensions.patch new file mode 100644 index 0000000000000000000000000000000000000000..491872e541eab3c9ae1bb3ecabc6662be7496a27 --- /dev/null +++ b/Golden_Repo/t/TensorFlow/TensorFlow-2.11.0_disable-avx512-extensions.patch @@ -0,0 +1,19 @@ +(Some of the) AVX512 extensions to Eigen introduced by TensorFlow are broken and return wrong values. +So disable them for now to keep AVX512 in the other code parts working. +See https://github.com/tensorflow/tensorflow/issues/49944 + +Author: Alexander Grund (TU Dresden) + +diff --git a/tensorflow/tsl/framework/fixedpoint/FixedPoint.h b/tensorflow/tsl/framework/fixedpoint/FixedPoint.h +index bb3def15189..85affe89c54 100644 +--- a/tensorflow/tsl/framework/fixedpoint/FixedPoint.h ++++ b/tensorflow/tsl/framework/fixedpoint/FixedPoint.h +@@ -20,7 +20,7 @@ limitations under the License. + #include "tensorflow/tsl/framework/fixedpoint_types.h" + + // Use optimized implementations whenever available +-#if defined(EIGEN_VECTORIZE_AVX512DQ) || defined(EIGEN_VECTORIZE_AVX512BW) ++#if 0 + #include "tensorflow/tsl/framework/fixedpoint/PacketMathAVX512.h" + #include "tensorflow/tsl/framework/fixedpoint/TypeCastingAVX512.h" + diff --git a/Golden_Repo/t/TensorFlow/TensorFlow-2.11.0_fix-eigen-atan-on-PPC.patch b/Golden_Repo/t/TensorFlow/TensorFlow-2.11.0_fix-eigen-atan-on-PPC.patch new file mode 100644 index 0000000000000000000000000000000000000000..3d57bed62cbb8e26988c603947ed0f4aa7b56c2a --- /dev/null +++ b/Golden_Repo/t/TensorFlow/TensorFlow-2.11.0_fix-eigen-atan-on-PPC.patch @@ -0,0 +1,38 @@ +Fix compilation failure on PowerPC: +external/eigen_archive/unsupported/Eigen/CXX11/../../../Eigen/src/Core/GenericPacketMath.h:862:67: error: no matching function for call to 'atan(const __vector(2) double&)' + +Add the upstream commit https://gitlab.com/libeigen/eigen/-/commit/886aad136111eeeb7604e1d17f62efcc4d824568 + +Author: Alexander Grund (TU Dresden) + +diff --git a/third_party/eigen3/disable-atan-on-ppc.patch b/third_party/eigen3/disable-atan-on-ppc.patch +new file mode 100644 +index 00000000000..4614799b66a +--- /dev/null ++++ b/third_party/eigen3/disable-atan-on-ppc.patch +@@ -0,0 +1,13 @@ ++diff --git a/Eigen/src/Core/arch/AltiVec/PacketMath.h b/Eigen/src/Core/arch/AltiVec/PacketMath.h ++index 37398de15..d9ddb5e35 100644 ++--- a/Eigen/src/Core/arch/AltiVec/PacketMath.h +++++ b/Eigen/src/Core/arch/AltiVec/PacketMath.h ++@@ -2708,7 +2708,7 @@ template<> struct packet_traits<double> : default_packet_traits ++ HasAbs = 1, ++ HasSin = 0, ++ HasCos = 0, ++- HasATan = 1, +++ HasATan = 0, ++ HasLog = 0, ++ HasExp = 1, ++ HasSqrt = 1, +diff --git a/third_party/eigen3/workspace.bzl b/third_party/eigen3/workspace.bzl +index 91f471c3def..9fa96a38310 100644 +--- a/third_party/eigen3/workspace.bzl ++++ b/third_party/eigen3/workspace.bzl +@@ -14,6 +14,7 @@ def repo(): + tf_http_archive( + name = "eigen_archive", + build_file = "//third_party/eigen3:eigen_archive.BUILD", ++ patch_file = ["//third_party/eigen3:disable-atan-on-ppc.patch"], + sha256 = EIGEN_SHA256, + strip_prefix = "eigen-{commit}".format(commit = EIGEN_COMMIT), + urls = tf_mirror_urls("https://gitlab.com/libeigen/eigen/-/archive/{commit}/eigen-{commit}.tar.gz".format(commit = EIGEN_COMMIT)), diff --git a/Golden_Repo/t/TensorFlow/TensorFlow-2.11.0_fix-eigen-gemm-on-PPC.patch b/Golden_Repo/t/TensorFlow/TensorFlow-2.11.0_fix-eigen-gemm-on-PPC.patch new file mode 100644 index 0000000000000000000000000000000000000000..1cbf1a35a039c0bbd6c1fd1a334a53db5b712d68 --- /dev/null +++ b/Golden_Repo/t/TensorFlow/TensorFlow-2.11.0_fix-eigen-gemm-on-PPC.patch @@ -0,0 +1,72 @@ +Fix a SIGSEGV in e.g. //tensorflow/core/grappler/optimizers:arithmetic_optimizer_test_cpu +See https://gitlab.com/libeigen/eigen/-/issues/2608 + +fix-ppc-gemm.patch based on https://gitlab.com/libeigen/eigen/-/merge_requests/1208 + +Author: Alexander Grund (TU Dresden) + +diff --git a/third_party/eigen3/fix-ppc-gemm.patch b/third_party/eigen3/fix-ppc-gemm.patch +new file mode 100644 +index 00000000000..c674c4b590e +--- /dev/null ++++ b/third_party/eigen3/fix-ppc-gemm.patch +@@ -0,0 +1,46 @@ ++diff --git a/Eigen/src/Core/arch/AltiVec/MatrixProduct.h b/Eigen/src/Core/arch/AltiVec/MatrixProduct.h ++index 3b3b558..44f9e16 100644 ++--- a/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +++++ b/Eigen/src/Core/arch/AltiVec/MatrixProduct.h ++@@ -1760,7 +1760,7 @@ EIGEN_ALWAYS_INLINE void gemm_cols( ++ gemm_cols<Scalar, Packet, DataMapper, N, accCols>(res, blockA, blockB, depth, strideA, offsetA, strideB, offsetB, col, rows, remaining_rows, pAlpha, pMask); ++ ++ template<typename Scalar, typename Packet, typename DataMapper, const Index accCols> ++-EIGEN_STRONG_INLINE void gemm_extra_cols( +++EIGEN_ALWAYS_INLINE void gemm_extra_cols( ++ const DataMapper& res, ++ const Scalar* blockA, ++ const Scalar* blockB, ++@@ -2194,7 +2194,7 @@ EIGEN_ALWAYS_INLINE void gemm_complex_cols( ++ gemm_complex_cols<Scalar, Packet, Packetc, DataMapper, N, accCols, ConjugateLhs, ConjugateRhs, LhsIsReal, RhsIsReal>(res, blockA, blockB, depth, strideA, offsetA, strideB, offsetB, col, rows, remaining_rows, pAlphaReal, pAlphaImag, pMask); ++ ++ template<typename Scalar, typename Packet, typename Packetc, typename DataMapper, const Index accCols, bool ConjugateLhs, bool ConjugateRhs, bool LhsIsReal, bool RhsIsReal> ++-EIGEN_STRONG_INLINE void gemm_complex_extra_cols( +++EIGEN_ALWAYS_INLINE void gemm_complex_extra_cols( ++ const DataMapper& res, ++ const Scalar* blockA, ++ const Scalar* blockB, ++diff --git a/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h b/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h ++index 28868ca..1ac6629 100644 ++--- a/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +++++ b/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h ++@@ -30,8 +30,8 @@ EIGEN_ALWAYS_INLINE void gemm_extra_row( ++ const Packet& pAlpha, ++ const Packet& pMask); ++ ++-template<typename Scalar, typename Packet, typename DataMapper, const Index accCols, bool ConjugateLhs, bool ConjugateRhs, bool LhsIsReal, bool RhsIsReal> ++-EIGEN_STRONG_INLINE void gemm_extra_cols( +++template<typename Scalar, typename Packet, typename DataMapper, const Index accCols> +++EIGEN_ALWAYS_INLINE void gemm_extra_cols( ++ const DataMapper& res, ++ const Scalar* blockA, ++ const Scalar* blockB, ++@@ -67,7 +67,7 @@ EIGEN_ALWAYS_INLINE void gemm_complex_extra_row( ++ const Packet& pMask); ++ ++ template<typename Scalar, typename Packet, typename Packetc, typename DataMapper, const Index accCols, bool ConjugateLhs, bool ConjugateRhs, bool LhsIsReal, bool RhsIsReal> ++-EIGEN_STRONG_INLINE void gemm_complex_extra_cols( +++EIGEN_ALWAYS_INLINE void gemm_complex_extra_cols( ++ const DataMapper& res, ++ const Scalar* blockA, ++ const Scalar* blockB, +diff --git a/third_party/eigen3/workspace.bzl b/third_party/eigen3/workspace.bzl +index 6c8744aeec4..2a2a7b474c9 100644 +--- a/third_party/eigen3/workspace.bzl ++++ b/third_party/eigen3/workspace.bzl +@@ -14,7 +14,7 @@ def repo(): + tf_http_archive( + name = "eigen_archive", + build_file = "//third_party/eigen3:eigen_archive.BUILD", +- patch_file = ["//third_party/eigen3:disable-atan-on-ppc.patch"], ++ patch_file = ["//third_party/eigen3:disable-atan-on-ppc.patch", "//third_party/eigen3:fix-ppc-gemm.patch"], + sha256 = EIGEN_SHA256, + strip_prefix = "eigen-{commit}".format(commit = EIGEN_COMMIT), + urls = tf_mirror_urls("https://gitlab.com/libeigen/eigen/-/archive/{commit}/eigen-{commit}.tar.gz".format(commit = EIGEN_COMMIT)), diff --git a/Golden_Repo/t/TensorFlow/TensorFlow-2.11.0_fix-link-error.patch b/Golden_Repo/t/TensorFlow/TensorFlow-2.11.0_fix-link-error.patch new file mode 100644 index 0000000000000000000000000000000000000000..a492897700d35a01a0f87f041bb637992dce5992 --- /dev/null +++ b/Golden_Repo/t/TensorFlow/TensorFlow-2.11.0_fix-link-error.patch @@ -0,0 +1,39 @@ +Fix errors during build such as +Traceback (most recent call last): + File "/bazel-root/21e00dc5c04b924b70ed7bedd0c3533e/execroot/org_tensorflow/bazel-out/ppc-opt/bin/tensorflow/create_tensorflow.python_api_tf_python_api_gen_v2.runfiles/org_tensorflow/tensorflow/python/pywrap_tensorflow.py", line 62, in <module> + from tensorflow.python._pywrap_tensorflow_internal import * +ImportError: /bazel-root/21e00dc5c04b924b70ed7bedd0c3533e/execroot/org_tensorflow/bazel-out/ppc-opt/bin/tensorflow/create_tensorflow.python_api_tf_python_api_gen_v2.runfiles/org_tensorflow/tensorflow/python/_pywrap_tensorflow_internal.so: undefined symbol: LLVMInitializePowerPCAsmParser + +See https://github.com/tensorflow/tensorflow/pull/59326 + +Author: Alexander Grund (TU Dresden) + +diff --git a/tensorflow/compiler/xla/mlir/transforms/runtime/BUILD b/tensorflow/compiler/xla/mlir/transforms/runtime/BUILD +index 587d4b184c0..5ff10743cf8 100644 +--- a/tensorflow/compiler/xla/mlir/transforms/runtime/BUILD ++++ b/tensorflow/compiler/xla/mlir/transforms/runtime/BUILD +@@ -250,7 +250,23 @@ cc_library( + "@llvm-project//mlir:Parser", + "@llvm-project//mlir:Pass", + "@llvm-project//mlir:ToLLVMIRTranslation", +- ], ++ ] + select({ ++ "//tensorflow:arm_any": [ ++ "@llvm-project//llvm:AArch64AsmParser", ++ ], ++ "//tensorflow:linux_ppc64le": [ ++ "@llvm-project//llvm:PowerPCAsmParser", ++ ], ++ "//tensorflow:macos_arm64": [ ++ "@llvm-project//llvm:AArch64AsmParser", ++ ], ++ "//tensorflow:linux_s390x": [ ++ "@llvm-project//llvm:SystemZAsmParser", ++ ], ++ "//conditions:default": [ ++ "@llvm-project//llvm:X86AsmParser", ++ ], ++ }), + ) + + cc_library( diff --git a/Golden_Repo/t/TensorFlow/TensorFlow-2.11.0_remove-libclang-and-io-gcs-deps.patch b/Golden_Repo/t/TensorFlow/TensorFlow-2.11.0_remove-libclang-and-io-gcs-deps.patch new file mode 100644 index 0000000000000000000000000000000000000000..77b9f524938d5e6773ff3787edaf8b0694903e41 --- /dev/null +++ b/Golden_Repo/t/TensorFlow/TensorFlow-2.11.0_remove-libclang-and-io-gcs-deps.patch @@ -0,0 +1,38 @@ +This combines two patches from TensorFlow 2.7.1. + +tensorflow-io-gcs-filesystem is not available as a binary for all architectures and +building it requires TensorFlow to be installed, i.e. there is a cyclic dependency. +As it is not actually required (but optional) remove it from `REQUIRED_PACKAGES`. +See https://github.com/tensorflow/tensorflow/issues/56636 + +libclang was introduced in +https://github.com/tensorflow/tensorflow/commit/c211472000ff57bac7fcec9b0465cf73b37bf135 +> This is in preparation to open-source TF's TFRT backend. +> TFRT generates code using libclang python bindings as part of the build. +Hence it is not currently used and as it is not (easily) available for all architectures +simply remove it. + +Patch added by Simon Branford (University of Birmingham) +Updated by Alexander Grund (TU Dresden) + +diff --git a/tensorflow/tools/pip_package/setup.py b/tensorflow/tools/pip_package/setup.py +index 74a1962c334..e8f6eabe4a6 100644 +--- a/tensorflow/tools/pip_package/setup.py ++++ b/tensorflow/tools/pip_package/setup.py +@@ -88,7 +88,6 @@ REQUIRED_PACKAGES = [ + 'gast >= 0.2.1, <= 0.4.0', + 'google_pasta >= 0.1.1', + 'h5py >= 2.9.0', +- 'libclang >= 13.0.0', + 'numpy >= 1.20', + 'opt_einsum >= 2.3.2', + 'packaging', +@@ -105,8 +104,6 @@ REQUIRED_PACKAGES = [ + 'termcolor >= 1.1.0', + 'typing_extensions >= 3.6.6', + 'wrapt >= 1.11.0', +- 'tensorflow-io-gcs-filesystem >= 0.23.1;platform_machine!="arm64" or ' + +- 'platform_system!="Darwin"', + # grpcio does not build correctly on big-endian machines due to lack of + # BoringSSL support. + # See https://github.com/tensorflow/tensorflow/issues/17882. diff --git a/Golden_Repo/t/TensorFlow/TensorFlow-2.4.0_dont-use-var-lock.patch b/Golden_Repo/t/TensorFlow/TensorFlow-2.4.0_dont-use-var-lock.patch new file mode 100644 index 0000000000000000000000000000000000000000..e33d0028a40a53df6315e7094ec2dce79256e5ce --- /dev/null +++ b/Golden_Repo/t/TensorFlow/TensorFlow-2.4.0_dont-use-var-lock.patch @@ -0,0 +1,37 @@ +diff --git a/tensorflow/tools/ci_build/gpu_build/parallel_gpu_execute.sh b/tensorflow/tools/ci_build/gpu_build/parallel_gpu_execute.sh +index ee70f2f608b..ab5cbe7d7b5 100755 +--- a/tensorflow/tools/ci_build/gpu_build/parallel_gpu_execute.sh ++++ b/tensorflow/tools/ci_build/gpu_build/parallel_gpu_execute.sh +@@ -53,7 +53,7 @@ TEST_BINARY="$(rlocation $TEST_WORKSPACE/${1#./})" + shift + # ******************************************************************* + +-mkdir -p /var/lock ++mkdir -p /tmp/tf-test-lock + # Try to acquire any of the TF_GPU_COUNT * TF_TESTS_PER_GPU + # slots to run a test at. + # +@@ -61,7 +61,7 @@ mkdir -p /var/lock + # So, we iterate over TF_TESTS_PER_GPU first. + for j in `seq 0 $((TF_TESTS_PER_GPU-1))`; do + for i in `seq 0 $((TF_GPU_COUNT-1))`; do +- exec {lock_fd}>/var/lock/gpulock${i}_${j} || exit 1 ++ exec {lock_fd}>/tmp/tf-test-lock/gpulock${i}_${j} || exit 1 + if flock -n "$lock_fd"; + then + ( +@@ -70,6 +70,7 @@ for j in `seq 0 $((TF_TESTS_PER_GPU-1))`; do + export CUDA_VISIBLE_DEVICES=$i + export HIP_VISIBLE_DEVICES=$i + echo "Running test $TEST_BINARY $* on GPU $CUDA_VISIBLE_DEVICES" ++ set +e + "$TEST_BINARY" $@ + ) + return_code=$? +@@ -79,5 +80,5 @@ for j in `seq 0 $((TF_TESTS_PER_GPU-1))`; do + done + done + +-echo "Cannot find a free GPU to run the test $* on, exiting with failure..." ++echo "Cannot find a free GPU to run the test $TEST_BINARY $* on, exiting with failure..." + exit 1 diff --git a/Golden_Repo/t/TensorFlow/TensorFlow-2.5.0-fix-alias-violation-in-absl.patch b/Golden_Repo/t/TensorFlow/TensorFlow-2.5.0-fix-alias-violation-in-absl.patch new file mode 100644 index 0000000000000000000000000000000000000000..427f7555ecbf9a8bb785cbf5678598e05f548a89 --- /dev/null +++ b/Golden_Repo/t/TensorFlow/TensorFlow-2.5.0-fix-alias-violation-in-absl.patch @@ -0,0 +1,26 @@ +The behavior relied on by Abseil is unsupported by GCC and leads to misoptimizations. +See https://github.com/tensorflow/tensorflow/issues/47179 + +Author: Alexander Grund + +diff --git a/third_party/absl/com_google_absl_fix_mac_and_nvcc_build.patch b/third_party/absl/com_google_absl_fix_mac_and_nvcc_build.patch +index 6301119ab2c..0b8b4838726 100644 +--- a/third_party/absl/com_google_absl_fix_mac_and_nvcc_build.patch ++++ b/third_party/absl/com_google_absl_fix_mac_and_nvcc_build.patch +@@ -1,3 +1,16 @@ ++diff --git a/absl/container/internal/container_memory.h b/absl/container/internal/container_memory.h ++index d24b0f8..f8847b5 100644 ++--- a/absl/container/internal/container_memory.h +++++ b/absl/container/internal/container_memory.h ++@@ -338,7 +338,7 @@ struct map_slot_policy { ++ // If pair<const K, V> and pair<K, V> are layout-compatible, we can accept one ++ // or the other via slot_type. We are also free to access the key via ++ // slot_type::key in this case. ++- using kMutableKeys = memory_internal::IsLayoutCompatible<K, V>; +++ using kMutableKeys = std::false_type; ++ ++ public: ++ static value_type& element(slot_type* slot) { return slot->value; } + diff --git a/absl/container/internal/compressed_tuple.h b/absl/container/internal/compressed_tuple.h + index 4bfe92f..01db713 100644 + --- a/absl/container/internal/compressed_tuple.h diff --git a/Golden_Repo/t/TensorFlow/TensorFlow-2.5.0_fix-arm-vector-intrinsics.patch b/Golden_Repo/t/TensorFlow/TensorFlow-2.5.0_fix-arm-vector-intrinsics.patch new file mode 100644 index 0000000000000000000000000000000000000000..eaed0decf234248767ce6cf0270aec088384b41f --- /dev/null +++ b/Golden_Repo/t/TensorFlow/TensorFlow-2.5.0_fix-arm-vector-intrinsics.patch @@ -0,0 +1,42 @@ +Fix compile error on ARM: +> ./tensorflow/lite/kernels/internal/optimized/depthwiseconv_3x3_filter_common.h:132:58: error: cannot convert 'int32x2_t' to 'int8x8_t' + +From https://github.com/tensorflow/tensorflow/pull/53782 + +From 4463f25d1622d162f870ff685da20f2c6df5bc6a Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <stha09@googlemail.com> +Date: Sat, 15 Jan 2022 21:06:27 +0100 +Subject: [PATCH] Fix casting in vdotq_four_lane_s32() in TFLite + +When building with GCC and dotprod ARM extension enabled, +vreinterpret_s32_s8() casts int8x8_t to int32x2_t. However, third +argument of vdotq_lane_s32() expects parameter of type int8x8_t. +--- + .../optimized/depthwiseconv_3x3_filter_common.h | 10 ++++------ + 1 file changed, 4 insertions(+), 6 deletions(-) + +diff --git a/tensorflow/lite/kernels/internal/optimized/depthwiseconv_3x3_filter_common.h b/tensorflow/lite/kernels/internal/optimized/depthwiseconv_3x3_filter_common.h +index 916edd561ff32..c519a81bc864d 100644 +--- a/tensorflow/lite/kernels/internal/optimized/depthwiseconv_3x3_filter_common.h ++++ b/tensorflow/lite/kernels/internal/optimized/depthwiseconv_3x3_filter_common.h +@@ -129,16 +129,14 @@ inline int32x4_t vdotq_four_lane_s32(int32x4_t acc, int8x16_t lhs, + int8x16_t rhs, const int lane) { + switch (lane) { + case 0: +- return vdotq_lane_s32(acc, lhs, vreinterpret_s32_s8(vget_low_s8(rhs)), 0); ++ return vdotq_lane_s32(acc, lhs, vget_low_s8(rhs), 0); + case 1: +- return vdotq_lane_s32(acc, lhs, vreinterpret_s32_s8(vget_low_s8(rhs)), 1); ++ return vdotq_lane_s32(acc, lhs, vget_low_s8(rhs), 1); + case 2: +- return vdotq_lane_s32(acc, lhs, vreinterpret_s32_s8(vget_high_s8(rhs)), +- 0); ++ return vdotq_lane_s32(acc, lhs, vget_high_s8(rhs), 0); + case 3: + default: +- return vdotq_lane_s32(acc, lhs, vreinterpret_s32_s8(vget_high_s8(rhs)), +- 1); ++ return vdotq_lane_s32(acc, lhs, vget_high_s8(rhs), 1); + } + } + diff --git a/Golden_Repo/t/TensorFlow/TensorFlow-2.8.4_exclude-xnnpack-on-ppc.patch b/Golden_Repo/t/TensorFlow/TensorFlow-2.8.4_exclude-xnnpack-on-ppc.patch new file mode 100644 index 0000000000000000000000000000000000000000..1a0938252be1b632f8e27e12e55e712fec868e65 --- /dev/null +++ b/Golden_Repo/t/TensorFlow/TensorFlow-2.8.4_exclude-xnnpack-on-ppc.patch @@ -0,0 +1,18 @@ +XNNPACK is not supported on PowerPC so disable it by default. +See https://github.com/tensorflow/tensorflow/issues/58768 + +Author: Alexander Grund (TU Dresden) + +diff --git a/tensorflow/lite/BUILD b/tensorflow/lite/BUILD +index 198f949b341..d15dcf9a80d 100644 +--- a/tensorflow/lite/BUILD ++++ b/tensorflow/lite/BUILD +@@ -709,6 +709,8 @@ cc_library( + deps = select({ + "//tensorflow:macos": [], + "//tensorflow:fuchsia": [], ++ # XNNPACK is not supported on PPC ++ "//tensorflow:linux_ppc64le": [], + "//conditions:default": [":tflite_with_xnnpack_enabled"], + }), + ) diff --git a/Golden_Repo/t/TensorFlow/TensorFlow-2.8.4_resolve-gcc-symlinks.patch b/Golden_Repo/t/TensorFlow/TensorFlow-2.8.4_resolve-gcc-symlinks.patch new file mode 100644 index 0000000000000000000000000000000000000000..42cdce7c9fd0cba69a35d5a4a4bae81d629c3499 --- /dev/null +++ b/Golden_Repo/t/TensorFlow/TensorFlow-2.8.4_resolve-gcc-symlinks.patch @@ -0,0 +1,28 @@ +Fix for "undeclared inclusion(s) in rule" errors when the installation directory +for GCC is hosted in a path that is a symlink to another path. + +From https://github.com/tensorflow/tensorflow/pull/56360 + +From b3a8fdbcb79e723f8d62f86bddcfdfb73fe76291 Mon Sep 17 00:00:00 2001 +From: Jinzhe Zeng <jinzhe.zeng@rutgers.edu> +Date: Sat, 4 Jun 2022 19:06:58 -0400 +Subject: [PATCH] resolve gcc_host_compiler_path in a symlink directory + +Resolves a missing dependency declarations error, when gcc_host_compiler_path is in a symlink directory resolving to other directories. +--- + configure.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.py b/configure.py +index bf338bdda2297..77af09a22a05d 100644 +--- a/configure.py ++++ b/configure.py +@@ -619,7 +619,7 @@ def prompt_loop_or_load_from_env(environ_cp, + 'Assuming to be a scripting mistake.' % + (var_name, n_ask_attempts)) + +- if resolve_symlinks and os.path.islink(val): ++ if resolve_symlinks: + val = os.path.realpath(val) + environ_cp[var_name] = val + return val diff --git a/Golden_Repo/t/TensorFlow/TensorFlow-2.9.1_fix-protobuf-include-def.patch b/Golden_Repo/t/TensorFlow/TensorFlow-2.9.1_fix-protobuf-include-def.patch new file mode 100644 index 0000000000000000000000000000000000000000..790492e7152465e8101f019ba66f3de7f058438d --- /dev/null +++ b/Golden_Repo/t/TensorFlow/TensorFlow-2.9.1_fix-protobuf-include-def.patch @@ -0,0 +1,14 @@ +Fix an issue where google/protobuf/port_def.inc is not found. + +diff -ruN tensorflow-2.9.1_old/third_party/systemlibs/protobuf.BUILD tensorflow-2.9.1/third_party/systemlibs/protobuf.BUILD +--- tensorflow-2.9.1_old/third_party/systemlibs/protobuf.BUILD 2022-11-10 16:57:13.649126750 +0100 ++++ tensorflow-2.9.1/third_party/systemlibs/protobuf.BUILD 2022-11-10 17:00:42.548576599 +0100 +@@ -43,4 +43,6 @@ + ], + ), + "wrappers": ("google/protobuf/wrappers.proto", []), ++ "port_def": ("google/protobuf/port_def.inc", []), ++ "coded_stream": ("google/protobuf/io/coded_stream.h", []), + } + + RELATIVE_WELL_KNOWN_PROTOS = [proto[1][0] for proto in WELL_KNOWN_PROTO_MAP.items()] \ No newline at end of file diff --git a/Golden_Repo/t/TensorFlow/TensorFlow-2.9.1_remove-duplicate-gpu-tests.patch b/Golden_Repo/t/TensorFlow/TensorFlow-2.9.1_remove-duplicate-gpu-tests.patch new file mode 100644 index 0000000000000000000000000000000000000000..7701d85e6126d2d6c66c97a2a3a23d1c1f176acd --- /dev/null +++ b/Golden_Repo/t/TensorFlow/TensorFlow-2.9.1_remove-duplicate-gpu-tests.patch @@ -0,0 +1,55 @@ +TensorFlow adds some GPU tests twice increasing the runtime of the test suite. +This filters out the test part meant for CPU. + +See https://github.com/tensorflow/tensorflow/issues/47081 +From https://github.com/tensorflow/tensorflow/pull/59129 + +Author: Alexander Grund (TU Dresden) +--- + tensorflow/tensorflow.bzl | 33 +++++++++++++++++---------------- + 1 file changed, 17 insertions(+), 16 deletions(-) + +diff --git a/tensorflow/tensorflow.bzl b/tensorflow/tensorflow.bzl +index 649c8e22dcc95..d3fc0e3221497 100644 +--- a/tensorflow/tensorflow.bzl ++++ b/tensorflow/tensorflow.bzl +@@ -1461,22 +1461,23 @@ def tf_gpu_cc_test( + linkopts = [], + **kwargs): + targets = [] +- tf_cc_test( +- name = name, +- size = size, +- srcs = srcs, +- args = args, +- data = data, +- extra_copts = extra_copts + if_cuda(["-DNV_CUDNN_DISABLE_EXCEPTION"]), +- kernels = kernels, +- linkopts = linkopts, +- linkstatic = linkstatic, +- suffix = "_cpu", +- tags = tags, +- deps = deps, +- **kwargs +- ) +- targets.append(name + "_cpu") ++ if 'gpu' not in tags: ++ tf_cc_test( ++ name = name, ++ size = size, ++ srcs = srcs, ++ args = args, ++ data = data, ++ extra_copts = extra_copts + if_cuda(["-DNV_CUDNN_DISABLE_EXCEPTION"]), ++ kernels = kernels, ++ linkopts = linkopts, ++ linkstatic = linkstatic, ++ suffix = "_cpu", ++ tags = tags, ++ deps = deps, ++ **kwargs ++ ) ++ targets.append(name + "_cpu") + tf_cc_test( + name = name, + size = size, diff --git a/Golden_Repo/t/TensorFlow/tensorboard-2.11.1-jupyter.fix b/Golden_Repo/t/TensorFlow/tensorboard-2.11.1-jupyter.fix new file mode 100644 index 0000000000000000000000000000000000000000..e3d809144a593a1dfea65cc53b6fb61c734b7c40 --- /dev/null +++ b/Golden_Repo/t/TensorFlow/tensorboard-2.11.1-jupyter.fix @@ -0,0 +1,93 @@ +--- lib/python3.10/site-packages/tensorboard/notebook.py.orig 2022-04-04 15:13:24.242666542 +0200 ++++ lib/python3.10/site-packages/tensorboard/notebook.py 2022-04-04 15:22:16.791830780 +0200 +@@ -34,6 +34,7 @@ + # details). + _CONTEXT_COLAB = "_CONTEXT_COLAB" + _CONTEXT_IPYTHON = "_CONTEXT_IPYTHON" ++_CONTEXT_JUPYTERHUB = "_CONTEXT_JUPYTERHUB" + _CONTEXT_NONE = "_CONTEXT_NONE" + + +@@ -70,11 +71,27 @@ + else: + ipython = IPython.get_ipython() + if ipython is not None and ipython.has_trait("kernel"): ++ if os.environ.get("JUPYTERHUB_SERVICE_PREFIX") is not None: ++ return _CONTEXT_JUPYTERHUB + return _CONTEXT_IPYTHON + + # Otherwise, we're not in a known notebook context. + return _CONTEXT_NONE + ++def _prefix_jupyterhub(port): ++ prefix = os.path.join(os.environ["JUPYTERHUB_SERVICE_PREFIX"], 'proxy/absolute') ++ return "%s/%d/" % (prefix, port) ++ ++ ++def _patch_args_jupyterhub(parsed_args): ++ if "--port" in parsed_args: ++ arg_idx = parsed_args.index("--port") ++ port = int(parsed_args[arg_idx+1]) ++ else: ++ port = 6006 ++ parsed_args += ["--port", str(port)] ++ return parsed_args + ["--path_prefix", _prefix_jupyterhub(port)] ++ + + def load_ipython_extension(ipython): + """Deprecated: use `%load_ext tensorboard` instead. +@@ -149,6 +166,9 @@ + handle.update(IPython.display.Pretty(message)) + + parsed_args = shlex.split(args_string, comments=True, posix=True) ++ if context == _CONTEXT_JUPYTERHUB: ++ parsed_args = _patch_args_jupyterhub(parsed_args) ++ + start_result = manager.start(parsed_args) + + if isinstance(start_result, manager.StartLaunched): +@@ -305,6 +325,7 @@ + fn = { + _CONTEXT_COLAB: _display_colab, + _CONTEXT_IPYTHON: _display_ipython, ++ _CONTEXT_JUPYTERHUB: _display_jupyterhub, + _CONTEXT_NONE: _display_cli, + }[_get_context()] + return fn(port=port, height=height, display_handle=display_handle) +@@ -401,6 +422,36 @@ + for (k, v) in replacements: + shell = shell.replace(k, v) + iframe = IPython.display.HTML(shell) ++ if display_handle: ++ display_handle.update(iframe) ++ else: ++ IPython.display.display(iframe) ++ ++ ++def _display_jupyterhub(port, height, display_handle): ++ import IPython.display ++ ++ frame_id = "tensorboard-frame-{:08x}".format(random.getrandbits(64)) ++ shell = """ ++ <iframe id="%HTML_ID%" width="100%" height="%HEIGHT%" frameborder="0"> ++ </iframe> ++ <script> ++ (function() { ++ const frame = document.getElementById(%JSON_ID%); ++ const url = new URL("%PREFIX%", window.location); ++ frame.src = url; ++ })(); ++ </script> ++ """ ++ replacements = [ ++ ("%HTML_ID%", html.escape(frame_id, quote=True)), ++ ("%JSON_ID%", json.dumps(frame_id)), ++ ("%PREFIX%", _prefix_jupyterhub(port)), ++ ("%HEIGHT%", "%d" % height), ++ ] ++ for (k, v) in replacements: ++ shell = shell.replace(k, v) ++ iframe = IPython.display.HTML(shell) + if display_handle: + display_handle.update(iframe) + else: diff --git a/Golden_Repo/t/tensorboard/tensorboard-2.10.0-foss-2022a.eb b/Golden_Repo/t/tensorboard/tensorboard-2.11.2-foss-2022a.eb similarity index 95% rename from Golden_Repo/t/tensorboard/tensorboard-2.10.0-foss-2022a.eb rename to Golden_Repo/t/tensorboard/tensorboard-2.11.2-foss-2022a.eb index c4b18c5c9d02cb6fb8fb9f13e37551377fd804cc..ae0a7471ccd66ca691a50f1ff7bbb5f0e12097db 100644 --- a/Golden_Repo/t/tensorboard/tensorboard-2.10.0-foss-2022a.eb +++ b/Golden_Repo/t/tensorboard/tensorboard-2.11.2-foss-2022a.eb @@ -1,7 +1,7 @@ easyblock = 'PythonBundle' name = 'tensorboard' -version = '2.10.0' +version = '2.11.2' homepage = 'https://github.com/tensorflow/tensorboard' description = """TensorBoard is a suite of web applications for inspecting and understanding your TensorFlow runs @@ -63,7 +63,7 @@ exts_list = [ }), (name, version, { 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', - 'checksums': ['76c91a5e8959cd2208cc32cb17a0cb002badabb66a06ac2af02a7810f49a59e3'], + 'checksums': ['cbaa2210c375f3af1509f8571360a19ccc3ded1d9641533414874b5deca47e89'], }), ] diff --git a/Golden_Repo/u/uftp/uftp-1.5.0.eb b/Golden_Repo/u/uftp/uftp-1.6.0.eb similarity index 62% rename from Golden_Repo/u/uftp/uftp-1.5.0.eb rename to Golden_Repo/u/uftp/uftp-1.6.0.eb index 91b9c31e1255108d531a5ffafaed507ec4c7841f..439c887f61b278a68b88db5f913db5743ef634d7 100644 --- a/Golden_Repo/u/uftp/uftp-1.5.0.eb +++ b/Golden_Repo/u/uftp/uftp-1.6.0.eb @@ -1,9 +1,9 @@ easyblock = 'Tarball' name = 'uftp' -version = '1.5.0' +version = '1.6.0' -homepage = 'https://unicore-dev.zam.kfa-juelich.de/documentation/uftpclient-%(version)s/uftpclient-manual.html' +homepage = 'https://uftp-docs.readthedocs.io/en/latest/user-docs/uftp-client/' description = """The UFTP standalone client provides high-performance file transfer.""" toolchain = SYSTEM @@ -11,7 +11,7 @@ toolchain = SYSTEM source_urls = [ 'https://master.dl.sourceforge.net/project/unicore/Clients/UFTP-Client/%(version)s/'] sources = ['uftp-client-%(version)s-all.zip'] -checksums = ['05e405d13156a76a839997792053f80e6f8f545f8c4516a68968eea6845fe659'] +checksums = ['09cfc39cfe1162def95fc6066125d28e594cecdaedc016a46b91dd7462d6fa32'] dependencies = [ ('Java', '11'), @@ -22,8 +22,8 @@ postinstallcmds = [ ] modextravars = { - 'UFTP_SHARE_URL': 'https://uftp.fz-juelich.de:7112/UFTP_Auth/rest/share/JUDAC', - 'UFTP_JUDAC': 'https://uftp.fz-juelich.de:7112/UFTP_Auth/rest/auth/JUDAC:' + 'UFTP_SHARE_URL': 'https://uftp.fz-juelich.de:9112/UFTP_Auth/rest/share/JUDAC', + 'UFTP_JUDAC': 'https://uftp.fz-juelich.de:9112/UFTP_Auth/rest/auth/JUDAC:' } sanity_check_paths = { diff --git a/Golden_Repo/u/uftp/uftp-1.6.1.eb b/Golden_Repo/u/uftp/uftp-1.6.1.eb new file mode 100644 index 0000000000000000000000000000000000000000..25e092181371a3d23bd850b9a53e86dd41ddbe7e --- /dev/null +++ b/Golden_Repo/u/uftp/uftp-1.6.1.eb @@ -0,0 +1,33 @@ +easyblock = 'Tarball' + +name = 'uftp' +version = '1.6.1' + +homepage = 'https://uftp-docs.readthedocs.io/en/latest/user-docs/uftp-client/' +description = """The UFTP standalone client provides high-performance file transfer.""" + +toolchain = SYSTEM + +source_urls = [ + 'https://master.dl.sourceforge.net/project/unicore/Clients/UFTP-Client/%(version)s/'] +sources = ['uftp-client-%(version)s-all.zip'] +checksums = ['0ef450c1c3db7d18a8bb35701b24f4d2549b04ce353dbe99ddbf02f522f82bc3'] +dependencies = [ + ('Java', '11'), +] + +postinstallcmds = [ + 'chmod +x %(installdir)s/bin/uftp', +] + +modextravars = { + 'UFTP_SHARE_URL': 'https://uftp.fz-juelich.de:9112/UFTP_Auth/rest/share/JUDAC', + 'UFTP_JUDAC': 'https://uftp.fz-juelich.de:9112/UFTP_Auth/rest/auth/JUDAC:' +} + +sanity_check_paths = { + 'files': ['bin/uftp'], + 'dirs': ['bin'], +} + +moduleclass = 'tools' 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 index 34fbf0ab9bce9e1a0b34dbb44909bc3b98b9fd5c..f86212993ab8a6139492b998a8a823e7f907b85e 100644 --- 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 @@ -33,7 +33,7 @@ builddependencies = [ dependencies = [ ('Python', '3.10.4'), ('HDF5', '1.12.2', '-serial'), - ('SciPy-Stack', '2022a', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), # ('libxc', '5.2.3'), # not in GCCcore toolchain ('netCDF', '4.9.0', '-serial'), ('X11', '20220504'), 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..9336ae0dc69e96a32d6d56f27bd84ffd9c935ce7 --- /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-bundle', '2022.05', '', ('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-gpsmpi-2022a.eb b/Golden_Repo/v/VTK/VTK-9.2.5-gpsmkl-2022a.eb similarity index 97% rename from Golden_Repo/v/VTK/VTK-9.2.5-gpsmpi-2022a.eb rename to Golden_Repo/v/VTK/VTK-9.2.5-gpsmkl-2022a.eb index 2afb89cd458dee3b364c96ba27e987f6881933f6..32a8a375cac30d799a22665a94faf22395ca030e 100644 --- a/Golden_Repo/v/VTK/VTK-9.2.5-gpsmpi-2022a.eb +++ b/Golden_Repo/v/VTK/VTK-9.2.5-gpsmkl-2022a.eb @@ -11,7 +11,7 @@ description = """The Visualization Toolkit (VTK) is an open-source, freely avail such as: implicit modeling, polygon reduction, mesh smoothing, cutting, contouring, and Delaunay triangulation.""" -toolchain = {'name': 'gpsmpi', 'version': '2022a'} +toolchain = {'name': 'gpsmkl', 'version': '2022a'} toolchainopts = {'pic': True, 'usempi': True} source_urls = ['https://www.vtk.org/files/release/%(version_major_minor)s'] @@ -32,11 +32,11 @@ builddependencies = [ dependencies = [ ('Python', '3.10.4'), - ('HDF5', '1.12.2', '-serial'), - ('SciPy-Stack', '2022a', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('HDF5', '1.12.2',), + ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), ('mpi4py', '3.1.4'), ('libxc', '5.2.3'), - ('netCDF', '4.9.0', '-serial'), + ('netCDF', '4.9.0',), ('X11', '20220504'), ('OpenGL', '2022a'), ] diff --git a/Golden_Repo/v/Vampir/Vampir-10.3.0.eb b/Golden_Repo/v/Vampir/Vampir-10.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..36faeffc4f0d160ad2fd8c9d760617f6fbd31bb0 --- /dev/null +++ b/Golden_Repo/v/Vampir/Vampir-10.3.0.eb @@ -0,0 +1,45 @@ +# This is an easyconfig file for EasyBuild, see https://github.com/hpcugent/easybuild +# Copyright:: Copyright 2013 Juelich Supercomputing Centre, Germany +# Authors:: Bernd Mohr <b.mohr@fz-juelich.de> +# License:: New BSD +# +# This work is based from experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +# For using $SYSTEMNAME to determine license path. The local prefix is to appease the checker +import os as local_os + +easyblock = 'Binary' + +name = "Vampir" +version = "10.3.0" +local_archsuffix = "-linux-x86_64" + +homepage = 'http://www.vampir.eu' +description = """The VAMPIR software tool provides an easy-to-use framework that enables +developers to quickly display and analyze arbitrary program behavior at any level of detail. +The tool suite implements optimized event analysis algorithms and customizable displays that +enable fast and interactive rendering of very complex performance monitoring data. + +""" + +toolchain = SYSTEM + +sources = ['vampir-%s%s-setup.sh' % (version, local_archsuffix)] +checksums = ['5721ff30daa38622dd1550f5b7638d3a3261a3abc894a305bf2302e80ee4f66e'] + +install_cmd = './vampir-%(version)s-linux-x86_64-setup.sh --silent --instdir=%(installdir)s' + +sanity_check_paths = { + 'files': ["bin/vampir", "doc/vampir-manual.pdf"], + 'dirs': [] +} + +local_licdir = '/p/software/%s/licenses/vampir/vampir.license' % local_os.environ['SYSTEMNAME'] + +modextravars = { + 'VAMPIR_LICENSE': '/p/software/%s/licenses/vampir/vampir.license' % local_os.environ['SYSTEMNAME'], +} + +moduleclass = 'tools' diff --git a/Golden_Repo/v/VampirServer/VampirServer-10.3.0-gpsmpi-2022a.eb b/Golden_Repo/v/VampirServer/VampirServer-10.3.0-gpsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..b485a8063f2351d757b508f148791895f018eb71 --- /dev/null +++ b/Golden_Repo/v/VampirServer/VampirServer-10.3.0-gpsmpi-2022a.eb @@ -0,0 +1,64 @@ +# This is an easyconfig file for EasyBuild, see https://github.com/hpcugent/easybuild +# Copyright:: Copyright 2013 Juelich Supercomputing Centre, Germany +# Authors:: Bernd Mohr <b.mohr@fz-juelich.de> +# License:: New BSD +# +# This work is based from experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +# For using $SYSTEMNAME to determine license path. The local prefix is to appease the checker +import os as local_os + +easyblock = 'Binary' + +name = "VampirServer" +version = "10.3.0" + +homepage = 'http://www.vampir.eu' +description = """The VAMPIR software tool provides an easy-to-use framework that enables +developers to quickly display and analyze arbitrary program behavior at any level of detail. +The tool suite implements optimized event analysis algorithms and customizable displays that +enable fast and interactive rendering of very complex performance monitoring data. +""" + +usage = """ +To start VampirServer +module load Vampir VampirServer +vampir & +BATCH_OPT="--account=<budget> --partition=<partition>" vampirserver start -n 4 mpi +(note server + port + server_id) +- Use it +Vampir GUI-> open other -> remote file -> server + port +- To stop VampirServer +vampirserver stop <server_id> +""" + +toolchain = {'name': 'gpsmpi', 'version': '2022a'} + +toolchainopts = {"usempi": True} + +sources = ['vampirserver-%s-linux-x86_64-setup.sh' % (version)] +checksums = ['07ec746bff46e5d54296daf450e5fd10f5affb7f971aa4dd2d8719b8042df22a'] + +install_cmd = ('./vampirserver-%(version)s-linux-x86_64-setup.sh --silent --instdir=%(installdir)s ' + '&& %(installdir)s/bin/vampirserver config --silent') + +sanity_check_paths = { + 'files': ["bin/vampirserver", "doc/vampirserver-manual.pdf"], + 'dirs': [] +} + +# Remove Cray-specific 'ap' launcher, +# use SLURM launcher as MPI launcher and default +postinstallcmds = [ + 'rm %(installdir)s/etc/server/launcher/ap', + '''sed -i s/'BATCH_OPT=""'/'#BATCH_OPT=""'/g %(installdir)s/etc/server/launcher/custom/slurm''', + 'cp %(installdir)s/etc/server/launcher/custom/slurm %(installdir)s/etc/server/launcher/mpi', +] + +modextravars = { + 'VAMPIR_LICENSE': '/p/software/%s/licenses/vampir/vampir.license' % local_os.environ['SYSTEMNAME'], +} + +moduleclass = 'perf' 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/xarray/xarray-2022.9.0-gcccoremkl-11.3.0-2022.1.0.eb b/Golden_Repo/x/xarray/xarray-2022.9.0-gcccoremkl-11.3.0-2022.1.0.eb index 722fc8708b73a4f63e38a1065d03745a07d83a1e..176a4fa78fb99dcdc9e108de39c5d70d03e0101d 100644 --- a/Golden_Repo/x/xarray/xarray-2022.9.0-gcccoremkl-11.3.0-2022.1.0.eb +++ b/Golden_Repo/x/xarray/xarray-2022.9.0-gcccoremkl-11.3.0-2022.1.0.eb @@ -16,6 +16,11 @@ checksums = ['a2a5b48ec0a3890b71ef48853fe9d5107d2f75452722f319cb8ed6ff8e72e883'] dependencies = [ ('Python', '3.10.4'), ('SciPy-bundle', '2022.05'), # required for numpy, pandas + ('netcdf4-python', '1.6.1', '-serial'), + ('h5py', '3.7.0', '-serial'), + ('dask', '2022.12.0'), + ('matplotlib', '3.5.2'), + ('Seaborn', '0.12.1'), ] download_dep_fail = True 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/x/xpra/xpra-4.4.6-GCCcore-11.3.0.eb b/Golden_Repo/x/xpra/xpra-4.4.6-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..8faafd7fe008a8c8156c7675cfd22af1b0267b55 --- /dev/null +++ b/Golden_Repo/x/xpra/xpra-4.4.6-GCCcore-11.3.0.eb @@ -0,0 +1,234 @@ +easyblock = 'Bundle' + +name = 'xpra' +version = '4.4.6' +local_xprahtml5_version = '8.1' + +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-bundle', '2022.05', '', ('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), + ('PyCUDA', '2022.1'), +] + +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'], + }), + # kernel module for uinput not loaded on hpc systems + ('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'], + }), + ('Pillow', '9.5.0', { + 'modulename': 'PIL', + 'checksums': ['bf548479d336726d7a0eceb6e767e179fbde37833ae42794602631a070d630f1'], + }), + ('Brotli', '1.0.9', { + 'modulename': 'brotli', + 'source_tmpl': '%(name)s-%(version)s.zip', + 'checksums': ['4d1b810aa0ed773f81dceda2cc7b403d01057458730e309856356d4ef4188438'], + }), + (name, version, { + 'modulename': False, + 'buildopts': ( + '--without-strict --without-uinput --with-Xdummy ' + '--with-nvenc --with-nvjpeg_encoder --with-enc_x264 --with-enc_x265 ' + ), + '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': [ + '7fec998cf9816df3f0fa5ded01903b07211b0c36a7316c9e9bf6db8b80fb477a', + 'ff1e8984f367ebcc90b56d2c1b87012a7ce53fe4f68686cf042e5bbce16be198', + ], + }), + ('xpra-html5', local_xprahtml5_version, { + '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, + 'patches': [ + 'xprahtml_OffscreenCanvas.patch', + 'xprahtml_uint8_p255.patch', + 'xprahtml_timeout.patch', + 'xprahtml_depcleanup_p257.patch', + ], + 'checksums': [ + '3b1765aa3aacde03d7e6f53aecb9d96421808bf63b322f74f9ec77a2a8b5b379', + '4ebc8ce718daa9bf9f7c7900746b2e484feda9b269505c723d2fc40682802d60', + '74f1edc64fbbc151740b10020d18caebf83c890fa27f641d84ca090a9f693739', + '86e46d5fb377701e767386b372d7d238c41aa788d560d334596afb662ef897f4', + '60f7e77530a3faf640188b5dbf5f1a2d288b8d8ab9af817d74d5faba37081940', + ], + }), +] + +postinstallcmds = [ + # link to dirs in installed xpra-egg + ( + 'EGGPATH=%(installdir)s/lib/python%(pyshortver)s/site-packages' + '/xpra-%(version)s-py%(pyshortver)s-linux-x86_64.egg/ && ' + 'mkdir -p %(installdir)s/share && ' + 'mv %(installdir)s/share/man %(installdir)s/share/man.bk || true && ' + 'ln -s ${EGGPATH}/share/* %(installdir)s/share/ && ' + 'mkdir -p %(installdir)s/etc/ && ' + 'ln -s ${EGGPATH}/etc/* %(installdir)s/etc/ ' + ), + # installing xpra-html5 + ( + 'pushd %%(builddir)s/xprahtml5/xpra-html5-%s && ' + './setup.py install %%(installdir)s /share/xpra/www /etc/xpra/html5-client && ' + 'popd && ' + 'pushd %%(installdir)s/share/xpra/www && ' + 'ln -sf ../../../etc/xpra/html5-client/default-settings.txt && ' + 'popd' + ) % (local_xprahtml5_version), + # set specific configurations + ( + # fix the xvfb call + "sed -i '/^[[:space:]]* \"${XORG_CONFIG_PREFIX}/c\ " + " \"%(installdir)s/etc/xpra/xorg.conf\"'" + " %(installdir)s/etc/xpra/conf.d/55_server_x11.conf && " + # 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 && " + # limit socket-dirs to /tmp + "sed -i 's/^socket-dirs =/#&/' " + " %(installdir)s/etc/xpra/conf.d/10_network.conf && " + "sed -i 's/^#socket-dirs = \/tmp/socket-dirs = \/tmp/' " + " %(installdir)s/etc/xpra/conf.d/10_network.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/xprahtml_OffscreenCanvas.patch b/Golden_Repo/x/xpra/xprahtml_OffscreenCanvas.patch new file mode 100644 index 0000000000000000000000000000000000000000..f360470026c86cfc6446df2a26dbcbf928a8e6fc --- /dev/null +++ b/Golden_Repo/x/xpra/xprahtml_OffscreenCanvas.patch @@ -0,0 +1,57 @@ +diff -Naur xprahtml5.orig/xpra-html5-8.1/html5/js/OffscreenDecodeWorkerHelper.js xprahtml5/xpra-html5-8.1/html5/js/OffscreenDecodeWorkerHelper.js +--- xprahtml5.orig/xpra-html5-8.1/html5/js/OffscreenDecodeWorkerHelper.js 2023-07-06 09:03:43.499513815 +0200 ++++ xprahtml5/xpra-html5-8.1/html5/js/OffscreenDecodeWorkerHelper.js 2023-07-06 09:01:44.073357671 +0200 +@@ -12,10 +12,40 @@ + */ + + const XpraOffscreenWorker = { ++ ++ // OffscreenCanvas req. this bugfix https://github.com/WebKit/WebKit/pull/11534 ++ isSafariVersionSupported() { ++ var match = navigator.userAgent.match(/version\/(\d+\.\d+)/i); ++ if (match && match[1]) { ++ var version = parseFloat(match[1]); ++ return version >= 999.0; ++ } ++ return false; ++ }, ++ ++ // OffscreenCanvas supported since v.106 ++ // transferToimageBitmap fixed since v.108 (bug-id: 1794956) ++ isFirefoxVersionSupported() { ++ var match = navigator.userAgent.match(/firefox\/(\d+)/i); ++ if (match && match[1]) { ++ var version = parseInt(match[1], 10); ++ return version >= 108; ++ } ++ return false; ++ }, ++ + isAvailable() { +- // We do not support firefox as it makes canvases flicker +- const isFirefox = navigator.userAgent.toLowerCase().includes("firefox"); +- if (typeof OffscreenCanvas !== "undefined" && !isFirefox) { ++ var isSafari = navigator.userAgent.toLowerCase().includes("safari"); ++ if (isSafari && !this.isSafariVersionSupported()) { ++ return false; ++ } ++ ++ var isFirefox = navigator.userAgent.toLowerCase().includes("firefox"); ++ if (isFirefox && this.isFirefoxVersionSupported()) { ++ return false; ++ } ++ ++ if (typeof OffscreenCanvas !== "undefined") { + //we also need the direct constructor: + try { + new OffscreenCanvas(256, 256); +@@ -25,7 +55,8 @@ + } + } + console.warn( +- "Offscreen decoding is not available. Please consider using Google Chrome for better performance." ++ "Offscreen decoding is not available. Please consider using " + ++ "Google Chrome, Firefox >= 108 or Safari >= 16.4 for better performance." + ); + return false; + }, diff --git a/Golden_Repo/x/xpra/xprahtml_depcleanup_p257.patch b/Golden_Repo/x/xpra/xprahtml_depcleanup_p257.patch new file mode 100644 index 0000000000000000000000000000000000000000..310b21dc4f4830f04787ef009684c63cf9a07fba --- /dev/null +++ b/Golden_Repo/x/xpra/xprahtml_depcleanup_p257.patch @@ -0,0 +1,128 @@ +From eaaee8a1a07e07159feaa93e5bf83f0dab706c52 Mon Sep 17 00:00:00 2001 +From: Jens Henrik Goebbert <j.goebbert@fz-juelich.de> +Date: Thu, 6 Jul 2023 16:43:05 +0200 +Subject: [PATCH 1/3] load Utilities.js in index.html first + +In general Utilities.js should be loaded first as it provides functions for others. +--- + html5/index.html | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/html5/index.html b/html5/index.html +index f58b13f7..ae0e9f1d 100644 +--- a/html5/index.html ++++ b/html5/index.html +@@ -63,12 +63,12 @@ + <script type="text/javascript" src="js/lib/jszip.js"></script> + <script type="text/javascript" src="js/lib/detect-zoom.js"></script> + ++ <script type="text/javascript" src="js/Utilities.js"></script> + <script type="text/javascript" src="js/Keycodes.js"></script> + <script type="text/javascript" src="js/Protocol.js"></script> + <script type="text/javascript" src="js/Window.js"></script> + <script type="text/javascript" src="js/Notifications.js"></script> + <script type="text/javascript" src="js/Constants.js"></script> +- <script type="text/javascript" src="js/Utilities.js"></script> + <script type="text/javascript" src="js/MediaSourceUtil.js"></script> + <script type="text/javascript" src="js/RgbHelpers.js"></script> + <script type="text/javascript" src="js/VideoDecoder.js"></script> + +From 37009b28dbd259d1ddfa2544dbeeab96e70ae765 Mon Sep 17 00:00:00 2001 +From: Jens Henrik Goebbert <j.goebbert@fz-juelich.de> +Date: Thu, 6 Jul 2023 16:46:36 +0200 +Subject: [PATCH 2/3] add function ord() to Utilities.js + +--- + html5/js/Utilities.js | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/html5/js/Utilities.js b/html5/js/Utilities.js +index acfa18ba..129ab7e7 100644 +--- a/html5/js/Utilities.js ++++ b/html5/js/Utilities.js +@@ -55,6 +55,10 @@ const Utilities = { + return s.join(""); + }, + ++ ord(c) { ++ return c.charCodeAt(0); ++ }, ++ + getSecureRandomString(length_) { + const crypto = window.crypto || window.mscrypto; + if (!crypto) { + +From 5996e3ef60a861627399e150514bf7b70054495c Mon Sep 17 00:00:00 2001 +From: Jens Henrik Goebbert <j.goebbert@fz-juelich.de> +Date: Thu, 6 Jul 2023 16:49:56 +0200 +Subject: [PATCH 3/3] use functions from Utilities.js + +--- + html5/js/Protocol.js | 19 ++++++------------- + 1 file changed, 6 insertions(+), 13 deletions(-) + +diff --git a/html5/js/Protocol.js b/html5/js/Protocol.js +index ed1ed0ad..67f5de4d 100644 +--- a/html5/js/Protocol.js ++++ b/html5/js/Protocol.js +@@ -234,14 +234,6 @@ class XpraProtocol { + console.log.apply(console, arguments); + } + +- StringToUint8(string_) { +- return Uint8Array.from([...string_].map((x) => x.charCodeAt(0))); +- } +- +- ord(c) { +- return c.charCodeAt(0); +- } +- + do_process_receive_queue() { + if (this.header.length < 8 && this.rQ.length > 0) { + //add from receive queue data to header until we get the 8 bytes we need: +@@ -360,7 +352,7 @@ class XpraProtocol { + + // decrypt if needed + if (proto_crypto) { +- this.cipher_in.update(forge.util.createBuffer(Uint8ToString(packet_data))); ++ this.cipher_in.update(forge.util.createBuffer(Utilities.Uint8ToString(packet_data))); + const decrypted = this.cipher_in.output.getBytes(); + if (!decrypted || decrypted.length < packet_size - padding) { + this.error("error decrypting packet using", this.cipher_in); +@@ -376,7 +368,7 @@ class XpraProtocol { + this.raw_packets = []; + return this.rQ.length > 0; + } +- packet_data = this.StringToUint8( ++ packet_data = Utilities.StringToUint8( + decrypted.slice(0, packet_size - padding) + ); + } +@@ -472,7 +464,7 @@ class XpraProtocol { + this.cipher_out_block_size - + (payload_size % this.cipher_out_block_size); + let input_data = +- typeof bdata === "string" ? bdata : Uint8ToString(bdata); ++ typeof bdata === "string" ? bdata : Utilities.Uint8ToString(bdata); + if (padding_size) { + const padding_char = String.fromCharCode(padding_size); + input_data += padding_char.repeat(padding_size); +@@ -498,7 +490,7 @@ class XpraProtocol { + } else { + //copy string one character at a time.. + for (let index = 0; index < actual_size; index++) { +- packet_data[8 + index] = this.ord(bdata[index]); ++ packet_data[8 + index] = Utilities.ord(bdata[index]); + } + } + // put into buffer before send +@@ -624,7 +616,8 @@ if ( + "lib/lz4.js", + "lib/brotli_decode.js", + "lib/forge.js", +- "lib/rencode.js" ++ "lib/rencode.js", ++ "Utilities.js" + ); + // make protocol instance + const protocol = new XpraProtocol(); diff --git a/Golden_Repo/x/xpra/xprahtml_timeout.patch b/Golden_Repo/x/xpra/xprahtml_timeout.patch new file mode 100644 index 0000000000000000000000000000000000000000..bffade67cf5807077fa3952efabfdfecec79ef67 --- /dev/null +++ b/Golden_Repo/x/xpra/xprahtml_timeout.patch @@ -0,0 +1,31 @@ +diff -Naur xprahtml5.orig/xpra-html5-8.1/html5/js/Client.js xprahtml5/xpra-html5-8.1/html5/js/Client.js +--- xprahtml5.orig/xpra-html5-8.1/html5/js/Client.js 2023-06-15 19:31:48.000000000 +0200 ++++ xprahtml5/xpra-html5-8.1/html5/js/Client.js 2023-07-06 17:21:36.569495387 +0200 +@@ -134,11 +134,11 @@ + this.reconnect_delay = 1000; //wait 1 second before retrying + this.reconnect_attempt = 0; + this.swap_keys = Utilities.isMacOS(); +- this.HELLO_TIMEOUT = 30_000; +- this.PING_TIMEOUT = 15_000; +- this.PING_GRACE = 2000; ++ this.HELLO_TIMEOUT = 60_000; ++ this.PING_TIMEOUT = 30_000; ++ this.PING_GRACE = 4000; + this.PING_FREQUENCY = 5000; +- this.INFO_FREQUENCY = 1000; ++ this.INFO_FREQUENCY = 2000; + this.uuid = Utilities.getHexUUID(); + this.offscreen_api = DECODE_WORKER && XpraOffscreenWorker.isAvailable(); + this.try_gpu = TRY_GPU_TRIGGER; +diff -Naur xprahtml5.orig/xpra-html5-8.1/html5/js/Protocol.js xprahtml5/xpra-html5-8.1/html5/js/Protocol.js +--- xprahtml5.orig/xpra-html5-8.1/html5/js/Protocol.js 2023-07-06 17:07:50.029528940 +0200 ++++ xprahtml5/xpra-html5-8.1/html5/js/Protocol.js 2023-07-06 17:22:02.235743758 +0200 +@@ -15,7 +15,7 @@ + * brotli_decode.js + */ + +-const CONNECT_TIMEOUT = 15_000; ++const CONNECT_TIMEOUT = 30_000; + + if (!Object.hasOwn) { + Object.hasOwn = Object.call.bind(Object.hasOwnProperty); diff --git a/Golden_Repo/x/xpra/xprahtml_uint8_p255.patch b/Golden_Repo/x/xpra/xprahtml_uint8_p255.patch new file mode 100644 index 0000000000000000000000000000000000000000..ef551915d763708d8554d19ffbfffa43162230de --- /dev/null +++ b/Golden_Repo/x/xpra/xprahtml_uint8_p255.patch @@ -0,0 +1,68 @@ +From 740724ad355a1b6d30fef6ba3be0a78135ad76c9 Mon Sep 17 00:00:00 2001 +From: Jens Henrik Goebbert <j.goebbert@fz-juelich.de> +Date: Wed, 5 Jul 2023 19:45:13 +0200 +Subject: [PATCH] fix Protocol.js + +- uintToString(..) does not exist. Hence, Uint8ToString(..) from lib/rencode.js imported at line 627 is used +- Utilities is not in scope so Utilities.StringToUint8(..) fails. Hence, StringToUint8(..) got added to class XpraProtocol +- Utilities is not in scope so Utilities.Uint8ToString(..) fails. Hence, Uint8ToString(..) from lib/rencode.js imported at line 627 is used +- ord(..) is not defined. Hence, ord(..) got added to class XpraProtocol +--- + html5/js/Protocol.js | 16 ++++++++++++---- + 1 file changed, 12 insertions(+), 4 deletions(-) + +diff --git a/html5/js/Protocol.js b/html5/js/Protocol.js +index 3a90d571..ed1ed0ad 100644 +--- a/html5/js/Protocol.js ++++ b/html5/js/Protocol.js +@@ -234,6 +234,14 @@ class XpraProtocol { + console.log.apply(console, arguments); + } + ++ StringToUint8(string_) { ++ return Uint8Array.from([...string_].map((x) => x.charCodeAt(0))); ++ } ++ ++ ord(c) { ++ return c.charCodeAt(0); ++ } ++ + do_process_receive_queue() { + if (this.header.length < 8 && this.rQ.length > 0) { + //add from receive queue data to header until we get the 8 bytes we need: +@@ -352,7 +360,7 @@ class XpraProtocol { + + // decrypt if needed + if (proto_crypto) { +- this.cipher_in.update(forge.util.createBuffer(uintToString(packet_data))); ++ this.cipher_in.update(forge.util.createBuffer(Uint8ToString(packet_data))); + const decrypted = this.cipher_in.output.getBytes(); + if (!decrypted || decrypted.length < packet_size - padding) { + this.error("error decrypting packet using", this.cipher_in); +@@ -368,7 +376,7 @@ class XpraProtocol { + this.raw_packets = []; + return this.rQ.length > 0; + } +- packet_data = Utilities.StringToUint8( ++ packet_data = this.StringToUint8( + decrypted.slice(0, packet_size - padding) + ); + } +@@ -464,7 +472,7 @@ class XpraProtocol { + this.cipher_out_block_size - + (payload_size % this.cipher_out_block_size); + let input_data = +- typeof bdata === "string" ? bdata : Utilities.Uint8ToString(bdata); ++ typeof bdata === "string" ? bdata : Uint8ToString(bdata); + if (padding_size) { + const padding_char = String.fromCharCode(padding_size); + input_data += padding_char.repeat(padding_size); +@@ -490,7 +498,7 @@ class XpraProtocol { + } else { + //copy string one character at a time.. + for (let index = 0; index < actual_size; index++) { +- packet_data[8 + index] = ord(bdata[index]); ++ packet_data[8 + index] = this.ord(bdata[index]); + } + } + // put into buffer before send diff --git a/Golden_Repo/y/YAXT/README.md b/Golden_Repo/y/YAXT/README.md new file mode 100644 index 0000000000000000000000000000000000000000..822a675453eb1d5c808dc285cfabc2b291d961da --- /dev/null +++ b/Golden_Repo/y/YAXT/README.md @@ -0,0 +1,7 @@ +# YAXT + +YAXT installation requires MPI. At JSC, it is neccessary to have an active `salloc` session and to specify a buildpath. For example on JUWELS: +``` +salloc --time=1:00:00 --nodes=1 --ntasks=16 --partition=devel -A cswmanage +eb YAXT-0.9.3.1-gpsmpi-2022a.eb --buildpath=/p/scratch/cswmanage/$USER/builddir/$SYSTEMNAME/ +``` \ No newline at end of file diff --git a/Golden_Repo/y/YAXT/YAXT-0.9.3.1-gompi-2022a.eb b/Golden_Repo/y/YAXT/YAXT-0.9.3.1-gompi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..9dc55488ff492b6e9d873aa7d91174a753a5c907 --- /dev/null +++ b/Golden_Repo/y/YAXT/YAXT-0.9.3.1-gompi-2022a.eb @@ -0,0 +1,30 @@ +# Updated to new URL and version 0.9.3.1 + +easyblock = 'ConfigureMake' + +name = 'YAXT' +version = '0.9.3.1' + +homepage = 'https://swprojects.dkrz.de/redmine/projects/yaxt' +description = "Yet Another eXchange Tool" + +toolchain = {'name': 'gompi', 'version': '2022a'} +toolchainopts = {'usempi': True} + +source_urls = [ + 'https://swprojects.dkrz.de/redmine/attachments/download/523/', + 'https://www.dkrz.de/redmine/attachments/download/523/', +] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['5cc2ffeedf1604f825f22867753b637d41507941b7a0fbbfa6ea40637a77605a'] + +configopts = 'FC="$F90" FCFLAGS="$F90FLAGS -cpp"' + +preconfigopts = 'MPI_LAUNCH="$(which srun)"' + +sanity_check_paths = { + 'files': ['include/yaxt.h', 'include/yaxt.mod', 'lib/libyaxt.a', 'lib/libyaxt.%s' % SHLIB_EXT], + 'dirs': ['include/xt'], +} + +moduleclass = 'tools' diff --git a/Golden_Repo/y/YAXT/YAXT-0.9.3.1-gpsmpi-2022a.eb b/Golden_Repo/y/YAXT/YAXT-0.9.3.1-gpsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..d26e22b76a77fb6c5953ea6e3227c7344a0b6a3f --- /dev/null +++ b/Golden_Repo/y/YAXT/YAXT-0.9.3.1-gpsmpi-2022a.eb @@ -0,0 +1,30 @@ +# Updated to new URL and version 0.9.3.1 + +easyblock = 'ConfigureMake' + +name = 'YAXT' +version = '0.9.3.1' + +homepage = 'https://swprojects.dkrz.de/redmine/projects/yaxt' +description = "Yet Another eXchange Tool" + +toolchain = {'name': 'gpsmpi', 'version': '2022a'} +toolchainopts = {'usempi': True} + +source_urls = [ + 'https://swprojects.dkrz.de/redmine/attachments/download/523/', + 'https://www.dkrz.de/redmine/attachments/download/523/', +] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['5cc2ffeedf1604f825f22867753b637d41507941b7a0fbbfa6ea40637a77605a'] + +configopts = 'FC="$F90" FCFLAGS="$F90FLAGS -cpp"' + +preconfigopts = 'MPI_LAUNCH="$(which srun)"' + +sanity_check_paths = { + 'files': ['include/yaxt.h', 'include/yaxt.mod', 'lib/libyaxt.a', 'lib/libyaxt.%s' % SHLIB_EXT], + 'dirs': ['include/xt'], +} + +moduleclass = 'tools' diff --git a/Golden_Repo/y/YAXT/YAXT-0.9.3.1-ipsmpi-2022a.eb b/Golden_Repo/y/YAXT/YAXT-0.9.3.1-ipsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..e9c844d99f7c661dcfcffdac4c0f6536ea3ac44d --- /dev/null +++ b/Golden_Repo/y/YAXT/YAXT-0.9.3.1-ipsmpi-2022a.eb @@ -0,0 +1,30 @@ +# Updated to new URL and version 0.9.3.1 + +easyblock = 'ConfigureMake' + +name = 'YAXT' +version = '0.9.3.1' + +homepage = 'https://swprojects.dkrz.de/redmine/projects/yaxt' +description = "Yet Another eXchange Tool" + +toolchain = {'name': 'ipsmpi', 'version': '2022a'} +toolchainopts = {'usempi': True} + +source_urls = [ + 'https://swprojects.dkrz.de/redmine/attachments/download/523/', + 'https://www.dkrz.de/redmine/attachments/download/523/', +] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['5cc2ffeedf1604f825f22867753b637d41507941b7a0fbbfa6ea40637a77605a'] + +configopts = 'FC="$F90" FCFLAGS="$F90FLAGS -cpp"' + +preconfigopts = 'MPI_LAUNCH="$(which srun)"' + +sanity_check_paths = { + 'files': ['include/yaxt.h', 'include/yaxt.mod', 'lib/libyaxt.a', 'lib/libyaxt.%s' % SHLIB_EXT], + 'dirs': ['include/xt'], +} + +moduleclass = 'tools' diff --git a/Golden_Repo/y/YAXT/YAXT-0.9.3.1-npsmpic-2022a.eb b/Golden_Repo/y/YAXT/YAXT-0.9.3.1-npsmpic-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..2991e4d0da5cbb6d3d57dec027c0f016af3c86ec --- /dev/null +++ b/Golden_Repo/y/YAXT/YAXT-0.9.3.1-npsmpic-2022a.eb @@ -0,0 +1,36 @@ +# Updated to new URL and version 0.9.3.1 + +easyblock = 'ConfigureMake' + +name = 'YAXT' +version = '0.9.3.1' + +homepage = 'https://swprojects.dkrz.de/redmine/projects/yaxt' +description = "Yet Another eXchange Tool" + +toolchain = {'name': 'npsmpic', 'version': '2022a'} +toolchainopts = {'usempi': True} + +source_urls = [ + 'https://swprojects.dkrz.de/redmine/attachments/download/523/', + 'https://www.dkrz.de/redmine/attachments/download/523/', +] +sources = [SOURCELOWER_TAR_GZ] +patches = [ + ('YAXT-%(version)s_remove_pgi-specific.patch', 1), +] +checksums = [ + {'yaxt-0.9.3.1.tar.gz': '5cc2ffeedf1604f825f22867753b637d41507941b7a0fbbfa6ea40637a77605a'}, + {'YAXT-0.9.3.1_remove_pgi-specific.patch': '1cbff4767e075636feef7b34f6c0e1498fce53399c38c14abf2fe8f09c244e9b'}, +] + +configopts = 'FC="$F90" FCFLAGS="$F90FLAGS -cpp"' + +preconfigopts = 'MPI_LAUNCH="$(which srun)"' + +sanity_check_paths = { + 'files': ['include/yaxt.h', 'include/yaxt.mod', 'lib/libyaxt.a', 'lib/libyaxt.%s' % SHLIB_EXT], + 'dirs': ['include/xt'], +} + +moduleclass = 'tools' diff --git a/Golden_Repo/y/YAXT/YAXT-0.9.3.1-nvompic-2022a.eb b/Golden_Repo/y/YAXT/YAXT-0.9.3.1-nvompic-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..29d4f831fe5c5a403a89738c5ed2ddcf5885c53d --- /dev/null +++ b/Golden_Repo/y/YAXT/YAXT-0.9.3.1-nvompic-2022a.eb @@ -0,0 +1,36 @@ +# Updated to new URL and version 0.9.3.1 + +easyblock = 'ConfigureMake' + +name = 'YAXT' +version = '0.9.3.1' + +homepage = 'https://swprojects.dkrz.de/redmine/projects/yaxt' +description = "Yet Another eXchange Tool" + +toolchain = {'name': 'nvompic', 'version': '2022a'} +toolchainopts = {'usempi': True} + +source_urls = [ + 'https://swprojects.dkrz.de/redmine/attachments/download/523/', + 'https://www.dkrz.de/redmine/attachments/download/523/', +] +sources = [SOURCELOWER_TAR_GZ] +patches = [ + ('YAXT-%(version)s_remove_pgi-specific.patch', 1), +] +checksums = [ + {'yaxt-0.9.3.1.tar.gz': '5cc2ffeedf1604f825f22867753b637d41507941b7a0fbbfa6ea40637a77605a'}, + {'YAXT-0.9.3.1_remove_pgi-specific.patch': '1cbff4767e075636feef7b34f6c0e1498fce53399c38c14abf2fe8f09c244e9b'}, +] + +configopts = 'FC="$F90" FCFLAGS="$F90FLAGS -cpp"' + +preconfigopts = 'MPI_LAUNCH="$(which srun)"' + +sanity_check_paths = { + 'files': ['include/yaxt.h', 'include/yaxt.mod', 'lib/libyaxt.a', 'lib/libyaxt.%s' % SHLIB_EXT], + 'dirs': ['include/xt'], +} + +moduleclass = 'tools' diff --git a/Golden_Repo/y/YAXT/YAXT-0.9.3.1_remove_pgi-specific.patch b/Golden_Repo/y/YAXT/YAXT-0.9.3.1_remove_pgi-specific.patch new file mode 100644 index 0000000000000000000000000000000000000000..3a56927032f2468415761dfab84c660963656cbc --- /dev/null +++ b/Golden_Repo/y/YAXT/YAXT-0.9.3.1_remove_pgi-specific.patch @@ -0,0 +1,42 @@ +Comment out dedicated PGI-code, as NVHPC does not support several intrinsics in the initialization phase. +Author: s.griessbach@fz-juelich.de +--- yaxt-0.9.3.1/tests/ftest_common.f90.orig 2023-02-14 17:04:33.099320000 +0100 ++++ yaxt-0.9.3.1/tests/ftest_common.f90 2023-02-14 17:03:57.795024000 +0100 +@@ -1,3 +1,4 @@ ++ + !> + !! @file ftest_common.f90 + !! +@@ -1214,21 +1215,21 @@ + ! double precision real and gfortran warns about that. For that + ! reason the below expression limits scale_val to those 1-bits + ! which can be represented in a double precision constant +-#if ! defined __PGI || __PGIC__ > 21 +- INTEGER(i8), PARAMETER :: scale_val & +- = IAND(HUGE(a), NOT(ISHFT(1_i8, BIT_SIZE(1_i8) & +- & - DIGITS(0.0_c_double)) - 1 ) ) +-#else ++ !#if defined __PGI || __PGIC__ > 21 ++ ! INTEGER(i8), PARAMETER :: scale_val & ++ ! = IAND(HUGE(a), NOT(ISHFT(1_i8, BIT_SIZE(1_i8) & ++ ! & - DIGITS(0.0_c_double)) - 1 ) ) ++ !#else + INTEGER(i8) :: scale_val +-#endif ++ !#endif + REAL(c_double) :: rand_nums(block_len), sc + n = SIZE(a) + nb = n/block_len +-#if defined __PGI && __PGIC__ <= 21 +- scale_val & +- = IAND(HUGE(a), NOT(ISHFT(1_i8, BIT_SIZE(1_i8) & +- & - DIGITS(0.0_c_double)) - 1 ) ) +-#endif ++ !#if defined __PGI && __PGIC__ <= 21 ++ ! scale_val & ++ ! = IAND(HUGE(a), NOT(ISHFT(1_i8, BIT_SIZE(1_i8) & ++ ! & - DIGITS(0.0_c_double)) - 1 ) ) ++ !#endif + + sc = REAL(scale_val, c_double) + DO j = 1, nb 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/Overlays/deep_overlay/g/GPicView/GPicView-0.2.5-GCCcore-11.3.0.eb b/Overlays/deep_overlay/g/GPicView/GPicView-0.2.5-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..e64184da3ec0490b11b5b1c7abe497703bcec7d1 --- /dev/null +++ b/Overlays/deep_overlay/g/GPicView/GPicView-0.2.5-GCCcore-11.3.0.eb @@ -0,0 +1,36 @@ +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'), + ('intltool', '0.51.0'), +] + +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/Overlays/deep_overlay/g/gpsmpi/gpsmpi-2022a-mt.eb b/Overlays/deep_overlay/g/gpsmpi/gpsmpi-2022a-mt.eb new file mode 100644 index 0000000000000000000000000000000000000000..a527127047dd2c6bc8d3a9086b21bcfed81fcc9f --- /dev/null +++ b/Overlays/deep_overlay/g/gpsmpi/gpsmpi-2022a-mt.eb @@ -0,0 +1,20 @@ +easyblock = 'Toolchain' + +name = 'gpsmpi' +version = '2022a' +versionsuffix = '-mt' + +homepage = '(none)' +description = 'GCC and GFortran based compiler toolchain, including Parastation MPICH2 for MPI support.' + + +toolchain = SYSTEM + +local_compiler = ('GCC', '11.3.0') + +dependencies = [ + local_compiler, + ('psmpi', '5.7.0-1', versionsuffix, local_compiler), +] + +moduleclass = 'toolchain' diff --git a/Overlays/deep_overlay/o/OpenMPI/OpenMPI-4.1.4-GCC-11.3.0.eb b/Overlays/deep_overlay/o/OpenMPI/OpenMPI-4.1.4-GCC-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..5f099296322b2e56b87c2530b0a72ab3fc36280c --- /dev/null +++ b/Overlays/deep_overlay/o/OpenMPI/OpenMPI-4.1.4-GCC-11.3.0.eb @@ -0,0 +1,62 @@ +easyblock = 'ConfigureMake' + +name = 'OpenMPI' +version = '4.1.4' + +homepage = 'https://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-3 implementation.""" + +toolchain = {'name': 'GCC', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +source_urls = [ + 'https://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] +sources = [SOURCELOWER_TAR_BZ2] +checksums = ['92912e175fd1234368c8730c03f4996fe5942e7479bb1d10059405e7f2b3930d'] + +osdependencies = [ + # needed for --with-verbs + ('libibverbs-dev', 'libibverbs-devel', 'rdma-core-devel'), +] + +builddependencies = [ + ('Autotools', '20220317'), + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('zlib', '1.2.12'), + ('hwloc', '2.7.1'), + ('UCX', 'default'), + ('CUDA', '11.7', '', SYSTEM), + ('libevent', '2.1.12'), + ('UCC', 'default'), + ('PMIx', '3.2.3'), +] + +configopts = '--enable-shared ' +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--with-ucx=$EBROOTUCX ' +configopts += '--with-verbs ' +configopts += '--with-libevent=$EBROOTLIBEVENT ' +configopts += '--without-orte ' +configopts += '--without-psm2 ' +configopts += '--disable-oshmem ' +configopts += '--with-cuda=$EBROOTCUDA ' +# No IME or GPFS in DEEP +# configopts += '--with-ime=/opt/ddn/ime ' +# configopts += '--with-gpfs ' + +# to enable SLURM integration (site-specific) +configopts += '--with-slurm --with-pmix=external --with-libevent=external --with-ompi-pmix-rte' + +local_libs = ["mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte"] +sanity_check_paths = { + 'files': ["bin/%s" % local_binfile for local_binfile in ["ompi_info", "opal_wrapper"]] + + ["lib/lib%s.%s" % (local_libfile, SHLIB_EXT) for local_libfile in local_libs] + + ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", + "mpif", "mpi", "mpi_portable_platform"]], + 'dirs': [], +} + +moduleclass = 'mpi' diff --git a/Overlays/deep_overlay/o/OpenMPI/OpenMPI-4.1.4-NVHPC-23.1.eb b/Overlays/deep_overlay/o/OpenMPI/OpenMPI-4.1.4-NVHPC-23.1.eb new file mode 100644 index 0000000000000000000000000000000000000000..5bb7a448efc9018c201e7ffe08768e3833795e29 --- /dev/null +++ b/Overlays/deep_overlay/o/OpenMPI/OpenMPI-4.1.4-NVHPC-23.1.eb @@ -0,0 +1,62 @@ +easyblock = 'ConfigureMake' + +name = 'OpenMPI' +version = '4.1.4' + +homepage = 'https://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-3 implementation.""" + +toolchain = {'name': 'NVHPC', 'version': '23.1'} +toolchainopts = {'pic': True} + +source_urls = [ + 'https://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] +sources = [SOURCELOWER_TAR_BZ2] +checksums = ['92912e175fd1234368c8730c03f4996fe5942e7479bb1d10059405e7f2b3930d'] + +osdependencies = [ + # needed for --with-verbs + ('libibverbs-dev', 'libibverbs-devel', 'rdma-core-devel'), +] + +builddependencies = [ + ('Autotools', '20220317'), + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('zlib', '1.2.12'), + ('hwloc', '2.7.1'), + ('UCX', 'default'), + ('CUDA', '11.7', '', SYSTEM), + ('libevent', '2.1.12'), + ('UCC', 'default'), + ('PMIx', '3.2.3'), +] + +configopts = '--enable-shared ' +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--with-ucx=$EBROOTUCX ' +configopts += '--with-verbs ' +configopts += '--with-libevent=$EBROOTLIBEVENT ' +configopts += '--without-orte ' +configopts += '--without-psm2 ' +configopts += '--disable-oshmem ' +configopts += '--with-cuda=$EBROOTCUDA ' +# No IME or GPFS in DEEP +# configopts += '--with-ime=/opt/ddn/ime ' +# configopts += '--with-gpfs ' + +# to enable SLURM integration (site-specific) +configopts += '--with-slurm --with-pmix=external --with-libevent=external --with-ompi-pmix-rte' + +local_libs = ["mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte"] +sanity_check_paths = { + 'files': ["bin/%s" % local_binfile for local_binfile in ["ompi_info", "opal_wrapper"]] + + ["lib/lib%s.%s" % (local_libfile, SHLIB_EXT) for local_libfile in local_libs] + + ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", + "mpif", "mpi", "mpi_portable_platform"]], + 'dirs': [], +} + +moduleclass = 'mpi' diff --git a/Overlays/deep_overlay/p/PAPI/PAPI-7.0.0-GCCcore-11.3.0.eb b/Overlays/deep_overlay/p/PAPI/PAPI-7.0.0-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..283ab732da45ecfb9404ae657fcb4d9f68ea518d --- /dev/null +++ b/Overlays/deep_overlay/p/PAPI/PAPI-7.0.0-GCCcore-11.3.0.eb @@ -0,0 +1,49 @@ +## +# Author: Robert Mijakovic <robert.mijakovic@lxp.lu> +## + +easyblock = 'ConfigureMake' + +name = 'PAPI' +version = '7.0.0' + +homepage = 'https://icl.cs.utk.edu/projects/papi/' + +description = """ + PAPI provides the tool designer and application engineer with a consistent + interface and methodology for use of the performance counter hardware found + in most major microprocessors. PAPI enables software engineers to see, in near + real time, the relation between software performance and processor events. + In addition Component PAPI provides access to a collection of components + that expose performance measurement opportunites across the hardware and + software stack. +""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['https://icl.cs.utk.edu/projects/papi/downloads/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['799dcc317a47da96beaeed445812ecb6ae49df7c0504a4569797c1f7d74c4fd2'] + +builddependencies = [ + ('binutils', '2.38'), +] + +start_dir = 'src' + +configopts = "--with-components='rapl sde' " # for energy measurements + +parallel = 1 +# Deep neither passes nor fails any test +# runtest = 'fulltest' + +sanity_check_paths = { + 'files': ["bin/papi_%s" % x + for x in ["avail", "clockres", "command_line", "component_avail", + "cost", "decode", "error_codes", "event_chooser", + "mem_info", "multiplex_cost", "native_avail", + "version", "xml_event_info"]], + 'dirs': [], +} + +moduleclass = 'perf' diff --git a/Overlays/deep_overlay/p/psmpi/psmpi-5.7.0-1-GCC-11.3.0-mt.eb b/Overlays/deep_overlay/p/psmpi/psmpi-5.7.0-1-GCC-11.3.0-mt.eb new file mode 100644 index 0000000000000000000000000000000000000000..94894cfd869e9813cb17e75732d4bdfab0f7d85e --- /dev/null +++ b/Overlays/deep_overlay/p/psmpi/psmpi-5.7.0-1-GCC-11.3.0-mt.eb @@ -0,0 +1,46 @@ +name = 'psmpi' +version = '5.7.0-1' +versionsuffix = '-mt' + +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://github.com/ParaStation/psmpi/archive/'] +checksums = [ + # psmpi-5.7.0-1.tar.gz + '0c1c8556afedfb08cd612f379ddb6327ef1bb0867d6f6fed3d610f3d8c790883', + '978eb3223c978477c40987f745c07fda26ccbad2f468616faf92f0d71b81a156', # psmpi_shebang.patch +] + +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_shebang.patch', + # We don't have IME in HDFML so we skip this + # 'psmpi-5.5.0-1_ime.patch' +] + +# 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 = True + +cuda = True + +moduleclass = 'mpi' diff --git a/Overlays/hdfml_overlay/p/psmpi/psmpi-5.7.0-1-NVHPC-22.11.eb b/Overlays/deep_overlay/p/psmpi/psmpi-5.7.0-1-GCC-11.3.0.eb similarity index 96% rename from Overlays/hdfml_overlay/p/psmpi/psmpi-5.7.0-1-NVHPC-22.11.eb rename to Overlays/deep_overlay/p/psmpi/psmpi-5.7.0-1-GCC-11.3.0.eb index 125606353501b4c3bb343cae4665845d849d3dfc..8f16abaa8fb8ef6d4ea0f0966c1b9b90bb3b44b1 100644 --- a/Overlays/hdfml_overlay/p/psmpi/psmpi-5.7.0-1-NVHPC-22.11.eb +++ b/Overlays/deep_overlay/p/psmpi/psmpi-5.7.0-1-GCC-11.3.0.eb @@ -7,7 +7,7 @@ based on MPICH v3. It provides extra low level communication libraries and integ various batch systems for tighter process control. """ -toolchain = {'name': 'NVHPC', 'version': '22.11'} +toolchain = {'name': 'GCC', 'version': '11.3.0'} sources = [SOURCE_TAR_GZ] source_urls = ['https://github.com/ParaStation/psmpi/archive/'] diff --git a/Overlays/deep_overlay/p/psmpi/psmpi-5.7.0-1-NVHPC-23.1.eb b/Overlays/deep_overlay/p/psmpi/psmpi-5.7.0-1-NVHPC-23.1.eb new file mode 100644 index 0000000000000000000000000000000000000000..b06425298eec656f626de2d1f803aa44adb59902 --- /dev/null +++ b/Overlays/deep_overlay/p/psmpi/psmpi-5.7.0-1-NVHPC-23.1.eb @@ -0,0 +1,45 @@ +name = 'psmpi' +version = '5.7.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': '23.1'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['https://github.com/ParaStation/psmpi/archive/'] +checksums = [ + # psmpi-5.7.0-1.tar.gz + '0c1c8556afedfb08cd612f379ddb6327ef1bb0867d6f6fed3d610f3d8c790883', + '978eb3223c978477c40987f745c07fda26ccbad2f468616faf92f0d71b81a156', # psmpi_shebang.patch +] + +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_shebang.patch', + # We don't have IME in HDFML so we skip this + # 'psmpi-5.5.0-1_ime.patch' +] + +# 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/deep_overlay/p/psmpi/psmpi-5.7.0-1-intel-compilers-2022.1.0.eb b/Overlays/deep_overlay/p/psmpi/psmpi-5.7.0-1-intel-compilers-2022.1.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..cf308960ed923a6717e7e7ddbfae4bf0980de7b1 --- /dev/null +++ b/Overlays/deep_overlay/p/psmpi/psmpi-5.7.0-1-intel-compilers-2022.1.0.eb @@ -0,0 +1,45 @@ +name = 'psmpi' +version = '5.7.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://github.com/ParaStation/psmpi/archive/'] +checksums = [ + # psmpi-5.7.0-1.tar.gz + '0c1c8556afedfb08cd612f379ddb6327ef1bb0867d6f6fed3d610f3d8c790883', + '978eb3223c978477c40987f745c07fda26ccbad2f468616faf92f0d71b81a156', # psmpi_shebang.patch +] + +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_shebang.patch', + # We don't have IME in HDFML so we skip this + # 'psmpi-5.5.0-1_ime.patch' +] + +# 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/deep_overlay/p/psmpi/psmpi-5.7.1-1-GCC-11.3.0-mt.eb b/Overlays/deep_overlay/p/psmpi/psmpi-5.7.1-1-GCC-11.3.0-mt.eb new file mode 100644 index 0000000000000000000000000000000000000000..ee88e31c810cc1832a21e571f2393869cf16637e --- /dev/null +++ b/Overlays/deep_overlay/p/psmpi/psmpi-5.7.1-1-GCC-11.3.0-mt.eb @@ -0,0 +1,46 @@ +name = 'psmpi' +version = '5.7.1-1' +versionsuffix = '-mt' + +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://github.com/ParaStation/psmpi/archive/'] +checksums = [ + # psmpi-5.7.1-1.tar.gz + 'fe6fee71ff7586295347c4d06e1be872adcbe136119152c5a0983bad643e967b', + '978eb3223c978477c40987f745c07fda26ccbad2f468616faf92f0d71b81a156', # psmpi_shebang.patch +] + +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_shebang.patch', + # We don't have IME in HDFML so we skip this + # 'psmpi-5.5.0-1_ime.patch' +] + +# 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 = True + +cuda = True + +moduleclass = 'mpi' diff --git a/Overlays/deep_overlay/p/psmpi/psmpi-5.7.1-1-GCC-11.3.0.eb b/Overlays/deep_overlay/p/psmpi/psmpi-5.7.1-1-GCC-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..5d26f62e0d0666f635eb02df230419f598014763 --- /dev/null +++ b/Overlays/deep_overlay/p/psmpi/psmpi-5.7.1-1-GCC-11.3.0.eb @@ -0,0 +1,45 @@ +name = 'psmpi' +version = '5.7.1-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://github.com/ParaStation/psmpi/archive/'] +checksums = [ + # psmpi-5.7.1-1.tar.gz + 'fe6fee71ff7586295347c4d06e1be872adcbe136119152c5a0983bad643e967b', + '978eb3223c978477c40987f745c07fda26ccbad2f468616faf92f0d71b81a156', # psmpi_shebang.patch +] + +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_shebang.patch', + # We don't have IME in HDFML so we skip this + # 'psmpi-5.5.0-1_ime.patch' +] + +# 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/deep_overlay/p/psmpi/psmpi-5.7.1-1-NVHPC-23.1.eb b/Overlays/deep_overlay/p/psmpi/psmpi-5.7.1-1-NVHPC-23.1.eb new file mode 100644 index 0000000000000000000000000000000000000000..2b8f13ff0059a4e07b241b903df85476703a21b2 --- /dev/null +++ b/Overlays/deep_overlay/p/psmpi/psmpi-5.7.1-1-NVHPC-23.1.eb @@ -0,0 +1,45 @@ +name = 'psmpi' +version = '5.7.1-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': '23.1'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['https://github.com/ParaStation/psmpi/archive/'] +checksums = [ + # psmpi-5.7.1-1.tar.gz + 'fe6fee71ff7586295347c4d06e1be872adcbe136119152c5a0983bad643e967b', + '978eb3223c978477c40987f745c07fda26ccbad2f468616faf92f0d71b81a156', # psmpi_shebang.patch +] + +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_shebang.patch', + # We don't have IME in HDFML so we skip this + # 'psmpi-5.5.0-1_ime.patch' +] + +# 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/deep_overlay/p/psmpi/psmpi-5.7.1-1-intel-compilers-2022.1.0.eb b/Overlays/deep_overlay/p/psmpi/psmpi-5.7.1-1-intel-compilers-2022.1.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..8ee4350c73a6f25dcf1dba3766d723402b35f9dd --- /dev/null +++ b/Overlays/deep_overlay/p/psmpi/psmpi-5.7.1-1-intel-compilers-2022.1.0.eb @@ -0,0 +1,45 @@ +name = 'psmpi' +version = '5.7.1-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://github.com/ParaStation/psmpi/archive/'] +checksums = [ + # psmpi-5.7.1-1.tar.gz + 'fe6fee71ff7586295347c4d06e1be872adcbe136119152c5a0983bad643e967b', + '978eb3223c978477c40987f745c07fda26ccbad2f468616faf92f0d71b81a156', # psmpi_shebang.patch +] + +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_shebang.patch', + # We don't have IME in HDFML so we skip this + # 'psmpi-5.5.0-1_ime.patch' +] + +# 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/deep_overlay/p/psmpi/psmpi-5.8.0-1-GCC-11.3.0-mt.eb b/Overlays/deep_overlay/p/psmpi/psmpi-5.8.0-1-GCC-11.3.0-mt.eb new file mode 100644 index 0000000000000000000000000000000000000000..8cfa9819f407f0d75182d8125937dd31f7d22c0a --- /dev/null +++ b/Overlays/deep_overlay/p/psmpi/psmpi-5.8.0-1-GCC-11.3.0-mt.eb @@ -0,0 +1,34 @@ +name = 'psmpi' +version = '5.8.0-1' +versionsuffix = '-mt' + +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) +] + +mpich_opts = '--enable-static --with-file-system=ufs+gpfs --enable-romio' + +threaded = True + +cuda = True + +moduleclass = 'mpi' diff --git a/Overlays/deep_overlay/p/psmpi/psmpi-5.8.0-1-GCC-11.3.0.eb b/Overlays/deep_overlay/p/psmpi/psmpi-5.8.0-1-GCC-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..22cb3dd4d5b32fffd89c52d995769937dd5525e7 --- /dev/null +++ b/Overlays/deep_overlay/p/psmpi/psmpi-5.8.0-1-GCC-11.3.0.eb @@ -0,0 +1,33 @@ +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) +] + +mpich_opts = '--enable-static --with-file-system=ufs+gpfs --enable-romio' + +threaded = False + +cuda = True + +moduleclass = 'mpi' diff --git a/Overlays/deep_overlay/p/psmpi/psmpi-5.8.0-1-NVHPC-23.1-mt.eb b/Overlays/deep_overlay/p/psmpi/psmpi-5.8.0-1-NVHPC-23.1-mt.eb new file mode 100644 index 0000000000000000000000000000000000000000..0fc1509ed86d101433ba55004b46fac25e06f24c --- /dev/null +++ b/Overlays/deep_overlay/p/psmpi/psmpi-5.8.0-1-NVHPC-23.1-mt.eb @@ -0,0 +1,34 @@ +name = 'psmpi' +version = '5.8.0-1' +versionsuffix = '-mt' + +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': '23.1'} + +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) +] + +mpich_opts = '--enable-static --with-file-system=ufs+gpfs --enable-romio' + +threaded = True + +cuda = True + +moduleclass = 'mpi' diff --git a/Overlays/deep_overlay/p/psmpi/psmpi-5.8.0-1-NVHPC-23.1.eb b/Overlays/deep_overlay/p/psmpi/psmpi-5.8.0-1-NVHPC-23.1.eb new file mode 100644 index 0000000000000000000000000000000000000000..0fa389de7f74df7f34e7db6e3ca07400c44332f8 --- /dev/null +++ b/Overlays/deep_overlay/p/psmpi/psmpi-5.8.0-1-NVHPC-23.1.eb @@ -0,0 +1,33 @@ +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': '23.1'} + +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) +] + +mpich_opts = '--enable-static --with-file-system=ufs+gpfs --enable-romio' + +threaded = False + +cuda = True + +moduleclass = 'mpi' diff --git a/Overlays/deep_overlay/p/psmpi/psmpi-5.8.0-1-intel-compilers-2022.1.0-mt.eb b/Overlays/deep_overlay/p/psmpi/psmpi-5.8.0-1-intel-compilers-2022.1.0-mt.eb new file mode 100644 index 0000000000000000000000000000000000000000..842e9f5382fd60f13e939d60e6604618171c9c1d --- /dev/null +++ b/Overlays/deep_overlay/p/psmpi/psmpi-5.8.0-1-intel-compilers-2022.1.0-mt.eb @@ -0,0 +1,34 @@ +name = 'psmpi' +version = '5.8.0-1' +versionsuffix = '-mt' + +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) +] + +mpich_opts = '--enable-static --with-file-system=ufs+gpfs --enable-romio' + +threaded = True + +cuda = True + +moduleclass = 'mpi' diff --git a/Overlays/deep_overlay/p/psmpi/psmpi-5.8.0-1-intel-compilers-2022.1.0.eb b/Overlays/deep_overlay/p/psmpi/psmpi-5.8.0-1-intel-compilers-2022.1.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..840f68f544f0268568fe7f48cdab0b98be7cad85 --- /dev/null +++ b/Overlays/deep_overlay/p/psmpi/psmpi-5.8.0-1-intel-compilers-2022.1.0.eb @@ -0,0 +1,33 @@ +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) +] + +mpich_opts = '--enable-static --with-file-system=ufs+gpfs --enable-romio' + +threaded = False + +cuda = True + +moduleclass = 'mpi' diff --git a/Overlays/deep_overlay/p/psmpi/psmpi-5.8.1-1-GCC-11.3.0-mt.eb b/Overlays/deep_overlay/p/psmpi/psmpi-5.8.1-1-GCC-11.3.0-mt.eb new file mode 100644 index 0000000000000000000000000000000000000000..d6061205647d46decad7ddce5350feb5bccbb54b --- /dev/null +++ b/Overlays/deep_overlay/p/psmpi/psmpi-5.8.1-1-GCC-11.3.0-mt.eb @@ -0,0 +1,34 @@ +name = 'psmpi' +version = '5.8.1-1' +versionsuffix = '-mt' + +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.1-1.tar.gz + '54dee42a2eb6ac26d43f5e0371ddc1e75225512365749b3d03856543b6a7366d', +] + +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) +] + +mpich_opts = '--enable-static --with-file-system=ufs+gpfs --enable-romio' + +threaded = True + +cuda = True + +moduleclass = 'mpi' diff --git a/Overlays/deep_overlay/p/psmpi/psmpi-5.8.1-1-GCC-11.3.0.eb b/Overlays/deep_overlay/p/psmpi/psmpi-5.8.1-1-GCC-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..ea4f7babdfc2c66a51e626833a5115b729cdb188 --- /dev/null +++ b/Overlays/deep_overlay/p/psmpi/psmpi-5.8.1-1-GCC-11.3.0.eb @@ -0,0 +1,33 @@ +name = 'psmpi' +version = '5.8.1-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.1-1.tar.gz + '54dee42a2eb6ac26d43f5e0371ddc1e75225512365749b3d03856543b6a7366d', +] + +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) +] + +mpich_opts = '--enable-static --with-file-system=ufs+gpfs --enable-romio' + +threaded = False + +cuda = True + +moduleclass = 'mpi' diff --git a/Overlays/deep_overlay/p/psmpi/psmpi-5.8.1-1-NVHPC-23.1-mt.eb b/Overlays/deep_overlay/p/psmpi/psmpi-5.8.1-1-NVHPC-23.1-mt.eb new file mode 100644 index 0000000000000000000000000000000000000000..86ead34e6fbcad43db1ad1bcf451387e2251f608 --- /dev/null +++ b/Overlays/deep_overlay/p/psmpi/psmpi-5.8.1-1-NVHPC-23.1-mt.eb @@ -0,0 +1,34 @@ +name = 'psmpi' +version = '5.8.1-1' +versionsuffix = '-mt' + +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': '23.1'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['https://gitlab.jsc.fz-juelich.de/ParTec/psmpi/uploads/762714c8eec01fe59239a52798a70e1c/'] +checksums = [ + # psmpi-5.8.1-1.tar.gz + '54dee42a2eb6ac26d43f5e0371ddc1e75225512365749b3d03856543b6a7366d', +] + +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) +] + +mpich_opts = '--enable-static --with-file-system=ufs+gpfs --enable-romio' + +threaded = True + +cuda = True + +moduleclass = 'mpi' diff --git a/Overlays/deep_overlay/p/psmpi/psmpi-5.8.1-1-NVHPC-23.1.eb b/Overlays/deep_overlay/p/psmpi/psmpi-5.8.1-1-NVHPC-23.1.eb new file mode 100644 index 0000000000000000000000000000000000000000..3eb8cb38b8b671de6627af51042915fa37fcf3c7 --- /dev/null +++ b/Overlays/deep_overlay/p/psmpi/psmpi-5.8.1-1-NVHPC-23.1.eb @@ -0,0 +1,33 @@ +name = 'psmpi' +version = '5.8.1-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': '23.1'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['https://gitlab.jsc.fz-juelich.de/ParTec/psmpi/uploads/762714c8eec01fe59239a52798a70e1c/'] +checksums = [ + # psmpi-5.8.1-1.tar.gz + '54dee42a2eb6ac26d43f5e0371ddc1e75225512365749b3d03856543b6a7366d', +] + +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) +] + +mpich_opts = '--enable-static --with-file-system=ufs+gpfs --enable-romio' + +threaded = False + +cuda = True + +moduleclass = 'mpi' diff --git a/Overlays/deep_overlay/p/psmpi/psmpi-5.8.1-1-intel-compilers-2022.1.0-mt.eb b/Overlays/deep_overlay/p/psmpi/psmpi-5.8.1-1-intel-compilers-2022.1.0-mt.eb new file mode 100644 index 0000000000000000000000000000000000000000..1dba7676bd6fa2a20ba50deeb0a30b06de3f8d16 --- /dev/null +++ b/Overlays/deep_overlay/p/psmpi/psmpi-5.8.1-1-intel-compilers-2022.1.0-mt.eb @@ -0,0 +1,34 @@ +name = 'psmpi' +version = '5.8.1-1' +versionsuffix = '-mt' + +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.1-1.tar.gz + '54dee42a2eb6ac26d43f5e0371ddc1e75225512365749b3d03856543b6a7366d', +] + +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) +] + +mpich_opts = '--enable-static --with-file-system=ufs+gpfs --enable-romio' + +threaded = True + +cuda = True + +moduleclass = 'mpi' diff --git a/Overlays/deep_overlay/p/psmpi/psmpi-5.8.1-1-intel-compilers-2022.1.0.eb b/Overlays/deep_overlay/p/psmpi/psmpi-5.8.1-1-intel-compilers-2022.1.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..9a5fce231f0f2a141f4f9f280ab19887863d3f99 --- /dev/null +++ b/Overlays/deep_overlay/p/psmpi/psmpi-5.8.1-1-intel-compilers-2022.1.0.eb @@ -0,0 +1,33 @@ +name = 'psmpi' +version = '5.8.1-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.1-1.tar.gz + '54dee42a2eb6ac26d43f5e0371ddc1e75225512365749b3d03856543b6a7366d', +] + +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) +] + +mpich_opts = '--enable-static --with-file-system=ufs+gpfs --enable-romio' + +threaded = False + +cuda = True + +moduleclass = 'mpi' diff --git a/Overlays/hdfml_overlay/n/nvidia-driver/nvidia-driver-default.eb b/Overlays/hdfml_overlay/n/nvidia-driver/nvidia-driver-default.eb index 6bce31f65d212b5ff775161523125f6dbf5c1c0e..2900da59e4083c0d7fe1a0d7fd1cae2fd1bd0bf2 100644 --- a/Overlays/hdfml_overlay/n/nvidia-driver/nvidia-driver-default.eb +++ b/Overlays/hdfml_overlay/n/nvidia-driver/nvidia-driver-default.eb @@ -1,6 +1,6 @@ name = 'nvidia-driver' version = 'default' -realversion = '515.86.01' +realversion = '525.105.17' homepage = 'https://developer.nvidia.com/cuda-toolkit' description = f""" @@ -15,7 +15,7 @@ toolchain = SYSTEM source_urls = ['http://us.download.nvidia.com/tesla/%s/' % realversion] sources = ['NVIDIA-Linux-x86_64-%s.run' % realversion] -checksums = ['141777e1ca2f11e97d8d33260213f1be327eb73922ae22f4ddab404bb2ef4664'] +checksums = ['c635a21a282c9b53485f19ebb64a0f4b536a968b94d4d97629e0bc547a58142a'] # To avoid conflicts between NVML and the kernel driver postinstallcmds = ['rm %(installdir)s/lib64/libnvidia-ml.so*'] diff --git a/Overlays/hdfml_overlay/o/OpenMPI/OpenMPI-4.1.4-NVHPC-22.11.eb b/Overlays/hdfml_overlay/o/OpenMPI/OpenMPI-4.1.4-NVHPC-23.1.eb similarity index 97% rename from Overlays/hdfml_overlay/o/OpenMPI/OpenMPI-4.1.4-NVHPC-22.11.eb rename to Overlays/hdfml_overlay/o/OpenMPI/OpenMPI-4.1.4-NVHPC-23.1.eb index 348634fadade0b5685c82e83dfa1f8748a0e0d3b..894b648ec0ea3c94c8f2ff461c97be37bedae4d8 100644 --- a/Overlays/hdfml_overlay/o/OpenMPI/OpenMPI-4.1.4-NVHPC-22.11.eb +++ b/Overlays/hdfml_overlay/o/OpenMPI/OpenMPI-4.1.4-NVHPC-23.1.eb @@ -4,7 +4,7 @@ version = '4.1.4' homepage = 'https://www.open-mpi.org/' description = """The Open MPI Project is an open source MPI-3 implementation.""" -toolchain = {'name': 'NVHPC', 'version': '22.11'} +toolchain = {'name': 'NVHPC', 'version': '23.1'} toolchainopts = {'pic': True} source_urls = [ diff --git a/Overlays/hdfml_overlay/p/psmpi/psmpi-5.7.0-1-GCC-11.3.0.eb b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.7.0-1-GCC-11.3.0.eb index 8f16abaa8fb8ef6d4ea0f0966c1b9b90bb3b44b1..e74b7633708d4591d8195905305d9b5b811de53b 100644 --- a/Overlays/hdfml_overlay/p/psmpi/psmpi-5.7.0-1-GCC-11.3.0.eb +++ b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.7.0-1-GCC-11.3.0.eb @@ -2,7 +2,7 @@ name = 'psmpi' version = '5.7.0-1' homepage = 'https://github.com/ParaStation/psmpi2' -description = """ParaStation MPI is an open source high-performance MPI 3.0 implementation, +description = """ParaStation MPI is an open source high-performance MPI 3.1 implementation, based on MPICH v3. It provides extra low level communication libraries and integration with various batch systems for tighter process control. """ @@ -15,6 +15,8 @@ checksums = [ # psmpi-5.7.0-1.tar.gz '0c1c8556afedfb08cd612f379ddb6327ef1bb0867d6f6fed3d610f3d8c790883', '978eb3223c978477c40987f745c07fda26ccbad2f468616faf92f0d71b81a156', # psmpi_shebang.patch + # psmpi-5.7.0-1_singleton-fix.patch + '5ab46de53f6025367f444e77cd3374fe36a0728cde38c72db55603ebc08b50a2', ] dependencies = [ @@ -28,7 +30,8 @@ dependencies = [ patches = [ 'psmpi_shebang.patch', # We don't have IME in HDFML so we skip this - # 'psmpi-5.5.0-1_ime.patch' + # 'psmpi-5.5.0-1_ime.patch', + 'psmpi-5.7.0-1_singleton-fix.patch' ] # We don't have IME in HDFML so we skip this diff --git a/Overlays/hdfml_overlay/p/psmpi/psmpi-5.7.0-1-NVHPC-23.1.eb b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.7.0-1-NVHPC-23.1.eb new file mode 100644 index 0000000000000000000000000000000000000000..9d30e1df616b07152b1518d05c2f4068b6db154c --- /dev/null +++ b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.7.0-1-NVHPC-23.1.eb @@ -0,0 +1,48 @@ +name = 'psmpi' +version = '5.7.0-1' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 3.1 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': '23.1'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['https://github.com/ParaStation/psmpi/archive/'] +checksums = [ + # psmpi-5.7.0-1.tar.gz + '0c1c8556afedfb08cd612f379ddb6327ef1bb0867d6f6fed3d610f3d8c790883', + '978eb3223c978477c40987f745c07fda26ccbad2f468616faf92f0d71b81a156', # psmpi_shebang.patch + # psmpi-5.7.0-1_singleton-fix.patch + '5ab46de53f6025367f444e77cd3374fe36a0728cde38c72db55603ebc08b50a2', +] + +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_shebang.patch', + # We don't have IME in HDFML so we skip this + # 'psmpi-5.5.0-1_ime.patch', + 'psmpi-5.7.0-1_singleton-fix.patch' +] + +# 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.7.0-1-intel-compilers-2022.1.0.eb b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.7.0-1-intel-compilers-2022.1.0.eb index cf308960ed923a6717e7e7ddbfae4bf0980de7b1..e998460844606905802d39c1808e157704b0f4dc 100644 --- a/Overlays/hdfml_overlay/p/psmpi/psmpi-5.7.0-1-intel-compilers-2022.1.0.eb +++ b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.7.0-1-intel-compilers-2022.1.0.eb @@ -2,7 +2,7 @@ name = 'psmpi' version = '5.7.0-1' homepage = 'https://github.com/ParaStation/psmpi2' -description = """ParaStation MPI is an open source high-performance MPI 3.0 implementation, +description = """ParaStation MPI is an open source high-performance MPI 3.1 implementation, based on MPICH v3. It provides extra low level communication libraries and integration with various batch systems for tighter process control. """ @@ -15,6 +15,8 @@ checksums = [ # psmpi-5.7.0-1.tar.gz '0c1c8556afedfb08cd612f379ddb6327ef1bb0867d6f6fed3d610f3d8c790883', '978eb3223c978477c40987f745c07fda26ccbad2f468616faf92f0d71b81a156', # psmpi_shebang.patch + # psmpi-5.7.0-1_singleton-fix.patch + '5ab46de53f6025367f444e77cd3374fe36a0728cde38c72db55603ebc08b50a2', ] dependencies = [ @@ -28,7 +30,8 @@ dependencies = [ patches = [ 'psmpi_shebang.patch', # We don't have IME in HDFML so we skip this - # 'psmpi-5.5.0-1_ime.patch' + # 'psmpi-5.5.0-1_ime.patch', + 'psmpi-5.7.0-1_singleton-fix.patch' ] # We don't have IME in HDFML so we skip this diff --git a/Overlays/hdfml_overlay/p/psmpi/psmpi-5.7.1-1-GCC-11.3.0.eb b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.7.1-1-GCC-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..63bce372abcbbde979f69c7a5356f206780d307b --- /dev/null +++ b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.7.1-1-GCC-11.3.0.eb @@ -0,0 +1,48 @@ +name = 'psmpi' +version = '5.7.1-1' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 3.1 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://github.com/ParaStation/psmpi/archive/'] +checksums = [ + # psmpi-5.7.1-1.tar.gz + 'fe6fee71ff7586295347c4d06e1be872adcbe136119152c5a0983bad643e967b', + '978eb3223c978477c40987f745c07fda26ccbad2f468616faf92f0d71b81a156', # psmpi_shebang.patch + # psmpi-5.7.0-1_singleton-fix.patch + '5ab46de53f6025367f444e77cd3374fe36a0728cde38c72db55603ebc08b50a2', +] + +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_shebang.patch', + # We don't have IME in HDFML so we skip this + # 'psmpi-5.5.0-1_ime.patch', + 'psmpi-5.7.0-1_singleton-fix.patch' +] + +# 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.7.1-1-NVHPC-23.1.eb b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.7.1-1-NVHPC-23.1.eb new file mode 100644 index 0000000000000000000000000000000000000000..cfd22989cb50fbf4ef55a1146813eb8ea29f5ed0 --- /dev/null +++ b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.7.1-1-NVHPC-23.1.eb @@ -0,0 +1,48 @@ +name = 'psmpi' +version = '5.7.1-1' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 3.1 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': '23.1'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['https://github.com/ParaStation/psmpi/archive/'] +checksums = [ + # psmpi-5.7.1-1.tar.gz + 'fe6fee71ff7586295347c4d06e1be872adcbe136119152c5a0983bad643e967b', + '978eb3223c978477c40987f745c07fda26ccbad2f468616faf92f0d71b81a156', # psmpi_shebang.patch + # psmpi-5.7.0-1_singleton-fix.patch + '5ab46de53f6025367f444e77cd3374fe36a0728cde38c72db55603ebc08b50a2', +] + +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_shebang.patch', + # We don't have IME in HDFML so we skip this + # 'psmpi-5.5.0-1_ime.patch', + 'psmpi-5.7.0-1_singleton-fix.patch' +] + +# 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.7.1-1-intel-compilers-2022.1.0.eb b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.7.1-1-intel-compilers-2022.1.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..d21dcf25e4856af5801ff60ea95a1a79d384fa58 --- /dev/null +++ b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.7.1-1-intel-compilers-2022.1.0.eb @@ -0,0 +1,48 @@ +name = 'psmpi' +version = '5.7.1-1' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 3.1 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://github.com/ParaStation/psmpi/archive/'] +checksums = [ + # psmpi-5.7.1-1.tar.gz + 'fe6fee71ff7586295347c4d06e1be872adcbe136119152c5a0983bad643e967b', + '978eb3223c978477c40987f745c07fda26ccbad2f468616faf92f0d71b81a156', # psmpi_shebang.patch + # psmpi-5.7.0-1_singleton-fix.patch + '5ab46de53f6025367f444e77cd3374fe36a0728cde38c72db55603ebc08b50a2', +] + +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_shebang.patch', + # We don't have IME in HDFML so we skip this + # 'psmpi-5.5.0-1_ime.patch', + 'psmpi-5.7.0-1_singleton-fix.patch' +] + +# 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-GCC-11.3.0-mt.eb b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.0-1-GCC-11.3.0-mt.eb new file mode 100644 index 0000000000000000000000000000000000000000..31fda169323f420a62b2292f4d472dda43986e27 --- /dev/null +++ b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.0-1-GCC-11.3.0-mt.eb @@ -0,0 +1,39 @@ +name = 'psmpi' +version = '5.8.0-1' +versionsuffix = '-mt' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 4.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 = True + +cuda = True + +moduleclass = 'mpi' 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..964ea62932cecdf7befbaa222c1947fa319cf362 --- /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 4.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-23.1-mt.eb b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.0-1-NVHPC-23.1-mt.eb new file mode 100644 index 0000000000000000000000000000000000000000..1c25fc6b62a1178f5f4563e72fd3d422d598cb58 --- /dev/null +++ b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.0-1-NVHPC-23.1-mt.eb @@ -0,0 +1,39 @@ +name = 'psmpi' +version = '5.8.0-1' +versionsuffix = '-mt' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 4.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': '23.1'} + +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 = True + +cuda = True + +moduleclass = 'mpi' diff --git a/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.0-1-NVHPC-23.1.eb b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.0-1-NVHPC-23.1.eb new file mode 100644 index 0000000000000000000000000000000000000000..62eb40e8270c36a1e7a11677a09bcf14261a9fa8 --- /dev/null +++ b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.0-1-NVHPC-23.1.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 4.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': '23.1'} + +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-mt.eb b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.0-1-intel-compilers-2022.1.0-mt.eb new file mode 100644 index 0000000000000000000000000000000000000000..06e6cac1b4223e5d8944f6581aa87941fa9aca10 --- /dev/null +++ b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.0-1-intel-compilers-2022.1.0-mt.eb @@ -0,0 +1,39 @@ +name = 'psmpi' +version = '5.8.0-1' +versionsuffix = '-mt' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 4.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 = True + +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..55412bb5e6e696685a8c60f474225396121cf083 --- /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 4.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/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.1-1-GCC-11.3.0-mt.eb b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.1-1-GCC-11.3.0-mt.eb new file mode 100644 index 0000000000000000000000000000000000000000..f3bb6e99757bd6168f96602306a9f034e30b9314 --- /dev/null +++ b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.1-1-GCC-11.3.0-mt.eb @@ -0,0 +1,39 @@ +name = 'psmpi' +version = '5.8.1-1' +versionsuffix = '-mt' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 4.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.1-1.tar.gz + '54dee42a2eb6ac26d43f5e0371ddc1e75225512365749b3d03856543b6a7366d', +] + +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 = True + +cuda = True + +moduleclass = 'mpi' diff --git a/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.1-1-GCC-11.3.0.eb b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.1-1-GCC-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..0653692a96665a15d7eac386b0d024da04177853 --- /dev/null +++ b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.1-1-GCC-11.3.0.eb @@ -0,0 +1,38 @@ +name = 'psmpi' +version = '5.8.1-1' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 4.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.1-1.tar.gz + '54dee42a2eb6ac26d43f5e0371ddc1e75225512365749b3d03856543b6a7366d', +] + +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.1-1-NVHPC-23.1-mt.eb b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.1-1-NVHPC-23.1-mt.eb new file mode 100644 index 0000000000000000000000000000000000000000..11aeb75054e07d6113e2c525f304e70573d51737 --- /dev/null +++ b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.1-1-NVHPC-23.1-mt.eb @@ -0,0 +1,39 @@ +name = 'psmpi' +version = '5.8.1-1' +versionsuffix = '-mt' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 4.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': '23.1'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['https://gitlab.jsc.fz-juelich.de/ParTec/psmpi/uploads/762714c8eec01fe59239a52798a70e1c/'] +checksums = [ + # psmpi-5.8.1-1.tar.gz + '54dee42a2eb6ac26d43f5e0371ddc1e75225512365749b3d03856543b6a7366d', +] + +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 = True + +cuda = True + +moduleclass = 'mpi' diff --git a/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.1-1-NVHPC-23.1.eb b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.1-1-NVHPC-23.1.eb new file mode 100644 index 0000000000000000000000000000000000000000..e82080e74606c0824f32a35387676d50023e2e50 --- /dev/null +++ b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.1-1-NVHPC-23.1.eb @@ -0,0 +1,38 @@ +name = 'psmpi' +version = '5.8.1-1' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 4.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': '23.1'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['https://gitlab.jsc.fz-juelich.de/ParTec/psmpi/uploads/762714c8eec01fe59239a52798a70e1c/'] +checksums = [ + # psmpi-5.8.1-1.tar.gz + '54dee42a2eb6ac26d43f5e0371ddc1e75225512365749b3d03856543b6a7366d', +] + +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.1-1-intel-compilers-2022.1.0-mt.eb b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.1-1-intel-compilers-2022.1.0-mt.eb new file mode 100644 index 0000000000000000000000000000000000000000..9a3c8beaef5a698e917ec6922af4af5f9be830fc --- /dev/null +++ b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.1-1-intel-compilers-2022.1.0-mt.eb @@ -0,0 +1,39 @@ +name = 'psmpi' +version = '5.8.1-1' +versionsuffix = '-mt' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 4.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.1-1.tar.gz + '54dee42a2eb6ac26d43f5e0371ddc1e75225512365749b3d03856543b6a7366d', +] + +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 = True + +cuda = True + +moduleclass = 'mpi' diff --git a/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.1-1-intel-compilers-2022.1.0.eb b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.1-1-intel-compilers-2022.1.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..8b1e3ff65e94065f26d5a6d9a3c3660b20a8ac00 --- /dev/null +++ b/Overlays/hdfml_overlay/p/psmpi/psmpi-5.8.1-1-intel-compilers-2022.1.0.eb @@ -0,0 +1,38 @@ +name = 'psmpi' +version = '5.8.1-1' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 4.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.1-1.tar.gz + '54dee42a2eb6ac26d43f5e0371ddc1e75225512365749b3d03856543b6a7366d', +] + +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/jureca_spr_overlay/c/CUDA/CUDA-12.0.eb b/Overlays/jureca_spr_overlay/c/CUDA/CUDA-12.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..25b9e239029ce37de14133c7a9747a625d2fa503 --- /dev/null +++ b/Overlays/jureca_spr_overlay/c/CUDA/CUDA-12.0.eb @@ -0,0 +1,26 @@ +name = 'CUDA' +version = '12.0' +local_nv_version = '525.60.13' + +homepage = 'https://developer.nvidia.com/cuda-toolkit' +description = """CUDA (formerly Compute Unified Device Architecture) is a parallel + computing platform and programming model created by NVIDIA and implemented by the + graphics processing units (GPUs) that they produce. CUDA gives developers access + to the virtual instruction set and memory of the parallel computational elements in CUDA GPUs.""" + +toolchain = SYSTEM + +source_urls = ['https://developer.download.nvidia.com/compute/cuda/%(version)s.0/local_installers/'] +sources = ['cuda_%%(version)s.0_%s_linux%%(cudaarch)s.run' % local_nv_version] +checksums = [{ + 'cuda_%%(version)s.0_%s_linux.run' % local_nv_version: + '905e9b9516900839fb76064719db752439f38b8cb730b49335d8bd53ddfad392', + 'cuda_%%(version)s.0_%s_linux_ppc64le.run' % local_nv_version: + '117fe045c71668e45d41c6119b6f27875370c78e33fc56795b6fe014c796ec60', + 'cuda_%%(version)s.0_%s_linux_sbsa.run' % local_nv_version: + 'cd13e9c65d4c8f895a968706f46064d536be09f9706bce081cc864b7e4fa4544' +}] + +dependencies = [('nvidia-driver', 'default', '', SYSTEM)] + +moduleclass = 'system' diff --git a/Overlays/jureca_spr_overlay/i/intel-compilers/intel-compilers-2023.1.0.eb b/Overlays/jureca_spr_overlay/i/intel-compilers/intel-compilers-2023.1.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..6c6a39ee30aca282f79546f01aa8e51e6cc4bbbb --- /dev/null +++ b/Overlays/jureca_spr_overlay/i/intel-compilers/intel-compilers-2023.1.0.eb @@ -0,0 +1,37 @@ +name = 'intel-compilers' +version = '2023.1.0' + +homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/hpc-toolkit.html' +description = "Intel C, C++ & Fortran compilers (classic and oneAPI)" + +toolchain = SYSTEM + +# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html +sources = [ + { + 'source_urls': [ + 'https://registrationcenter-download.intel.com/akdlm/IRC_NAS/89283df8-c667-47b0-b7e1-c4573e37bd3e/', + ], + 'filename': 'l_dpcpp-cpp-compiler_p_%(version)s.46347_offline.sh', + }, + { + 'source_urls': [ + 'https://registrationcenter-download.intel.com/akdlm/IRC_NAS/150e0430-63df-48a0-8469-ecebff0a1858/', + ], + 'filename': 'l_fortran-compiler_p_%(version)s.46348_offline.sh', + }, +] +checksums = [ + {'l_dpcpp-cpp-compiler_p_2023.1.0.46347_offline.sh': + '3ac1c1179501a2646cbb052b05426554194573b4f8e2344d7699eed03fbcfa1d'}, + {'l_fortran-compiler_p_2023.1.0.46348_offline.sh': + '7639af4b6c928e9e3ba92297a054f78a55f4f4d0db9db0d144cc6653004e4f24'}, +] + +local_gccver = '11.3.0' +dependencies = [ + ('GCCcore', local_gccver), + ('binutils', '2.38', '', ('GCCcore', local_gccver)), +] + +moduleclass = 'compiler' diff --git a/Overlays/jureca_spr_overlay/n/NCCL/NCCL-default-GCCcore-11.3.0-CUDA-12.0.eb b/Overlays/jureca_spr_overlay/n/NCCL/NCCL-default-GCCcore-11.3.0-CUDA-12.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..788c447550869a12320301c5977c34034c3c5461 --- /dev/null +++ b/Overlays/jureca_spr_overlay/n/NCCL/NCCL-default-GCCcore-11.3.0-CUDA-12.0.eb @@ -0,0 +1,35 @@ +name = 'NCCL' +version = 'default' +local_realversion = '2.15.1-1' +versionsuffix = '-CUDA-%(cudashortver)s' + +homepage = 'https://developer.nvidia.com/nccl' +description = f""" +The NVIDIA Collective Communications Library (NCCL) implements multi-GPU and multi-node collective +communication primitives that are performance optimized for NVIDIA GPUs. + +The real version of this package is {local_realversion} +""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +github_account = 'NVIDIA' +sources = [{ + 'filename': f'%(name)s-{local_realversion}.tar.gz', + 'git_config': { + 'url': 'https://github.com/NVIDIA/', + 'repo_name': 'nccl', + 'tag': f'v{local_realversion}', + 'recursive': True, + }, +}] +checksums = ['3623d28598ec7283358d571ffcde1b5660c2b6050f0bd6731fe03fe8bad2a337'] + +builddependencies = [('binutils', '2.38')] + +dependencies = [ + ('CUDA', '12.0', '', SYSTEM), + ('UCX', 'default'), +] + +moduleclass = 'lib' diff --git a/Overlays/jureca_spr_overlay/n/NVSHMEM/NVSHMEM-2.8.0-gompi-2022a-CUDA-12.0.eb b/Overlays/jureca_spr_overlay/n/NVSHMEM/NVSHMEM-2.8.0-gompi-2022a-CUDA-12.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..0d7ea683290a3e2b4b33714a5fb72b6f3079df0c --- /dev/null +++ b/Overlays/jureca_spr_overlay/n/NVSHMEM/NVSHMEM-2.8.0-gompi-2022a-CUDA-12.0.eb @@ -0,0 +1,71 @@ +easyblock = 'ConfigureMake' + +name = 'NVSHMEM' +version = '2.8.0' +versionsuffix = '-CUDA-%(cudaver)s' + +local_cuda_version = '12.0' + +homepage = 'https://developer.nvidia.com/nvshmem' +description = """NVSHMEM is a parallel programming interface based on OpenSHMEM that provides +efficient and scalable communication for NVIDIA GPU clusters. NVSHMEM creates a +global address space for data that spans the memory of multiple GPUs and can be +accessed with fine-grained GPU-initiated operations, CPU-initiated operations, +and operations on CUDA streams. +""" + +toolchain = {'name': 'gompi', 'version': '2022a'} + +download_instructions = """The sources of NVSHMEM can be downloaded at NVIDIA's webpage when you have signed up for +their (free) developer program: +https://developer.nvidia.com/nvshmem-downloads""" + +sources = ['%(namelower)s_src_%(version)s-3.txz'] +checksums = ['7d4ef226630a94b587d18e02c27decc8b41d6f4ee52a26e25644b23cd18da81f'] + +builddependencies = [ + ('Autotools', '20220317'), + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('CUDA', local_cuda_version, '', SYSTEM), + ('NCCL', 'default', f'-CUDA-{local_cuda_version}'), +] + +skipsteps = ['configure'] + +prebuildopts = 'export %s &&' % ' '.join([ + 'NVSHMEM_USE_GDRCOPY=1', + 'GDRCOPY_HOME=${EBROOTGDRCOPY}', + + 'MPI_HOME=${EBROOTOPENMPI}', + 'NVSHMEM_MPI_SUPPORT=1', + 'NVSHMEMTEST_USE_MPI_LAUNCHER=1', + + 'NCCL_HOME=${EBROOTNCCL}', + 'NVSHMEM_USE_NCCL=1', + + 'NVSHMEM_BUILDDIR=%(builddir)s', + 'NVSHMEM_EXAMPLES_BUILDDIR=${NVSHMEM_BUILDDIR}/examples/obj', + 'NVSHMEM_OTHERTEST_BUILDDIR=${NVSHMEM_BUILDDIR}/othertest/obj', + 'NVSHMEM_TEST_BUILDDIR=${NVSHMEM_BUILDDIR}/test/obj', + 'NVSHMEM_PERFTEST_BUILDDIR=${NVSHMEM_BUILDDIR}/perftest/obj', + + 'NVSHMEM_PREFIX=%(installdir)s', + 'NVSHMEM_EXAMPLES_INSTALL=${NVSHMEM_PREFIX}/examples', + 'NVSHMEM_OTHERTEST_INSTALL=${NVSHMEM_PREFIX}/othertest', + 'NVSHMEM_PERFTEST_INSTALL=${NVSHMEM_PREFIX}/perftest', + 'NVSHMEM_TEST_INSTALL=${NVSHMEM_PREFIX}/test', +]) + +preinstallopts = prebuildopts + +sanity_check_paths = { + 'files': ['lib/libnvshmem.a', 'lib/nvshmem_bootstrap_mpi.%s' % SHLIB_EXT], + 'dirs': ['include'] +} + +modextravars = {'NVSHMEM_HOME': '%(installdir)s'} + +moduleclass = 'devel' diff --git a/Overlays/jureca_spr_overlay/n/nvidia-driver/nvidia-driver-default.eb b/Overlays/jureca_spr_overlay/n/nvidia-driver/nvidia-driver-default.eb new file mode 100644 index 0000000000000000000000000000000000000000..2900da59e4083c0d7fe1a0d7fd1cae2fd1bd0bf2 --- /dev/null +++ b/Overlays/jureca_spr_overlay/n/nvidia-driver/nvidia-driver-default.eb @@ -0,0 +1,27 @@ +name = 'nvidia-driver' +version = 'default' +realversion = '525.105.17' + +homepage = 'https://developer.nvidia.com/cuda-toolkit' +description = f""" +This is a set of libraries normally installed by the NVIDIA driver installer. + +The real version of this package is {realversion}. +""" + +site_contacts = 'sc@fz-juelich.de' + +toolchain = SYSTEM + +source_urls = ['http://us.download.nvidia.com/tesla/%s/' % realversion] +sources = ['NVIDIA-Linux-x86_64-%s.run' % realversion] +checksums = ['c635a21a282c9b53485f19ebb64a0f4b536a968b94d4d97629e0bc547a58142a'] + +# To avoid conflicts between NVML and the kernel driver +postinstallcmds = ['rm %(installdir)s/lib64/libnvidia-ml.so*'] + +modluafooter = ''' +add_property("arch","gpu") +''' + +moduleclass = 'system' diff --git a/Overlays/jureca_spr_overlay/o/OpenMPI/OpenMPI-4.1.1_opal-datatype-cuda-performance.patch b/Overlays/jureca_spr_overlay/o/OpenMPI/OpenMPI-4.1.1_opal-datatype-cuda-performance.patch new file mode 100644 index 0000000000000000000000000000000000000000..8c1a1f8ec353b5e35b8ee3912b4ecb0373de0c94 --- /dev/null +++ b/Overlays/jureca_spr_overlay/o/OpenMPI/OpenMPI-4.1.1_opal-datatype-cuda-performance.patch @@ -0,0 +1,456 @@ +If Open MPI is built with support for CUDA there's a small +(up to 10%) performance penalty for small messages due to overhead +in the datatype memory copy functionality. + +This eliminates most of this overhead as follows: +1. Seperate compilation of CUDA code paths in pack/unpack routines + instead of runtime checks in inner loops, similar to the existing + checksum functionality. +2. Expose opal_cuda_enabled variable so it can be checked directly + in opal_datatype_copy_content_same_ddt() instead of calling a + function. +3. Eliminate cbmemcpy function pointer as it always points to + opal_cuda_memcpy(), and a direct call is cheaper. + +Signed off by Bart Oldeman <bart.oldeman@calculquebec.ca> + +diff --git a/opal/datatype/Makefile.am b/opal/datatype/Makefile.am +index daaaa8e4b0..ef2da1cd81 100644 +--- a/opal/datatype/Makefile.am ++++ b/opal/datatype/Makefile.am +@@ -44,6 +44,11 @@ noinst_LTLIBRARIES = \ + # these sources will be compiled with the special -D + libdatatype_reliable_la_SOURCES = opal_datatype_pack.c opal_datatype_unpack.c + libdatatype_reliable_la_CFLAGS = -DCHECKSUM $(AM_CFLAGS) ++if OPAL_cuda_support ++libdatatype_gpu_la_SOURCES = opal_datatype_pack.c opal_datatype_unpack.c ++libdatatype_gpu_la_CFLAGS = -DOPAL_DATATYPE_PACK_UNPACK_GPU $(AM_CFLAGS) ++noinst_LTLIBRARIES += libdatatype_gpu.la ++endif + + # these sources will be compiled with the normal CFLAGS only + libdatatype_la_SOURCES = \ +@@ -69,6 +74,9 @@ libdatatype_la_SOURCES = \ + opal_datatype_unpack.c + + libdatatype_la_LIBADD = libdatatype_reliable.la ++if OPAL_cuda_support ++libdatatype_la_LIBADD += libdatatype_gpu.la ++endif + + # Conditionally install the header files + if WANT_INSTALL_HEADERS +diff --git a/opal/datatype/opal_convertor.c b/opal/datatype/opal_convertor.c +index 3931d99d17..33aebe2612 100644 +--- a/opal/datatype/opal_convertor.c ++++ b/opal/datatype/opal_convertor.c +@@ -40,8 +40,6 @@ + #include "opal/datatype/opal_convertor_internal.h" + #if OPAL_CUDA_SUPPORT + #include "opal/datatype/opal_datatype_cuda.h" +-#define MEMCPY_CUDA( DST, SRC, BLENGTH, CONVERTOR ) \ +- CONVERTOR->cbmemcpy( (DST), (SRC), (BLENGTH), (CONVERTOR) ) + #endif + + static void opal_convertor_construct( opal_convertor_t* convertor ) +@@ -51,9 +49,6 @@ static void opal_convertor_construct( opal_convertor_t* convertor ) + convertor->partial_length = 0; + convertor->remoteArch = opal_local_arch; + convertor->flags = OPAL_DATATYPE_FLAG_NO_GAPS | CONVERTOR_COMPLETED; +-#if OPAL_CUDA_SUPPORT +- convertor->cbmemcpy = &opal_cuda_memcpy; +-#endif + } + + +@@ -241,11 +236,7 @@ int32_t opal_convertor_pack( opal_convertor_t* pConv, + if( OPAL_LIKELY(NULL == iov[i].iov_base) ) + iov[i].iov_base = (IOVBASE_TYPE *) base_pointer; + else +-#if OPAL_CUDA_SUPPORT +- MEMCPY_CUDA( iov[i].iov_base, base_pointer, iov[i].iov_len, pConv ); +-#else + MEMCPY( iov[i].iov_base, base_pointer, iov[i].iov_len ); +-#endif + pending_length -= iov[i].iov_len; + base_pointer += iov[i].iov_len; + } +@@ -258,11 +249,7 @@ complete_contiguous_data_pack: + if( OPAL_LIKELY(NULL == iov[i].iov_base) ) + iov[i].iov_base = (IOVBASE_TYPE *) base_pointer; + else +-#if OPAL_CUDA_SUPPORT +- MEMCPY_CUDA( iov[i].iov_base, base_pointer, iov[i].iov_len, pConv ); +-#else + MEMCPY( iov[i].iov_base, base_pointer, iov[i].iov_len ); +-#endif + pConv->bConverted = pConv->local_size; + *out_size = i + 1; + pConv->flags |= CONVERTOR_COMPLETED; +@@ -296,11 +283,7 @@ int32_t opal_convertor_unpack( opal_convertor_t* pConv, + if( iov[i].iov_len >= pending_length ) { + goto complete_contiguous_data_unpack; + } +-#if OPAL_CUDA_SUPPORT +- MEMCPY_CUDA( base_pointer, iov[i].iov_base, iov[i].iov_len, pConv ); +-#else + MEMCPY( base_pointer, iov[i].iov_base, iov[i].iov_len ); +-#endif + pending_length -= iov[i].iov_len; + base_pointer += iov[i].iov_len; + } +@@ -310,11 +293,7 @@ int32_t opal_convertor_unpack( opal_convertor_t* pConv, + + complete_contiguous_data_unpack: + iov[i].iov_len = pending_length; +-#if OPAL_CUDA_SUPPORT +- MEMCPY_CUDA( base_pointer, iov[i].iov_base, iov[i].iov_len, pConv ); +-#else + MEMCPY( base_pointer, iov[i].iov_base, iov[i].iov_len ); +-#endif + pConv->bConverted = pConv->local_size; + *out_size = i + 1; + pConv->flags |= CONVERTOR_COMPLETED; +@@ -530,7 +509,7 @@ size_t opal_convertor_compute_remote_size( opal_convertor_t* pConvertor ) + \ + convertor->remote_size = convertor->local_size; \ + if( OPAL_LIKELY(convertor->remoteArch == opal_local_arch) ) { \ +- if( !(convertor->flags & CONVERTOR_WITH_CHECKSUM) && \ ++ if( !(convertor->flags & (CONVERTOR_WITH_CHECKSUM | CONVERTOR_CUDA)) && \ + ((convertor->flags & OPAL_DATATYPE_FLAG_NO_GAPS) || \ + ((convertor->flags & OPAL_DATATYPE_FLAG_CONTIGUOUS) && (1 == count))) ) { \ + return OPAL_SUCCESS; \ +@@ -541,8 +520,8 @@ size_t opal_convertor_compute_remote_size( opal_convertor_t* pConvertor ) + opal_convertor_compute_remote_size( convertor ); \ + assert( NULL != convertor->use_desc->desc ); \ + /* For predefined datatypes (contiguous) do nothing more */ \ +- /* if checksum is enabled then always continue */ \ +- if( ((convertor->flags & (CONVERTOR_WITH_CHECKSUM | OPAL_DATATYPE_FLAG_NO_GAPS)) \ ++ /* if checksum or cuda is enabled then always continue */ \ ++ if( ((convertor->flags & (CONVERTOR_WITH_CHECKSUM | CONVERTOR_CUDA | OPAL_DATATYPE_FLAG_NO_GAPS)) \ + == OPAL_DATATYPE_FLAG_NO_GAPS) && \ + ((convertor->flags & (CONVERTOR_SEND | CONVERTOR_HOMOGENEOUS)) == \ + (CONVERTOR_SEND | CONVERTOR_HOMOGENEOUS)) ) { \ +@@ -592,7 +571,19 @@ int32_t opal_convertor_prepare_for_recv( opal_convertor_t* convertor, + } + } + } else +-#endif /* defined(CHECKSUM) */ ++#elif OPAL_CUDA_SUPPORT ++ if (OPAL_UNLIKELY(convertor->flags & CONVERTOR_CUDA)) { ++ if (OPAL_UNLIKELY(!(convertor->flags & CONVERTOR_HOMOGENEOUS))) { ++ convertor->fAdvance = opal_unpack_general_gpu; ++ } else { ++ if (convertor->pDesc->flags & OPAL_DATATYPE_FLAG_CONTIGUOUS) { ++ convertor->fAdvance = opal_unpack_homogeneous_contig_gpu; ++ } else { ++ convertor->fAdvance = opal_generic_simple_unpack_gpu; ++ } ++ } ++ } else ++#endif /* defined(CHECKSUM) || OPAL_CUDA_SUPPORT */ + if( OPAL_UNLIKELY(!(convertor->flags & CONVERTOR_HOMOGENEOUS)) ) { + convertor->fAdvance = opal_unpack_general; + } else { +@@ -636,7 +627,25 @@ int32_t opal_convertor_prepare_for_send( opal_convertor_t* convertor, + } + } + } else +-#endif /* defined(CHECKSUM) */ ++#elif OPAL_CUDA_SUPPORT ++ if (OPAL_UNLIKELY(convertor->flags & CONVERTOR_CUDA)) { ++ if (CONVERTOR_SEND_CONVERSION ++ == (convertor->flags & (CONVERTOR_SEND_CONVERSION | CONVERTOR_HOMOGENEOUS))) { ++ convertor->fAdvance = opal_pack_general_gpu; ++ } else { ++ if (datatype->flags & OPAL_DATATYPE_FLAG_CONTIGUOUS) { ++ if (((datatype->ub - datatype->lb) == (ptrdiff_t) datatype->size) ++ || (1 >= convertor->count)) { ++ convertor->fAdvance = opal_pack_homogeneous_contig_gpu; ++ } else { ++ convertor->fAdvance = opal_pack_homogeneous_contig_with_gaps_gpu; ++ } ++ } else { ++ convertor->fAdvance = opal_generic_simple_pack_gpu; ++ } ++ } ++ } else ++#endif /* defined(CHECKSUM) || OPAL_CUDA_SUPPORT */ + if( CONVERTOR_SEND_CONVERSION == (convertor->flags & (CONVERTOR_SEND_CONVERSION|CONVERTOR_HOMOGENEOUS)) ) { + convertor->fAdvance = opal_pack_general; + } else { +@@ -694,9 +703,6 @@ int opal_convertor_clone( const opal_convertor_t* source, + destination->bConverted = source->bConverted; + destination->stack_pos = source->stack_pos; + } +-#if OPAL_CUDA_SUPPORT +- destination->cbmemcpy = source->cbmemcpy; +-#endif + return OPAL_SUCCESS; + } + +diff --git a/opal/datatype/opal_convertor.h b/opal/datatype/opal_convertor.h +index b24d94c37b..53b6f0d526 100644 +--- a/opal/datatype/opal_convertor.h ++++ b/opal/datatype/opal_convertor.h +@@ -118,7 +118,6 @@ struct opal_convertor_t { + dt_stack_t static_stack[DT_STATIC_STACK_SIZE]; /**< local stack for small datatypes */ + + #if OPAL_CUDA_SUPPORT +- memcpy_fct_t cbmemcpy; /**< memcpy or cuMemcpy */ + void * stream; /**< CUstream for async copy */ + #endif + }; +diff --git a/opal/datatype/opal_datatype_copy.c b/opal/datatype/opal_datatype_copy.c +index c70bdd24df..d7c10af3dc 100644 +--- a/opal/datatype/opal_datatype_copy.c ++++ b/opal/datatype/opal_datatype_copy.c +@@ -86,14 +86,6 @@ static size_t opal_datatype_memop_block_size = 128 * 1024; + #define MEM_OP opal_cuda_memmove + #include "opal_datatype_copy.h" + +-#define SET_CUDA_COPY_FCT(cuda_device_bufs, fct, copy_function) \ +- do { \ +- if (true == cuda_device_bufs) { \ +- fct = copy_function; \ +- } \ +- } while(0) +-#else +-#define SET_CUDA_COPY_FCT(cuda_device_bufs, fct, copy_function) + #endif + + int32_t opal_datatype_copy_content_same_ddt( const opal_datatype_t* datatype, int32_t count, +@@ -102,10 +94,6 @@ int32_t opal_datatype_copy_content_same_ddt( const opal_datatype_t* datatype, in + ptrdiff_t extent; + int32_t (*fct)( const opal_datatype_t*, int32_t, char*, char*); + +-#if OPAL_CUDA_SUPPORT +- bool cuda_device_bufs = opal_cuda_check_bufs(destination_base, source_base); +-#endif +- + DO_DEBUG( opal_output( 0, "opal_datatype_copy_content_same_ddt( %p, %d, dst %p, src %p )\n", + (void*)datatype, count, (void*)destination_base, (void*)source_base ); ); + +@@ -122,20 +110,25 @@ int32_t opal_datatype_copy_content_same_ddt( const opal_datatype_t* datatype, in + extent = (datatype->true_ub - datatype->true_lb) + (count - 1) * (datatype->ub - datatype->lb); + + fct = non_overlap_copy_content_same_ddt; +- SET_CUDA_COPY_FCT(cuda_device_bufs, fct, non_overlap_cuda_copy_content_same_ddt); + if( destination_base < source_base ) { + if( (destination_base + extent) > source_base ) { + /* memmove */ + fct = overlap_copy_content_same_ddt; +- SET_CUDA_COPY_FCT(cuda_device_bufs, fct, overlap_cuda_copy_content_same_ddt); + } + } else { + if( (source_base + extent) > destination_base ) { + /* memmove */ + fct = overlap_copy_content_same_ddt; +- SET_CUDA_COPY_FCT(cuda_device_bufs, fct, overlap_cuda_copy_content_same_ddt); + } + } ++ ++#if OPAL_CUDA_SUPPORT ++ if (OPAL_UNLIKELY(opal_cuda_enabled) && opal_cuda_check_bufs(destination_base, source_base)) { ++ fct = (fct == non_overlap_copy_content_same_ddt ? ++ non_overlap_cuda_copy_content_same_ddt : overlap_cuda_copy_content_same_ddt); ++ } ++#endif ++ + return fct( datatype, count, destination_base, source_base ); + } + +diff --git a/opal/datatype/opal_datatype_cuda.c b/opal/datatype/opal_datatype_cuda.c +index 7869f17e90..f3b3cef8da 100644 +--- a/opal/datatype/opal_datatype_cuda.c ++++ b/opal/datatype/opal_datatype_cuda.c +@@ -20,7 +20,7 @@ + + static bool initialized = false; + int opal_cuda_verbose = 0; +-static int opal_cuda_enabled = 0; /* Starts out disabled */ ++int opal_cuda_enabled = 1; /* Starts out enabled */ + static int opal_cuda_output = 0; + static void opal_cuda_support_init(void); + static int (*common_cuda_initialization_function)(opal_common_cuda_function_table_t *) = NULL; +@@ -48,10 +48,6 @@ void mca_cuda_convertor_init(opal_convertor_t* convertor, const void *pUserBuf) + opal_cuda_support_init(); + } + +- /* This is needed to handle case where convertor is not fully initialized +- * like when trying to do a sendi with convertor on the statck */ +- convertor->cbmemcpy = (memcpy_fct_t)&opal_cuda_memcpy; +- + /* If not enabled, then nothing else to do */ + if (!opal_cuda_enabled) { + return; +@@ -192,6 +188,7 @@ static void opal_cuda_support_init(void) + + /* Callback into the common cuda initialization routine. This is only + * set if some work had been done already in the common cuda code.*/ ++ opal_cuda_enabled = 0; + if (NULL != common_cuda_initialization_function) { + if (0 == common_cuda_initialization_function(&ftable)) { + opal_cuda_enabled = 1; +diff --git a/opal/datatype/opal_datatype_cuda.h b/opal/datatype/opal_datatype_cuda.h +index 2789320520..d512e24550 100644 +--- a/opal/datatype/opal_datatype_cuda.h ++++ b/opal/datatype/opal_datatype_cuda.h +@@ -30,4 +30,6 @@ void* opal_cuda_memmove(void * dest, void * src, size_t size); + void opal_cuda_add_initialization_function(int (*fptr)(opal_common_cuda_function_table_t *)); + void opal_cuda_set_copy_function_async(opal_convertor_t* convertor, void *stream); + ++extern int opal_cuda_enabled; ++ + #endif +diff --git a/opal/datatype/opal_datatype_pack.c b/opal/datatype/opal_datatype_pack.c +index b4e03a9bea..f42e292e0b 100644 +--- a/opal/datatype/opal_datatype_pack.c ++++ b/opal/datatype/opal_datatype_pack.c +@@ -45,6 +45,11 @@ + #define opal_pack_homogeneous_contig_with_gaps_function opal_pack_homogeneous_contig_with_gaps_checksum + #define opal_generic_simple_pack_function opal_generic_simple_pack_checksum + #define opal_pack_general_function opal_pack_general_checksum ++#elif defined(OPAL_DATATYPE_PACK_UNPACK_GPU) ++#define opal_pack_homogeneous_contig_function opal_pack_homogeneous_contig_gpu ++#define opal_pack_homogeneous_contig_with_gaps_function opal_pack_homogeneous_contig_with_gaps_gpu ++#define opal_generic_simple_pack_function opal_generic_simple_pack_gpu ++#define opal_pack_general_function opal_pack_general_gpu + #else + #define opal_pack_homogeneous_contig_function opal_pack_homogeneous_contig + #define opal_pack_homogeneous_contig_with_gaps_function opal_pack_homogeneous_contig_with_gaps +diff --git a/opal/datatype/opal_datatype_pack.h b/opal/datatype/opal_datatype_pack.h +index 2a2e79180d..7fbf0c88e2 100644 +--- a/opal/datatype/opal_datatype_pack.h ++++ b/opal/datatype/opal_datatype_pack.h +@@ -19,11 +19,12 @@ + + #include "opal_config.h" + +-#if !defined(CHECKSUM) && OPAL_CUDA_SUPPORT ++#if defined(OPAL_DATATYPE_PACK_UNPACK_GPU) + /* Make use of existing macro to do CUDA style memcpy */ ++#include "opal_datatype_cuda.h" + #undef MEMCPY_CSUM + #define MEMCPY_CSUM( DST, SRC, BLENGTH, CONVERTOR ) \ +- CONVERTOR->cbmemcpy( (DST), (SRC), (BLENGTH), (CONVERTOR) ) ++ opal_cuda_memcpy( (DST), (SRC), (BLENGTH), (CONVERTOR) ) + #endif + + /** +diff --git a/opal/datatype/opal_datatype_prototypes.h b/opal/datatype/opal_datatype_prototypes.h +index 668397112b..111f74f2a4 100644 +--- a/opal/datatype/opal_datatype_prototypes.h ++++ b/opal/datatype/opal_datatype_prototypes.h +@@ -39,6 +39,16 @@ OPAL_DECLSPEC int32_t + opal_unpack_general_checksum( opal_convertor_t* pConvertor, + struct iovec* iov, uint32_t* out_size, + size_t* max_data ); ++#if OPAL_CUDA_SUPPORT ++OPAL_DECLSPEC int32_t ++opal_pack_general_gpu( opal_convertor_t* pConvertor, ++ struct iovec* iov, uint32_t* out_size, ++ size_t* max_data ); ++OPAL_DECLSPEC int32_t ++opal_unpack_general_gpu( opal_convertor_t* pConvertor, ++ struct iovec* iov, uint32_t* out_size, ++ size_t* max_data ); ++#endif + + /* + * Now the internal functions +@@ -83,6 +93,28 @@ int32_t + opal_generic_simple_unpack_checksum( opal_convertor_t* pConvertor, + struct iovec* iov, uint32_t* out_size, + size_t* max_data ); ++#if OPAL_CUDA_SUPPORT ++int32_t ++opal_pack_homogeneous_contig_gpu( opal_convertor_t* pConv, ++ struct iovec* iov, uint32_t* out_size, ++ size_t* max_data ); ++int32_t ++opal_pack_homogeneous_contig_with_gaps_gpu( opal_convertor_t* pConv, ++ struct iovec* iov, uint32_t* out_size, ++ size_t* max_data ); ++int32_t ++opal_generic_simple_pack_gpu( opal_convertor_t* pConvertor, ++ struct iovec* iov, uint32_t* out_size, ++ size_t* max_data ); ++int32_t ++opal_unpack_homogeneous_contig_gpu( opal_convertor_t* pConv, ++ struct iovec* iov, uint32_t* out_size, ++ size_t* max_data ); ++int32_t ++opal_generic_simple_unpack_gpu( opal_convertor_t* pConvertor, ++ struct iovec* iov, uint32_t* out_size, ++ size_t* max_data ); ++#endif + + END_C_DECLS + +diff --git a/opal/datatype/opal_datatype_unpack.c b/opal/datatype/opal_datatype_unpack.c +index 26a5810dc0..668b6624aa 100644 +--- a/opal/datatype/opal_datatype_unpack.c ++++ b/opal/datatype/opal_datatype_unpack.c +@@ -46,6 +46,10 @@ + #define opal_unpack_general_function opal_unpack_general_checksum + #define opal_unpack_homogeneous_contig_function opal_unpack_homogeneous_contig_checksum + #define opal_generic_simple_unpack_function opal_generic_simple_unpack_checksum ++#elif defined(OPAL_DATATYPE_PACK_UNPACK_GPU) ++#define opal_unpack_general_function opal_unpack_general_gpu ++#define opal_unpack_homogeneous_contig_function opal_unpack_homogeneous_contig_gpu ++#define opal_generic_simple_unpack_function opal_generic_simple_unpack_gpu + #else + #define opal_unpack_general_function opal_unpack_general + #define opal_unpack_homogeneous_contig_function opal_unpack_homogeneous_contig +@@ -204,10 +208,10 @@ opal_unpack_partial_predefined(opal_convertor_t *pConvertor, const dt_elem_desc_ + MEMCPY( temporary + start_position, partial_data, length ); + + /* Save the original content of the user memory */ +-#if OPAL_CUDA_SUPPORT ++#if defined(OPAL_DATATYPE_PACK_UNPACK_GPU) + /* In the case where the data is being unpacked from device memory, need to + * use the special host to device memory copy. */ +- pConvertor->cbmemcpy(saved_data, user_data, data_length, pConvertor ); ++ opal_cuda_memcpy(saved_data, user_data, data_length, pConvertor ); + #else + MEMCPY( saved_data, user_data, data_length ); + #endif +@@ -222,15 +226,15 @@ opal_unpack_partial_predefined(opal_convertor_t *pConvertor, const dt_elem_desc_ + + /* Rebuild the data by pulling back the unmodified bytes from the original + * content in the user memory. */ +-#if OPAL_CUDA_SUPPORT ++#if defined(OPAL_DATATYPE_PACK_UNPACK_GPU) + /* Need to copy the modified user_data again so we can see which + * bytes need to be converted back to their original values. */ + { + char resaved_data[16]; +- pConvertor->cbmemcpy(resaved_data, user_data, data_length, pConvertor ); ++ opal_cuda_memcpy(resaved_data, user_data, data_length, pConvertor ); + for(size_t i = 0; i < data_length; i++ ) { + if( unused_byte == resaved_data[i] ) +- pConvertor->cbmemcpy(&user_data[i], &saved_data[i], 1, pConvertor); ++ opal_cuda_memcpy(&user_data[i], &saved_data[i], 1, pConvertor); + } + } + #else +diff --git a/opal/datatype/opal_datatype_unpack.h b/opal/datatype/opal_datatype_unpack.h +index 33db837882..4159a475fc 100644 +--- a/opal/datatype/opal_datatype_unpack.h ++++ b/opal/datatype/opal_datatype_unpack.h +@@ -19,11 +19,12 @@ + + #include "opal_config.h" + +-#if !defined(CHECKSUM) && OPAL_CUDA_SUPPORT ++#if defined(OPAL_DATATYPE_PACK_UNPACK_GPU) + /* Make use of existing macro to do CUDA style memcpy */ ++#include "opal_datatype_cuda.h" + #undef MEMCPY_CSUM + #define MEMCPY_CSUM( DST, SRC, BLENGTH, CONVERTOR ) \ +- CONVERTOR->cbmemcpy( (DST), (SRC), (BLENGTH), (CONVERTOR) ) ++ opal_cuda_memcpy( (DST), (SRC), (BLENGTH), (CONVERTOR) ) + #endif + + /** diff --git a/Overlays/jureca_spr_overlay/o/OpenMPI/OpenMPI-4.1.4-GCC-11.3.0.eb b/Overlays/jureca_spr_overlay/o/OpenMPI/OpenMPI-4.1.4-GCC-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..49c9419c1eaa7ed650c95d3e37e88f289642688c --- /dev/null +++ b/Overlays/jureca_spr_overlay/o/OpenMPI/OpenMPI-4.1.4-GCC-11.3.0.eb @@ -0,0 +1,82 @@ +easyblock = 'ConfigureMake' + +name = 'OpenMPI' +version = '4.1.4' + +homepage = 'https://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-3 implementation.""" + +toolchain = {'name': 'GCC', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] +sources = [SOURCELOWER_TAR_BZ2] +patches = [ + 'OpenMPI-4.1.1_opal-datatype-cuda-performance.patch', +] +checksums = [ + '92912e175fd1234368c8730c03f4996fe5942e7479bb1d10059405e7f2b3930d', # openmpi-4.1.4.tar.bz2 + # OpenMPI-4.1.1_opal-datatype-cuda-performance.patch + 'b767c7166cf0b32906132d58de5439c735193c9fd09ec3c5c11db8d5fa68750e', +] + +osdependencies = [ + # needed for --with-verbs + ('libibverbs-dev', 'libibverbs-devel', 'rdma-core-devel'), +] + +builddependencies = [ + ('pkgconf', '1.8.0'), + ('Perl', '5.34.1'), + ('Autotools', '20220317'), +] + +dependencies = [ + ('zlib', '1.2.12'), + ('hwloc', '2.7.1'), + ('UCX', 'default'), + ('CUDA', '12.0', '', SYSTEM), + ('libevent', '2.1.12'), + ('PMIx', '3.2.3'), # We rely on this version since it is the newest supported by psmgmt + ('UCC', 'default'), +] + +# Update configure to include changes from the "internal-cuda" patch +# by running a subset of autogen.pl sufficient to achieve this +# without doing the full, long-running regeneration. +preconfigopts = ' && '.join([ + 'cd config', + 'autom4te --language=m4sh opal_get_version.m4sh -o opal_get_version.sh', + 'cd ..', + 'autoconf', + 'autoheader', + 'aclocal', + 'automake', + '' +]) + +configopts = '--enable-shared ' +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--with-ucx=$EBROOTUCX ' +configopts += '--with-verbs ' +configopts += '--with-libevent=$EBROOTLIBEVENT ' +configopts += '--without-orte ' +configopts += '--without-psm2 ' +configopts += '--disable-oshmem ' +configopts += '--with-cuda=$EBROOTCUDA ' +configopts += '--with-ime=/opt/ddn/ime ' +configopts += '--with-gpfs ' + +# to enable SLURM integration (site-specific) +configopts += '--with-slurm --with-pmix=external --with-libevent=external --with-ompi-pmix-rte' + +local_libs = ["mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte"] +sanity_check_paths = { + 'files': ["bin/%s" % local_binfile for local_binfile in ["ompi_info", "opal_wrapper"]] + + ["lib/lib%s.%s" % (local_libfile, SHLIB_EXT) for local_libfile in local_libs] + + ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", + "mpif", "mpi", "mpi_portable_platform"]], + 'dirs': [], +} + +moduleclass = 'mpi' diff --git a/Overlays/jureca_spr_overlay/u/UCC/UCC-default-GCCcore-11.3.0.eb b/Overlays/jureca_spr_overlay/u/UCC/UCC-default-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..a508309e86fb8b4d1866250e5cc1b4923b4a0f2f --- /dev/null +++ b/Overlays/jureca_spr_overlay/u/UCC/UCC-default-GCCcore-11.3.0.eb @@ -0,0 +1,58 @@ +# For figuring out the correct GPU arch. Easyconfig templates can't be used, +# since we have in some systems more than 1 compute capability. +# The local prefix is to appease the checker +import os as local_os + +easyblock = 'ConfigureMake' + +name = 'UCC' +version = 'default' +local_realversion = '1.2.0-rc1' + +homepage = 'https://www.openucx.org/' +description = f"""UCC (Unified Collective Communication) is a collective +communication operations API and library that is flexible, complete, and +feature-rich for current and emerging programming models and runtimes. + +The real version of this package is {local_realversion} +""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/openucx/ucc/archive/refs/tags'] +sources = [f'v{local_realversion}.tar.gz'] +checksums = [ + {'v1.2.0-rc1.tar.gz': 'ae6384eecec5054e2c5e960dfc03c083f5f98afaed17276a306c6fe27db4354b'}, +] + +builddependencies = [ + ('binutils', '2.38'), + ('Autotools', '20220317'), +] + +dependencies = [ + ('UCX', 'default'), + ('CUDA', '12.0', '', SYSTEM), + ('NCCL', 'default', '-CUDA-%(cudashortver)s'), +] + +preconfigopts = "./autogen.sh && " + +local_gpu_cc = local_os.environ["EASYBUILD_CUDA_COMPUTE_CAPABILITIES"].split(',')[0].replace('.', '') + +configopts = "--enable-optimizations " +configopts += f"--with-nvcc-gencode=-gencode=arch=compute_{local_gpu_cc},code=sm_{local_gpu_cc} " +configopts += "--with-ucx=$EBROOTUCX " +configopts += "--with-cuda=$EBROOTCUDA " +configopts += "--with-nccl=$EBROOTNCCL " +# configopts += "--with-sharp=/opt/mellanox/sharp " + +sanity_check_paths = { + 'files': ['bin/ucc_info'], + 'dirs': ['include', 'lib'] +} + +sanity_check_commands = ["ucc_info -c"] + +moduleclass = 'lib' diff --git a/Overlays/jureca_spr_overlay/u/UCX/UCX-default-GCCcore-11.3.0.eb b/Overlays/jureca_spr_overlay/u/UCX/UCX-default-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..428abc8959f099e384044ec0bb2927c572e7b91b --- /dev/null +++ b/Overlays/jureca_spr_overlay/u/UCX/UCX-default-GCCcore-11.3.0.eb @@ -0,0 +1,79 @@ +easyblock = 'ConfigureMake' + +name = 'UCX' +version = 'default' +local_realversion = '1.13.1' + +homepage = 'https://www.openucx.org/' +description = f"""Unified Communication X +An open-source production grade communication framework for data centric +and high-performance applications + +The real version of this package is {local_realversion} +""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +source_urls = [f'https://github.com/openucx/ucx/releases/download/v{local_realversion}'] +sources = ['%%(namelower)s-%s.tar.gz' % local_realversion] +checksums = ['efc37829b68e131d2acc82a3fd4334bfd611156a756837ffeb650ab9a9dd3828'] + +builddependencies = [ + ('binutils', '2.38'), + ('Autotools', '20220317'), + ('pkgconf', '1.8.0'), +] + +osdependencies = [OS_PKG_IBVERBS_DEV] + +dependencies = [ + ('zlib', '1.2.12'), + ('numactl', '2.0.15'), + ('CUDA', '12.0', '', SYSTEM), +] + +configopts = '--with-verbs ' # Build OpenFabrics support +configopts += '--without-java ' +configopts += '--disable-doxygen-doc ' + +# Enable machine-specific optimizations, default: NO +configopts += '--enable-optimizations ' +# configopts += '--enable-tuning ' # Enable parameter tuning in run-time, default: NO +# Enable thread support in UCP and UCT, default: NO +configopts += '--enable-mt ' +configopts += '--disable-debug ' +configopts += '--disable-logging ' +configopts += '--disable-assertions ' +configopts += '--disable-params-check ' +configopts += '--disable-dependency-tracking ' +configopts += '--with-cuda=$EBROOTCUDA ' + +configopts += '--enable-cma ' # Enable Cross Memory Attach + +# Compile with IB Reliable Connection support +configopts += '--with-rc ' +# Compile with IB Unreliable Datagram support +configopts += '--with-ud ' +# Compile with IB Dynamic Connection support +configopts += '--with-dc ' +configopts += '--with-mlx5-dv ' # Compile with mlx5 Direct Verbs support +configopts += '--with-ib-hw-tm ' # Compile with IB Tag Matching support +configopts += '--with-dm ' # Compile with Device Memory support + +configopts += '--with-avx ' # Compile with AVX +# configopts += '--with-gdrcopy ' # Compile with GDRCopy + +# Compile without IB Connection Manager support +configopts += '--without-cm ' + +buildopts = 'V=1' + +sanity_check_paths = { + 'files': ['bin/ucx_info', 'bin/ucx_perftest', 'bin/ucx_read_profile'], + 'dirs': ['include', 'lib', 'share'] +} + +sanity_check_commands = ["ucx_info -d"] + +moduleclass = 'system' diff --git a/Overlays/jurecadc_overlay/n/nvidia-driver/nvidia-driver-default.eb b/Overlays/jurecadc_overlay/n/nvidia-driver/nvidia-driver-default.eb index 22e40535fb019858b9b56e057e9d844079138c3a..2900da59e4083c0d7fe1a0d7fd1cae2fd1bd0bf2 100644 --- a/Overlays/jurecadc_overlay/n/nvidia-driver/nvidia-driver-default.eb +++ b/Overlays/jurecadc_overlay/n/nvidia-driver/nvidia-driver-default.eb @@ -1,6 +1,6 @@ name = 'nvidia-driver' version = 'default' -realversion = '515.65.07' +realversion = '525.105.17' homepage = 'https://developer.nvidia.com/cuda-toolkit' description = f""" @@ -15,7 +15,7 @@ toolchain = SYSTEM source_urls = ['http://us.download.nvidia.com/tesla/%s/' % realversion] sources = ['NVIDIA-Linux-x86_64-%s.run' % realversion] -checksums = ['c6876b9dfd7ff91918610c8117995b6be3c524914c3c2e2170b71a6ef929fa24'] +checksums = ['c635a21a282c9b53485f19ebb64a0f4b536a968b94d4d97629e0bc547a58142a'] # To avoid conflicts between NVML and the kernel driver postinstallcmds = ['rm %(installdir)s/lib64/libnvidia-ml.so*'] diff --git a/Overlays/jusuf_overlay/n/nvidia-driver/nvidia-driver-default.eb b/Overlays/jusuf_overlay/n/nvidia-driver/nvidia-driver-default.eb new file mode 100644 index 0000000000000000000000000000000000000000..2900da59e4083c0d7fe1a0d7fd1cae2fd1bd0bf2 --- /dev/null +++ b/Overlays/jusuf_overlay/n/nvidia-driver/nvidia-driver-default.eb @@ -0,0 +1,27 @@ +name = 'nvidia-driver' +version = 'default' +realversion = '525.105.17' + +homepage = 'https://developer.nvidia.com/cuda-toolkit' +description = f""" +This is a set of libraries normally installed by the NVIDIA driver installer. + +The real version of this package is {realversion}. +""" + +site_contacts = 'sc@fz-juelich.de' + +toolchain = SYSTEM + +source_urls = ['http://us.download.nvidia.com/tesla/%s/' % realversion] +sources = ['NVIDIA-Linux-x86_64-%s.run' % realversion] +checksums = ['c635a21a282c9b53485f19ebb64a0f4b536a968b94d4d97629e0bc547a58142a'] + +# To avoid conflicts between NVML and the kernel driver +postinstallcmds = ['rm %(installdir)s/lib64/libnvidia-ml.so*'] + +modluafooter = ''' +add_property("arch","gpu") +''' + +moduleclass = 'system' diff --git a/Overlays/juwels_overlay/n/nvidia-driver/nvidia-driver-default.eb b/Overlays/juwels_overlay/n/nvidia-driver/nvidia-driver-default.eb index 22e40535fb019858b9b56e057e9d844079138c3a..2900da59e4083c0d7fe1a0d7fd1cae2fd1bd0bf2 100644 --- a/Overlays/juwels_overlay/n/nvidia-driver/nvidia-driver-default.eb +++ b/Overlays/juwels_overlay/n/nvidia-driver/nvidia-driver-default.eb @@ -1,6 +1,6 @@ name = 'nvidia-driver' version = 'default' -realversion = '515.65.07' +realversion = '525.105.17' homepage = 'https://developer.nvidia.com/cuda-toolkit' description = f""" @@ -15,7 +15,7 @@ toolchain = SYSTEM source_urls = ['http://us.download.nvidia.com/tesla/%s/' % realversion] sources = ['NVIDIA-Linux-x86_64-%s.run' % realversion] -checksums = ['c6876b9dfd7ff91918610c8117995b6be3c524914c3c2e2170b71a6ef929fa24'] +checksums = ['c635a21a282c9b53485f19ebb64a0f4b536a968b94d4d97629e0bc547a58142a'] # To avoid conflicts between NVML and the kernel driver postinstallcmds = ['rm %(installdir)s/lib64/libnvidia-ml.so*'] diff --git a/Overlays/juwelsbooster_overlay/n/nvidia-driver/nvidia-driver-default.eb b/Overlays/juwelsbooster_overlay/n/nvidia-driver/nvidia-driver-default.eb index 22e40535fb019858b9b56e057e9d844079138c3a..2900da59e4083c0d7fe1a0d7fd1cae2fd1bd0bf2 100644 --- a/Overlays/juwelsbooster_overlay/n/nvidia-driver/nvidia-driver-default.eb +++ b/Overlays/juwelsbooster_overlay/n/nvidia-driver/nvidia-driver-default.eb @@ -1,6 +1,6 @@ name = 'nvidia-driver' version = 'default' -realversion = '515.65.07' +realversion = '525.105.17' homepage = 'https://developer.nvidia.com/cuda-toolkit' description = f""" @@ -15,7 +15,7 @@ toolchain = SYSTEM source_urls = ['http://us.download.nvidia.com/tesla/%s/' % realversion] sources = ['NVIDIA-Linux-x86_64-%s.run' % realversion] -checksums = ['c6876b9dfd7ff91918610c8117995b6be3c524914c3c2e2170b71a6ef929fa24'] +checksums = ['c635a21a282c9b53485f19ebb64a0f4b536a968b94d4d97629e0bc547a58142a'] # To avoid conflicts between NVML and the kernel driver postinstallcmds = ['rm %(installdir)s/lib64/libnvidia-ml.so*'] diff --git a/acls.yml b/acls.yml index bbeabbf0d3013f741809620ca09846d4cbb68ffd..36b6b04413af2a74365c8a678a49fcf72938335e 100644 --- a/acls.yml +++ b/acls.yml @@ -51,7 +51,7 @@ compilers: - name: 'GCC' version: '11.3.0' - name: 'NVHPC' - version: '22' + version: '23' - name: 'intel' version: '2022' mpis: @@ -83,8 +83,11 @@ software: - name: 'ceres-solver' owner: 'goebbert1' base: True - - name: 'Cirq' + - name: 'Catalyst' owner: 'goebbert1' + mpi: True + - name: 'Cirq' + owner: 'gonzalezcalaza1' base: True - name: 'Cling' owner: 'goebbert1' @@ -103,7 +106,7 @@ software: base: True - name: 'Embree' owner: 'goebbert1' - base: True + compiler: True - name: 'freeglut' owner: 'goebbert1' base: True @@ -119,6 +122,9 @@ software: - name: 'eudev' owner: 'goebbert1' base: True + - name: 'FLANN' + owner: 'goebbert1' + base: True - name: 'glog' owner: 'goebbert1' base: True @@ -191,7 +197,7 @@ software: owner: 'goebbert1' base: True - name: 'JupyterKernel-PyQuantum' - owner: 'goebbert1' + owner: ['goebbert1', 'gonzalezcalaza1'] base: True - name: 'JupyterKernel-PyDeepLearning' owner: 'goebbert1' @@ -247,6 +253,9 @@ software: - name: 'muparserx' owner: 'goebbert1' base: True + - name: 'myqlm' + owner: ['gonzalezcalaza1', 'goebbert1'] + base: True - name: 'nlohmann-json' owner: 'goebbert1' base: True @@ -262,6 +271,9 @@ software: - name: 'nvidia-Video_Codec_SDK' owner: 'goebbert1' system: True + - name: 'Octave' + owner: 'goebbert1' + base: True - name: 'OpenCV' owner: 'goebbert1' base: True @@ -295,6 +307,9 @@ software: - name: 'ParaViewPlugin-Nek5000' owner: 'goebbert1' mpi: True + - name: 'pulser' + owner: 'gonzalezcalaza1' + base: True - name: 'PyCairo' owner: 'goebbert1' base: True @@ -314,16 +329,19 @@ software: owner: 'goebbert1' mpi: True - name: 'PyQuil' - owner: 'goebbert1' + owner: ['gonzalezcalaza1', 'goebbert1'] base: True + - name: 'PySCF' + owner: 'goebbert1' + compiler: True - name: 'qcint' owner: 'gonzalezcalaza1' base: True - name: 'Qiskit' - owner: 'goebbert1' + owner: ['gonzalezcalaza1', 'goebbert1'] mpi: True - name: 'Qiskit-juqcs' - owner: 'goebbert1' + owner: 'gonzalezcalaza1' mpi: True - name: 'Qt5' owner: 'goebbert1' @@ -419,6 +437,9 @@ software: - name: 'Arrow' owner: 'strube1' mpi: True + - name: 'ArviZ' + owner: 'strube1' + mpi: True - name: 'ASE' owner: 'strube1' base: True @@ -446,6 +467,9 @@ software: owner: 'strube1' base: True compiler: True + - name: 'BLAST+' + owner: 'strube1' + mpi: True - name: 'bokeh' owner: 'strube1' base: True @@ -496,6 +520,9 @@ software: - name: 'DeepSpeed' owner: 'strube1' mpi: True + - name: 'dill' + owner: 'strube1' + base: True - name: 'distributed' owner: 'strube1' base: True @@ -506,6 +533,9 @@ software: - name: 'Emacs' owner: 'strube1' base: True + - name: 'ESMF' + owner: ['griessbach1', 'strube1'] + mpi: True - name: 'exiv2' owner: 'strube1' base: True @@ -724,7 +754,7 @@ software: base: True - name: 'maeparser' owner: 'strube1' - mpi: True + mpi: True - name: 'magma' owner: 'strube1' mpi: True @@ -737,6 +767,9 @@ software: - name: 'MethPipe' owner: 'strube1' mpi: True + - name: 'MongoDB' + owner: 'strube1' + system: True - name: 'METIS' owner: 'schoebel1' base: True @@ -794,6 +827,9 @@ software: - name: 'OpenBabel' owner: 'strube1' mpi: True + - name: 'openpyxl' + owner: 'strube1' + base: True - name: 'OpenSlide' owner: 'strube1' base: True @@ -887,6 +923,9 @@ software: - name: 'rpmrebuild' owner: 'strube1' system: True + - name: 'Rust' + owner: 'strube1' + base: True - name: 'scikit-allel' owner: 'strube1' base: True @@ -1015,6 +1054,9 @@ software: - name: 'utf8proc' owner: ['strube1', 'nassyr1'] base: 'true' + - name: 'xarray' + owner: 'strube1' + base: 'true' - name: 'X11' owner: 'achilles4' base: 'true' @@ -1149,7 +1191,7 @@ software: base: True mpi: True - name: 'h5py' - owner: ['griessbach1', 'strube1'] + owner: ['griessbach1', 'strube1', 'goebbert1'] base: True mpi: True - name: 'Eigen' @@ -1216,7 +1258,7 @@ software: mpi: True base: True - name: 'netCDF-C++4' - owner: 'griessbach1' + owner: ['griessbach1', 'strube1'] mpi: True base: True - name: 'netCDF-Fortran' @@ -1263,6 +1305,9 @@ software: - name: 'CPMD' owner: 'mueller1' mpi: True + - name: 'GlobalArrays' + owner: 'mueller1' + mpi: True - name: 'Nsight-Compute' owner: 'herten1' base: True @@ -1298,7 +1343,7 @@ software: owner: 'griessbach1' mpi: True - name: 'NCO' - owner: 'griessbach1' + owner: ['griessbach1', 'strube1'] mpi: True - name: 'Extrae' owner: 'knobloch1' @@ -1360,3 +1405,8 @@ software: - name: 'UDUNITS' owner: ['griessbach1', 'strube1'] base: True + - name: 'libcdi' + owner: 'griessbach1' + base: True + mpi: True + diff --git a/bin/table_generator b/bin/table_generator index 90c01e0dd340699f4aff17b19a36c95fb617876d..d5c1a817155dfb59a137d27ab1591c07e00368e5 100755 --- a/bin/table_generator +++ b/bin/table_generator @@ -206,7 +206,7 @@ def table_formatter(table, compare_repo=False): global html sw_name_max_len = 30 - owner_max_len = 16 + owner_max_len = 32 if emojis: len_padding = 1