diff --git a/Custom_Hooks/eb_hooks.py b/Custom_Hooks/eb_hooks.py new file mode 100644 index 0000000000000000000000000000000000000000..456645f44032314930fb704bbafe5de2b63a544b --- /dev/null +++ b/Custom_Hooks/eb_hooks.py @@ -0,0 +1,238 @@ +import grp +import os + +from easybuild.tools.run import run_cmd +from easybuild.tools.config import build_option +from easybuild.tools.config import install_path +from easybuild.tools.build_log import EasyBuildError, print_warning +from easybuild.tools.toolchain.toolchain import SYSTEM_TOOLCHAIN_NAME +from easybuild.toolchains.compiler.systemcompiler import TC_CONSTANT_SYSTEM + +SUPPORTED_COMPILERS = ["GCC", "iccifort", "PGI", "GCCcore"] +SUPPORTED_MPIS = ["impi", "psmpi", "OpenMPI", "MVAPICH2"] +# Maintain toplevel list for easy use of --try-toolchain +SUPPORTED_TOPLEVEL_TOOLCHAIN_FAMILIES = [ + "intel", + "intel-para", + "iomkl", + "gpsmkl", + "gomkl", + "pmvmklc", + "gmvmklc", +] +# Could potentially make a dictionary of names and supported versions here but that is +# probably overkill +SUPPORTED_TOOLCHAIN_FAMILIES = ( + SUPPORTED_COMPILERS + + ["gcccoremkl", "gpsmpi", "ipsmpi", "iimpi", "iompi", "gmvapich2c", "pmvapich2c"] + + SUPPORTED_TOPLEVEL_TOOLCHAIN_FAMILIES +) +# Also maintain a list of CUDA enabled compilers +CUDA_ENABLED_TOOLCHAINS = ["pmvmklc", "gmvmklc", "gmvapich2c", "pmvapich2c"] +# Use this for a heuristic to see if the easyconfig comes from the Golden Repo +GOLDEN_REPO = "Golden_Repo" + +# Some modules should use modaltsoftname by default +REQUIRE_MODALTSOFTNAME = { + "impi": "IntelMPI", + "psmpi": "ParaStationMPI", + "iccifort": "Intel", +} + + +def parse_hook(ec, *args, **kwargs): + """Custom parse hook to manage installations intended for JSC systems.""" + + ec_dict = ec.asdict() + # Compilers are are a family (in the Lmod sense) + if ec.name in SUPPORTED_COMPILERS: + key = "modluafooter" + value = 'family("compiler")' + if key in ec_dict: + if not value in ec_dict[key]: + ec[key] = "\n".join([ec[key], value]) + else: + ec[key] = value + ec.log.info("[parse hook] Injecting Lmod compiler family") + # Supported compilers should also be recursively unloaded + key = "recursive_module_unload" + if not key in ec_dict or ec_dict[key] is None: + ec[key] = True + ec.log.info( + "[parse hook] Injecting recursive module unloading for supported compiler" + ) + # MPI are are a family (in the Lmod sense) + if ec.name in SUPPORTED_MPIS: + key = "modluafooter" + value = 'family("mpi")' + if key in ec_dict: + if not value in ec_dict[key]: + ec[key] = "\n".join([ec[key], value]) + else: + ec[key] = value + ec.log.info("[parse hook] Injecting Lmod mpi family") + + # Check if we need to use 'modaltsoftname' + if ec.name in REQUIRE_MODALTSOFTNAME: + key = "modaltsoftname" + if not key in ec_dict or ec_dict[key] is None: + ec[key] = REQUIRE_MODALTSOFTNAME[ec.name] + ec.log.info( + "[parse hook] Injecting modaltsoftname '%s' for '%s'", + key, + REQUIRE_MODALTSOFTNAME[ec.name], + ) + + # Check if CUDA is in the dependencies, if so add the GPU Lmod tag + if ( + "CUDA" in [dep[0] for dep in iter(ec_dict["dependencies"])] + or ec_dict["toolchain"]["name"] in CUDA_ENABLED_TOOLCHAINS + ): + key = "modluafooter" + value = 'add_property("arch","gpu")' + if key in ec_dict: + if not value in ec_dict[key]: + ec[key] = "\n".join([ec_dict[key], value]) + else: + ec[key] = value + ec.log.info("[parse hook] Injecting gpu as Lmod arch property") + + # Check where installations are going to go and add appropriate site contact + # not sure of a fool-proof way to do this, let's just try a heuristic + site_contacts = None + if "stages" in install_path().lower(): + users_groups = [grp.getgrgid(g).gr_name for g in os.getgroups()] + if any(group in user_groups for group in ["swmanage", "software"]): + site_contacts = "sc@fz-juelich.de" + if site_contacts is None: + # Inject the user + site_contacts = os.getenv("USER") + # Tag the build as a user build + key = "modluafooter" + value = 'add_property("build","user")' + if key in ec_dict: + if not value in ec_dict[key]: + ec[key] = "\n".join([ec_dict[key], value]) + else: + ec[key] = value + ec.log.info("[parse hook] Injecting user as Lmod build property") + if site_contacts: + key = "site_contacts" + value = site_contacts + if key in ec_dict: + if ec_dict[key] is not None and value not in ec_dict[key]: + value = ",".join([ec_dict[key], value]) + ec[key] = value + ec.log.info("[parse hook] Injecting contact %s", value) + + # If we are parsing we are not searching, in this case if the easyconfig is + # located in the search path, warn that it's dependencies will (most probably) + # not be resolved + if build_option("robot"): + search_paths = build_option("search_paths") or [] + robot_paths = list(set(build_option("robot_path") + build_option("robot"))) + if ec.path: + ec_dir_path = os.path.dirname(os.path.abspath(ec.path)) + else: + ec_dir_path = '' + if any(search_path in ec_dir_path for search_path in search_paths) and not any( + robot_path in ec_dir_path for robot_path in robot_paths + ): + raise EasyBuildError( + "\nYou are attempting to install an easyconfig distributed with " + "EasyBuild but are not properly configured to resolve dependencies " + "for this case. Please add additonal options:\n" + " eb --robot=$EASYBUILD_ROBOT:$EBROOTEASYBUILD/easybuild/easyconfigs --try-update-deps ...." + ) + + +def pre_ready_hook(self, *args, **kwargs): + "When we are building something, do some checks for bad behaviour" + ec = self.cfg + # Grab name, path, toolchain, install path and check if we are installing + # GCCcore/MPI + name = ec["name"] + path_to_ec = os.path.abspath(ec.path) + toolchain = ec["toolchain"] + is_gcccore = ec["name"] == "GCCcore" + is_mpi = ec["moduleclass"] == "mpi" or name in SUPPORTED_MPIS + + # Don't let people use unsupported toolchains (by default) + override_toolchain_check = os.getenv("JSC_OVERRIDE_TOOLCHAIN_CHECK") + if not override_toolchain_check: + toolchain_name = toolchain["name"] + if not toolchain_name in SUPPORTED_TOOLCHAIN_FAMILIES: + stage = os.getenv("STAGE", default=None) + if stage: + # Clean things up if it is a Devel stage + stage = stage.replace("Devel-", "") + else: + stage = "<TOOLCHAIN_VERSION>" + print_warning( + "\nYou are attempting to install software with an unsupported " + "toolchain (%s), please use additional arguments to map this to a supported" + " toolchain:\n" + " eb --try-toolchain=<SUPPORTED_TOOLCHAIN>,%s --try-update-deps ...\n" + "where <SUPPORTED_TOOLCHAIN> comes from the list %s\n" + "(if you really know what you are doing, you can override this " + "behaviour by setting the %s environment variable)\n\n" + "...exiting", + toolchain_name, + stage, + SUPPORTED_TOPLEVEL_TOOLCHAIN_FAMILIES, + "JSC_OVERRIDE_TOOLCHAIN_CHECK", + ) + exit(1) + + # Don't let people install GCCcore since this probably won't work and will lead them + # to reinstall most of our stack. Don't advertise that this can be overridden, only + # experts should know that. + override_gcccore_check = os.getenv("JSC_OVERRIDE_GCCCORE_CHECK") + if not override_gcccore_check: + if is_gcccore and not "stages" in install_path().lower(): + print_warning( + "\nYou are attempting to install GCCcore (%s) into a non-system " + "location (%s), this won't work as expected without additional effort " + "and is likely to lead to building a whole stack of dependencies even " + "for simple software. Please contact sc@fz-juelich.de if you wish to " + "discuss this further.\n\n" + "...exiting", + path_to_ec, + install_path(), + ) + exit(1) + + # Don't let people install a non-JSC MPI (and don't advertise that this can be + # overridden, only experts should know that) + override_mpi_check = os.getenv("JSC_OVERRIDE_MPI_CHECK") + if not override_mpi_check: + if is_mpi and GOLDEN_REPO not in path_to_ec: + print_warning( + "\nYou are attempting to install a non-system MPI implementation (%s), " + "this is very likely to lead to severe performance degradation. Please " + "contact sc@fz-juelich.de if you wish to discuss this further.\n\n" + "...exiting", + path_to_ec, + ) + exit(1) + + +def end_hook(*args, **kwargs): + # If the user is part of the development group and the installation is systemwide, + # rebuild the system cache + "Refresh Lmod's cache" + + if "stages" in install_path().lower(): + user = os.getenv("USER") + if user == "swmanage": + cmd = ( + "/gpfs/software/juwels/configs/update_system_module_cache.sh" + ) # Need to make this generic + if os.path.isfile(cmd): + print("== Refreshing Lmod's cache...") + run_cmd(cmd, log_all=True) + else: + # Otherwise do nothing, no need to build a user cache, it's very unlikely they + # will have loads of modules + pass + diff --git a/Golden_Repo/a/ANTLR/ANTLR-2.7.7-GCCcore-9.3.0-Python-3.8.5.eb b/Golden_Repo/a/ANTLR/ANTLR-2.7.7-GCCcore-9.3.0-Python-3.8.5.eb index 213c01ad8ff911f480f2ecc0e510968d77524b93..ee3ab68467797446a6bae0c3278ff2f2c11bbc0a 100644 --- a/Golden_Repo/a/ANTLR/ANTLR-2.7.7-GCCcore-9.3.0-Python-3.8.5.eb +++ b/Golden_Repo/a/ANTLR/ANTLR-2.7.7-GCCcore-9.3.0-Python-3.8.5.eb @@ -25,7 +25,7 @@ builddependencies = [ ] dependencies = [ - ('Java', '1.8', '', True), + ('Java', '1.8', '', SYSTEM), ('Python', '3.8.5'), ] diff --git a/Golden_Repo/a/ARPACK-NG/ARPACK-NG-3.7.0-gcccoremkl-9.3.0-2020.2.254-nompi.eb b/Golden_Repo/a/ARPACK-NG/ARPACK-NG-3.7.0-gcccoremkl-9.3.0-2020.2.254-nompi.eb new file mode 100644 index 0000000000000000000000000000000000000000..e917f93387fa7c3738b0b532a9f7e2b4d700ce70 --- /dev/null +++ b/Golden_Repo/a/ARPACK-NG/ARPACK-NG-3.7.0-gcccoremkl-9.3.0-2020.2.254-nompi.eb @@ -0,0 +1,56 @@ +easyblock = 'ConfigureMake' + +name = 'ARPACK-NG' +version = '3.7.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 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' + +site_contacts = 'I. Gutheil (i.gutheil@fz-juelich.de)' + +toolchain = {'name': 'gcccoremkl', 'version': '9.3.0-2020.2.254'} +toolchainopts = {'opt': True, 'optarch': True, 'pic': True} + +source_urls = ['https://github.com/opencollab/arpack-ng/archive/'] +sources = ["%(version)s.tar.gz"] +checksums = ['972e3fc3cd0b9d6b5a737c9bf6fd07515c0d6549319d4ffb06970e64fa3cc2d6'] + +patches = [ + 'ARPACK-NG-%(version)s-install-arpack-examples_gpsmkl.patch' +] + +builddependencies = [ + ('binutils', '2.34'), + ('Autotools', '20200321'), + ('pkg-config', '0.29.2') +] + +# 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"' + +postinstallcmds = [ + "cp -r EXAMPLES %(installdir)s/EXAMPLES", +] + +sanity_check_paths = { + 'files': ["lib/libarpack.a", "lib/libarpack.%s" % SHLIB_EXT, ], + 'dirs': [] +} + +modextravars = { + 'ARPACK_ROOT': '%(installdir)s', + 'ARPACK_LIB': '%(installdir)s/lib', +} + +moduleclass = 'numlib' diff --git a/Golden_Repo/a/ant/ant-1.10.9-Java-15.eb b/Golden_Repo/a/ant/ant-1.10.9-Java-15.eb new file mode 100644 index 0000000000000000000000000000000000000000..299ccd4b4fc08db690844212a670ba2a73e422e1 --- /dev/null +++ b/Golden_Repo/a/ant/ant-1.10.9-Java-15.eb @@ -0,0 +1,29 @@ +easyblock = 'PackedBinary' + +name = 'ant' +version = '1.10.9' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'https://ant.apache.org/' +description = """Apache Ant is a Java library and command-line tool whose mission is to drive processes described in + build files as targets and extension points dependent upon each other. The main known usage of Ant is the build of + Java applications.""" + +site_contacts = 'j.goebbert@fz-juelich.de' + +toolchain = SYSTEM + +source_urls = ['https://archive.apache.org/dist/ant/binaries/'] +sources = ['apache-%(name)s-%(version)s-bin.tar.gz'] +checksums = ['5f8a85ddee6effe79163aa54c7bef6b60305e37200dedc1986437fb5c072a9f3'] + +dependencies = [('Java', '15')] + +sanity_check_paths = { + 'files': ['bin/ant', 'lib/ant.jar'], + 'dirs': [], +} + +modextravars = {'ANT_HOME': '%(installdir)s'} + +moduleclass = 'devel' diff --git a/Golden_Repo/b/basemap/basemap-1.2.2-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb b/Golden_Repo/b/basemap/basemap-1.2.2-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..6892be2a0c371d4eb9e0ac43ac9ab14a297a97f5 --- /dev/null +++ b/Golden_Repo/b/basemap/basemap-1.2.2-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb @@ -0,0 +1,50 @@ +easyblock = 'Bundle' + +name = 'basemap' +version = '1.2.2' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://matplotlib.org/basemap/' +description = """Basemap is a Python matplotlib toolkit for plotting data on maps. + +This is the last version of Basemap. Please move development efforts over to Cartopy! +""" + +site_contacts = 'a.strube@fz-juelich.de' + +toolchain = {'name': 'gcccoremkl', 'version': '9.3.0-2020.2.254'} + +dependencies = [ + ('Python', '3.8.5'), + ('SciPy-Stack', '2020', versionsuffix), + ('GEOS', '3.8.1', versionsuffix), + ('PROJ', '7.1.0'), +] + +# this is a bundle of Python packages +exts_defaultclass = 'PythonPackage' +exts_filter = ('python -c "import %(ext_name)s"', '') +exts_download_dep_fail = True + +exts_list = [ + ('pyshp', '2.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyshp'], + 'modulename': 'shapefile', + }), + ('pyproj', '2.6.1.post1', { # PyProj 3 needs PROJ 7.2.0, which was released after PROJ went into production + 'source_urls': ['https://pypi.python.org/packages/source/p/pyproj'], + 'prebuildopts': 'PROJ_DIR="$EBROOTPROJ" ', + 'preinstallopts': 'PROJ_DIR="$EBROOTPROJ" ', + }), + ('basemap', '1.2.2', { + 'source_urls': ['https://github.com/matplotlib/basemap/archive/'], + 'source_tmpl': 'v%(version)srel.tar.gz', + 'prebuildopts': 'GEOS_DIR="$EBROOTGEOS" ', + 'preinstallopts': 'GEOS_DIR="$EBROOTGEOS" ', + 'modulename': 'mpl_toolkits.basemap', + }), +] + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +moduleclass = 'vis' diff --git a/Golden_Repo/c/Cartopy/Cartopy-0.18.0-gpsmpi-2020-Python-3.8.5.eb b/Golden_Repo/c/Cartopy/Cartopy-0.18.0-gpsmpi-2020-Python-3.8.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..aeeee5746469ce1e28ac97d2d2d0a4536d986254 --- /dev/null +++ b/Golden_Repo/c/Cartopy/Cartopy-0.18.0-gpsmpi-2020-Python-3.8.5.eb @@ -0,0 +1,49 @@ +easyblock = 'PythonBundle' + +name = 'Cartopy' +version = '0.18.0' +versionsuffix = '-Python-%(pyver)s' + +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.""" + +site_contacts = 'a.strube@fz-juelich.de' + +toolchain = {'name': 'gpsmpi', 'version': '2020'} + +dependencies = [ + ('Python', '3.8.5'), + ('Fiona', '1.8.16', versionsuffix), + ('GDAL', '3.1.2', versionsuffix), + ('GEOS', '3.8.1', versionsuffix), + ('SciPy-Stack', '2020', versionsuffix, ('gcccoremkl', '9.3.0-2020.2.254')), + ('pyproj', '2.6.1.post1', versionsuffix), + ('Shapely', '1.7.1', versionsuffix), + ('PROJ', '7.1.0'), +] + +use_pip = True +sanity_pip_check = True + +exts_default_options = {'source_urls': [PYPI_SOURCE]} + +exts_list = [ + ('OWSLib', '0.20.0', { + 'checksums': ['334988857b260c8cdf1f6698d07eab61839c51acb52ee10eed1275439200a40e'], + }), + ('pyepsg', '0.4.0', { + 'checksums': ['2d08fad1e7a8b47a90a4e43da485ba95705923425aefc4e2a3efa540dbd470d7'], + }), + ('pykdtree', '1.3.1', { + 'checksums': ['0d49d3bbfa0366dbe29176754ec86df75114a25525b530dcbbb75d3ac4c263e9'], + }), + ('pyshp', '2.1.0', { + 'modulename': 'shapefile', + 'checksums': ['e65c7f24d372b97d0920b864bbeb78322bb37b83f2606e2a2212631d5d51e5c0'], + }), + (name, version, { + 'checksums': ['7ffa317e8f8011e0d965a3ef1179e57a049f77019867ed677d49dcc5c0744434'], + }), +] + +moduleclass = 'geo' diff --git a/Golden_Repo/c/cppcheck/cppcheck-2.2-GCCcore-9.3.0.eb b/Golden_Repo/c/cppcheck/cppcheck-2.2-GCCcore-9.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..a9c8a8dc2a70edc8681c36946c8e69e436baedb4 --- /dev/null +++ b/Golden_Repo/c/cppcheck/cppcheck-2.2-GCCcore-9.3.0.eb @@ -0,0 +1,29 @@ +easyblock = 'CMakeMake' +name = 'cppcheck' +version = '2.2' + +homepage = 'http://cppcheck.sourceforge.net/' +description = """Cppcheck is a static analysis tool for C/C++ code""" + +site_contacts = 'a.strube@fz-juelich.de' + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%(name)s-%(version)s.tar.bz2'] + +dependencies = [ + ('binutils', '2.34'), + ('Qt5', '5.14.2'), + ('PCRE', '8.44'), + ('CMake', '3.18.0'), +] + +configopts = '-DUSE_Z3:BOOL=OFF' + +sanity_check_paths = { + 'files': ['bin/cppcheck'], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/Golden_Repo/d/distributed/distributed-2.30.1-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb b/Golden_Repo/d/distributed/distributed-2.30.1-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..8fcf4a476aaa2078f73c1e5450461c9a9757b67b --- /dev/null +++ b/Golden_Repo/d/distributed/distributed-2.30.1-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb @@ -0,0 +1,64 @@ +easyblock = 'Bundle' + +name = 'distributed' +version = '2.30.1' +versionsuffix = '-Python-%(pyver)s' + +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': 'gcccoremkl', 'version': '9.3.0-2020.2.254'} + +site_contacts = 'a.strube@fz-juelich.de' + +# this is a bundle of Python packages +exts_defaultclass = 'PythonPackage' + +dependencies = [ + ('Python', '3.8.5'), + ('dask', '2.22.0', versionsuffix), + ('SciPy-Stack', '2020', versionsuffix, ('gcccoremkl', '9.3.0-2020.2.254')), +] + + +exts_default_options = { + 'source_urls': [PYPI_SOURCE], + 'sanity_pip_check': True, +} + +exts_list = [ + ('zict', '2.0.0', { + 'source_urls': ['https://pypi.python.org/packages/source/z/zict'], + 'source_tmpl': 'zict-%(version)s.tar.gz', + }), + ('HeapDict', '1.0.1', { + 'modulename': 'heapdict', + 'source_urls': ['https://pypi.python.org/packages/source/H/HeapDict'], + }), + ('tornado', '5.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/t/tornado'], + }), + ('tblib', '1.7.0', { + 'source_urls': ['https://pypi.python.org/packages/source/t/tblib'], + }), + ('msgpack', '1.0.0', { + 'modulename': 'msgpack', + 'source_urls': ['https://pypi.python.org/packages/source/m/msgpack'], + }), + ('sortedcontainers', '2.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/sortedcontainers'], + }), + (name, version, { + 'source_urls': ['https://pypi.python.org/packages/source/d/distributed'], + }), +] + +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/f/FFTW/FFTW-3.3.8-GCCcore-9.3.0-nompi.eb b/Golden_Repo/f/FFTW/FFTW-3.3.8-GCCcore-9.3.0-nompi.eb new file mode 100644 index 0000000000000000000000000000000000000000..62f5c8bd660de89ea0d6ccb047c13a5cb0bb6fa8 --- /dev/null +++ b/Golden_Repo/f/FFTW/FFTW-3.3.8-GCCcore-9.3.0-nompi.eb @@ -0,0 +1,44 @@ +name = 'FFTW' +version = '3.3.8' +versionsuffix = '-nompi' + +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.""" + +site_contacts = 'i.gutheil@fz-juelich.de' + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} +toolchainopts = {'pic': True} + +source_urls = [homepage] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['6113262f6e92c5bd474f2875fa1b01054c4ad5040f6b0da7c03c98821d9ae303'] + +builddependencies = [ + ('binutils', '2.34'), +] + +# We hide it since this should be used just for Jupyter and the MPI version should be preferred for normal cases +hidden = True + +# 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 = True + +# compilation fails on AMD systems when configuring with --enable-avx-128-fma, +# because Intel compilers do not support FMA4 instructions +use_fma4 = True + +# 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.8-ipsmpi-2020-mt.eb b/Golden_Repo/f/FFTW/FFTW-3.3.8-ipsmpi-2020-mt.eb new file mode 100644 index 0000000000000000000000000000000000000000..ec54be2c15a4b1e054dc17e1d5c53fc2b79d4150 --- /dev/null +++ b/Golden_Repo/f/FFTW/FFTW-3.3.8-ipsmpi-2020-mt.eb @@ -0,0 +1,42 @@ +name = 'FFTW' +version = '3.3.8' + +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.""" + +site_contacts = 'i.gutheil@fz-juelich.de' + +toolchain = {'name': 'ipsmpi', 'version': '2020-mt'} +toolchainopts = {'pic': True} + +source_urls = [homepage] +sources = [SOURCELOWER_TAR_GZ] + +# See https://github.com/FFTW/fftw3/commit/10e2040af822a08ed49d2f6a1db45a7a3ad50582 +patches = ['fftw_no-gcc-intel_2020.patch'] + +checksums = [ + '6113262f6e92c5bd474f2875fa1b01054c4ad5040f6b0da7c03c98821d9ae303', + 'f226cc6dbdc9d11d4340567ef3227d78284c4dc44b8e63c3901a079aa9527da6' +] + +# 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 + +# 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/Fiona/Fiona-1.8.16-gpsmpi-2020-Python-3.8.5.eb b/Golden_Repo/f/Fiona/Fiona-1.8.16-gpsmpi-2020-Python-3.8.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..ada1c48ea2f5913390314432c8e10b2c825a3db4 --- /dev/null +++ b/Golden_Repo/f/Fiona/Fiona-1.8.16-gpsmpi-2020-Python-3.8.5.eb @@ -0,0 +1,50 @@ +easyblock = 'PythonBundle' + +name = 'Fiona' +version = '1.8.16' +versionsuffix = "-Python-%(pyver)s" + +homepage = 'https://github.com/Toblerity/Fiona' +description = """Fiona is designed to be simple and dependable. It focuses on reading and writing data +in standard Python IO style and relies upon familiar Python types and protocols such as files, dictionaries, +mappings, and iterators instead of classes specific to OGR. Fiona can read and write real-world data using +multi-layered GIS formats and zipped virtual file systems and integrates readily with other Python GIS +packages such as pyproj, Rtree, and Shapely.""" + +site_contacts = 'a.strube@fz-juelich.de' + +toolchain = {'name': 'gpsmpi', 'version': '2020'} + +dependencies = [ + ('Python', '3.8.5'), + ('GDAL', '3.1.2', versionsuffix), + ('Shapely', '1.7.1', versionsuffix), # optional +] + +use_pip = True + +exts_default_options = {'source_urls': [PYPI_SOURCE]} + +exts_list = [ + ('cligj', '0.5.0', { + 'checksums': ['6c7d52d529a78712491974f975c33473f430c0f7beb18c0d7a402a743dcb460a'], + }), + ('click-plugins', '1.1.1', { + 'checksums': ['46ab999744a9d831159c3411bb0c79346d94a444df9a3a3742e9ed63645f264b'], + }), + ('munch', '2.5.0', { + 'checksums': ['2d735f6f24d4dba3417fa448cae40c6e896ec1fdab6cdb5e6510999758a4dbd2'], + }), + (name, version, { + 'checksums': ['fd6dfb65959becc916e9f6928618bfd59c16cdbc413ece0fbac61489cd11255f'], + }), +] + +sanity_pip_check = True + +sanity_check_paths = { + 'files': ['bin/fio'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +moduleclass = 'data' diff --git a/Golden_Repo/g/GPAW/GPAW-20.1.0-gpsmkl-2020-Python-3.8.5.eb b/Golden_Repo/g/GPAW/GPAW-20.1.0-gpsmkl-2020-Python-3.8.5.eb index 30786b3f7a2f1341cfef22b6241b3a0b55fb2c6c..0801b3b3e9789ea0f80f72f017509934c18b24fb 100644 --- a/Golden_Repo/g/GPAW/GPAW-20.1.0-gpsmkl-2020-Python-3.8.5.eb +++ b/Golden_Repo/g/GPAW/GPAW-20.1.0-gpsmkl-2020-Python-3.8.5.eb @@ -35,7 +35,7 @@ dependencies = [ ('HDF5', '1.10.6'), ('SciPy-Stack', '2020', versionsuffix, ('gcccoremkl', '9.3.0-2020.2.254')), ('libvdwxc', '0.4.0'), - ('GPAW-setups', '0.9.20000', '', True), + ('GPAW-setups', '0.9.20000', '', SYSTEM), ] preconfigopts = 'export MKL_ROOT=$MKLROOT && ' diff --git a/Golden_Repo/g/GROMACS/GROMACS-2020.4-gpsmkl-2020.eb b/Golden_Repo/g/GROMACS/GROMACS-2020.4-gpsmkl-2020.eb index 78e0e5ebffd41e5d70075fe1d944895f0dade8eb..3e66180645f0ffc436de682571f484d7f0f54e7b 100644 --- a/Golden_Repo/g/GROMACS/GROMACS-2020.4-gpsmkl-2020.eb +++ b/Golden_Repo/g/GROMACS/GROMACS-2020.4-gpsmkl-2020.eb @@ -48,7 +48,7 @@ builddependencies = [ # Removed ('hwloc', '2.0.3') from dependencies due to runtime failures. dependencies = [ - ('CUDA', '11.0', '', True), + ('CUDA', '11.0', '', SYSTEM), ] configopts = '-DCMAKE_PREFIX_PATH=$EBROOTHWLOC -DMPIEXEC_MAX_NUMPROCS="24" ' diff --git a/Golden_Repo/g/GROMACS/GROMACS-2020.4-intel-para-2020.eb b/Golden_Repo/g/GROMACS/GROMACS-2020.4-intel-para-2020.eb index 60a7ecd70b79c667cc4ed992596c8104c8486a74..f8f204c652c3acc104ad549907e3fc8ce50f8abd 100644 --- a/Golden_Repo/g/GROMACS/GROMACS-2020.4-intel-para-2020.eb +++ b/Golden_Repo/g/GROMACS/GROMACS-2020.4-intel-para-2020.eb @@ -47,7 +47,7 @@ builddependencies = [ # Removed ('hwloc', '2.0.3') from dependencies due to runtime failures. dependencies = [ - ('CUDA', '11.0', '', True), + ('CUDA', '11.0', '', SYSTEM), ] configopts = '-DCMAKE_PREFIX_PATH=$EBROOTHWLOC -DMPIEXEC_MAX_NUMPROCS="24"' diff --git a/Golden_Repo/g/GSL/GSL-2.6-GCCcore-9.3.0.eb b/Golden_Repo/g/GSL/GSL-2.6-GCCcore-9.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..fd66530a9250d41f6b71b93581b355da88ee294c --- /dev/null +++ b/Golden_Repo/g/GSL/GSL-2.6-GCCcore-9.3.0.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'GSL' +version = '2.6' + +homepage = 'http://www.gnu.org/software/gsl/' +description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. + The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting. +""" + +site_contacts = 'a.kreuzer@fz-juelich.de' + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} +toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} + +builddependencies = [('binutils', '2.34')] + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +configopts = "--with-pic" + +moduleclass = 'numlib' diff --git a/Golden_Repo/g/Graphviz/Graphviz-2.44.1-GCCcore-9.3.0.eb b/Golden_Repo/g/Graphviz/Graphviz-2.44.1-GCCcore-9.3.0.eb index 10741d030f3611b43505166f1910ed4083a6f54b..973ed942e553d3b8bcc8366b05b7a1e938921277 100644 --- a/Golden_Repo/g/Graphviz/Graphviz-2.44.1-GCCcore-9.3.0.eb +++ b/Golden_Repo/g/Graphviz/Graphviz-2.44.1-GCCcore-9.3.0.eb @@ -37,7 +37,7 @@ dependencies = [ ('Ghostscript', '9.52'), ('GLib', '2.64.4'), ('GTS', '0.7.6'), - ('Java', '1.8', '', True), + ('Java', '1.8', '', SYSTEM), ('libpng', '1.6.37'), ('librsvg', '2.48.8'), ('Pango', '1.44.7'), diff --git a/Golden_Repo/g/gcccoremkl/gcccoremkl-9.3.0-2020.2.254.eb b/Golden_Repo/g/gcccoremkl/gcccoremkl-9.3.0-2020.2.254.eb index 4901086ff29cb198c3dedc7b9c47fc410b8bb1bd..8a73818e9690d6b87797922e0cd3fba7d7d3708c 100644 --- a/Golden_Repo/g/gcccoremkl/gcccoremkl-9.3.0-2020.2.254.eb +++ b/Golden_Repo/g/gcccoremkl/gcccoremkl-9.3.0-2020.2.254.eb @@ -19,9 +19,9 @@ local_comp = (local_comp_name, local_comp_version) dependencies = [ local_comp, ('binutils', '2.34', '', local_comp), - ('imkl', local_mklver, '', True), + ('imkl', local_mklver, '', SYSTEM), ] -hiddendependencies = [('imkl', local_mklver, '', True)] +hiddendependencies = [('imkl', local_mklver, '', SYSTEM)] moduleclass = 'toolchain' diff --git a/Golden_Repo/h/HDF/HDF-4.2.15-GCC-9.3.0.eb b/Golden_Repo/h/HDF/HDF-4.2.15-GCC-9.3.0.eb index 347165359d20775aa70bc8e1f71f75f8b88edf01..6d7aa30ea9f519149816b1dddc4a2b38df2dabe4 100644 --- a/Golden_Repo/h/HDF/HDF-4.2.15-GCC-9.3.0.eb +++ b/Golden_Repo/h/HDF/HDF-4.2.15-GCC-9.3.0.eb @@ -16,6 +16,7 @@ toolchainopts = {'opt': True, 'pic': True} builddependencies = [ ('flex', '2.6.4'), ('Bison', '3.6.4'), + ('Java', '15', '', SYSTEM), ] dependencies = [ @@ -30,7 +31,8 @@ source_urls = ['http://www.hdfgroup.org/ftp/HDF/releases/HDF%s/src/' % version.s preconfigopts = 'export CPATH="/usr/include/tirpc:$CPATH" && ' preconfigopts += 'export LIBS="-ltirpc $LIBS" && ' -configopts = '--with-szlib=$EBROOTSZIP --with-zlib=$EBROOTZLIB --includedir=%(installdir)s/include/%(namelower)s' +configopts = '--with-szlib=$EBROOTSZIP --with-zlib=$EBROOTZLIB --enable-java ' +configopts += '--includedir=%(installdir)s/include/%(namelower)s ' prebuildopts = 'export CPATH="/usr/include/tirpc:$CPATH" && ' diff --git a/Golden_Repo/h/HDF/HDF-4.2.15-iccifort-2020.2.254-GCC-9.3.0.eb b/Golden_Repo/h/HDF/HDF-4.2.15-iccifort-2020.2.254-GCC-9.3.0.eb index b63df713c01a118cea327c4cdce40ca1edab824d..437dc04eaf54f04616c25eda39085499a44fe6ed 100644 --- a/Golden_Repo/h/HDF/HDF-4.2.15-iccifort-2020.2.254-GCC-9.3.0.eb +++ b/Golden_Repo/h/HDF/HDF-4.2.15-iccifort-2020.2.254-GCC-9.3.0.eb @@ -16,6 +16,7 @@ toolchainopts = {'opt': True, 'pic': True} builddependencies = [ ('flex', '2.6.4'), ('Bison', '3.6.4'), + ('Java', '15', '', SYSTEM), ] dependencies = [ @@ -30,7 +31,8 @@ source_urls = ['http://www.hdfgroup.org/ftp/HDF/releases/HDF%s/src/' % version.s preconfigopts = 'export CPATH="/usr/include/tirpc:$CPATH" && ' preconfigopts += 'export LIBS="-ltirpc $LIBS" && ' -configopts = '--with-szlib=$EBROOTSZIP --with-zlib=$EBROOTZLIB --includedir=%(installdir)s/include/%(namelower)s' +configopts = '--with-szlib=$EBROOTSZIP --with-zlib=$EBROOTZLIB --enable-java ' +configopts += '--includedir=%(installdir)s/include/%(namelower)s ' prebuildopts = 'export CPATH="/usr/include/tirpc:$CPATH" && ' diff --git a/Golden_Repo/h/HDF5/HDF5-1.10.6-GCCcore-9.3.0-serial.eb b/Golden_Repo/h/HDF5/HDF5-1.10.6-GCCcore-9.3.0-serial.eb index bb2213c8207dc83822f5eed5345b76a32ee37546..4e9795c14cfea61c371e6345370c9b51db261870 100644 --- a/Golden_Repo/h/HDF5/HDF5-1.10.6-GCCcore-9.3.0-serial.eb +++ b/Golden_Repo/h/HDF5/HDF5-1.10.6-GCCcore-9.3.0-serial.eb @@ -20,6 +20,7 @@ checksums = ['5f9a3ee85db4ea1d3b1fa9159352aebc2af72732fc2f58c96a3f0768dba0e9aa'] builddependencies = [ ('binutils', '2.34'), + ('Java', '15', '', SYSTEM) ] dependencies = [ @@ -27,4 +28,6 @@ dependencies = [ ('Szip', '2.1.1'), ] +configopts = '--enable-java' + moduleclass = 'data' diff --git a/Golden_Repo/h/HDFView/HDFView-2.14-GCC-9.3.0.eb b/Golden_Repo/h/HDFView/HDFView-2.14-GCC-9.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..1b24781cf8f543eff5bafa69cde65b7c5a7e8d58 --- /dev/null +++ b/Golden_Repo/h/HDFView/HDFView-2.14-GCC-9.3.0.eb @@ -0,0 +1,46 @@ +easyblock = 'PackedBinary' + +name = 'HDFView' +version = '3.1.1' + +homepage = 'https://www.hdfgroup.org/products/java/' +description = """The HDF Java Products consist of HDFView (a Java browser for HDF4 and HDF5 files) and the HDF-Java wrappers. +""" + +site_contacts = 'j.goebbert@fz-juelich.de' + +toolchain = {'name': 'GCC', 'version': '9.3.0'} + +source_urls = ['https://support.hdfgroup.org/ftp/HDF5/releases/HDF-JAVA/hdfview-%(version)s/src/'] +sources = ['%(namelower)s-%(version)s.tar.gz'] + +builddependencies = [ + ('ant', '1.10.9', '-Java-%(javaver)s', SYSTEM), +] + +dependencies = [ + ('Java', '15', '', SYSTEM), + ('HDF', '4.2.15'), + ('HDF5', '1.10.6', '-serial'), +] + +install_cmd = ( + # build HDFView + 'export HDFLIBS=$EBROOTHDF && ' + 'export HDF5LIBS=$EBROOTHDF5 && ' + 'cd %(builddir)s/hdfview-%(version)s && ' + 'ant run && ' + 'ant package && ' + 'tar -xzf build/dist/HDFView-%(version)s-Linux-x86_64.tar.gz && ' + # install HDFView + 'cd %(installdir)s && ' + '%(builddir)s/hdfview-%(version)s/build/dist/HDFView-%(version)s-Linux.sh --skip-license && ' + 'mv %(installdir)s/HDFView/%(version)s/* %(installdir)s && ' + 'mkdir %(installdir)s/bin && ' + 'mv %(installdir)s/hdfview.sh %(installdir)s/bin/ && ' + 'ln -s %(installdir)s/bin/hdfview.sh %(installdir)s/bin/hdfview && ' + "sed -i 's#JAVABIN=.*#JAVABIN=$JAVA_HOME/bin#g' %(installdir)s/bin/hdfview.sh && " + 'sed -i "s#INSTALLDIR=.*#INSTALLDIR=%(installdir)s#g" %(installdir)s/bin/hdfview.sh ' +) + +moduleclass = 'vis' diff --git a/Golden_Repo/h/Horovod/Horovod-0.20.3-gomkl-2020-Python-3.8.5.eb b/Golden_Repo/h/Horovod/Horovod-0.20.3-gomkl-2020-Python-3.8.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..5f3d9fc6fdf60bf759e5bb4aa7c3a98eb7d8bed6 --- /dev/null +++ b/Golden_Repo/h/Horovod/Horovod-0.20.3-gomkl-2020-Python-3.8.5.eb @@ -0,0 +1,101 @@ +# on juwels booster, one needs to call "export UCX_LOG_LEVEL=FATAL ebw ... + +easyblock = 'PythonBundle' + +name = 'Horovod' +version = '0.20.3' +local_tf_version = '2.3.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/uber/horovod' +description = "Horovod is a distributed training framework for TensorFlow and PyTorch." + +toolchain = {'name': 'gomkl', 'version': '2020'} +toolchainopts = {'usempi': True, 'pic': True} + +site_contacts = 'a.strube@fz-juelich.de' + +builddependencies = [ + ('CMake', '3.18.0'), +] +dependencies = [ + ('Python', '3.8.5'), + ('TensorFlow', local_tf_version, '-Python-%(pyver)s', ('gcccoremkl', '9.3.0-2020.2.254')), + ('UCX', '1.9.0', '', SYSTEM), # Forced because default was 1.8.1. If the default is 1.9.0, this can go away + ('PyTorch', '1.7.0', '-Python-%(pyver)s', ('gcccoremkl', '9.3.0-2020.2.254')), + ('NCCL', '2.8.3-1', '-CUDA-11.0'), +] + +use_pip = True +sanity_pip_check = True + +# possible vars: +# HOROVOD_BUILD_ARCH_FLAGS - additional C++ compilation flags to pass in for your build architecture. +# HOROVOD_CUDA_HOME - path where CUDA include and lib directories can be found. +# HOROVOD_BUILD_CUDA_CC_LIST - List of compute capabilities to build Horovod CUDA +# kernels for (example: HOROVOD_BUILD_CUDA_CC_LIST=60,70,75) +# HOROVOD_ROCM_HOME - path where ROCm include and lib directories can be found. +# HOROVOD_NCCL_HOME - path where NCCL include and lib directories can be found. +# HOROVOD_NCCL_INCLUDE - path to NCCL include directory. +# HOROVOD_NCCL_LIB - path to NCCL lib directory. +# HOROVOD_NCCL_LINK - {SHARED, STATIC}. Mode to link NCCL library. Defaults to STATIC for CUDA, SHARED for ROCm. +# HOROVOD_WITH_GLOO - {1}. Require that Horovod is built with Gloo support enabled. +# HOROVOD_WITHOUT_GLOO - {1}. Skip building with Gloo support. +# HOROVOD_WITH_MPI - {1}. Require that Horovod is built with MPI support enabled. +# HOROVOD_WITHOUT_MPI - {1}. Skip building with MPI support. +# HOROVOD_GPU - {CUDA, ROCM}. Framework to use for GPU operations. +# HOROVOD_GPU_OPERATIONS - {NCCL, MPI}. Framework to use for GPU tensor allreduce, allgather, and broadcast. +# HOROVOD_GPU_ALLREDUCE - {NCCL, MPI}. Framework to use for GPU tensor allreduce. +# HOROVOD_GPU_ALLGATHER - {NCCL, MPI}. Framework to use for GPU tensor allgather. +# HOROVOD_GPU_BROADCAST - {NCCL, MPI}. Framework to use for GPU tensor broadcast. +# HOROVOD_ALLOW_MIXED_GPU_IMPL - {1}. Allow Horovod to install with NCCL allreduce and MPI GPU allgather / +# broadcast. Not recommended due to a possible deadlock. +# HOROVOD_CPU_OPERATIONS - {MPI, GLOO, CCL}. Framework to use for CPU tensor allreduce, allgather, and broadcast. +# HOROVOD_CMAKE - path to the CMake binary used to build Gloo (not required when using MPI). +# HOROVOD_WITH_TENSORFLOW - {1}. Require Horovod to install with TensorFlow support enabled. +# HOROVOD_WITHOUT_TENSORFLOW - {1}. Skip installing TensorFlow support. +# HOROVOD_WITH_PYTORCH - {1}. Require Horovod to install with PyTorch support enabled. +# HOROVOD_WITHOUT_PYTORCH - {1}. Skip installing PyTorch support. +# HOROVOD_WITH_MXNET - {1}. Require Horovod to install with MXNet support enabled. +# HOROVOD_WITHOUT_MXNET - {1}. Skip installing MXNet support. + +# prebuildopts = 'export LDSHARED="$CC -shared" && ' +# prebuildopts += ' HOROVOD_WITH_TENSORFLOW=1 HOROVOD_WITHOUT_PYTORCH=1 HOROVOD_WITHOUT_MXNET=1 ' +# prebuildopts += ' HOROVOD_NCCL_LINK=SHARED HOROVOD_NCCL_HOME=$EBROOTNCCL ' +# prebuildopts += ' HOROVOD_GPU_OPERATIONS=NCCL ' +# prebuildopts += ' HOROVOD_CPU_OPERATIONS=MPI ' +# prebuildopts += ' HOROVOD_GPU_ALLREDUCE=NCCL ' +# prebuildopts += ' HOROVOD_GPU_BROADCAST=NCCL ' +# prebuildopts += ' HOROVOD_WITH_MPI=1 ' + + +prebuildopts = 'export LDSHARED="$CC -shared" && ' +prebuildopts += ' HOROVOD_NCCL_LINK=SHARED HOROVOD_GPU_ALLREDUCE=NCCL HOROVOD_NCCL_HOME=$EBROOTNCCL ' +prebuildopts += ' HOROVOD_WITH_TENSORFLOW=1 HOROVOD_WITH_PYTORCH=1' +prebuildopts += ' NVCC_GENCODE="-gencode=arch=compute_70,code=sm_70 \ + -gencode=arch=compute_75,code=sm_75 \ + -gencode=arch=compute_80,code=sm_80"' + +preinstallopts = prebuildopts + + +exts_default_options = {'source_urls': [PYPI_SOURCE]} + +exts_list = [ + ('horovod', version, { + 'checksums': ['6ebc90d627af486d44335ed48489e1e8dc190607574758867c52e4e17d75a247'], + 'cuda_compute_capabilities': ['7.0', '7.5', '8.0'], + }), +] + +sanity_check_paths = { + 'files': ['bin/horovodrun'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +# This makes openmpi work. It's up to the sysadmins to correct me here. +modextravars = {'HOROVOD_MPI_THREADS_DISABLE': '1'} + +modloadmsg = 'Setting HOROVOD_MPI_THREADS_DISABLE=1. ' + +moduleclass = 'tools' diff --git a/Golden_Repo/hdfml_overlay/h/HDF/HDF-4.2.15-GCC-9.3.0.eb b/Golden_Repo/hdfml_overlay/h/HDF/HDF-4.2.15-GCC-9.3.0.eb index ec81e25c4bd30963b3e6ee6fd0cb7cc0de28cc3f..6178b0c12adac5ef08a67a76dd1afc8cb3e585d7 100644 --- a/Golden_Repo/hdfml_overlay/h/HDF/HDF-4.2.15-GCC-9.3.0.eb +++ b/Golden_Repo/hdfml_overlay/h/HDF/HDF-4.2.15-GCC-9.3.0.eb @@ -16,6 +16,7 @@ toolchainopts = {'opt': True, 'pic': True} builddependencies = [ ('flex', '2.6.4'), ('Bison', '3.6.4'), + ('Java', '15', '', SYSTEM), ] dependencies = [ @@ -28,7 +29,8 @@ dependencies = [ sources = [SOURCELOWER_TAR_GZ] source_urls = ['http://www.hdfgroup.org/ftp/HDF/releases/HDF%s/src/' % version.split('-')[0]] -configopts = '--with-szlib=$EBROOTSZIP --with-zlib=$EBROOTZLIB --includedir=%(installdir)s/include/%(namelower)s' +configopts = '--with-szlib=$EBROOTSZIP --with-zlib=$EBROOTZLIB --enable-java ' +configopts += '--includedir=%(installdir)s/include/%(namelower)s ' sanity_check_paths = { 'files': ['lib/libdf.a', 'lib/libhdf4.settings', 'lib/libmfhdf.a'], diff --git a/Golden_Repo/hdfml_overlay/h/HDF/HDF-4.2.15-iccifort-2020.2.254-GCC-9.3.0.eb b/Golden_Repo/hdfml_overlay/h/HDF/HDF-4.2.15-iccifort-2020.2.254-GCC-9.3.0.eb index 1f25d07deebddfb7ec4eb214c9b708458c516c8b..b3d0a06f6ac30a4a58270b00cf6ea4150dc7eec3 100644 --- a/Golden_Repo/hdfml_overlay/h/HDF/HDF-4.2.15-iccifort-2020.2.254-GCC-9.3.0.eb +++ b/Golden_Repo/hdfml_overlay/h/HDF/HDF-4.2.15-iccifort-2020.2.254-GCC-9.3.0.eb @@ -16,6 +16,7 @@ toolchainopts = {'opt': True, 'pic': True} builddependencies = [ ('flex', '2.6.4'), ('Bison', '3.6.4'), + ('Java', '15', '', SYSTEM), ] dependencies = [ @@ -28,7 +29,8 @@ dependencies = [ sources = [SOURCELOWER_TAR_GZ] source_urls = ['http://www.hdfgroup.org/ftp/HDF/releases/HDF%s/src/' % version.split('-')[0]] -configopts = '--with-szlib=$EBROOTSZIP --with-zlib=$EBROOTZLIB --includedir=%(installdir)s/include/%(namelower)s' +configopts = '--with-szlib=$EBROOTSZIP --with-zlib=$EBROOTZLIB --enable-java ' +configopts += '--includedir=%(installdir)s/include/%(namelower)s ' sanity_check_paths = { 'files': ['lib/libdf.a', 'lib/libhdf4.settings', 'lib/libmfhdf.a'], diff --git a/Golden_Repo/hidden_deps.txt b/Golden_Repo/hidden_deps.txt index 3a45b6bcafcf5486d586b98afa8db444c934be51..74c6b3e597f0de59005ed1b80327342ce36c69c5 100644 --- a/Golden_Repo/hidden_deps.txt +++ b/Golden_Repo/hidden_deps.txt @@ -85,6 +85,15 @@ JSON-C JSON-GLib JsonCpp JUnit +JupyterKernel-Bash +JupyterKernel-Cling +JupyterKernel-JavaScript +JupyterKernel-Julia +JupyterKernel-Octave +JupyterKernel-PyParaView +JupyterKernel-R +JupyterKernel-Ruby +JupyterProxy-XpraHTML5 kbproto LAME LevelDB diff --git a/Golden_Repo/i/ITK/ITK-5.1.2-GCCcore-9.3.0-nompi-Python-3.8.5.eb b/Golden_Repo/i/ITK/ITK-5.1.2-GCCcore-9.3.0-nompi-Python-3.8.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..87c9cb20686820c9147a754183dd376a839732e3 --- /dev/null +++ b/Golden_Repo/i/ITK/ITK-5.1.2-GCCcore-9.3.0-nompi-Python-3.8.5.eb @@ -0,0 +1,93 @@ +easyblock = 'CMakeMake' + +name = 'ITK' +version = '5.1.2' +versionsuffix = '-nompi-Python-%(pyver)s' + +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.""" + +site_contacts = 'j.goebbert@fz-juelich.de' + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/InsightSoftwareConsortium/ITK/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['651284ce6f68e8bd31db176a6b53f5679209a8ed5b6b5480c3591d66c6e10b60'] + +builddependencies = [ + ('binutils', '2.34'), + ('CMake', '3.18.0'), + ('Bison', '3.6.4'), + ('pkg-config', '0.29.2'), + ('Perl', '5.32.0'), +] + +dependencies = [ + ('Python', '3.8.5'), + ('HDF5', '1.10.6', '-serial'), + ('SWIG', '3.0.12', '-Python-%(pyver)s'), + ('libpng', '1.6.37'), + ('LibTIFF', '4.1.0'), + ('expat', '2.2.9'), + ('Eigen', '3.3.7'), + # ('ParaView', '5.8.1', '-Python-%(pyver)s'), + ('tbb', '2020.3'), + ('Qt5', '5.14.2'), + ('OpenGL', '2020'), + ('X11', '20200222'), +] + +separate_build_dir = True + +configopts = "-DCMAKE_BUILD_TYPE=Release " +configopts += "-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON " + +configopts += "-DBUILD_SHARED_LIBS=ON " +configopts += "-DBUILD_TESTING=OFF " +# configopts += "-DITK_FORBID_DOWNLOADS=ON " + +configopts += "-DITKV4_COMPATIBILITY=ON " +configopts += "-DITK_LEGACY_SILENT=ON " + +configopts += "-DITK_USE_SYSTEM_SWIG=ON " +configopts += "-DSWIG_EXECUTABLE=${EBROOTSWIG}/bin/swig " +configopts += "-DSWIG_DIR=${EBROOTSWIG} " + +configopts += "-DITK_USE_SYSTEM_EIGEN=ON " +configopts += "-DEigen3_DIR=$EBROOTEIGEN/share/eigen3/cmake " + +configopts += "-DITK_USE_SYSTEM_HDF5=ON " +configopts += "-DHDF5_DIR=$EBROOTHDF5 " + +configopts += "-DITK_WRAP_PYTHON=ON " +configopts += "-DModule_ITKReview=ON " + +# fails with ITK_WRAP_PYTON=ON, error, because vtkImage*.h cannot be found +# read: https://discourse.itk.org/t/problem-with-building-itk-with-module-itkvtkglue-on/2315 +# code: https://github.com/InsightSoftwareConsortium/ITKVtkGlue/blob/itk-5.0.1/CMakeLists.txt#L81 +# configopts="-DModule_ITKVtkGlue=ON ${configopts} " +# configopts="-DVTK_DIR=$EBROOTPARAVIEW/lib64/cmake/paraview-5.8/vtk ${configopts} " +# configopts="-DVTK_INCLUDE_DIRS=$EBROOTPARAVIEW/include/paraview-5.8 ${configopts} " +# configopts="-DVTK_LIBRARIES=$EBROOTPARAVIEW/lib64 ${configopts} " + +preinstallopts = "export PYTHONPATH=%(installdir)s/lib/python%(pyshortver)s/site-packages:$PYTHONPATH && " + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +sanity_check_paths = { + 'files': ['bin/itkTestDriver', + 'lib/libITKVTK-%(version_major_minor)s.so', + 'lib/libITKIOJPEG-%(version_major_minor)s.so', + 'lib/libITKCommon-%(version_major_minor)s.so'], + '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.1.2-gompi-2020-Python-3.8.5.eb b/Golden_Repo/i/ITK/ITK-5.1.2-gompi-2020-Python-3.8.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..2bfa842e22d52eab5f9d404bcf933bb82fff1011 --- /dev/null +++ b/Golden_Repo/i/ITK/ITK-5.1.2-gompi-2020-Python-3.8.5.eb @@ -0,0 +1,93 @@ +easyblock = 'CMakeMake' + +name = 'ITK' +version = '5.1.2' +versionsuffix = '-Python-%(pyver)s' + +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.""" + +site_contacts = 'j.goebbert@fz-juelich.de' + +toolchain = {'name': 'gompi', 'version': '2020'} +toolchainopts = {'pic': True, 'usempi': False} + +source_urls = ['https://github.com/InsightSoftwareConsortium/ITK/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['651284ce6f68e8bd31db176a6b53f5679209a8ed5b6b5480c3591d66c6e10b60'] + +builddependencies = [ + ('binutils', '2.34'), + ('CMake', '3.18.0'), + ('Bison', '3.6.4'), + ('pkg-config', '0.29.2'), + ('Perl', '5.32.0'), +] + +dependencies = [ + ('Python', '3.8.5'), + ('HDF5', '1.10.6', '-serial'), + ('SWIG', '3.0.12', '-Python-%(pyver)s'), + ('libpng', '1.6.37'), + ('LibTIFF', '4.1.0'), + ('expat', '2.2.9'), + ('Eigen', '3.3.7'), + # ('ParaView', '5.8.1', '-Python-%(pyver)s'), + ('tbb', '2020.3'), + ('Qt5', '5.14.2'), + ('OpenGL', '2020'), + ('X11', '20200222'), +] + +separate_build_dir = True + +configopts = "-DCMAKE_BUILD_TYPE=Release " +configopts += "-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON " + +configopts += "-DBUILD_SHARED_LIBS=ON " +configopts += "-DBUILD_TESTING=OFF " +# configopts += "-DITK_FORBID_DOWNLOADS=ON " + +configopts += "-DITKV4_COMPATIBILITY=ON " +configopts += "-DITK_LEGACY_SILENT=ON " + +configopts += "-DITK_USE_SYSTEM_SWIG=ON " +configopts += "-DSWIG_EXECUTABLE=${EBROOTSWIG}/bin/swig " +configopts += "-DSWIG_DIR=${EBROOTSWIG} " + +configopts += "-DITK_USE_SYSTEM_EIGEN=ON " +configopts += "-DEigen3_DIR=$EBROOTEIGEN/share/eigen3/cmake " + +configopts += "-DITK_USE_SYSTEM_HDF5=ON " +configopts += "-DHDF5_DIR=$EBROOTHDF5 " + +configopts += "-DITK_WRAP_PYTHON=ON " +configopts += "-DModule_ITKReview=ON " + +# fails with ITK_WRAP_PYTON=ON, error, because vtkImage*.h cannot be found +# read: https://discourse.itk.org/t/problem-with-building-itk-with-module-itkvtkglue-on/2315 +# code: https://github.com/InsightSoftwareConsortium/ITKVtkGlue/blob/itk-5.0.1/CMakeLists.txt#L81 +# configopts="-DModule_ITKVtkGlue=ON ${configopts} " +# configopts="-DVTK_DIR=$EBROOTPARAVIEW/lib64/cmake/paraview-5.8/vtk ${configopts} " +# configopts="-DVTK_INCLUDE_DIRS=$EBROOTPARAVIEW/include/paraview-5.8 ${configopts} " +# configopts="-DVTK_LIBRARIES=$EBROOTPARAVIEW/lib64 ${configopts} " + +preinstallopts = "export PYTHONPATH=%(installdir)s/lib/python%(pyshortver)s/site-packages:$PYTHONPATH && " + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +sanity_check_paths = { + 'files': ['bin/itkTestDriver', + 'lib/libITKVTK-%(version_major_minor)s.so', + 'lib/libITKIOJPEG-%(version_major_minor)s.so', + 'lib/libITKCommon-%(version_major_minor)s.so'], + '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.1.2-gpsmpi-2020-Python-3.8.5.eb b/Golden_Repo/i/ITK/ITK-5.1.2-gpsmpi-2020-Python-3.8.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..75f56451296a006c4f4390b526d77e7e187d2f31 --- /dev/null +++ b/Golden_Repo/i/ITK/ITK-5.1.2-gpsmpi-2020-Python-3.8.5.eb @@ -0,0 +1,93 @@ +easyblock = 'CMakeMake' + +name = 'ITK' +version = '5.1.2' +versionsuffix = '-Python-%(pyver)s' + +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.""" + +site_contacts = 'j.goebbert@fz-juelich.de' + +toolchain = {'name': 'gpsmpi', 'version': '2020'} +toolchainopts = {'pic': True, 'usempi': False} + +source_urls = ['https://github.com/InsightSoftwareConsortium/ITK/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['651284ce6f68e8bd31db176a6b53f5679209a8ed5b6b5480c3591d66c6e10b60'] + +builddependencies = [ + ('binutils', '2.34'), + ('CMake', '3.18.0'), + ('Bison', '3.6.4'), + ('pkg-config', '0.29.2'), + ('Perl', '5.32.0'), +] + +dependencies = [ + ('Python', '3.8.5'), + ('HDF5', '1.10.6', '-serial'), + ('SWIG', '3.0.12', '-Python-%(pyver)s'), + ('libpng', '1.6.37'), + ('LibTIFF', '4.1.0'), + ('expat', '2.2.9'), + ('Eigen', '3.3.7'), + # ('ParaView', '5.8.1', '-Python-%(pyver)s'), + ('tbb', '2020.3'), + ('Qt5', '5.14.2'), + ('OpenGL', '2020'), + ('X11', '20200222'), +] + +separate_build_dir = True + +configopts = "-DCMAKE_BUILD_TYPE=Release " +configopts += "-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON " + +configopts += "-DBUILD_SHARED_LIBS=ON " +configopts += "-DBUILD_TESTING=OFF " +# configopts += "-DITK_FORBID_DOWNLOADS=ON " + +configopts += "-DITKV4_COMPATIBILITY=ON " +configopts += "-DITK_LEGACY_SILENT=ON " + +configopts += "-DITK_USE_SYSTEM_SWIG=ON " +configopts += "-DSWIG_EXECUTABLE=${EBROOTSWIG}/bin/swig " +configopts += "-DSWIG_DIR=${EBROOTSWIG} " + +configopts += "-DITK_USE_SYSTEM_EIGEN=ON " +configopts += "-DEigen3_DIR=$EBROOTEIGEN/share/eigen3/cmake " + +configopts += "-DITK_USE_SYSTEM_HDF5=ON " +configopts += "-DHDF5_DIR=$EBROOTHDF5 " + +configopts += "-DITK_WRAP_PYTHON=ON " +configopts += "-DModule_ITKReview=ON " + +# fails with ITK_WRAP_PYTON=ON, error, because vtkImage*.h cannot be found +# read: https://discourse.itk.org/t/problem-with-building-itk-with-module-itkvtkglue-on/2315 +# code: https://github.com/InsightSoftwareConsortium/ITKVtkGlue/blob/itk-5.0.1/CMakeLists.txt#L81 +# configopts="-DModule_ITKVtkGlue=ON ${configopts} " +# configopts="-DVTK_DIR=$EBROOTPARAVIEW/lib64/cmake/paraview-5.8/vtk ${configopts} " +# configopts="-DVTK_INCLUDE_DIRS=$EBROOTPARAVIEW/include/paraview-5.8 ${configopts} " +# configopts="-DVTK_LIBRARIES=$EBROOTPARAVIEW/lib64 ${configopts} " + +preinstallopts = "export PYTHONPATH=%(installdir)s/lib/python%(pyshortver)s/site-packages:$PYTHONPATH && " + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +sanity_check_paths = { + 'files': ['bin/itkTestDriver', + 'lib/libITKVTK-%(version_major_minor)s.so', + 'lib/libITKIOJPEG-%(version_major_minor)s.so', + 'lib/libITKCommon-%(version_major_minor)s.so'], + '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/j/Java/Java-15.0.1.eb b/Golden_Repo/j/Java/Java-15.0.1.eb new file mode 100644 index 0000000000000000000000000000000000000000..8a385d353f128ab7b2d8d8bdff34c987fe6570ff --- /dev/null +++ b/Golden_Repo/j/Java/Java-15.0.1.eb @@ -0,0 +1,16 @@ +name = 'Java' +version = '15.0.1' + +homepage = 'http://openjdk.java.net' +description = """Java Platform, Standard Edition (Java SE) lets you develop and deploy + Java applications on desktops and servers.""" + +site_contacts = 'j.goebbert@fz-juelich.de' + +toolchain = SYSTEM + +source_urls = ['https://download.java.net/java/GA/jdk%(version)s/51f4f36ad4ef43e39d0dfdbaf6549e32/9/GPL/'] +sources = ['openjdk-%(version)s_linux-x64_bin.tar.gz'] +checksums = ['83ec3a7b1649a6b31e021cde1e58ab447b07fb8173489f27f427e731c89ed84a'] + +moduleclass = 'lang' diff --git a/Golden_Repo/j/Java/Java-15.eb b/Golden_Repo/j/Java/Java-15.eb new file mode 100644 index 0000000000000000000000000000000000000000..78c52a44db6d95cbedb8977958761b2c9773a3a6 --- /dev/null +++ b/Golden_Repo/j/Java/Java-15.eb @@ -0,0 +1,14 @@ +easyblock = 'ModuleRC' + +name = 'Java' +version = '15' + +homepage = 'https://java.com/' +description = """Java Platform, Standard Edition (Java SE) lets you develop and deploy + Java applications on desktops and servers.""" + +toolchain = SYSTEM + +dependencies = [('Java', '%(version)s.0.1')] + +moduleclass = 'lang' diff --git a/Golden_Repo/j/Jupyter/401html.patch b/Golden_Repo/j/Jupyter/401html.patch new file mode 100644 index 0000000000000000000000000000000000000000..c3e71a800541a396377737132022c67a077d7564 --- /dev/null +++ b/Golden_Repo/j/Jupyter/401html.patch @@ -0,0 +1,135 @@ +diff -Naur jupyterlab-2.2.9.orig/401.html jupyterlab-2.2.9/401.html +--- jupyterlab-2.2.9.orig/401.html 1970-01-01 01:00:00.000000000 +0100 ++++ jupyterlab-2.2.9/401.html 2020-12-11 23:24:45.301738818 +0100 +@@ -0,0 +1,131 @@ ++<!DOCTYPE html> ++<html><head> ++ <meta http-equiv="Refresh" content="0; url=https://jupyter-jsc.fz-juelich.de/hub/logout?stopall=false&alldevices=false" /> ++ ++ <meta http-equiv="content-type" content="text/html; charset=UTF-8"> ++ <meta charset="utf-8"> ++ ++ <title>jupyter-jsc</title> ++ <meta http-equiv="X-UA-Compatible" content="chrome=1"> ++ <meta property="og:image" content="/hub/static/images/mini_website.jpg"> ++ <meta property="og:locale" content="en_US"> ++ <meta property="og:site_name" content="jupyter-jsc"> ++ <meta property="og:title" content="jupyter-jsc"> ++ <meta property="og:type" content="website"> ++ <meta property="og:url" content="https://jupyter-jsc.fz-juelich.de/"> ++ ++ <link rel="stylesheet" href="/hub/static/css/style.min.css" type="text/css"> ++ <link rel="stylesheet" href="/hub/static/css/j4j_font.min.htm" type="text/css"> ++ <link rel="stylesheet" href="/hub/static/css/j4j_base.min.css" type="text/css"> ++ <link rel="stylesheet" href="/hub/static/css/j4j_base_header.min.css" type="text/css"> ++ <link rel="stylesheet" href="/hub/static/css/j4j_base_footer.min.css" type="text/css"> ++ <link rel="icon" href="/hub//static/images/favicon.svg" type="jpg/png"> ++ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.2/jquery-confirm.min.css"> ++ <link rel="stylesheet" href="/hub/static/css/j4j_page_home.min.css" type="text/css"> ++ <link rel="stylesheet" href="/hub/static/css/spawn_style.css" type="text/css"> ++ ++<body> ++ ++<div id="container"> ++ ++ <div id="header-background"> ++ <div id="header"> ++ <nav class="navbar navbar-default"> ++ <div class="container-fluid"> ++ <div class="navbar-header"> ++ <span id="jupyterhub-logo" class="pull-left"><a href="https://www.fz-juelich.de/jsc" target="_blank"><img src="/hub/static/images/jsc.png" alt="JupyterHub" class="jpy-logo" title="Home"></a></span> ++ </div> ++ ++ <div id="thenavbar"> ++ <ul class="nav navbar-nav"> ++ ++ <li><a href="https://jupyter-jsc.fz-juelich.de/hub/start">Start</a></li> ++ ++ <li id="navbarbtn-links" class="main-menu-btn menu-btn"><a>Links</a> ++ <div id="navbarmenu-links" class="menu-box"> ++ <ul> ++ <li id="navbarbtn-links-1" class="menu-btn"><a>jupyter-jsc</a> ++ <div id="navbarmenu-links-1" class="menu-box menu-sub-box show-sub-header" style=""> ++ <ul> ++ <li class=""><a href="https://jupyter-jsc.fz-juelich.de/nbviewer/github/kreuzert/Jupyter-JSC/blob/master/Extensions.ipynb">Extensions at jupyter-jsc</a></li> ++ <li class=""><a href="https://jupyter-jsc.fz-juelich.de/nbviewer/github/kreuzert/Jupyter-JSC/blob/master/FAQ.ipynb">HDFCloud FAQ</a></li> ++ <li class=""><a href="https://jupyter-jsc.fz-juelich.de/static/files/projects.html">Link Projects to Home</a></li> ++ <li class=""><a href="https://jupyter-jsc.fz-juelich.de/static/files/kernel.html">Setup your own kernel</a></li> ++ <li class=""><a target="_blank" href="https://www.unicore.eu/about-unicore/case-studies/jupyter-at-jsc/">jupyter-jsc at unicore.eu</a></li> ++ </ul> ++ </div> ++ </li> ++ <li id="navbarbtn-links-2" class="menu-btn"><a>Jupyter</a> ++ <div id="navbarmenu-links-2" class="menu-box menu-sub-box show-sub-header" style=""> ++ <ul> ++ <li class=""><a target="_blank" href="https://www-jupyter.org/">Home</a></li> ++ <li class=""><a target="_blank" href="https://newsletter.jupyter.org/">Newsletter</a></li> ++ <li class=""><a target="_blank" href="https://www.youtube.com/watch?v=HW29067qVWk">Introduction Video</a></li> ++ <li class=""><a target="_blank" href="https://blog.jupyter.org/">Blog</a></li> ++ <li class=""><a target="_blank" href="https://jupyter.org/documentation.html">Documentation</a></li> ++ <li class=""><a target="_blank" href="https://www.oreilly.com/topics/jupyter">O'Reilly on Jupyter</a></li> ++ <li class=""><a target="_blank" href="https://twitter.com/projectjupyter">Twitter</a></li> ++ <li class=""><a target="_blank" href="https://github.com/trending/jupyter-notebook">Jupyter-Notebooks</a></li> ++ </ul> ++ </div> ++ </li> ++ <li id="navbarbtn-links-3" class="menu-btn"><a>JSC</a> ++ <div id="navbarmenu-links-3" class="menu-box menu-sub-box show-sub-header" style=""> ++ <ul> ++ <li class=""><a target="_blank" href="https://www.fz-juelich.de/ias/jsc/EN/Expertise/Supercomputers/JUWELS/JUWELS_node.html">JUWELS</a></li> ++ <li class=""><a target="_blank" href="https://www.fz-juelich.de/ias/jsc/EN/Expertise/Supercomputers/JURECA/JURECA_node.html">JURECA</a></li> ++ <li class=""><a target="_blank" href="https://hbp-hpc-platform.fz-juelich.de/?page_id=1073">JURON</a></li> ++ <li class=""><a target="_blank" href="https://www.fz-juelich.de/ias/jsc/EN/News/Newsletter/newsletter_node.html">Newsletter</a></li> ++ <li class=""><a target="_blank" href="https://www.fz-juelich.de/ias/jsc/EN/News/Events/events_node.html">Events</a></li> ++ <li class=""><a target="_blank" href="https://twitter.com/fzj_jsc">Twitter</a></li> ++ </ul> ++ </div> ++ </li> ++ </ul> ++ </div> ++ </li> ++ ++ </ul> ++ </div> ++ </div> ++ </nav> ++ </div> ++ </div> ++ ++<div id="body"> ++<div class="background-wrapper"> ++ <div class="content" id="JupyterLabs-div"> ++ ++ <!--<center><h2 style="color:red">jupyter-jsc maintenance: 25-02-2020 - 26-02-2020</h2></center>--> ++ <h2> ++ The access token of your browser session to the running JupyterLab has expired. ++ </h2> ++ <p> ++ Unfortunately you have to log out and log in again from the Jupyter-JSC to regain access permission.<br> ++ <a href="https://jupyter-jsc.fz-juelich.de/hub/logout?stopall=false&alldevices=false"> Logout now </a> ++ </p> ++ ++ </div> ++</div> ++</div> ++ ++<div class="footer"> ++ <div class="footer-top-background"> ++ </div> ++ <div class="footer-bottom-background"> ++ <div class="footer-bottom"> ++ <div class="footer-links"> ++ <span>© Forschungszentrum Jülich</span> ++ <a href="https://jupyter-jsc.fz-juelich.de/hub/imprint">Imprint</a> ++ <a href="https://jupyter-jsc.fz-juelich.de/hub/privacy">Privacy Policy</a> ++ <a href="mailto:ds-support@fz-juelich.de?subject=jupyter-jsc Support&body=Please describe your problem here. (english or german)">Support</a> ++ <a href="https://jupyter-jsc.fz-juelich.de/hub/terms">Terms of Service</a> ++ </div> ++ <a href="https://www.helmholtz.de/en/" target="_blank"><img class="helmholtz-logo" src="/hub/static/images/helmholtz.png"></a> ++ </div> ++ </div> ++</div> ++ ++</div> <!-- container --> ++ ++</body></html> diff --git a/Golden_Repo/j/Jupyter/Jupyter-2020.2.5-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb b/Golden_Repo/j/Jupyter/Jupyter-2020.2.5-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..b5b826ec34b3b8385af35bf77c3ea82903fc14c2 --- /dev/null +++ b/Golden_Repo/j/Jupyter/Jupyter-2020.2.5-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb @@ -0,0 +1,1317 @@ +easyblock = 'Bundle' + +name = 'Jupyter' +version = '2020.2.5' +versionsuffix = '-Python-%(pyver)s' + +local_jlab_version = '2.2.9' + +homepage = 'http://www.jupyter.org' +description = """ +Project Jupyter exists to develop open-source software, open-standards, and services for interactive computing across +dozens of programming languages. +""" + +site_contacts = 'j.goebbert@fz-juelich.de' + +toolchain = {'name': 'gcccoremkl', 'version': '9.3.0-2020.2.254'} +toolchainopts = {'pic': True} + +builddependencies = [ + ('binutils', '2.34'), + ('unzip', '6.0'), + ('Autotools', '20200321'), + ('pkg-config', '0.29.2'), +] + +dependencies = [ + ('Python', '3.8.5'), + ('libyaml', '0.2.5'), + ('Pandoc', '2.11.0.4', '', SYSTEM), # For doc-generation + ('texlive', '20200406'), + ('ITK', '5.1.2', '-nompi' + versionsuffix), + ('HDF5', '1.10.6', '-serial'), + ('netcdf4-python', '1.5.4', '-serial' + versionsuffix), + ('FFmpeg', '4.3.1'), # for pydub + ('LLVM', '10.0.1'), # llvmlite + ('git', '2.28.0'), # for jupyterlab-git (req. >=2.0) + ('SciPy-Stack', '2020', versionsuffix), +] + +osdependencies = [('openssl'), ('git')] + +local_common_opts = { + 'req_py_majver': '3', + 'req_py_minver': '0' +} + +# this is a bundle of Python packages +exts_defaultclass = 'PythonPackage' +exts_default_options = { + 'filter': ('python -c "import %(ext_name)s"', ''), + 'download_dep_fail': True, + 'source_urls': [PYPI_SOURCE], + 'use_pip': True, + 'sanity_pip_check': True, + 'use_pip_for_deps': False, +} + +components = [ + ('nodejs', '14.15.3', { + 'easyblock': 'ConfigureMake', + 'source_urls': ['http://nodejs.org/dist/v%(version)s/'], + 'sources': ['node-v%(version)s.tar.gz'], + 'start_dir': 'node-v%(version)s', + }), +] + +exts_list = [ + ('distro', '1.5.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '0e58756ae38fbd8fc3020d54badb8eae17c5b9dcbed388b17bb55b8a5928df92')]), + ])), + ('scikit-build', '0.11.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'da40dfd69b2456fad1349a894b90180b43712152b8a85d2a00f4ae2ce8ac9a5c')]), + ('modulename', 'skbuild'), + ])), + ('ptvsd', '4.3.2', dict(list(local_common_opts.items()) + [ + ('source_tmpl', 'ptvsd-4.3.2.zip'), + ('checksums', [('sha256', '3b05c06018fdbce5943c50fb0baac695b5c11326f9e21a5266c854306bda28ab')]), + ])), + # ('cryptography', '2.8', dict(list(local_common_opts.items()) + [ + # ('checksums', [('sha256', '3cda1f0ed8747339bbdf71b9f38ca74c7b592f24f65cdb3ab3765e4b02871651')]), + # ])), # part of Python module + ('pyOpenSSL', '19.1.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '9a24494b2602aaf402be5c9e30a0b82d4a5c67528fe8fb475e3f3bc00dd69507')]), + ('modulename', 'OpenSSL'), + ])), + ('entrypoints', '0.3', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451')]), + ('use_pip', False), + ])), + ('async_generator', '1.10', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '6ebb3d106c12920aaae42ccb6f787ef5eefdcdd166ea3d628fa8476abe712144')]), + ])), + ('nest_asyncio', '1.4.3', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'eaa09ef1353ebefae19162ad423eef7a12166bcc63866f8bff8f3635353cd9fa')]), + ])), + ('absl-py', '0.8.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'd9129186431e150d7fe455f1cb1ecbb92bb5dba9da9bc3ef7b012d98c4db2526')]), + ('modulename', 'absl'), + ])), + ('websockify', '0.9.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'c35b5b79ebc517d3b784dacfb993be413a93cda5222c6f382443ce29c1a6cada')]), + ])), + ('typing_extensions', '3.7.4.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '79ee589a3caca649a9bfd2a8de4709837400dfa00b6cc81962a1e6a1815969ae')]), + ])), + # General Python packages + ('tornado', '6.0.3', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'c845db36ba616912074c5b1ee897f8e0124df269468f25e4fe21fe72f6edd7a9')]), + ])), + ('bokeh', '2.0.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'd9248bdb0156797abf6d04b5eac581dcb121f5d1db7acbc13282b0609314893a')]), + ])), + ('seaborn', '0.9.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '76c83f794ca320fb6b23a7c6192d5e185a5fcf4758966a0c0a54baee46d41e2f')]), + ])), + ('nbformat', '5.0.8', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'f545b22138865bfbcc6b1ffe89ed5a2b8e2dc5d4fe876f2ca60d8e6f702a30f8')]), + ])), + ('param', '1.9.3', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '8370d41616e257b8ed2e242ec531e0340b8c954bea414b791fa0ef6235959981')]), + ])), + # Jupyter-core and dependencies + ('alabaster', '0.7.12', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02')]), + ])), + ('Babel', '2.7.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'e86135ae101e31e2c8ec20a4e0c5220f4eed12487d5cf3f78be7e98d3a57fc28')]), + ('modulename', 'babel'), + ])), + ('snowballstemmer', '2.0.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'df3bac3df4c2c01363f3dd2cfa78cce2840a79b9f1c2d2de9ce8d31683992f52')]), + ])), + ('docutils', '0.15.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'a2aeea129088da402665e92e0b25b04b073c04b2dce4ab65caaa38b7ce2e1a99')]), + ])), + ('imagesize', '1.1.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'f3832918bc3c66617f92e35f5d70729187676313caa60c187eb0f28b8fe5e3b5')]), + ])), + ('sphinxcontrib-websupport', '1.1.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '1501befb0fdf1d1c29a800fdbf4ef5dc5369377300ddbdd16d2cd40e54c6eefc')]), + ('modulename', 'sphinxcontrib'), + ])), + ('Sphinx', '1.8.5', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'c7658aab75c920288a8cf6f09f244c6cfdae30d82d803ac1634d9f223a80ca08')]), + ('modulename', 'sphinx'), + ])), + # ('pexpect', '4.7.0', dict(list(local_common_opts.items()) + [ + # ('checksums', [('sha256', '9e2c1fd0e6ee3a49b28f95d4b33bc389c89b20af6a1255906e90ff1262ce62eb')]), + # ])), # part of Python module, but in version 4.6.0 (sanity check fails if package used from Python dependency) + ('ipython', '7.9.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'dfd303b270b7b5232b3d08bd30ec6fd685d8a58cabd54055e3d69d8f029f7280')]), + ('modulename', 'IPython'), + ])), # part of Python module, but in version 7.4.0 (sanity check fails if package used from Python dependency) + ('ipynb', '0.5.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '8d834c777ca3885289938728cc382f081c86a58e92961e86f0aba60c96938ce5')]), + ])), + ('jupyter_core', '4.7.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'aa1f9496ab3abe72da4efe0daab0cb2233997914581f9a071e07498c6add8ed3')]), + ])), + ('retrying', '1.3.3', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '08c039560a6da2fe4f2c426d0766e284d3b736e355f8dd24b37367b0bb41973b')]), + ])), + ('plotly', '4.12.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '9ec2c9f4cceac7c595ebb77c98cbeb6566a97bef777508584d9bb7d9bcb8854c')]), + ])), + ('tikzplotlib', '0.8.4', dict(list(local_common_opts.items()) + [ # renamed to matplotlib2tikz with version 0.8.0 + ('checksums', [('sha256', '284e70915fc6994472abd2fa47af947e7606085e9957898fc645f0dd9b44da8c')]), + ])), + # Jupyter client + ('jupyter_client', '6.1.7', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '49e390b36fe4b4226724704ea28d9fb903f1a3601b6882ce3105221cd09377a1')]), + ])), + ('pynvml', '8.0.4', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'c8d4eadc648c7e12a3c9182a9750afd8481b76412f83747bcc01e2aa829cde5d')]), + ])), + # Jupyter notebook and dependencies + # ('traitlets', '4.3.3', dict(list(local_common_opts.items()) + [ + # ('checksums', [('sha256', 'd023ee369ddd2763310e4c3eae1ff649689440d4ae59d7485eb4cfbbe3e359f7')]), + # ])), # part of Python module (sanity check fails if package used from Python dependency) + ('pyzmq', '18.1.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '93f44739db69234c013a16990e43db1aa0af3cf5a4b8b377d028ff24515fbeb3')]), + ('modulename', 'zmq'), + ])), + ('singledispatch', '3.4.0.3', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '5b06af87df13818d14f08a028e42f566640aef80805c3b50c5056b086e3c2b9c')]), + ])), + ('ipyparallel', '6.2.4', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '76c7b028962b0ba762e4e45b450ee3a4353e7221526a8af812e817d7ef6ac065')]), + ])), + ('ipykernel', '5.1.3', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'b368ad13edb71fa2db367a01e755a925d7f75ed5e09fbd3f06c85e7a8ef108a8')]), + ])), + ('terminado', '0.8.3', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '4804a774f802306a7d9af7322193c5390f1da0abb429e082a10ef1d46e6fb2c2')]), + ('use_pip', False), + ])), + ('bleach', '3.1.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'aa8b870d0f46965bac2c073a93444636b0e1ca74e9777e34f03dd494b8a59d48')]), + ])), + ('mistune', '0.8.4', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e')]), + ])), + ('pandocfilters', '1.4.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'b3dd70e169bb5449e6bc6ff96aea89c5eea8c5f6ab5e207fc2f521a2cf4a0da9')]), + ])), + ('testpath', '0.4.4', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '60e0a3261c149755f4399a1fff7d37523179a70fdc3abdf78de9fc2604aeec7e')]), + ('use_pip', False), + ])), + ('nbconvert', '6.0.7', dict(list(local_common_opts.items()) + [ # convert Jupyter notebooks to: HTML, Latex, etc. + # !!! nbconvert will try to read from all paths in <jupyter-config-path> the file nbconvert/templates/conf.json + # ensure it has permissions (https://github.com/jupyter/nbconvert/issues/1430) + ('checksums', [('sha256', 'cbbc13a86dfbd4d1b5dee106539de0795b4db156c894c2c5dc382062bbc29002')]), + # 6.0.7 - patch for jupyter_contrib_nbextensions needed: + # https://github.com/ipython-contrib/jupyter_contrib_nbextensions/pull/1532 + ])), + # ('ipython_genutils', '0.2.0', dict(list(local_common_opts.items()) + [ + # ('checksums', [('sha256', 'eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8')]), + # ])), # part of Python module (sanity check fails if package used from Python dependency) + ('Send2Trash', '1.5.0', dict(list(local_common_opts.items()) + [ # req. by widgetsnbextension + ('checksums', [('sha256', '60001cc07d707fe247c94f74ca6ac0d3255aabcb930529690897ca2a39db28b2')]), + ('modulename', 'send2trash'), + ])), + ('argon2-cffi', '20.1.0', dict(list(local_common_opts.items()) + [ # req. for notebook >= 6.1 + ('checksums', [('sha256', 'd8029b2d3e4b4cea770e9e5a0104dd8fa185c1724a0f01528ae4826a6d25f97d')]), + ('modulename', 'argon2'), + ])), + ('notebook', '6.1.5', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '3db37ae834c5f3b6378381229d0e5dfcbfb558d08c8ce646b1ad355147f5e91d')]), + ('patches', ['notebook-6.0.3_jsc.patch']), # allow others to read/write in .ipynb_checkpoints + ])), + ('version_information', '1.0.3', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '811b9cea4b376aa62a77dc729a937ce8e2844573b8686b5c1840147054fb938d')]), + ])), + ('lesscpy', '0.13.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'f3c6d0b544c5bcdadcd3d8319feccb4128d06676d4117c6c9396ab39c25372ad')]), + ])), + ('prometheus_client', '0.7.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '71cd24a2b3eb335cb800c7159f423df1bd4dcd5171b234be15e3f31ec9f622da')]), + ])), + ('jupyterthemes', '0.20.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '2a8ebc0c84b212ab99b9f1757fc0582a3f53930d3a75b2492d91a7c8b36ab41e')]), + ])), + # Jupyter Lab and dependencies + ('zipp', '0.6.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '3718b1cbcd963c7d4c5511a8240812904164b7f381b647143a89d3b98f9bcd8e')]), + ])), + ('jupyter-packaging', '0.4.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'd89134d2df88c30098bce0f8d8fb07b988ef0f616775dbd4b82dac9562b5cae6')]), + ])), + ('importlib_metadata', '0.23', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'aa18d7378b00b40847790e7c27e11673d7fed219354109d0e7b9e5b25dc3ad26')]), + ])), + ('jsonschema', '3.1.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '2fa0684276b6333ff3c0b1b27081f4b2305f0a36cf702a23db50edb141893c3f')]), + ])), # part of Python module in version 3.0.1 (sanity check fails if package used from Python dependency) + ('jupyterlab_launcher', '0.13.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'f880eada0b8b1f524d5951dc6fcae0d13b169897fc8a247d75fb5beadd69c5f0')]), + ])), + ('sphinx_rtd_theme', '0.4.3', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '728607e34d60456d736cc7991fd236afb828b21b82f956c5ea75f94c8414040a')]), + ])), + ('future', '0.18.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '858e38522e8fd0d3ce8f0c1feaf0603358e366d5403209674c7b617fa0c24093')]), + ])), + ('commonmark', '0.9.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60')]), + ])), + ('recommonmark', '0.6.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '29cd4faeb6c5268c633634f2d69aef9431e0f4d347f90659fd0aab20e541efeb')]), + ])), + ('jupyterlab', local_jlab_version, dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '3be8f8edea173753dd838c1b6d3bbcb6f5c801121f824a477025c1b6a1d33dc6')]), + ('patches', [('401html.patch', 1)]) + ])), + ('json5', '0.8.5', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '124b0f0da1ed2ff3bfe3a3e9b8630abd3c650852465cb52c15ef60b8e82a73b0')]), + ])), + ('jupyterlab_server', '1.2.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '5431d9dde96659364b7cc877693d5d21e7b80cea7ae3959ecc2b87518e5f5d8c')]), + ])), + ('jupyter_kernel_gateway', '2.4.3', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '6424a9f118e757ef18e9bed7784ca05ad9e633945df328ac4d8810eadc6f6ccd')]), + ('modulename', 'kernel_gateway'), + ])), + ('nbclient', '0.5.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '01e2d726d16eaf2cde6db74a87e2451453547e8832d142f73f72fddcd4fe0250')]), + ])), + # Jupyter Kernel and dependencies + ('ptyprocess', '0.6.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '923f299cc5ad920c68f2bc0bc98b75b9f838b93b599941a6b63ddbc2476394c0')]), + ('use_pip', False), + ])), + # Jupyter Widgets and dependencies + ('defusedxml', '0.6.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'f684034d135af4c6cbb949b8a4d2ed61634515257a67299e5f940fbaa34377f5')]), + ])), + ('widgetsnbextension', '3.5.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '079f87d87270bce047512400efd70238820751a11d2d8cb137a5a5bdbaf255c7')]), + ])), + ('ipywidgets', '7.5.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'e945f6e02854a74994c596d9db83444a1850c01648f1574adf144fbbabe05c97')]), + ])), + # ('ipyscales', '0.5.0', dict(list(local_common_opts.items()) + [ + # ('checksums', [('sha256', '')]), + # ])), + ('ipydatawidgets', '4.1.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'd9f94828c11e3b40350fb14a02e027f42670a7c372bcb30db18d552dcfab7c01')]), + ])), + ('traittypes', '0.2.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'be6fa26294733e7489822ded4ae25da5b4824a8a7a0e0c2dccfde596e3489bd6')]), + ])), + ('bqplot', '0.12.17', dict(list(local_common_opts.items()) + [ # 2-D plotting with d3.js + ('checksums', [('sha256', 'f103d82e7c05ec29e2c4c2357cb207acb99cf5fedbad55f26e04d8bbdb3248ad')]), + ])), + ('jupyter_bokeh', '2.0.2', dict(list(local_common_opts.items()) + [ # ipywidget for bokeh + ('checksums', [('sha256', '8dc63198833e478c3231ba5a1c5492bac859f875b1dc4e8190ce308276aa01fc')]), + ])), + ('pythreejs', '2.2.0', dict(list(local_common_opts.items()) + [ # 3-D scene visualization with three.js + ('checksums', [('sha256', 'c05f52932efd58ff18beb333a6b2bb80341e980718a313b74821c4a5c8640721')]), + ])), + ('PyWavelets', '1.1.1', dict(list(local_common_opts.items()) + [ # for a nice threejs example notebook + ('checksums', [('sha256', '1a64b40f6acb4ffbaccce0545d7fc641744f95351f62e4c6aaa40549326008c9')]), + ('modulename', 'pywt'), + ])), + ('imageio', '2.6.1', dict(list(local_common_opts.items()) + [ # for a nice threejs example notebook + ('checksums', [('sha256', 'f44eb231b9df485874f2ffd22dfd0c3c711e7de076516b9374edea5c65bc67ae')]), + ])), + ('networkx', '2.3', dict(list(local_common_opts.items()) + [ # for a nice threejs example notebook + ('source_tmpl', 'networkx-2.3.zip'), + ('checksums', [('sha256', '8311ddef63cf5c5c5e7c1d0212dd141d9a1fe3f474915281b73597ed5f1d4e3d')]), + ])), + ('scikit-image', '0.16.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'dd7fbd32da74d4e9967dc15845f731f16e7966cee61f5dc0e12e2abb1305068c')]), + ('modulename', 'skimage'), + ])), + ('ipywebrtc', '0.5.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '4db2be7d0bfcbd142b2f9f9e8303b926832a632ed4a3bc5681b319a5f226285a')]), + ])), + ('ipyvolume', '0.6.0a6', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '1a71c681dd39b514db966c4812bbbd1347ce082ee7a7bcc53f494e0546bf37ff')]), + ])), + ('branca', '0.3.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '3e762c9bdf40725f3d05ea1fda8fae9b470bfada6474e43a1242c8204a7bb15e')]), + ])), + ('ipyleaflet', '0.13.3', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'c05f138327926bc81f29a629588bd656be5ff76dd8785c1e7eac5445b1d5a432')]), + ])), + ('ipympl', '0.4.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'c33243047166fbedf3729af116186ae1894ee45db71cbc6632bf057a913ae010')]), + ])), + # ('PyYAML', '5.1.2', dict(list(local_common_opts.items()) + [ + # ('checksums', [('sha256', '01adf0b6c6f61bd11af6e10ca52b7d4057dd0be0343eb9283c878cf3af56aee4')]), + # ('modulename', 'yaml'), + # ])), # part of Python module (sanity check fails if package used from Python dependency) + # Jupyter Notebook Extensions + ('jupyter_nbextensions_configurator', '0.4.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'e5e86b5d9d898e1ffb30ebb08e4ad8696999f798fef3ff3262d7b999076e4e83')]), + ])), + ('jupyter_latex_envs', '1.4.6', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '070a31eb2dc488bba983915879a7c2939247bf5c3b669b398bdb36a9b5343872')]), + ('patches', ['jupyter_latex_envs-template_paths.patch']), + # support for nbconvert>=6.x -> https://github.com/jfbercher/jupyter_latex_envs/pull/58 + ('modulename', 'latex_envs'), + ])), + ('jupyter_highlight_selected_word', '0.2.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '9fa740424859a807950ca08d2bfd28a35154cd32dd6d50ac4e0950022adc0e7b')]), + ])), + ('prompt_toolkit', '2.0.10', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'f15af68f66e664eaa559d4ac8a928111eebd5feda0c11738b5998045224829db')]), + ])), + ('jupyter_contrib_core', '0.3.3', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'e65bc0e932ff31801003cef160a4665f2812efe26a53801925a634735e9a5794')]), + ])), + ('jupyter_contrib_nbextensions', '0.5.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'eecd28ecc2fc410226c0a3d4932ed2fac4860ccf8d9e9b1b29548835a35b22ab')]), + ('patches', ['jupyter_contrib_nbextensions-template_paths.patch']), + # support for nbconvert>=6.x -> https://github.com/ipython-contrib/jupyter_contrib_nbextensions/pull/1532 + ])), + ('rise', '5.6.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '2be45c3dbe27e63aae047c6a90be19798b6e17e9b6b0e25408b3c4f645658e26')]), + ])), + ('idna-ssl', '1.1.0', dict(list(local_common_opts.items()) + [ # indirect dep of jupyter-server-proxy + ('checksums', [('sha256', 'a933e3bb13da54383f9e8f35dc4f9cb9eb9b3b78c6b36f311254d6d0d92c6c7c')]), + ])), + ('multidict', '4.7.5', dict(list(local_common_opts.items()) + [ # indirect dep of jupyter-server-proxy + ('checksums', [('sha256', 'aee283c49601fa4c13adc64c09c978838a7e812f85377ae130a24d7198c0331e')]), + ])), + ('yarl', '1.4.2', dict(list(local_common_opts.items()) + [ # indirect dep of jupyter-server-proxy + ('checksums', [('sha256', '58cd9c469eced558cd81aa3f484b2924e8897049e06889e8ff2510435b7ef74b')]), + ])), + ('async-timeout', '3.0.1', dict(list(local_common_opts.items()) + [ # indirect dep of jupyter-server-proxy + ('checksums', [('sha256', '0c3c816a028d47f659d6ff5c745cb2acf1f966da1fe5c19c77a70282b25f4c5f')]), + ])), + ('aiohttp', '3.6.2', dict(list(local_common_opts.items()) + [ # indirect dep of jupyter-server-proxy + ('checksums', [('sha256', '259ab809ff0727d0e834ac5e8a283dc5e3e0ecc30c4d80b3cd17a4139ce1f326')]), + ])), + ('simpervisor', '0.3', dict(list(local_common_opts.items()) + [ # indirect dep of jupyter-server-proxy + ('checksums', [('sha256', 'd82e4527ae326747551e4bdfa632ff4ebef275ce721f80886c747adfdbf41c2e')]), + ])), + ('jupyter_server', '1.0.7', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'b0b3185975b32a03520aa577d90145bc288a3a12124e0e80306ec6216c9b8634')]), + ])), + ('jupyter-server-proxy', '1.5.2', dict(list(local_common_opts.items()) + [ + ('source_urls', ['https://github.com/jupyterhub/jupyter-server-proxy/archive/']), + ('source_tmpl', 'v%(version)s.tar.gz'), + ('checksums', [('sha256', '140bd642c511519ddd2acc5f70e0b46a40bbc673c888dcb3b19981005286853b')]), + ('patches', ['jupyterserverproxy-urlfile.patch']), + ])), + # Jupyter Lab Extensions + ('jupyterlab_github', '2.0.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '1f560a91711b779d08118161af044caff44159e315cb80ae830d3dfbded7bac9')]), + # do not use pypi for download -> we need to patch drive.json + ('source_urls', ['https://github.com/jupyterlab/jupyterlab-github/archive']), + ('source_tmpl', 'v%(version)s.tar.gz'), + ('patches', ['jupyterlab_github-%(version)s_jsc.patch']), + ])), + ('jupyterlab-gitlab', '2.0.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '31d3fbd9b139aca7704dd13967ac22c81e372b50c4db730f342ab7800db7a5c6')]), + # do not use pypi for download -> we need to patch drive.json + ('source_urls', ['https://gitlab.com/beenje/jupyterlab-gitlab/-/archive/%(version)s']), + ('source_tmpl', 'jupyterlab-gitlab-%(version)s.tar.gz'), + ('patches', ['jupyterlab-gitlab-%(version)s_jsc.patch']), + ])), + ('jupyterlab-quickopen', '0.5.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('90cba3a7e6ff8d2b3eaf2594079c25f82e2c158d2ec63ebd951e4042a7445f8e')]), + ])), + ('zstandard', '0.12.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'a110fb3ad1db344fbb563942d314ec5f0f3bdfd6753ec6331dded03ad6c2affb')]), + ])), + + # https://blog.kitware.com/itk-is-on-pypi-pip-install-itk-is-here/ + ('itk_core', '5.1.2', dict(list(local_common_opts.items()) + [ + ('source_tmpl', 'itk_core-5.1.2-cp38-cp38-manylinux1_x86_64.whl'), + ('checksums', [('sha256', '1f0254f0f134b709e6df3601dc38ccc45c2d5d5576fc10e1a0313d1fe8aefa84')]), + ('unpack_sources', False), + ('modulename', 'itk'), + ])), + ('itk_filtering', '5.1.2', dict(list(local_common_opts.items()) + [ + ('source_tmpl', 'itk_filtering-5.1.2-cp38-cp38-manylinux1_x86_64.whl'), + ('checksums', [('sha256', 'f4a1256c8c684329780b9f4326fb571023af1d96fbda7cb7b513b4a395a9cd42')]), + ('unpack_sources', False), + ('modulename', 'itk'), + ])), + ('itk_segmentation', '5.1.2', dict(list(local_common_opts.items()) + [ + ('source_tmpl', 'itk_segmentation-5.1.2-cp38-cp38-manylinux1_x86_64.whl'), + ('checksums', [('sha256', 'f81ba4881f7802eb5b911c4e1eac4706220647196ebda68477318630542db226')]), + ('unpack_sources', False), + ('modulename', 'itk'), + ])), + ('itk_numerics', '5.1.2', dict(list(local_common_opts.items()) + [ + ('source_tmpl', 'itk_numerics-5.1.2-cp38-cp38-manylinux1_x86_64.whl'), + ('checksums', [('sha256', '6ac84a6386cd51692ed9605b6daefcc6230ec976f93161c9c5d89cfdfe042eba')]), + ('unpack_sources', False), + ('modulename', 'itk'), + ])), + ('itk_registration', '5.1.2', dict(list(local_common_opts.items()) + [ + ('source_tmpl', 'itk_registration-5.1.2-cp38-cp38-manylinux1_x86_64.whl'), + ('checksums', [('sha256', 'd25b578ffb859f07cbad6987d1adb507e357d91f82863faeae337d8645b9d29d')]), + ('unpack_sources', False), + ('modulename', 'itk'), + ])), + ('itk_io', '5.1.2', dict(list(local_common_opts.items()) + [ + ('source_tmpl', 'itk_io-5.1.2-cp38-cp38-manylinux1_x86_64.whl'), + ('checksums', [('sha256', '6ecc528ce4ae42b6d14c972d51055856f130a13474463ba4bf187ed2afdb04b1')]), + ('unpack_sources', False), + ('modulename', 'itk'), + ])), + ('itk_meshtopolydata', '0.6.2', dict(list(local_common_opts.items()) + [ + ('source_tmpl', 'itk_meshtopolydata-0.6.2-cp38-cp38-manylinux1_x86_64.whl'), + ('checksums', [('sha256', '486e418808c27ccc76619737219fa57fcd1de2da5fcd0325ee8c4395965deb39')]), + ('unpack_sources', False), + ('modulename', 'itk'), + ])), + ('pyct', '0.4.6', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'df7b2d29f874cabdbc22e4f8cba2ceb895c48aa33da4e0fe679e89873e0a4c6e')]), + ])), + ('colorcet', '2.0.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '514813790a74b578c3eaff76b2102274c2ba8b0239c9504586df685223007dee')]), + ])), + ('itkwidgets', '0.32.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '11ee93007cf354405e01bf9a28fb1eb2fb0a5d139e1cdded1a07b47f7ee76972')]), + ])), + ('ujson', '3.2.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'abb1996ba1c1d2faf5b1e38efa97da7f64e5373a31f705b96fe0587f5f778db4')]), + ])), + # ('jupyterlab_iframe', '0.2.2', dict(list(local_common_opts.items()) + [ # open HTML URLs in Jupyter-Tabs + # ('checksums', [('sha256', '7c26cddc5f29f0b5ac6ba4707ce811f9787282549d22098b691bcdcc6692238c')]), + # ('use_pip', False), + # ])), + ('python-dotenv', '0.10.3', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'f157d71d5fec9d4bd5f51c82746b6344dffa680ee85217c123f4a0c8117c4544')]), + ('modulename', 'dotenv'), + ])), + # ('ipyauth', '0.2.5', dict(list(local_common_opts.items()) + [ + # ('checksums', [('sha256', '189db0e9fd48cf52f333ef8ac1a71b9e3a9eec6561f5085e3d7239ca2588ba87')]), + # ])), + ('jupyterlab_latex', '2.0.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '722558144e6ce71abe4fba0fb01c13c37271fa2497881bfebe9b6422d1fc795b')]), + ])), + # ('jupyterlab_slurm', '1.0.5', dict(list(local_common_opts.items()) + [ + # ('checksums', [('sha256', 'f7c6a54efe529cc47194cb4a7cbf1225fc0b0668d4dfe118405b68bde805c061')]), + # ])), + ('jupyterlmod', '2.0.2', dict(list(local_common_opts.items()) + [ + ('source_urls', ['https://github.com/cmd-ntrf/jupyter-lmod/archive/']), + ('source_tmpl', '%(version)s.tar.gz'), + ('checksums', [('sha256', 'f547432afb30cb87c8dabf78fd4cc4c35ff4b6d2aafbae19c249b7d596015c6a')]), + ('patches', [ + 'jupyterlmod-urlfile.patch', + 'jupyterlmod-packagejson.patch', + ]), + ])), + ('nbresuse', '0.3.6', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '5ba19dd0b08ff19470aeb34cda2f07276a3fb1cd750bc53f3a3e06322664e98e')]), + ])), + ('colorama', '0.4.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '05eed71e2e327246ad6b38c540c4a3117230b19679b875190486ddd2d721422d')]), + ])), + ('nbdime', '2.1.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '4e3efdcfda31c3074cb565cd8e76e2e5421b1c4560c3a00c56f8679dd15590e5')]), + ])), + ('smmap2', '2.0.5', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '29a9ffa0497e7f2be94ca0ed1ca1aa3cd4cf25a1f6b4f5f87f74b46ed91d609a')]), + ('modulename', 'smmap'), + ])), + ('gitdb2', '2.0.6', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '1b6df1433567a51a4a9c1a5a0de977aa351a405cc56d7d35f3388bad1f630350')]), + ('modulename', 'gitdb'), + ])), + ('GitPython', '3.0.4', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '3237caca1139d0a7aa072f6735f5fd2520de52195e0fa1d8b83a9b212a2498b2')]), + ('modulename', 'git'), + ])), + ('jupyterlab_git', '0.23.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '3c709c33df0b838e50f76fa2e7e0302bd3c32ec24e161ee0e8f436a3844e8b16')]), + ])), + ('sidecar', '0.4.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '3e79de269ddd2c0eff1cb26025cb9f434cf9914b777cf03eeab8347f6de7160e')]), + ])), + ('pycodestyle', '2.6.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'c58a7d2815e0e8d7972bf1803331fb0152f867bd89adf8a01dfd55085434192e')]), + ])), + ('autopep8', '1.4.4', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '4d8eec30cc81bc5617dbf1218201d770dc35629363547f17577c61683ccfb3ee')]), + ])), + ('yapf', '0.28.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '6f94b6a176a7c114cfa6bad86d40f259bbe0f10cf2fa7f2f4b3596fc5802a41b')]), + ])), + ('isort', '4.3.21', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '54da7e92468955c4fceacd0c86bd0ec997b0e1ee80d97f67c35a78b719dccab1')]), + ])), + ('toml', '0.10.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '229f81c57791a41d65e399fc06bf0848bab550a9dfd5ed66df18ce5f05e73d5c')]), + ])), + ('pathspec', '0.6.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'e285ccc8b0785beadd4c18e5708b12bb8fcf529a1e61215b3feff1d1e559ea5c')]), + ])), + ('typed_ast', '1.4.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '66480f95b8167c9c5c5c87f32cf437d585937970f3fc24386f313a4c97b44e34')]), + ])), + ('regex', '2019.11.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '720e34a539a76a1fedcebe4397290604cc2bdf6f81eca44adb9fb2ea071c0c69')]), + ])), + ('black', '19.3b0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '68950ffd4d9169716bcb8719a56c07a2f4485354fec061cdd5910aa07369731c')]), + ])), + ('jupyterlab_code_formatter', '1.3.8', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '7c415caff528e55027e82c96b60dcab0537aa5cda168997f03a4964c51e2b7b5')]), + ])), + ############### + # extras + ('mccabe', '0.6.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f')]), + ])), + ('pyflakes', '2.2.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '35b2d75ee967ea93b55750aa9edbbf72813e06a66ba54438df2cfac9e3c27fc8')]), + ])), + ('flake8', '3.8.3', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'f04b9fcbac03b0a3e58c0ab3a0ecc462e023a9faf046d57794184028123aa208')]), + ])), + ('pydocstyle', '5.0.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'f4f5d210610c2d153fae39093d44224c17429e2ad7da12a8b419aba5c2f614b5')]), + ])), + ('rope', '0.16.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'd2830142c2e046f5fc26a022fe680675b6f48f81c7fc1f03a950706e746e9dfe')]), + ])), + # base for python language server + ('parso', '0.7.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '908e9fae2144a076d72ae4e25539143d40b8e3eafbaeae03c1bfe226f4cdf12c')]), + ])), + ('jedi', '0.17.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '86ed7d9b750603e4ba582ea8edc678657fb4007894a12bcf6f4bb97892f31d20')]), + ])), + ('python-jsonrpc-server', '0.4.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '62c543e541f101ec5b57dc654efc212d2c2e3ea47ff6f54b2e7dcb36ecf20595')]), + ('modulename', 'pyls_jsonrpc'), + ])), + ('pluggy', '0.13.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0')]), + ])), + # test + ('versioneer', '0.18', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'ead1f78168150011189521b479d3a0dd2f55c94f5b07747b484fd693c3fbf335')]), + ])), + ('lazy-object-proxy', '1.4.3', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'f3900e8a5de27447acbf900b4750b0ddfd7ec1ea7fbaf11dfa911141bc522af0')]), + ])), + ('wrapt', '1.11.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '565a021fd19419476b9362b05eeaa094178de64f8361e44468f9e9d7843901e1')]), + ])), + ('astroid', '2.3.3', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '71ea07f44df9568a75d0f354c49143a4575d90645e9fead6dfb52c26a85ed13a')]), + ])), + ('wrapt', '1.11.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '565a021fd19419476b9362b05eeaa094178de64f8361e44468f9e9d7843901e1')]), + ])), + ('lazy-object-proxy', '1.4.3', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'f3900e8a5de27447acbf900b4750b0ddfd7ec1ea7fbaf11dfa911141bc522af0')]), + ])), + ('typed_ast', '1.4.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '66480f95b8167c9c5c5c87f32cf437d585937970f3fc24386f313a4c97b44e34')]), + ])), + ('six', '1.12.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'd16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73')]), + ])), + ('pylint', '2.4.4', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '3db5468ad013380e987410a8d6956226963aed94ecb5f9d3a28acca6d9ac36cd')]), + ])), + ('pytest', '5.4.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '84dde37075b8805f3d1f392cc47e38a0e59518fb46a431cfdaf7cf1ce805f970')]), + ])), + ('mock', '4.0.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'dd33eb70232b6118298d516bbcecd26704689c386594f0f3c4f13867b2c56f72')]), + ])), + ('pytest-cov', '2.8.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'cc6742d8bac45070217169f5f72ceee1e0e55b0221f54bcf24845972d3a47f2b')]), + ])), + ('pytest-xprocess', '0.13.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '779aeca517cd9c996d1544bdc510cb3cff40c48136d94bbce6148e27f30a93ff')]), + ])), + ('coverage', '5.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'f90bfc4ad18450c80b024036eaf91e4a246ae287701aaa88eaebebf150868052')]), + ])), + # python language server + ('python-language-server', '0.36.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '9984c84a67ee2c5102c8e703215f407fcfa5e62b0ae86c9572d0ada8c4b417b0')]), + ('modulename', 'pyls'), + ])), + ('jupyter-lsp', '0.9.3', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '73b5cb47fbe672bee6c02ddc4f2fbe728dc3bff589b5741835ebb80a862163af')]), + ])), + + #################### + # Jupyter Hub + # ('SQLAlchemy', '1.3.10', dict(list(local_common_opts.items()) + [ + # ('checksums', [('sha256', '0f0768b5db594517e1f5e1572c73d14cf295140756431270d89496dc13d5e46c')]), + # ])), # part of Python module in version 1.3.1 + # ('python-oauth2', '1.1.1', dict(list(local_common_opts.items()) + [ + # ('checksums', [('sha256', 'd7a8544927ac18215ba5317edd8f640a5f1f0593921bcf3ce862178312c8c9a4')]), + # ('modulename', 'oauth2'), + # ])), # part of Python module + ('pamela', '1.0.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '65c9389bef7d1bb0b168813b6be21964df32016923aac7515bdf05366acbab6c')]), + ])), + # ('alembic', '1.2.1', dict(list(local_common_opts.items()) + [ + # ('checksums', [('sha256', '9f907d7e8b286a1cfb22db9084f9ce4fde7ad7956bb496dc7c952e10ac90e36a')]), + # ])), # part of Python module in version 1.0.8 + ('certipy', '0.1.3', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '695704b7716b033375c9a1324d0d30f27110a28895c40151a90ec07ff1032859')]), + ])), + ('oauthlib', '3.1.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'bee41cc35fcca6e988463cacc3bcb8a96224f470ca547e697b604cc697b2f889')]), + ])), + ('ruamel.yaml', '0.16.5', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '412a6f5cfdc0525dee6a27c08f5415c7fd832a7afcb7a0ed7319628aed23d408')]), + ])), + ('ruamel.yaml.clib', '0.1.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'cee86ecc893a6a8ecaa7c6a9c2d06f75f614176210d78a5f155f8e78d6989509')]), + ('modulename', 'ruamel.yaml'), + ])), + ('python-json-logger', '0.1.11', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'b7a31162f2a01965a5efb94453ce69230ed208468b0bbc7fdfc56e6d8df2e281')]), + ('modulename', 'pythonjsonlogger'), + ])), + ('Jinja2', '2.11.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '93187ffbc7808079673ef52771baa950426fd664d3aad1d0fa3e95644360e250')]), + ])), + ('jupyter_telemetry', '0.1.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '445c613ae3df70d255fe3de202f936bba8b77b4055c43207edf22468ac875314')]), + ])), + ('jupyterhub', '1.1.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '852a70225a03abd631b36a207f3ffdf69326a0db4cef539825fde39ec1b713d7')]), + ('patches', ['jupyterhub-1.1.0_logoutcookie-2.0.patch']), + # copy 401.html -> <jupyter-install-dir>/share/jupyter/lab/static/ + ])), + ('appmode', '0.6.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'deac99adaa95e28fa8a56c072be653603cffa49dc06469701ac9c014b690e7c4')]), + ])), + ('HeapDict', '1.0.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '8495f57b3e03d8e46d5f1b2cc62ca881aca392fd5cc048dc0aa2e1a6d23ecdb6')]), + ])), + ('zict', '1.0.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'e34dd25ea97def518fb4c77f2c27078f3a7d6c965b0a3ac8fe5bdb0a8011a310')]), + ])), + ('tblib', '1.5.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '1735ff8fd6217446384b5afabead3b142cf1a52d242cfe6cab4240029d6d131a')]), + ])), + ('sortedcontainers', '2.1.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '974e9a32f56b17c1bac2aebd9dcf197f3eb9cd30553c5852a3187ad162e1a03a')]), + ])), + ('msgpack', '0.6.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'ea3c2f859346fcd55fc46e96885301d9c2f7a36d453f5d8f2967840efa1e1830')]), + ])), + ('dask', '2.30.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'a1669022e25de99b227c3d83da4801f032415962dac431099bf0534648e41a54')]), + ])), + ('cloudpickle', '1.4.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '0b6258a20a143603d53b037a20983016d4e978f554ec4f36b3d0895b947099ae')]), + ])), + ('distributed', '2.6.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '30b0ca195ace1e39bdd278bf1ad257f7674b3e2b8e7a2a37ce7e2ade4aecccf3')]), + ])), + ('dask-jobqueue', '0.7.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'd32ddf3e3c7db29ace102037fa5f61c8db2d945176454dc316a6ffdb8bbfe88b')]), + ])), + ('dask_labextension', '3.0.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'c613f5c76b8fce4fae167eeab3377e0706e5045a27da1200b3b173025a94d94b')]), + ])), + ('Automat', '0.8.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '269a09dfb063a3b078983f4976d83f0a0d3e6e7aaf8e27d8df1095e09dc4a484')]), + ])), + ('PyHamcrest', '1.9.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '8ffaa0a53da57e89de14ced7185ac746227a8894dbd5a3c718bf05ddbd1d56cd')]), + ('modulename', 'hamcrest'), + ])), + ('pyasn1', '0.4.8', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba')]), + ])), + ('pyasn1-modules', '0.2.8', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e')]), + ])), + ('service_identity', '18.1.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '0858a54aabc5b459d1aafa8a518ed2081a285087f349fe3e55197989232e2e2d')]), + ])), + ('Twisted', '19.7.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'd5db93026568f60cacdc0615fcd21d46f694a6bfad0ef3ff53cde2b4bb85a39d')]), + ('source_tmpl', '%(name)s-%(version)s.tar.bz2'), + ])), + ('autobahn', '19.10.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '734385b00547448b3f30a752cbfd2900d15924d77dc4a1699b8bce1ea8899f39')]), + ])), + ('constantly', '15.1.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '586372eb92059873e29eba4f9dec8381541b4d3834660707faf8ba59146dfc35')]), + ])), + ('hyperlink', '19.0.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '4288e34705da077fada1111a24a0aa08bb1e76699c9ce49876af722441845654')]), + ])), + ('incremental', '17.5.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '7b751696aaf36eebfab537e458929e194460051ccad279c72b755a167eebd4b3')]), + ])), + ('txaio', '18.8.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '67e360ac73b12c52058219bb5f8b3ed4105d2636707a36a7cdafb56fe06db7fe')]), + ])), + ('zope.interface', '4.7.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'fd1101bd3fcb4f4cf3485bb20d6cb0b56909b94d3bd2a53a6cb9d381c3da3365')]), + ])), + # ('backcall', '0.1.0', dict(list(local_common_opts.items()) + [ + # ('checksums', [('sha256', '38ecd85be2c1e78f77fd91700c76e14667dc21e2713b63876c0eb901196e01e4')]), + # ])), # part of Python module (sanity check fails if package used from Python dependency) + ('wslink', '0.1.13', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '6983114e978717a2681815b1ef4b8a0fa2c80c89c6ed09b9554a36c5869cf935')]), + ])), + ('jupyterlab_pygments', '0.1.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '31deda75bd11b014190764c79f6199aa04ef2d4cf35c1c94270fc2e19c23a5c5')]), + ])), + # ('jupyterlab-nvdashboard', '0.2.1', dict(list(local_common_opts.items()) + [ + # # throughs too many errors if nvtools or driver are not installed + # ('checksums', [('sha256', '2f69a1c3b35250cda252fe6bc684c0e99c3eac87e012843d7fc52f204ab3d0c6')]), + # ])), + ('ipyvue', '1.4.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '5b59cf92a1eb7fbef4f2d02be49ac562a721a6cf34f991ac963222cf4c8885a1')]), + ])), + ('ipyvuetify', '1.5.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '593f5d6761e304cbb78bca967030485d8835e8d310ef7d83ac1b0e6a13e4911c')]), + ])), + ('voila', '0.2.4', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '332725b88fb026ad421db90fdad53d7e8de2ffd03a8584a55d9940465932ede8')]), + ])), + ('voila-material', '0.4.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '0827a27f0f23ca87bd8f565c4c227c754516d2a120ffce0f7ab1ee12fdec959f')]), + ('modulename', 'voila'), # fake module name to trick the sanity check + ])), + ('voila-gridstack', '0.0.11', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '851dafe1912199ba36ad5544fb0f624bcb1421d2d31c0f1d03fcdcbf6d626dee')]), + ('modulename', 'voila'), + ])), + ('voila-vuetify', '0.5.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '522f4ec91eb3912a21215b6b04ad58070d1675809d7d4289ca8e42b577fde100')]), + ('modulename', 'voila'), + ])), + ('pydicom', '1.4.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '9488495a9f3e202d1219f7cb165aee0de31efd512d938c0226d34147ce860391')]), + ])), + ('dicom_upload', '0.2.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'd03f309bbae2094d3db75ffaa9753cca5982d2096ec55720a1f54343cc4a6877')]), + ])), + ('jsfileupload', '0.2.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '245cd74a3c2ed4356df9a33d0072d8ab295b60b6fdfd69c6795396d455fc8a77')]), + ])), + ('pvlink', '0.3.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'a2d5f2c204e0e779a5b865742019b4646b8592d76de87cac724dc84f64eaf80f')]), + ])), + + ('textwrap3', '0.9.2', dict(list(local_common_opts.items()) + [ + ('source_tmpl', 'textwrap3-0.9.2.zip'), + ('checksums', [('sha256', '5008eeebdb236f6303dcd68f18b856d355f6197511d952ba74bc75e40e0c3414')]), + ('use_pip', True), + ])), + ('ansiwrap', '0.8.4', dict(list(local_common_opts.items()) + [ + ('source_tmpl', 'ansiwrap-0.8.4.zip'), + ('checksums', [('sha256', 'ca0c740734cde59bf919f8ff2c386f74f9a369818cdc60efe94893d01ea8d9b7')]), + ])), + ('backports.weakref', '1.0.post1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'bc4170a29915f8b22c9e7c4939701859650f2eb84184aee80da329ac0b9825c2')]), + ])), + ('backports.tempfile', '1.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '1c648c452e8770d759bdc5a5e2431209be70d25484e1be24876cf2168722c762')]), + ])), + ('tqdm', '4.41.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '166a82cdea964ae45528e0cc89436255ff2be73dc848bdf239f13c501cae5dc7')]), + ])), + ('tenacity', '6.0.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '72f397c2bb1887e048726603f3f629ea16f88cb3e61e4ed3c57e98582b8e3571')]), + ])), + ('papermill', '2.2.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '1c452b1c5a9ab52b94c99d8b7705ae7173f6aa88a3d28a5d30cffba48a46f5b6')]), + ])), + ('pyviz_comms', '0.7.4', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '712df4cca33dda351de754742b24361eee8e4b7c1cfb0e24f50dcb802fa25624')]), + ])), + ('Markdown', '3.2.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '1fafe3f1ecabfb514a5285fca634a53c1b32a81cb0feb154264d55bf2ff22c17')]), + ('modulename', 'markdown'), + ])), + ('panel', '0.9.5', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '53340615f30f67f3182793695ebe52bf25e7bbb0751aba6f29763244350d0f42')]), + ])), + ('holoviews', '1.13.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'cf2dd426cdc08bf2ca669268ca0432634574429e5b143314ee06ad88c5382802')]), + ])), + + # PythonPackages for Tutorials + ('xarray', '0.16.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '38e8439d6c91bcd5b7c0fca349daf8e0643ac68850c987262d53526e9d7d01e4')]), + ])), + ('patsy', '0.5.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'f115cec4201e1465cd58b9866b0b0e7b941caafec129869057405bfe5b5e3991')]), + ])), + ('statsmodels', '0.10.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '9cd2194c6642a8754e85f9a6e6912cdf996bebf6ff715d3cc67f65dadfd37cc9')]), + ])), + ('cftime', '1.0.4.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '1ac64f8f9066ea756ea27d67cedaf064e7c866275218fa7c84684066a5890f70')]), + ])), + ('vega_datasets', '0.8.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'db8883dab72b6f414e1fafdbf1e8db7543bba6ed77912a4e0c197d74fcfa1c20')]), + ])), + ('Theano', '1.0.4', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '35c9bbef56b61ffa299265a42a4e8f8cb5a07b2997dabaef0f8830b397086913')]), + ('modulename', 'theano'), + ])), + ('altair', '3.3.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '9f7c521239ac5a207c3cffc29c5bdde0854fff0dec0b5f91f086ba8e5f1de8a9')]), + ])), + ('cssselect', '1.1.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'f95f8dedd925fd8f54edb3d2dfb44c190d9d18512377d3c1e2388d16126879bc')]), + ])), + ('smopy', '0.0.7', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '578b5bc2502176d210f176ab94e77974f43b32c95cd0768fb817ea2499199592')]), + ])), + ('joblib', '0.14.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '0630eea4f5664c463f23fbf5dcfc54a2bc6168902719fa8e19daf033022786c8')]), + ])), + ('scikit-learn', '0.22', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '314abf60c073c48a1e95feaae9f3ca47a2139bd77cebb5b877c23a45c9e03012')]), + ('modulename', 'sklearn'), + ])), + ('memory_profiler', '0.55.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '5fa47b274c929dd2cbcd9190afb62fec110701251d2ac2d301caaf545c81afc1')]), + ])), + ('h5py', '2.10.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '84412798925dc870ffd7107f045d7659e60f5d46d1c70c700375248bf6bf512d')]), + ])), + ('line_profiler', '3.1.0', dict(list(local_common_opts.items()) + [ + # ('checksums', [('sha256', '7218ad6bd81f8649b211974bf108933910f016d66b49651effe7bbf63667d141')]), + # ('use_pip', False), # no pip ! uses PEP 517 + ('source_tmpl', 'line_profiler-3.1.0-cp38-cp38-manylinux1_x86_64.whl'), + ('checksums', [('sha256', 'a66e089e6d98ab8a70b5f89c0367c6780abad0f0b1d624dbe5edd8f0083986c7')]), + ('unpack_sources', False), # whl package instead of tar.gz because building with skbuild->cmake fails + ])), + ('llvmlite', '0.35.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '80e51d5aa02ad72da9870e89d21f9b152b0220ca551b4596a6c0614bcde336fc')]), + ])), + ('numba', '0.52.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '44661c5bd85e3d3619be0a40eedee34e397e9ccb3d4c458b70e10bf95d1ce933')]), + ])), + ('arviz', '0.10.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'dc1f08ce02459989dd4f41fa6012e736cf2ba00ee44b29bebe0a451c58a68e42')]), + ])), + ('pymc3', '3.8', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '1bb2915e4a29877c681ead13932b0b7d276f7f496e9c3f09ba96b977c99caf00')]), + ])), + ('numexpr', '2.7.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'b0d239d9827e1bcee08344fd05835823bc60aff97232e35a928214d03ff802b1')]), + ])), + ('ipythonblocks', '1.9.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'ba923cb7a003bddee755b5a7ac9e046ffc093a04b0bdede8a0a51ef900aed0ba')]), + ])), + ('pydub', '0.23.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'c362fa02da1eebd1d08bd47aa9b0102582dff7ca2269dbe9e043d228a0c1ea93')]), + ])), + ('multipledispatch', '0.6.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'a7ab1451fd0bf9b92cab3edbd7b205622fb767aeefb4fb536c2e3de9e0a38bea')]), + ])), + ('partd', '1.1.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '6e258bf0810701407ad1410d63d1a15cfd7b773fd9efe555dac6bb82cc8832b0')]), + ])), + ('locket', '0.2.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '1fee63c1153db602b50154684f5725564e63a0f6d09366a1cb13dffcec179fb4')]), + ])), + ('fsspec', '0.6.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'ffd7cd5ac32f36698097c3d78c2c433d4c12f7e4bce3a3a4036fd3491188046d')]), + ])), + ('datashape', '0.5.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '2356ea690c3cf003c1468a243a9063144235de45b080b3652de4f3d44e57d783')]), + ])), + ('datashader', '0.11.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'b1f80415f72f92ccb660aaea7b2881ddd35d07254f7c44101709d42e819d6be6')]), + ])), + ('selenium', '3.141.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'deaf32b60ad91a4611b98d8002757f29e6f2c2d5fcaf202e1c9ad06d6772300d')]), + ])), + ('graphviz', '0.13.2', dict(list(local_common_opts.items()) + [ + ('source_tmpl', 'graphviz-0.13.2.zip'), + ('checksums', [('sha256', '60acbeee346e8c14555821eab57dbf68a169e6c10bce40e83c1bf44f63a62a01')]), + ])), + ('vincent', '0.4.4', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '5765bcd360140d2304e52728ad1d4382f3f919ea259a13932828680f2d84fcd3')]), + ])), + ('tailer', '0.4.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '78d60f23a1b8a2d32f400b3c8c06b01142ac7841b75d8a1efcb33515877ba531')]), + ])), + # Dash + ('Flask', '1.1.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '13f9f196f330c7c2c5d7a5cf91af894110ca0215ac051b5844701f2bfd934d52')]), + ])), + ('Flask-Compress', '1.4.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '468693f4ddd11ac6a41bca4eb5f94b071b763256d54136f77957cfee635badb3')]), + ])), + ('Werkzeug', '1.0.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c')]), + ])), + ('hiredis', '1.1.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '996021ef33e0f50b97ff2d6b5f422a0fe5577de21a8873b58a779a5ddd1c3132')]), + ])), + ('redis', '3.5.3', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '0e7e0cfca8660dea8b7d5cd8c4f6c5e29e11f31158c0b0ae91a397f00e5a05a2')]), + ])), + ('Flask-Caching', '1.9.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'a0356ad868b1d8ec2d0e675a6fe891c41303128f8904d5d79e180d8b3f952aff')]), + ])), + ('dash', '1.16.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'fdfe2a16c4041c7769e06e4e0eaaeb65cfd8351797ed4b37efe001384637b6c7')]), + ])), + ('dash_renderer', '1.8.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '736f8e0dcce244699457b54a2ee262a04baf389db1a8f54e98c949bb3e7e487f')]), + ])), + ('dash_core_components', '1.12.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '803b54d01ca48b90f3fc1652f7be9f818ed2882da8975a51b99fc2d77dd2727e')]), + ])), + ('dash_html_components', '1.1.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '2c662e640528c890aaa0fa23d48e51c4d13ce69a97841d856ddcaaf2c6a47be3')]), + ])), + ('dash_table', '4.10.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '1aa02180faef13434364286b60404d26164d1ce2779c765c9c52e6935991a4e9')]), + ])), + ('dash-bootstrap-components', '0.10.5', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '40500e692f59648dbc024b9e921a1e1410ee0bc97cfa963990e54e42523679b4')]), + ])), + ('dash_daq', '0.5.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'a1d85b6799f7b885652fbc44aebdb58c41254616a8d350b943beeb42ade4256a')]), + ])), + ('dash_player', '0.0.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '46114910b497f35f1aa496ed8b9ff1457d07c96171227961b671ba4164c537a0')]), + ])), + ('dash_canvas', '0.1.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '72fcfb37e1c0f68c08f6fa6cf0b5be67ecc66fcfb5253231ffc450957b640b31')]), + ])), + ('dash_bio', '0.4.8', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'a6f480b060488ab9be26129562a7bcb491ef40ae0ffae46f499fb7d5997de06c')]), + ])), + ('dash_cytoscape', '0.2.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '0669c79c197e4b150a5db7a278d1c7acebc947f3f5cbad5274835ebb44f712cd')]), + ])), + ('ansi2html', '1.5.2', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '96ae85ae7b26b7da674d87de2870ba4d1964bca733ae4614587080b6358c3ba9')]), + ])), + ('jupyter-dash', '0.3.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'e41d68aa85a7dd53480cc33feae04f4cfd7ac2ace8089c1e1630a2342e8bd8aa')]), + ])), + # more + ('fastcore', '1.3.6', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '550c201f6a0f7001994898260588e3df310968165c43ecc4fa3062dd6eee5956')]), + ])), + ('fastscript', '1.0.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '67d2315a508ffd0499af590fffaa63d276ce6eaff73ffbd60eb3315ba38d08fa')]), + ])), + # ('nbdev', '1.1.5', dict(list(local_common_opts.items()) + [ + # # nbdev < 2 needs nbconvert < 6, will change with nbdev >= 2 + # ('checksums', [('sha256', '0ce349625514e2865bbc023db597d791c45b572a7bbc8a49b320a327b9e7b721')]), + # ])), + ('PyJWT', '1.7.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '8d59a976fb773f3e6a39c85636357c4f0e242707394cadadd9814f5cbaa20e96')]), + ('modulename', 'jwt'), + ])), + ('pyunicore', '0.9.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '09cd91562feb7677c8bd9cbbe02e1b0d27d1b5817e12ef5bf4701619cac77d9b')]), + ])), + + # misc + # ('rpy2', '3.2.4', dict(list(local_common_opts.items()) + [ + # ('checksums', [('sha256', '3daf1a4b28c4e354ef989093f03b066908bf6e5082a6f4af72cc3fd928a28dc6')]), + # ])), +] + +local_jupyter_config_path = 'etc/jupyter' +local_jupyter_path = 'share/jupyter' +local_jupyterlab_dir = 'share/jupyter/lab' + +modextrapaths = { + 'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages'], + # search path to find installable data files, such as kernelspecs and notebook extensions + 'JUPYTER_PATH': [local_jupyter_path], + 'JUPYTERLAB_DIR': [local_jupyterlab_dir], + # do NOT set JUPYTER_CONFIG_DIR: if not set, if will be ${HOME}/.jupyter, which is just right + 'JUPYTER_CONFIG_PATH': [local_jupyter_config_path] # config dir at install time. + # ATTENTION: not config dir at runtime, because this is fixed to {sys.prefix}/etc/jupyter/ +} + +modextravars = { + 'JUPYTER': '%(installdir)s/bin/jupyter', + 'MKL_THREADING_LAYER': 'GNU', # https://github.com/Theano/Theano/issues/6568 +} + +# Ensure that the user-specific $HOME/.local/share/jupyter is fist entry in JUPYTHER_PATH and JUPYTER_DATA_DIR +# https://jupyter.readthedocs.io/en/latest/projects/jupyter-directories.html#envvar-JUPYTER_PATH +modluafooter = """ +prepend_path("JUPYTER_PATH", pathJoin(os.getenv("HOME"), ".local/share/jupyter")) +prepend_path("JUPYTER_DATA_DIR", pathJoin(os.getenv("HOME"),".local/share/jupyter")) +""" + +postinstallcmds = [ + # ensure we install in the correct directory !!! + '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/python3.8/site-packages:${EBROOTPYTHON}/lib/python3.8/site-packages:${PYTHONPATH}"' + ' >> %(builddir)s/env.sh' + ), + # Jupyter Paths - http://jupyter.readthedocs.io/en/latest/projects/jupyter-directories.html + 'echo "export JUPYTER=%(installdir)s/bin/jupyter" >> %(builddir)s/env.sh', + 'echo "export JUPYTER_PATH=%%(installdir)s/%s" >> %%(builddir)s/env.sh' % local_jupyter_path, + 'echo "export JUPYTERLAB_DIR=%%(installdir)s/%s" >> %%(builddir)s/env.sh' % local_jupyterlab_dir, + # Config dir at install time. ATTENTION: not config dir at runtime. This is picked up by JUPYTER_CONFIG_PATH + 'echo "export JUPYTER_CONFIG_DIR=%%(installdir)s/%s" >> %%(builddir)s/env.sh' % local_jupyter_config_path, + # jupyter will use $JUPYTER_CONFIG_DIR with "--user" + 'echo "export JUPYTER_DATA_DIR=%%(installdir)s/%s" >> %%(builddir)s/env.sh' % local_jupyter_path, + 'echo "export PATH=%(installdir)s/bin:${PATH}" >> %(builddir)s/env.sh', + + # NodeJS packages + 'source %(builddir)s/env.sh && npm install -g phantomjs-prebuilt@2.1.16', # req. export_png/export_svg of bokeh + + # Jupyter Notebook Extensions + 'source %(builddir)s/env.sh && jupyter contrib nbextension install --user', + 'source %(builddir)s/env.sh && jupyter nbextensions_configurator enable --user', + 'source %(builddir)s/env.sh && jupyter nbextension enable codefolding/main --user', + + ('source %(builddir)s/env.sh && ' + ' jupyter nbextension install widgetsnbextension --py --nbextensions=${JUPYTER_PATH}/nbextensions'), + 'source %(builddir)s/env.sh && jupyter nbextension enable widgetsnbextension --py --user', + + 'source %(builddir)s/env.sh && jupyter nbextension enable ipyvuetify --py --user', + + 'source %(builddir)s/env.sh && jupyter nbextension install rise --py --nbextensions=${JUPYTER_PATH}/nbextensions', + 'source %(builddir)s/env.sh && jupyter nbextension enable rise --py --user', + + 'source %(builddir)s/env.sh && jupyter nbextension enable appmode --py --user', + 'source %(builddir)s/env.sh && jupyter serverextension enable appmode --py', + + # Jupyter Notebook Extensions + 'source %(builddir)s/env.sh && jupyter labextension install @jupyter-widgets/jupyterlab-manager@2.0.0 --no-build', + 'source %(builddir)s/env.sh && jupyter labextension install @jupyter-widgets/jupyterlab-sidecar@0.5.0 --no-build', + + # 'source %(builddir)s/env.sh && jupyter labextension install @jupyterlab/server-proxy@2.1.1 --no-build', + ('source %(builddir)s/env.sh && ' + ' cd %(builddir)s/jupyterserverproxy/jupyter-server-proxy-1.5.2/jupyterlab-server-proxy/ && ' + ' npm install && ' # install npm package dependencies incurrent directory + ' npm run build && ' # optional build step if using TypeScript, babel, etc. + ' jupyter labextension install --no-build'), # install the current directory as an extension' + # 'source %(builddir)s/env.sh && jupyter labextension install @jupyterlab/github@2.0.0 --no-build', + 'source %(builddir)s/env.sh && jupyter labextension install @jupyterlab/latex@2.0.1 --no-build', + 'source %(builddir)s/env.sh && jupyter labextension install @jupyterlab/git@0.23.1 --no-build', + 'source %(builddir)s/env.sh && jupyter labextension install @jupyterlab/toc@4.0.0 --no-build', + + 'source %(builddir)s/env.sh && jupyter labextension install jupyterlab-datawidgets@6.3.0 --no-build', + 'source %(builddir)s/env.sh && jupyter labextension install jupyterlab-plotly@4.8.1 --no-build', + 'source %(builddir)s/env.sh && jupyter labextension install jupyterlab-gitlab@2.0.0 --no-build', + # 'source %(builddir)s/env.sh && jupyter labextension install jupyterlab_iframe@0.2.2 --no-build', + + # this might interfer with Xpra-icon: https://github.com/cmd-ntrf/jupyter-lmod/issues/30 + ('source %(builddir)s/env.sh && ' + ' cd %(builddir)s/jupyterlmod/jupyter-lmod-2.0.2/jupyterlab/ && ' + ' npm install && ' # install npm package dependencies incurrent directory + ' npm run build && ' # optional build step if using TypeScript, babel, etc. + ' jupyter labextension install --no-build'), # install the current directory as an extension + # 'source %(builddir)s/env.sh && jupyter labextension install jupyterlab-nvdashboard@0.3.1 --no-build', + 'source %(builddir)s/env.sh && jupyter labextension install jupyterlab-dash@0.3.0 --no-build', + + 'source %(builddir)s/env.sh && jupyter labextension install jupyterlab-topbar-extension@0.5.0 --no-build', + 'source %(builddir)s/env.sh && jupyter labextension install jupyterlab-system-monitor@0.6.0 --no-build', + 'source %(builddir)s/env.sh && jupyter labextension install jupyterlab-theme-toggle@0.5.0 --no-build', + 'source %(builddir)s/env.sh && jupyter labextension install jupyterlab-control@1.1.1 --no-build', + 'source %(builddir)s/env.sh && jupyter labextension install jupyterlab-favorites@2.0.0 --no-build', + # store default in ../share/jupyter/lab/schemas/jupyterlab-favorites/favorites.json + # 'source %(builddir)s/env.sh && jupyter labextension install jupyterlab-tour@2.1.1 --no-build', + # tour-state on/off is saved in workspace-file in ~/.jupyter/lab/workspaces/ + + 'source %(builddir)s/env.sh && jupyter labextension install jupyter-matplotlib@0.7.4 --no-build', + 'source %(builddir)s/env.sh && jupyter labextension install jupyter-leaflet@0.13.2 --no-build', + 'source %(builddir)s/env.sh && jupyter labextension install jupyter-threejs@2.2.0 --no-build', + 'source %(builddir)s/env.sh && jupyter labextension install jupyter-vuetify@1.5.1 --no-build', + + 'source %(builddir)s/env.sh && jupyter labextension install nbdime-jupyterlab@2.0.1 --no-build', + 'source %(builddir)s/env.sh && jupyter labextension install dask-labextension@3.0.0 --no-build', + 'source %(builddir)s/env.sh && jupyter labextension install ipyvolume@0.6.0-alpha.5 --no-build', + 'source %(builddir)s/env.sh && jupyter labextension install plotlywidget@4.12.0 --no-build', + 'source %(builddir)s/env.sh && jupyter labextension install bqplot@0.5.17 --no-build', + + 'source %(builddir)s/env.sh && jupyter labextension install dicom-upload@0.2.0 --no-build', + 'source %(builddir)s/env.sh && jupyter labextension install jsfileupload@0.2.0 --no-build', + + 'source %(builddir)s/env.sh && jupyter labextension install @pyviz/jupyterlab_pyviz@1.0.4 --no-build', + 'source %(builddir)s/env.sh && jupyter labextension install @bokeh/jupyter_bokeh@2.0.2 --no-build', + 'source %(builddir)s/env.sh && jupyter labextension install @jupyter-voila/jupyterlab-preview@1.1.0 --no-build', + + 'source %(builddir)s/env.sh && jupyter labextension install @parente/jupyterlab-quickopen@0.5.0 --no-build', + 'source %(builddir)s/env.sh && jupyter labextension install @ryantam626/jupyterlab_code_formatter@1.3.8 --no-build', + ('source %(builddir)s/env.sh && ' + ' jupyter labextension install @krassowski/jupyterlab_go_to_definition@1.0.0 --no-build'), + 'source %(builddir)s/env.sh && jupyter labextension install @krassowski/jupyterlab-lsp@2.1.2 --no-build', + + 'source %(builddir)s/env.sh && jupyter labextension install pvlink@0.3.1 --no-build', + 'source %(builddir)s/env.sh && jupyter labextension install itkwidgets@0.32.0 --no-build', + + # build JupyterLab app directory for all previous installed extensions in one go + 'source %(builddir)s/env.sh && jupyter lab build --dev-build=False', # --minimize=False + + # jupyterlab server extensions + 'source %(builddir)s/env.sh && jupyter serverextension enable jupyter_server_proxy --py', + 'source %(builddir)s/env.sh && jupyter serverextension enable jupyterlab_code_formatter --py', + # 'source %(builddir)s/env.sh && jupyter serverextension enable jupyterlab_sql --py', + # 'source %(builddir)s/env.sh && jupyter serverextension enable jupyterlab_iframe --py', + 'source %(builddir)s/env.sh && jupyter serverextension enable jupyterlab_git --py', + 'source %(builddir)s/env.sh && jupyter serverextension enable jupyter_lsp --py', + 'source %(builddir)s/env.sh && jupyter serverextension enable dask_labextension --py', + + # configure jupyterlab extensions + + # Send2Trash + # disable + ( + '{ cat >> %(installdir)s/etc/jupyter/jupyter_notebook_config.py; } << \'EOF\'\n' + 'c.FileContentsManager.delete_to_trash = False\n' + 'EOF' + ), + + # GitLab-extension + # for security reasons access-token must be set in the server extension: + ( + '{ cat >> %(installdir)s/etc/jupyter/jupyter_notebook_config.py; } << \'EOF\'\n' + '# no username+password needed, if repo is public or we have the token for a specific URL\n' + '# c.GitLabConfig.access_token = "<API-TOKEN>" # give api-access of user "jupyter.jsc@fz-juelich.de"\n' + 'c.GitLabConfig.allow_client_side_access_token = False\n' + 'c.GitLabConfig.url = "https://gitlab.version.fz-juelich.de"\n' + 'c.GitLabConfig.validate_cert = False\n' + 'EOF' + ), + + # GitHub-extension + # for security reasons access-token must be set in the server extension: + ( + '{ cat >> %(installdir)s/etc/jupyter/jupyter_notebook_config.py; } << \'EOF\'\n' + '# no username+password needed, if repo is public or we have the token for a specific URL\n' + '# c.GitHubConfig.access_token = "<API-TOKEN>"\n' + 'c.GitHubConfig.allow_client_side_access_token = False\n' + 'c.GitHubConfig.url = "https://github.com"\n' + 'c.GitHubConfig.validate_cert = False\n' + 'EOF' + ), + + # iframe-extension + ( + '{ cat >> %(installdir)s/etc/jupyter/jupyter_notebook_config.py; } << \'EOF\'\n' + '# c.JupyterLabIFrame.iframes = [\'list\', \'of\', \'sites\']\n' + 'c.JupyterLabIFrame.welcome = "http://www.fz-juelich.de/jsc"\n' + 'EOF' + ), + + # define .ipynb_checkpoints permissions + ( + '{ cat >> %(installdir)s/etc/jupyter/jupyter_notebook_config.py; } << \'EOF\'\n' + 'c.FileCheckpoints.checkpoint_permissions = 0o664\n' + 'c.FileCheckpoints.restore_permissions = 0o644\n' + 'c.FileCheckpoints.checkpoint_dir_umask = 0o002\n' + 'EOF' + ), + + # modify the installation files, which would be overwritten if done before (must be last commands to run) + ( + 'cp %(builddir)s/jupyterlabgitlab/jupyterlab-gitlab-2.0.0/schema/drive.json' + ' %(installdir)s/share/jupyter/lab/schemas/jupyterlab-gitlab/drive.json' + ), + + # Add the overrides file + ( + '{ cat > %(builddir)s/file_jupyter-overrides_jsc.patch; } << \'EOF\'\n' + 'diff -Naur share.orig/jupyter/lab/settings/overrides.json share/jupyter/lab/settings/overrides.json\n' + '--- share.orig/jupyter/lab/settings/overrides.json 1970-01-01 01:00:00.000000000 +0100\n' + '+++ share/jupyter/lab/settings/overrides.json 2019-11-26 13:40:46.560731000 +0100\n' + '@@ -0,0 +1,8 @@\n' + '+{\n' + '+ "jupyterlab-gitlab:drive": {\n' + '+ "baseUrl": "https://gitlab.version.fz-juelich.de"\n' + '+ },\n' + '+ "@parente/jupyterlab-quickopen:plugin": {\n' + '+ "relativeSearch": true\n' + '+ }\n' + '+}\n' + 'EOF' + ), + 'patch -p0 -d %(installdir)s < %(builddir)s/file_jupyter-overrides_jsc.patch', + + # add webpage, which leads back to https://jupyter-jsc.fz-juelich.de + 'cp %%(builddir)s/jupyterlab/jupyterlab-%s/401.html %%(installdir)s/share/jupyter/lab/static/' % local_jlab_version, + + # ################################################### + # IMPORTANT: + # start JupyterLab once (for 60 seconds) to allow some cleanup at first start + # ################################################### + ( + 'source %(builddir)s/env.sh && ' + '{(jupyter lab --no-browser) & } && JLAB_PID=$! && ' + 'sleep 60 && ' + 'jupyter notebook list --json | grep $JLAB_PID | ' + 'awk \'{for(i=1;i<=NF;i++)if($i=="\\"port\\":")print $(i+1)}\' | sed \'s/,*$//g\' | ' + 'xargs -i jupyter notebook stop {}' + ), + + # Ensure Jupyter does not want to build anything on startup + # The build_config.json file is used to track the local directories that have been installed + # using jupyter labextension install <directory>, as well as core extensions that have been explicitly uninstalled. + # 'if [ -e %(installdir)s/share/jupyter/lab/settings/build_config.json ]; then exit 1; fi ', + ( + '{ cat > %(installdir)s/share/jupyter/lab/settings/build_config.json; } << \'EOF\'\n' + '{\n' + ' "local_extensions": {}\n' + '}\n' + 'EOF' + ), + + # Ensure we remove the virtuel environment to avoid wrong search path for python packages + 'rm %(installdir)s/pyvenv.cfg', + 'rm %(installdir)s/bin/python', + 'rm %(installdir)s/bin/python3', + 'rm %(installdir)s/bin/activate', + 'rm %(installdir)s/bin/activate*', + 'rm %(installdir)s/bin/easy_install*', + 'rm %(installdir)s/bin/pip*', + + # Compile Python files to byte-code to speedup execution + # ERROR: returns with exit code 1, because some files cannot be compiled for different reasons + # ################################################### + # Disable possible, because sanity check will # + # force the compile of all python packages anyway# + # ################################################### + # 'source %(builddir)s/env.sh && python -m compileall %(installdir)s', + + # ################################################### + # IMPORTANT: must be done manual after eb-install: # + # ################################################### + # 'chmod -R g-w %(installdir)s ', # software-group must not modify the installation on accident + # 'chmod -R ugo-w %(installdir)s/share ', # Noone should add files/configs to the global share after install + # 'chmod -R ug-w ...../2020/software/Python/3.8.5-GCCcore-9.3.0/share ', # Python module, too +] + +# specify that Bundle easyblock should run a full sanity check, rather than just trying to load the module +# full_sanity_check = True # would result in sanity-errors about yaml,ipython_genutils,IPython,traitlets +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +moduleclass = 'tools' diff --git a/Golden_Repo/j/Jupyter/jupyter_contrib_nbextensions-template_paths.patch b/Golden_Repo/j/Jupyter/jupyter_contrib_nbextensions-template_paths.patch new file mode 100644 index 0000000000000000000000000000000000000000..c51dfd38ddbf859c8282aa48875224addaf60f38 --- /dev/null +++ b/Golden_Repo/j/Jupyter/jupyter_contrib_nbextensions-template_paths.patch @@ -0,0 +1,121 @@ +diff -Naur jupyter_contrib_nbextensions.orig/CHANGELOG.md jupyter_contrib_nbextensions/CHANGELOG.md +--- jupyter_contrib_nbextensions.orig/CHANGELOG.md 2020-11-22 12:43:10.086824740 +0100 ++++ jupyter_contrib_nbextensions/CHANGELOG.md 2020-11-22 12:47:11.839564000 +0100 +@@ -21,6 +21,9 @@ + This is where each new PR to the project should add a summary of its changes, + which makes it much easier to fill in each release's changelog :) + ++- Replace `template_path` with `template_paths` [#1532](https://github.com/ipython-contrib/jupyter_contrib_nbextensions/pull/1532). Nbconvert 6.0 replaced `template_path` with `template_paths` (see https://nbconvert.readthedocs.io/en/latest/changelog.html#significant-changes). This change in Nbconvert 6.0 causes errors in jupyter_latex_envs and in jupyter_contrib_nbextensions (see [#1529](https://github.com/ipython-contrib/jupyter_contrib_nbextensions/issues/1529). ++- Update `install_requires` list in `setup.py` with 'nbconvert >=6.0' ++ + 0.5.1 + ----- + +diff -Naur jupyter_contrib_nbextensions.orig/setup.py jupyter_contrib_nbextensions/setup.py +--- jupyter_contrib_nbextensions.orig/setup.py 2020-11-22 12:43:10.325780000 +0100 ++++ jupyter_contrib_nbextensions/setup.py 2020-11-22 12:47:11.842264000 +0100 +@@ -67,7 +67,7 @@ + 'jupyter_highlight_selected_word >=0.1.1', + 'jupyter_latex_envs >=1.3.8', + 'jupyter_nbextensions_configurator >=0.4.0', +- 'nbconvert >=4.2', ++ 'nbconvert >=6.0', + 'notebook >=4.0', + 'pyyaml', + 'tornado', +@@ -81,7 +81,7 @@ + 'pip', + 'requests', + ], +- 'test:python_version == "2.7"': [ ++ 'test:python_version == "3.8"': [ + 'mock', + ], + }, +diff -Naur jupyter_contrib_nbextensions.orig/src/jupyter_contrib_nbextensions/config_scripts/highlight_html_cfg.py jupyter_contrib_nbextensions/src/jupyter_contrib_nbextensions/config_scripts/highlight_html_cfg.py +--- jupyter_contrib_nbextensions.orig/src/jupyter_contrib_nbextensions/config_scripts/highlight_html_cfg.py 2020-11-22 12:43:10.330209000 +0100 ++++ jupyter_contrib_nbextensions/src/jupyter_contrib_nbextensions/config_scripts/highlight_html_cfg.py 2020-11-22 12:47:11.799365000 +0100 +@@ -7,7 +7,7 @@ + + c = get_config() # noqa + c.NbConvertApp.export_format = "html" +-c.Exporter.template_path = [ ++c.Exporter.template_paths = [ + '.', + jupyter_contrib_nbextensions.nbconvert_support.templates_directory(), + os.path.join(jcnbe_dir, 'nbextensions', 'highlighter') +diff -Naur jupyter_contrib_nbextensions.orig/src/jupyter_contrib_nbextensions/config_scripts/highlight_latex_cfg.py jupyter_contrib_nbextensions/src/jupyter_contrib_nbextensions/config_scripts/highlight_latex_cfg.py +--- jupyter_contrib_nbextensions.orig/src/jupyter_contrib_nbextensions/config_scripts/highlight_latex_cfg.py 2020-11-22 12:43:10.331124000 +0100 ++++ jupyter_contrib_nbextensions/src/jupyter_contrib_nbextensions/config_scripts/highlight_latex_cfg.py 2020-11-22 12:47:11.801863000 +0100 +@@ -7,7 +7,7 @@ + + c = get_config() # noqa + c.NbConvertApp.export_format = "latex" +-c.Exporter.template_path = [ ++c.Exporter.template_paths = [ + '.', + jupyter_contrib_nbextensions.nbconvert_support.templates_directory(), + os.path.join(jcnbe_dir, 'nbextensions', 'highlighter') +diff -Naur jupyter_contrib_nbextensions.orig/src/jupyter_contrib_nbextensions/install.py jupyter_contrib_nbextensions/src/jupyter_contrib_nbextensions/install.py +--- jupyter_contrib_nbextensions.orig/src/jupyter_contrib_nbextensions/install.py 2020-11-22 12:43:10.332127000 +0100 ++++ jupyter_contrib_nbextensions/src/jupyter_contrib_nbextensions/install.py 2020-11-22 12:47:11.804683000 +0100 +@@ -124,7 +124,7 @@ + if logger: + logger.info('-- Configuring nbconvert template path') + # our templates directory +- _update_config_list(config, 'Exporter.template_path', [ ++ _update_config_list(config, 'Exporter.template_paths', [ + '.', + jupyter_contrib_nbextensions.nbconvert_support.templates_directory(), + ], install) +diff -Naur jupyter_contrib_nbextensions.orig/src/jupyter_contrib_nbextensions/migrate.py jupyter_contrib_nbextensions/src/jupyter_contrib_nbextensions/migrate.py +--- jupyter_contrib_nbextensions.orig/src/jupyter_contrib_nbextensions/migrate.py 2020-11-22 12:43:10.333126000 +0100 ++++ jupyter_contrib_nbextensions/src/jupyter_contrib_nbextensions/migrate.py 2020-11-22 12:47:11.807881000 +0100 +@@ -128,7 +128,7 @@ + config = Config(cm.get(config_basename)) + if config and logger: + logger.info('- Removing old config values from {}'.format(config_path)) +- _update_config_list(config, 'Exporter.template_path', [ ++ _update_config_list(config, 'Exporter.template_paths', [ + '.', os.path.join(jupyter_data_dir(), 'templates'), + ], False) + _update_config_list(config, 'Exporter.preprocessors', [ +diff -Naur jupyter_contrib_nbextensions.orig/src/jupyter_contrib_nbextensions/nbconvert_support/exporter_inliner.py jupyter_contrib_nbextensions/src/jupyter_contrib_nbextensions/nbconvert_support/exporter_inliner.py +--- jupyter_contrib_nbextensions.orig/src/jupyter_contrib_nbextensions/nbconvert_support/exporter_inliner.py 2020-11-22 12:43:10.337543000 +0100 ++++ jupyter_contrib_nbextensions/src/jupyter_contrib_nbextensions/nbconvert_support/exporter_inliner.py 2020-11-22 12:47:11.811491000 +0100 +@@ -39,8 +39,8 @@ + templates_directory) + contrib_templates_dir = templates_directory() + +- template_path = c.TemplateExporter.setdefault('template_path', []) +- if contrib_templates_dir not in template_path: +- template_path.append(contrib_templates_dir) ++ template_paths = c.TemplateExporter.setdefault('template_paths', []) ++ if contrib_templates_dir not in template_paths: ++ template_paths.append(contrib_templates_dir) + + return c +diff -Naur jupyter_contrib_nbextensions.orig/src/jupyter_contrib_nbextensions/nbconvert_support/toc2.py jupyter_contrib_nbextensions/src/jupyter_contrib_nbextensions/nbconvert_support/toc2.py +--- jupyter_contrib_nbextensions.orig/src/jupyter_contrib_nbextensions/nbconvert_support/toc2.py 2020-11-22 12:45:58.854592000 +0100 ++++ jupyter_contrib_nbextensions/src/jupyter_contrib_nbextensions/nbconvert_support/toc2.py 2020-11-22 12:47:11.814530000 +0100 +@@ -52,7 +52,7 @@ + templates_directory) + c.merge(super(TocExporter, self).default_config) + +- c.TemplateExporter.template_path = [ ++ c.TemplateExporter.template_paths = [ + '.', + templates_directory(), + ] +diff -Naur jupyter_contrib_nbextensions.orig/src/jupyter_contrib_nbextensions/nbextensions/runtools/readme.md jupyter_contrib_nbextensions/src/jupyter_contrib_nbextensions/nbextensions/runtools/readme.md +--- jupyter_contrib_nbextensions.orig/src/jupyter_contrib_nbextensions/nbextensions/runtools/readme.md 2020-11-22 12:43:10.871469000 +0100 ++++ jupyter_contrib_nbextensions/src/jupyter_contrib_nbextensions/nbextensions/runtools/readme.md 2020-11-22 12:47:11.816660000 +0100 +@@ -78,7 +78,7 @@ + ``` + + The template needs to be in a path where nbconvert can find it. This can be your local path or specified in +-`jupyter_nbconvert_config` or `jupyter_notebook_config` as `c.Exporter.template_path`, see [Jupyter docs](https://jupyter-notebook.readthedocs.io/en/latest/config.html). ++`jupyter_nbconvert_config` or `jupyter_notebook_config` as `c.Exporter.template_paths`, see [Jupyter docs](https://jupyter-notebook.readthedocs.io/en/latest/config.html). + + For HTML export a template is provided as `nbextensions.tpl` in the `jupyter_contrib_nbextensions` templates directory. Alternatively you can create your own template: + ``` diff --git a/Golden_Repo/j/Jupyter/jupyter_latex_envs-template_paths.patch b/Golden_Repo/j/Jupyter/jupyter_latex_envs-template_paths.patch new file mode 100644 index 0000000000000000000000000000000000000000..451f439ae2cb32668895a3c8b77a58896b8e8040 --- /dev/null +++ b/Golden_Repo/j/Jupyter/jupyter_latex_envs-template_paths.patch @@ -0,0 +1,48 @@ +diff -Naur jupyter_latex_envs.orig/src/latex_envs/latex_envs.py jupyter_latex_envs/src/latex_envs/latex_envs.py +--- jupyter_latex_envs.orig/src/latex_envs/latex_envs.py 2020-11-22 17:04:43.617982112 +0100 ++++ jupyter_latex_envs/src/latex_envs/latex_envs.py 2020-11-22 17:05:35.063217000 +0100 +@@ -301,12 +301,12 @@ + ) + c.merge(super(LenvsHTMLExporter, self).default_config) + if os.path.isdir(os.path.join(os.path.dirname(__file__), 'templates')): +- c.TemplateExporter.template_path = ['.', ++ c.TemplateExporter.template_paths = ['.', + os.path.join(os.path.dirname(__file__), 'templates')] + else: + from jupyter_contrib_nbextensions.nbconvert_support import ( + templates_directory) +- c.TemplateExporter.template_path = ['.', templates_directory()] ++ c.TemplateExporter.template_paths = ['.', templates_directory()] + + return c + +@@ -364,12 +364,12 @@ + ) + c.merge(super(LenvsSlidesExporter, self).default_config) + if os.path.isdir(os.path.join(os.path.dirname(__file__), 'templates')): +- c.TemplateExporter.template_path = ['.', ++ c.TemplateExporter.template_paths = ['.', + os.path.join(os.path.dirname(__file__), 'templates')] + else: + from jupyter_contrib_nbextensions.nbconvert_support import ( + templates_directory) +- c.TemplateExporter.template_path = ['.', templates_directory()] ++ c.TemplateExporter.template_paths = ['.', templates_directory()] + + return c + +@@ -483,12 +483,12 @@ + c.merge(super(LenvsLatexExporter, self).default_config) + + if os.path.isdir(os.path.join(os.path.dirname(__file__), 'templates')): +- c.TemplateExporter.template_path = ['.', ++ c.TemplateExporter.template_paths = ['.', + os.path.join(os.path.dirname(__file__), 'templates')] + else: + from jupyter_contrib_nbextensions.nbconvert_support import ( + templates_directory) +- c.TemplateExporter.template_path = ['.', templates_directory()] ++ c.TemplateExporter.template_paths = ['.', templates_directory()] + return c + + def tocrefrm(self, text): diff --git a/Golden_Repo/j/Jupyter/jupyterhub-1.1.0_logoutcookie-2.0.patch b/Golden_Repo/j/Jupyter/jupyterhub-1.1.0_logoutcookie-2.0.patch new file mode 100644 index 0000000000000000000000000000000000000000..dc420a9b2607b58f666925f4cb608a94298e7c15 --- /dev/null +++ b/Golden_Repo/j/Jupyter/jupyterhub-1.1.0_logoutcookie-2.0.patch @@ -0,0 +1,123 @@ +diff -Naur jupyterhub-1.1.0.orig/jupyterhub/services/auth.py jupyterhub-1.1.0/jupyterhub/services/auth.py +--- jupyterhub-1.1.0.orig/jupyterhub/services/auth.py 2019-12-03 10:13:48.000000000 +0100 ++++ jupyterhub-1.1.0/jupyterhub/services/auth.py 2020-12-23 08:24:38.868452725 +0100 +@@ -28,6 +28,7 @@ + from tornado.log import app_log + from tornado.web import HTTPError + from tornado.web import RequestHandler ++from traitlets import Bool + from traitlets import default + from traitlets import Dict + from traitlets import Instance +@@ -191,6 +192,29 @@ + """, + ).tag(config=True) + ++ session_id_required = Bool( ++ os.getenv('JUPYTERHUB_SESSION_ID_REQUIRED', 'false').lower()=="true", ++ help=""" ++ Blocks any requests, if there's no jupyterhub-session-id cookie. ++ """, ++ ).tag(config=True) ++ ++ session_id_required_user = Bool( ++ os.getenv('JUPYTERHUB_SESSION_ID_REQUIRED_USER', 'false').lower()=="true", ++ help=""" ++ Blocks any requests to /user, if there's no jupyterhub-session-id cookie. ++ """, ++ ).tag(config=True) ++ ++ last_session_id_validation = 0 ++ last_session_id_validation_result = None ++ ++ last_session_id_validation_cache_time = Integer( ++ int(os.getenv('JUPYTERHUB_SESSION_ID_CACHE_TIME', "10")), ++ help="""The maximum time (in seconds) to cache the Hub's responses for session_id verification. Default is 10. ++ """, ++ ).tag(config=True) ++ + hub_prefix = Unicode( + '/hub/', + help="""The URL prefix for the Hub itself. +@@ -461,6 +485,18 @@ + """ + return handler.get_cookie('jupyterhub-session-id', '') + ++ def validate_session_id(self, username, session_id): ++ if time.time() - self.last_session_id_validation > self.last_session_id_validation_cache_time: ++ self.last_session_id_validation = int(time.time()) ++ url = url_path_join( ++ self.api_url, "authorizations/sessionid", quote(username, safe=''), ++ ) ++ headers = {"sessionid": session_id} ++ self.last_session_id_validation_result = self._api_request( ++ 'GET', url, allow_404=True, headers=headers ++ ) ++ return self.last_session_id_validation_result ++ + def get_user(self, handler): + """Get the Hub user for a given tornado handler. + +@@ -484,16 +520,33 @@ + handler._cached_hub_user = user_model = None + session_id = self.get_session_id(handler) + +- # check token first +- token = self.get_token(handler) +- if token: +- user_model = self.user_for_token(token, session_id=session_id) ++ if self.session_id_required and not session_id: ++ app_log.info("Unauthorized access. Only users with a session id are allowed.") ++ return {'name': '<session_id_required>', 'kind': 'User'} ++ elif self.session_id_required_user and not session_id and handler.request.uri.startswith('/user'): ++ app_log.info("Unauthorized access. Only users with a session id are allowed to access /user.") ++ return {'name': '<session_id_required>', 'kind': 'User'} ++ elif self.session_id_required or ( self.session_id_required_user and handler.request.uri.startswith('/user')): ++ token = self.get_token(handler) ++ if token: ++ user_model = self.user_for_token(token) ++ if user_model: ++ handler._token_authenticated = True ++ if user_model is None: ++ user_model = self._get_user_cookie(handler) + if user_model: +- handler._token_authenticated = True ++ user_model = self.validate_session_id(user_model.get('name', ''), session_id) ++ else: ++ # check token first ++ token = self.get_token(handler) ++ if token: ++ user_model = self.user_for_token(token, session_id=session_id) ++ if user_model: ++ handler._token_authenticated = True + +- # no token, check cookie +- if user_model is None: +- user_model = self._get_user_cookie(handler) ++ # no token, check cookie ++ if user_model is None: ++ user_model = self._get_user_cookie(handler) + + # cache result + handler._cached_hub_user = user_model +@@ -904,10 +957,16 @@ + # tries to redirect to login URL, 403 will be raised instead. + # This is not the best, but avoids problems that can be caused + # when get_current_user is allowed to raise. +- def raise_on_redirect(*args, **kwargs): +- raise HTTPError( +- 403, "{kind} {name} is not allowed.".format(**user_model) +- ) ++ if user_model.get('name', '') == '<session_id_required>': ++ def raise_on_redirect(*args, **kwargs): ++ raise HTTPError( ++ 401, "Please login to proceed." ++ ) ++ else: ++ def raise_on_redirect(*args, **kwargs): ++ raise HTTPError( ++ 403, "{kind} {name} is not allowed.".format(**user_model) ++ ) + + self.redirect = raise_on_redirect + return diff --git a/Golden_Repo/j/Jupyter/jupyterlab-gitlab-2.0.0_jsc.patch b/Golden_Repo/j/Jupyter/jupyterlab-gitlab-2.0.0_jsc.patch new file mode 100644 index 0000000000000000000000000000000000000000..a382b73c04e2bd356a7a1ce4813ab80d7cf9591d --- /dev/null +++ b/Golden_Repo/j/Jupyter/jupyterlab-gitlab-2.0.0_jsc.patch @@ -0,0 +1,23 @@ +diff +--- jupyterlab-gitlab-2.0.0.orig/schema/drive.json 2019-05-02 08:22:45.219143000 +0200 ++++ jupyterlab-gitlab-2.0.0/schema/drive.json 2019-05-02 08:25:15.392631000 +0200 +@@ -6,8 +6,8 @@ + "properties": { + "baseUrl": { + "type": "string", +- "title": "The GitLab Base URL", +- "default": "https://gitlab.com" ++ "title": "JSC GitLab Base URL", ++ "default": "https://gitlab.version.fz-juelich.de" + }, + "accessToken": { + "type": "string", +@@ -18,7 +18,7 @@ + "defaultRepo": { + "type": "string", + "title": "Default Repository", +- "default": "" ++ "default": "jupyter4jsc/j4j_notebooks" + } + }, + "type": "object" diff --git a/Golden_Repo/j/Jupyter/jupyterlab_github-2.0.0_jsc.patch b/Golden_Repo/j/Jupyter/jupyterlab_github-2.0.0_jsc.patch new file mode 100644 index 0000000000000000000000000000000000000000..ebee87027b2ee62abbf2c08f58506edd7b898f35 --- /dev/null +++ b/Golden_Repo/j/Jupyter/jupyterlab_github-2.0.0_jsc.patch @@ -0,0 +1,13 @@ +diff +--- jupyterlab-github-2.0.0.orig/schema/drive.json 2018-10-10 21:14:53.986184891 +0200 ++++ jupyterlab_github-2.0.0/schema/drive.json 2018-10-11 00:28:34.846777384 +0200 +@@ -18,7 +18,7 @@ + "defaultRepo": { + "type": "string", + "title": "Default Repository", +- "default": "" ++ "default": "FZJ-JSC/jupyter-jsc-notebooks" + } + }, + "type": "object" + diff --git a/Golden_Repo/j/Jupyter/jupyterlmod-packagejson.patch b/Golden_Repo/j/Jupyter/jupyterlmod-packagejson.patch new file mode 100644 index 0000000000000000000000000000000000000000..0d166fec22bceb14c1f704b3ee57d04831efe8c8 --- /dev/null +++ b/Golden_Repo/j/Jupyter/jupyterlmod-packagejson.patch @@ -0,0 +1,17 @@ +diff -Naur jupyter-lmod-2.0.2.orig/jupyterlab/package.json jupyter-lmod-2.0.2/jupyterlab/package.json +--- jupyter-lmod-2.0.2.orig/jupyterlab/package.json 2020-11-25 16:19:57.000000000 +0100 ++++ jupyter-lmod-2.0.2/jupyterlab/package.json 2020-12-29 16:50:58.803504000 +0100 +@@ -31,10 +31,12 @@ + "prepare": "npm run clean && npm run build" + }, + "dependencies": { +- "@jupyterlab/application": ">=2.0.0", ++ "@jupyterlab/application": "^2.0.0", ++ "@jupyterlab/apputils": "^2.1.0", + "@jupyterlab/launcher": "^2.1.0" + }, + "devDependencies": { ++ "@types/react": "^16.9.16", + "rimraf": "~2.6.2", + "typescript": "~3.7.3" + }, diff --git a/Golden_Repo/j/Jupyter/jupyterlmod-urlfile.patch b/Golden_Repo/j/Jupyter/jupyterlmod-urlfile.patch new file mode 100644 index 0000000000000000000000000000000000000000..0b56aa3e3705f48801d287a08eaad4505016c81f --- /dev/null +++ b/Golden_Repo/j/Jupyter/jupyterlmod-urlfile.patch @@ -0,0 +1,37 @@ +diff -Naur jupyter-lmod-2.0.1/jupyterlab/src/index.ts jupyter-lmod-2.0.1_devel/jupyterlab/src/index.ts +--- jupyter-lmod-2.0.1/jupyterlab/src/index.ts 2020-10-05 17:08:01.000000000 +0200 ++++ jupyter-lmod-2.0.1_devel/jupyterlab/src/index.ts 2020-11-25 11:55:24.000000000 +0100 +@@ -244,7 +244,13 @@ + const namespace = 'server-proxy'; + const command = namespace + ':' + 'open'; + for (let server_process of data.server_processes) { +- const url = PageConfig.getBaseUrl() + server_process.name + '/'; ++ ++ let urlfile = ''; ++ if (server_process.launcher_entry.urlfile) { ++ urlfile = server_process.launcher_entry.urlfile; ++ } ++ const url = PageConfig.getBaseUrl() + server_process.name + '/' + urlfile; ++ + const title = server_process.launcher_entry.title; + const newBrowserTab = server_process.new_browser_tab; + const id = namespace + ':' + server_process.name; +diff -Naur jupyter-lmod-2.0.1/jupyterlmod/static/main.js jupyter-lmod-2.0.1_devel/jupyterlmod/static/main.js +--- jupyter-lmod-2.0.1/jupyterlmod/static/main.js 2020-10-05 17:08:01.000000000 +0200 ++++ jupyter-lmod-2.0.1_devel/jupyterlmod/static/main.js 2020-11-25 11:55:24.000000000 +0100 +@@ -316,10 +316,14 @@ + .addClass('new-' + server_process.name); + + /* create our list item's link */ ++ let urlfile = ''; ++ if (server_process.launcher_entry.urlfile) { ++ urlfile = server_process.launcher_entry.urlfile; ++ } + let entry_link = $('<a>') + .attr('role', 'menuitem') + .attr('tabindex', '-1') +- .attr('href', base_url + server_process.name + '/') ++ .attr('href', base_url + server_process.name + '/' + urlfile) + .attr('target', '_blank') + .text(server_process.launcher_entry.title); + diff --git a/Golden_Repo/j/Jupyter/jupyterserverproxy-urlfile.patch b/Golden_Repo/j/Jupyter/jupyterserverproxy-urlfile.patch new file mode 100644 index 0000000000000000000000000000000000000000..de883561447a477f8ad6286b61d0b93c07d0265a --- /dev/null +++ b/Golden_Repo/j/Jupyter/jupyterserverproxy-urlfile.patch @@ -0,0 +1,82 @@ +diff -Naur jupyter-server-proxy.orig/jupyterlab-server-proxy/src/index.ts jupyter-server-proxy/jupyterlab-server-proxy/src/index.ts +--- jupyter-server-proxy.orig/jupyterlab-server-proxy/src/index.ts 2020-11-19 06:40:34.521630000 +0100 ++++ jupyter-server-proxy/jupyterlab-server-proxy/src/index.ts 2020-11-19 06:41:35.023864000 +0100 +@@ -79,8 +79,11 @@ + if (!server_process.launcher_entry.enabled) { + continue; + } +- +- const url = PageConfig.getBaseUrl() + server_process.name + '/'; ++ var urlfile = ''; ++ if (server_process.launcher_entry.urlfile) { ++ urlfile = server_process.launcher_entry.urlfile; ++ } ++ const url = PageConfig.getBaseUrl() + server_process.name + '/' + urlfile; + const title = server_process.launcher_entry.title; + const newBrowserTab = server_process.new_browser_tab; + const id = namespace + ':' + server_process.name; +diff -Naur jupyter-server-proxy.orig/jupyter_server_proxy/api.py jupyter-server-proxy/jupyter_server_proxy/api.py +--- jupyter-server-proxy.orig/jupyter_server_proxy/api.py 2020-11-19 06:40:34.516286000 +0100 ++++ jupyter-server-proxy/jupyter_server_proxy/api.py 2020-11-19 06:41:35.015090000 +0100 +@@ -19,7 +19,8 @@ + 'name': sp.name, + 'launcher_entry': { + 'enabled': sp.launcher_entry.enabled, +- 'title': sp.launcher_entry.title ++ 'title': sp.launcher_entry.title, ++ 'urlfile': sp.launcher_entry.urlfile, + }, + 'new_browser_tab' : sp.new_browser_tab + } +diff -Naur jupyter-server-proxy.orig/jupyter_server_proxy/config.py jupyter-server-proxy/jupyter_server_proxy/config.py +--- jupyter-server-proxy.orig/jupyter_server_proxy/config.py 2020-11-19 06:40:34.516753000 +0100 ++++ jupyter-server-proxy/jupyter_server_proxy/config.py 2020-11-19 06:41:35.016181000 +0100 +@@ -99,7 +99,7 @@ + )) + return handlers + +-LauncherEntry = namedtuple('LauncherEntry', ['enabled', 'icon_path', 'title']) ++LauncherEntry = namedtuple('LauncherEntry', ['enabled', 'icon_path', 'title', 'urlfile']) + ServerProcess = namedtuple('ServerProcess', [ + 'name', 'command', 'environment', 'timeout', 'absolute_url', 'port', 'mappath', 'launcher_entry', 'new_browser_tab']) + +@@ -116,7 +116,8 @@ + launcher_entry=LauncherEntry( + enabled=le.get('enabled', True), + icon_path=le.get('icon_path'), +- title=le.get('title', name) ++ title=le.get('title', name), ++ urlfile=le.get('urlfile', ''), + ), + new_browser_tab=server_process_config.get('new_browser_tab', True) + ) +@@ -175,6 +176,10 @@ + title + Title to be used for the launcher entry. Defaults to the name of the server if missing. + ++ urlfile ++ URL file name and URL parameters to be added to the base URL of the launcher entry. ++ Default is none. ++ + new_browser_tab + Set to True (default) to make the proxied server interface opened as a new browser tab. Set to False + to have it open a new JupyterLab tab. This has no effect in classic notebook. +diff -Naur jupyter-server-proxy.orig/jupyter_server_proxy/static/tree.js jupyter-server-proxy/jupyter_server_proxy/static/tree.js +--- jupyter-server-proxy.orig/jupyter_server_proxy/static/tree.js 2020-11-19 06:40:34.519694000 +0100 ++++ jupyter-server-proxy/jupyter_server_proxy/static/tree.js 2020-11-19 06:41:35.020051000 +0100 +@@ -33,10 +33,14 @@ + .addClass('new-' + server_process.name); + + /* create our list item's link */ ++ var urlfile = ''; ++ if (server_process.launcher_entry.urlfile) { ++ urlfile = server_process.launcher_entry.urlfile; ++ } + var $entry_link = $('<a>') + .attr('role', 'menuitem') + .attr('tabindex', '-1') +- .attr('href', base_url + server_process.name + '/') ++ .attr('href', base_url + server_process.name + '/' + urlfile) + .attr('target', '_blank') + .text(server_process.launcher_entry.title); + diff --git a/Golden_Repo/j/Jupyter/notebook-6.0.3_jsc.patch b/Golden_Repo/j/Jupyter/notebook-6.0.3_jsc.patch new file mode 100644 index 0000000000000000000000000000000000000000..d7a9bb20d7d6eea484462bd8bf68c8e018546b4e --- /dev/null +++ b/Golden_Repo/j/Jupyter/notebook-6.0.3_jsc.patch @@ -0,0 +1,143 @@ +diff +--- notebook-6.0.3.orig/notebook/services/contents/filecheckpoints.py 2020-04-28 06:26:51.384296390 +0200 ++++ notebook-6.0.3/notebook/services/contents/filecheckpoints.py 2020-04-28 06:30:55.139342947 +0200 +@@ -14,7 +14,7 @@ + + from jupyter_core.utils import ensure_dir_exists + from ipython_genutils.py3compat import getcwd +-from traitlets import Unicode ++from traitlets import Unicode, Integer + + from notebook import _tz as tz + +@@ -28,6 +28,35 @@ + you want file-based checkpoints with another ContentsManager. + """ + ++ checkpoint_permissions = Integer( ++ 0o644, ++ config=True, ++ help="""The permission of your checkpoint files. ++ ++ By default, it is 0o644 ++ """, ++ ) ++ ++ restore_permissions = Integer( ++ 0o644, ++ config=True, ++ help="""The permission of a restored checkpoint. ++ ++ By default, it is 0o644 ++ """, ++ ) ++ ++ checkpoint_dir_umask = Integer( ++ 0o022, ++ config=True, ++ help="""The umask for the checkpoint directory. ++ ++ Keep in mind that it depends on your system umask, too. ++ ++ By default, it is 0o022 ++ """, ++ ) ++ + checkpoint_dir = Unicode( + '.ipynb_checkpoints', + config=True, +@@ -50,21 +79,29 @@ + # ContentsManager-dependent checkpoint API + def create_checkpoint(self, contents_mgr, path): + """Create a checkpoint.""" ++ original_umask = os.umask(self.checkpoint_dir_umask) + checkpoint_id = u'checkpoint' + src_path = contents_mgr._get_os_path(path) + dest_path = self.checkpoint_path(checkpoint_id, path) + self._copy(src_path, dest_path) +- return self.checkpoint_model(checkpoint_id, dest_path) ++ os.chmod(dest_path, self.checkpoint_permissions) ++ ret = self.checkpoint_model(checkpoint_id, dest_path) ++ os.umask(original_umask) ++ return ret + + def restore_checkpoint(self, contents_mgr, checkpoint_id, path): + """Restore a checkpoint.""" ++ original_umask = os.umask(self.checkpoint_dir_umask) + src_path = self.checkpoint_path(checkpoint_id, path) + dest_path = contents_mgr._get_os_path(path) + self._copy(src_path, dest_path) ++ os.chmod(dest_path, self.restore_permissions) ++ os.umask(original_umask) + + # ContentsManager-independent checkpoint API + def rename_checkpoint(self, checkpoint_id, old_path, new_path): + """Rename a checkpoint from old_path to new_path.""" ++ original_umask = os.umask(self.checkpoint_dir_umask) + old_cp_path = self.checkpoint_path(checkpoint_id, old_path) + new_cp_path = self.checkpoint_path(checkpoint_id, new_path) + if os.path.isfile(old_cp_path): +@@ -75,9 +112,11 @@ + ) + with self.perm_to_403(): + shutil.move(old_cp_path, new_cp_path) ++ os.umask(original_umask) + + def delete_checkpoint(self, checkpoint_id, path): + """delete a file's checkpoint""" ++ original_umask = os.umask(self.checkpoint_dir_umask) + path = path.strip('/') + cp_path = self.checkpoint_path(checkpoint_id, path) + if not os.path.isfile(cp_path): +@@ -86,23 +125,29 @@ + self.log.debug("unlinking %s", cp_path) + with self.perm_to_403(): + os.unlink(cp_path) ++ os.umask(original_umask) + + def list_checkpoints(self, path): + """list the checkpoints for a given file + + This contents manager currently only supports one checkpoint per file. + """ ++ original_umask = os.umask(self.checkpoint_dir_umask) + path = path.strip('/') + checkpoint_id = "checkpoint" + os_path = self.checkpoint_path(checkpoint_id, path) + if not os.path.isfile(os_path): ++ os.umask(original_umask) + return [] + else: +- return [self.checkpoint_model(checkpoint_id, os_path)] ++ ret = self.checkpoint_model(checkpoint_id, os_path) ++ os.umask(original_umask) ++ return [ret] + + # Checkpoint-related utilities + def checkpoint_path(self, checkpoint_id, path): + """find the path to a checkpoint""" ++ original_umask = os.umask(self.checkpoint_dir_umask) + path = path.strip('/') + parent, name = ('/' + path).rsplit('/', 1) + parent = parent.strip('/') +@@ -117,16 +162,19 @@ + with self.perm_to_403(): + ensure_dir_exists(cp_dir) + cp_path = os.path.join(cp_dir, filename) ++ os.umask(original_umask) + return cp_path + + def checkpoint_model(self, checkpoint_id, os_path): + """construct the info dict for a given checkpoint""" ++ original_umask = os.umask(self.checkpoint_dir_umask) + stats = os.stat(os_path) + last_modified = tz.utcfromtimestamp(stats.st_mtime) + info = dict( + id=checkpoint_id, + last_modified=last_modified, + ) ++ os.umask(original_umask) + return info + + # Error Handling + diff --git a/Golden_Repo/j/JupyterCollection/JupyterCollection-2020.2.5-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb b/Golden_Repo/j/JupyterCollection/JupyterCollection-2020.2.5-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..3c95d6f138d593c2b7672401e04b22170c4fc4d9 --- /dev/null +++ b/Golden_Repo/j/JupyterCollection/JupyterCollection-2020.2.5-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb @@ -0,0 +1,33 @@ +easyblock = 'Bundle' + +name = 'JupyterCollection' +version = '2020.2.5' + +local_pysuffix = '-Python-3.8.5' + +homepage = 'http://www.jupyter.org' +description = """ +Project Jupyter exists to develop open-source software, open-standards, and services +for interactive computing across dozens of programming languages. +""" +site_contacts = 'j.goebbert@fz-juelich.de' + +toolchain = {'name': 'gcccoremkl', 'version': '9.3.0-2020.2.254'} + +dependencies = [ + ('JupyterKernel-Bash', '0.7.1', '-' + version), + ('JupyterKernel-Cling', '0.7', '-' + version), + ('JupyterKernel-JavaScript', '5.2.0', '-' + version), + ('JupyterKernel-Julia', '1.5.2', '-' + version), + ('JupyterKernel-Octave', '6.1.0', '-' + version), + ('JupyterKernel-PyParaView', '5.8.1', '-' + version), + # ('JupyterKernel-PyQuantum', '1.1', '-' + version), + ('JupyterKernel-R', '4.0.2', '-' + version), + ('JupyterKernel-Ruby', '2.7.1', '-' + version), + ('JupyterProxy-XpraHTML5', '0.3.0', '-' + version), + ('Jupyter', version, local_pysuffix), +] + +skipsteps = ['configure', 'build', 'install', 'sanity_check'] + +moduleclass = 'tools' diff --git a/Golden_Repo/j/JupyterKernel-Bash/JupyterKernel-Bash-0.7.1-gcccoremkl-9.3.0-2020.2.254-2020.2.5.eb b/Golden_Repo/j/JupyterKernel-Bash/JupyterKernel-Bash-0.7.1-gcccoremkl-9.3.0-2020.2.254-2020.2.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..65d3c8c014f31e4058e31c0235782028857441e8 --- /dev/null +++ b/Golden_Repo/j/JupyterKernel-Bash/JupyterKernel-Bash-0.7.1-gcccoremkl-9.3.0-2020.2.254-2020.2.5.eb @@ -0,0 +1,98 @@ +easyblock = 'Bundle' + +name = 'JupyterKernel-Bash' +version = '0.7.1' +local_jupyterver = '2020.2.5' +versionsuffix = '-' + local_jupyterver + +local_pysuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/takluyver/bash_kernel' +description = """ +Native Bash kernel for Jupyter. +Project Jupyter exists to develop open-source software, open-standards, and services +for interactive computing across dozens of programming languages. +""" + +site_contacts = 'j.goebbert@fz-juelich.de' + +toolchain = {'name': 'gcccoremkl', 'version': '9.3.0-2020.2.254'} +toolchainopts = {'pic': True} + +builddependencies = [ + ('binutils', '2.34'), +] + +dependencies = [ + ('Python', '3.8.5'), + ('Jupyter', local_jupyterver, local_pysuffix), +] + +local_common_opts = { + 'req_py_majver': '3', + 'req_py_minver': '0' +} + +exts_defaultclass = 'PythonPackage' +exts_filter = ('python -c "import %(ext_name)s"', '') +exts_default_options = { + 'download_dep_fail': True, + 'source_urls': [PYPI_SOURCE], + 'use_pip': True, +} + +exts_list = [ + # 0.7.2 fails with BackendUnavailable. Might be fixable --no-use-pep517 + ('bash_kernel', '0.7.1', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', '29f895819e076e3f225e37034b70b5265a559e2964e020c942024f51ea6153e8')]), + ('use_pip', True), + ])), +] + +local_jupyter_path = 'share/jupyter' + +modextrapaths = { + 'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages'], + 'JUPYTER_PATH': ['share/jupyter'], # add search path for kernelspecs +} + +# Ensure that the user-specific $HOME/.local/share/jupyter is always first entry in JUPYTHER_PATH +modluafooter = """ +prepend_path("JUPYTER_PATH", pathJoin(os.getenv("HOME"), ".local/share/jupyter")) +""" + +postinstallcmds = [ + # Create virtual environment to ensure we install in the correct directory !!! + 'python3 -m venv %(installdir)s --system-site-packages', + ( + '{ cat > %%(builddir)s/env.sh; } << \'EOF\'\n' + '#!/bin/bash\n' + 'source %%(installdir)s/bin/activate\n' + 'export PYTHONPATH=%%(installdir)s/lib/python%%(pyshortver)s/site-packages:${PYTHONPATH}\n' + 'export JUPYTER_DATA_DIR=%%(installdir)s/%s\n' + 'EOF' + ) % (local_jupyter_path), + + # Jupyter Kernel: Bash - https://github.com/takluyver/bash_kernel + # installs bash_kernel in $JUPYTER_DATA_DIR/kernels + 'source %(builddir)s/env.sh && ${EBROOTPYTHON}/bin/python3 -m bash_kernel.install --user', + 'source %(builddir)s/env.sh && chmod -R o+x %(installdir)s/share', + + # Ensure we remove the virtuel environment to avoid wrong search path for python packages + 'rm %(installdir)s/pyvenv.cfg', + 'rm -r %(installdir)s/bin', +] + +# specify that Bundle easyblock should run a full sanity check, rather than just trying to load the module +# full_sanity_check = True +sanity_check_paths = { + 'files': [ + 'share/jupyter/kernels/bash/kernel.json', + ], + 'dirs': [ + 'lib/python%(pyshortver)s/site-packages', + 'share/jupyter/kernels/bash/', + ], +} + +moduleclass = 'tools' diff --git a/Golden_Repo/j/JupyterKernel-Cling/JupyterKernel-Cling-0.7-gcccoremkl-9.3.0-2020.2.254-2020.2.5.eb b/Golden_Repo/j/JupyterKernel-Cling/JupyterKernel-Cling-0.7-gcccoremkl-9.3.0-2020.2.254-2020.2.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..8de48fc00e6eafc78dd98cda09d2bc72fde8d6cb --- /dev/null +++ b/Golden_Repo/j/JupyterKernel-Cling/JupyterKernel-Cling-0.7-gcccoremkl-9.3.0-2020.2.254-2020.2.5.eb @@ -0,0 +1,93 @@ +easyblock = 'Bundle' + +name = 'JupyterKernel-Cling' +version = '0.7' +local_jupyterver = '2020.2.5' +versionsuffix = '-' + local_jupyterver + +local_pysuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/root-project/cling' +description = """ +Native C kernel for Jupyter. +Project Jupyter exists to develop open-source software, open-standards, and services +for interactive computing across dozens of programming languages. +""" + +site_contacts = 'j.goebbert@fz-juelich.de' + +toolchain = {'name': 'gcccoremkl', 'version': '9.3.0-2020.2.254'} +toolchainopts = {'pic': True} + +builddependencies = [ + ('binutils', '2.34'), +] + +dependencies = [ + ('Python', '3.8.5'), + ('Jupyter', local_jupyterver, local_pysuffix), + ('Cling', version), +] + +local_jupyter_path = 'share/jupyter' + +modextrapaths = { + 'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages'], + 'JUPYTER_PATH': ['share/jupyter'], # add search path for kernelspecs +} + +# Ensure that the user-specific $HOME/.local/share/jupyter is always first entry in JUPYTHER_PATH +modluafooter = """ +prepend_path("JUPYTER_PATH", pathJoin(os.getenv("HOME"), ".local/share/jupyter")) +""" + +postinstallcmds = [ + # Create virtual environment to ensure we install in the correct directory !!! + 'python3 -m venv %(installdir)s --system-site-packages', + ( + '{ cat > %%(builddir)s/env.sh; } << \'EOF\'\n' + '#!/bin/bash\n' + 'source %%(installdir)s/bin/activate\n' + 'export PYTHONPATH=%%(installdir)s/lib/python%%(pyshortver)s/site-packages:${PYTHONPATH}\n' + 'export JUPYTER_DATA_DIR=%%(installdir)s/%s\n' + 'EOF' + ) % (local_jupyter_path), + + # Jupyter Kernel: Cling (C++) + 'source %(builddir)s/env.sh && pip3 install ${EBROOTCLING}/share/cling/Jupyter/kernel', + ( + 'source %(builddir)s/env.sh && ' + ' jupyter-kernelspec install --prefix=%(installdir)s ${EBROOTCLING}/share/cling/Jupyter/kernel/cling-cpp17' + ), + + # correct shebang to correct python binary + ( + 'source %(builddir)s/env.sh && ' + ' abs2python="#! ${EBROOTPYTHON}/bin/python" && ' + ' sed "1s@^.*@$abs2python@g" -i %(installdir)s/bin/jupyter-cling-kernel' + ), + 'source %(builddir)s/env.sh && chmod -R o+x %(installdir)s/share', + + # Ensure we remove the virtuel environment to avoid wrong search path for python packages + 'rm %(installdir)s/pyvenv.cfg', + 'rm %(installdir)s/bin/python', + 'rm %(installdir)s/bin/python3', + 'rm %(installdir)s/bin/activate', + 'rm %(installdir)s/bin/activate*', + 'rm %(installdir)s/bin/easy_install*', + 'rm %(installdir)s/bin/pip*', +] + +# specify that Bundle easyblock should run a full sanity check, rather than just trying to load the module +# full_sanity_check = True +sanity_check_paths = { + 'files': [ + 'share/jupyter/kernels/cling-cpp17/kernel.json', + ], + 'dirs': [ + # 'lib/python%(pyshortver)s/site-packages', + 'share/jupyter/kernels/cling-cpp17/', + ], +} + +moduleclass = 'tools' diff --git a/Golden_Repo/j/JupyterKernel-JavaScript/JupyterKernel-JavaScript-5.2.0-gcccoremkl-9.3.0-2020.2.254-2020.2.5.eb b/Golden_Repo/j/JupyterKernel-JavaScript/JupyterKernel-JavaScript-5.2.0-gcccoremkl-9.3.0-2020.2.254-2020.2.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..63f3f746f56cbc0dc82f569bf0ad6eff20181df8 --- /dev/null +++ b/Golden_Repo/j/JupyterKernel-JavaScript/JupyterKernel-JavaScript-5.2.0-gcccoremkl-9.3.0-2020.2.254-2020.2.5.eb @@ -0,0 +1,71 @@ +easyblock = 'Bundle' + +name = 'JupyterKernel-JavaScript' +version = '5.2.0' +local_jupyterver = '2020.2.5' +versionsuffix = '-' + local_jupyterver + +local_pysuffix = '-Python-3.8.5' + +homepage = 'https://www.npmjs.com/package/ijavascript' +description = """ +Native JavaScript kernel for Jupyter. +Project Jupyter exists to develop open-source software, open-standards, and services +for interactive computing across dozens of programming languages. +""" + +site_contacts = 'j.goebbert@fz-juelich.de' + +toolchain = {'name': 'gcccoremkl', 'version': '9.3.0-2020.2.254'} +toolchainopts = {'pic': True} + +builddependencies = [ + ('binutils', '2.34'), +] + +dependencies = [ + ('Jupyter', local_jupyterver, local_pysuffix), +] + +local_jupyter_path = 'share/jupyter' + +modextrapaths = { + 'PATH': ['bin'], + 'NODE_PATH': ['lib/node_modules'], # npm´s search path to extra modules + 'JUPYTER_PATH': ['share/jupyter'], # add search path for kernelspecs +} + +# Ensure that the user-specific $HOME/.local/share/jupyter is always first entry in JUPYTHER_PATH +modluafooter = """ +prepend_path("JUPYTER_PATH", pathJoin(os.getenv("HOME"), ".local/share/jupyter")) +""" + +postinstallcmds = [ + ( + '{ cat > %%(builddir)s/env.sh; } << \'EOF\'\n' + '#!/bin/bash\n' + 'export PATH=%%(installdir)s/bin:${PATH}\n' + 'export NODE_PATH=%%(installdir)s/lib/node_modules\n' + 'export JUPYTER_DATA_DIR=%%(installdir)s/%s\n' + 'EOF' + ) % (local_jupyter_path), + + 'source %(builddir)s/env.sh && npm install ijavascript@5.2.0 -g --prefix %(installdir)s', + # installs ijavascript in $JUPYTER_DATA_DIR/kernels + 'source %(builddir)s/env.sh && ijsinstall --install=local', + 'source %(builddir)s/env.sh && chmod -R o+x %(installdir)s/share', +] + +# specify that Bundle easyblock should run a full sanity check, rather than just trying to load the module +# full_sanity_check = True +sanity_check_paths = { + 'files': [ + 'share/jupyter/kernels/javascript/kernel.json', + ], + 'dirs': [ + 'lib/node_modules/', + 'share/jupyter/kernels/javascript/', + ], +} + +moduleclass = 'tools' diff --git a/Golden_Repo/j/JupyterKernel-Julia/JupyterKernel-Julia-1.5.2-gcccoremkl-9.3.0-2020.2.254-2020.2.5.eb b/Golden_Repo/j/JupyterKernel-Julia/JupyterKernel-Julia-1.5.2-gcccoremkl-9.3.0-2020.2.254-2020.2.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..735b3cd4ce2e2a3e87d92493c03d91c7d5347ef9 --- /dev/null +++ b/Golden_Repo/j/JupyterKernel-Julia/JupyterKernel-Julia-1.5.2-gcccoremkl-9.3.0-2020.2.254-2020.2.5.eb @@ -0,0 +1,117 @@ +easyblock = 'Bundle' + +name = 'JupyterKernel-Julia' +version = '1.5.2' +local_jupyterver = '2020.2.5' +versionsuffix = '-' + local_jupyterver + +local_pysuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/IRkernel/IRkernel' +description = """ +Native R kernel for Jupyter. +Project Jupyter exists to develop open-source software, open-standards, and services +for interactive computing across dozens of programming languages. +""" + +site_contacts = 'j.goebbert@fz-juelich.de' + +toolchain = {'name': 'gcccoremkl', 'version': '9.3.0-2020.2.254'} +toolchainopts = {'pic': True} + +builddependencies = [ + ('binutils', '2.34'), +] + +dependencies = [ + ('Python', '3.8.5'), + ('Jupyter', local_jupyterver, local_pysuffix), + ('Julia', version), +] + +local_common_opts = { + 'req_py_majver': '3', + 'req_py_minver': '0' +} + +exts_defaultclass = 'PythonPackage' +exts_filter = ('python -c "import %(ext_name)s"', '') +exts_default_options = { + 'download_dep_fail': True, + 'source_urls': [PYPI_SOURCE], + 'use_pip': True, +} + +exts_list = [ + ('julia', '0.5.3', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'b13207125709fdba069a25c4e54ff366f0bc308807b2aa0f3b66924101799c58')]), + ('use_pip', True), + ])), +] + +local_jupyter_path = 'share/jupyter' +local_julia_depot_path = "%(installdir)s/share/julia/site/" # for Julia packages needed for Jupyter + +modextrapaths = { + 'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages'], + 'JUPYTER_PATH': ['share/jupyter'], # add search path for kernelspecs +} + +modextravars = { + 'JULIA_DEPOT_PATH': local_julia_depot_path, +} + +# Ensure that the user-specific $HOME/.local/share/jupyter is always first entry in JUPYTHER_PATH +modluafooter = """ +prepend_path("JUPYTER_PATH", pathJoin(os.getenv("HOME"), ".local/share/jupyter")) +""" + +postinstallcmds = [ + # Create virtual environment to ensure we install in the correct directory !!! + 'python3 -m venv %(installdir)s --system-site-packages', + ( + '{ cat > %%(builddir)s/env.sh; } << \'EOF\'\n' + '#!/bin/bash\n' + 'source %%(installdir)s/bin/activate\n' + 'export PYTHONPATH=%%(installdir)s/lib/python%%(pyshortver)s/site-packages:${PYTHONPATH}\n' + '' + 'export JULIA_DEPOT_PATH=%s\n' + 'export JUPYTER_DATA_DIR=%%(installdir)s/%s\n' + 'EOF' + ) % (local_julia_depot_path, local_jupyter_path), + + # installs ijulia in JULIA_DEPOT_PATH and kernel in $JUPYTER_DATA_DIR/kernels + 'source %(builddir)s/env.sh && julia -e \'using Pkg; Pkg.add("IJulia"); Pkg.build("IJulia")\'', + + # to trigger the precompilation + 'source %(builddir)s/env.sh && julia -e \'using IJulia\'', + + # adjust permissions of precompiled files + 'for i in $(find %s); do chmod +r $i; done' % local_julia_depot_path, + + # configure Python<->Julia bridge (of python package julia) + 'source %(builddir)s/env.sh && python -c "import julia; julia.install()"', + + # Ensure we remove the virtuel environment to avoid wrong search path for python packages + 'rm %(installdir)s/pyvenv.cfg', + 'rm %(installdir)s/bin/python', + 'rm %(installdir)s/bin/python3', + 'rm %(installdir)s/bin/activate', + 'rm %(installdir)s/bin/activate*', + 'rm %(installdir)s/bin/easy_install*', + 'rm %(installdir)s/bin/pip*', +] + +# specify that Bundle easyblock should run a full sanity check, rather than just trying to load the module +# full_sanity_check = True +sanity_check_paths = { + 'files': [ + 'share/jupyter/kernels/julia-%(version_major_minor)s/kernel.json', + ], + 'dirs': [ + 'lib/python%(pyshortver)s/site-packages', + 'share/jupyter/kernels/julia-%(version_major_minor)s/', + ], +} + +moduleclass = 'tools' diff --git a/Golden_Repo/j/JupyterKernel-Octave/JupyterKernel-Octave-6.1.0-gcccoremkl-9.3.0-2020.2.254-2020.2.5.eb b/Golden_Repo/j/JupyterKernel-Octave/JupyterKernel-Octave-6.1.0-gcccoremkl-9.3.0-2020.2.254-2020.2.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..c712e30c7783628b321266ffa1c3e9b35d38f66e --- /dev/null +++ b/Golden_Repo/j/JupyterKernel-Octave/JupyterKernel-Octave-6.1.0-gcccoremkl-9.3.0-2020.2.254-2020.2.5.eb @@ -0,0 +1,137 @@ +easyblock = 'Bundle' + +name = 'JupyterKernel-Octave' +version = '6.1.0' +local_octavever = '6.1.0' +local_jupyterver = '2020.2.5' +versionsuffix = '-' + local_jupyterver + +local_pysuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/Calysto/octave_kernel' +description = """ +Native Octave kernel for Jupyter. +Project Jupyter exists to develop open-source software, open-standards, and services +for interactive computing across dozens of programming languages. +""" + +site_contacts = 'j.goebbert@fz-juelich.de' + +toolchain = {'name': 'gcccoremkl', 'version': '9.3.0-2020.2.254'} +toolchainopts = {'pic': True} + +builddependencies = [ + ('binutils', '2.34'), + ('Octave', local_octavever, '-nompi'), # ensure it is available +] + +dependencies = [ + ('Python', '3.8.5'), + ('Jupyter', local_jupyterver, local_pysuffix), + # no dependency to Octave as it is loaded in kernel.sh +] + +local_jupyter_path = 'share/jupyter' +local_kernel_dir = 'octave' +local_kernel_name = 'Octave-%s' % local_octavever + +modextrapaths = { + 'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages'], + 'JUPYTER_PATH': ['share/jupyter'], # add search path for kernelspecs +} + +# Ensure that the user-specific $HOME/.local/share/jupyter is always first entry in JUPYTHER_PATH +modluafooter = """ +prepend_path("JUPYTER_PATH", pathJoin(os.getenv("HOME"), ".local/share/jupyter")) +""" + +postinstallcmds = [ + # Create virtual environment to ensure we install in the correct directory !!! + 'python3 -m venv %(installdir)s --system-site-packages', + ( + '{ cat > %%(builddir)s/env.sh; } << \'EOF\'\n' + '#!/bin/bash\n' + 'source %%(installdir)s/bin/activate\n' + 'export PYTHONPATH=%%(installdir)s/lib/python%%(pyshortver)s/site-packages:${PYTHONPATH}\n' + 'export JUPYTER_DATA_DIR=%%(installdir)s/%s\n' + 'EOF' + ) % (local_jupyter_path), + + # enable use of Octave from production stage Stages/2020 + 'source %(builddir)s/env.sh && pip3 install ipykernel ', + 'rm -rf %(installdir)s/share/jupyter/kernels/', # remove any kernel installed by ipykernel + 'source %(builddir)s/env.sh && pip3 install ipyparallel ', + + # install Python package octave_kernel + 'source %(builddir)s/env.sh && pip3 install octave_kernel==0.32.0 ', + + # write kernel.sh + ( + '{ cat >> %%(builddir)s/env.sh; } << \'EOF\'\n' + 'export KERNEL_DIR=%s\n' + 'export KERNEL_NAME=%s\n' + 'EOF' + ) % (local_kernel_dir, local_kernel_name), + ( + '{ source %%(builddir)s/env.sh && ' + ' cat > %%(installdir)s/share/jupyter/kernels/%s/kernel.sh; } << \'EOF\'\n' + '#!/bin/bash \n' + '\n' + '# Load required modules \n' + 'module purge \n' + 'module load Stages/2020 \n' + 'module load GCC/9.3.0 \n' + '\n' \ + 'module load Python/%%(pyver)s \n' + 'module load Jupyter/%s%s \n' + 'module load Octave/%s-nompi \n' + '\n' + 'export PYTHONPATH=%%(installdir)s/lib/python%%(pyshortver)s/site-packages:${PYTHONPATH} \n' + '\n' + 'exec python $@\n' + 'EOF' + ) % (local_kernel_dir, local_jupyterver, local_pysuffix, local_octavever), + 'source %(builddir)s/env.sh && chmod +x %(installdir)s/share/jupyter/kernels/${KERNEL_DIR}/kernel.sh', + + # write kernel.json + ( + '{ source %%(builddir)s/env.sh && ' + ' cat > %%(installdir)s/share/jupyter/kernels/%s/kernel.json; } << \'EOF\'\n' + '{ \n' + ' "argv": [ \n' + ' "%%(installdir)s/share/jupyter/kernels/%s/kernel.sh", \n' + ' "-m", \n' + ' "octave_kernel", \n' + ' "-f", \n' + ' "{connection_file}" \n' + ' ], \n' + ' "display_name": "%s", \n' + ' "mimetype": "text/x-octave", \n' + ' "language": "python", \n' + ' "name": "%s" \n' + '}\n' + 'EOF' + ) % (local_kernel_dir, local_kernel_dir, local_kernel_name, local_kernel_name), + + # ensure correct permissions + 'source %(builddir)s/env.sh && chmod -R o+x %(installdir)s/share', + + # Ensure we remove the virtuel environment to avoid wrong search path for python packages + 'rm %(installdir)s/pyvenv.cfg', + 'rm -r %(installdir)s/bin', +] + +# specify that Bundle easyblock should run a full sanity check, rather than just trying to load the module +# full_sanity_check = True +sanity_check_paths = { + 'files': [ + 'share/jupyter/kernels/%s/kernel.sh' % local_kernel_dir, + 'share/jupyter/kernels/%s/kernel.json' % local_kernel_dir, + ], + 'dirs': [ + 'lib/python%(pyshortver)s/site-packages', + 'share/jupyter/kernels/octave/', + ], +} + +moduleclass = 'tools' diff --git a/Golden_Repo/j/JupyterKernel-PyParaView/JupyterKernel-PyParaView-5.8.1-gcccoremkl-9.3.0-2020.2.254-2020.2.5.eb b/Golden_Repo/j/JupyterKernel-PyParaView/JupyterKernel-PyParaView-5.8.1-gcccoremkl-9.3.0-2020.2.254-2020.2.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..02ad2914a3351aa6ab1ef393d1bc817069fdb2e4 --- /dev/null +++ b/Golden_Repo/j/JupyterKernel-PyParaView/JupyterKernel-PyParaView-5.8.1-gcccoremkl-9.3.0-2020.2.254-2020.2.5.eb @@ -0,0 +1,130 @@ +easyblock = 'Binary' + +name = 'JupyterKernel-PyParaView' +version = '5.8.1' +local_paraviewver = '5.8.1' +local_jupyterver = '2020.2.5' +versionsuffix = '-' + local_jupyterver + +local_pysuffix = '-Python-%(pyver)s' + +homepage = 'https://www.paraview.org' +description = """ +Special ParaView kernel for Jupyter. +Project Jupyter exists to develop open-source software, open-standards, and services +for interactive computing across dozens of programming languages. +""" +site_contacts = 'j.goebbert@fz-juelich.de' + +toolchain = {'name': 'gcccoremkl', 'version': '9.3.0-2020.2.254'} +toolchainopts = {'pic': True} + +sources = [ + ('logo-128x128.png'), + ('logo-32x32.png'), + ('logo-64x64.png'), +] + +builddependencies = [ + ('binutils', '2.34'), + # ('ParaView', local_paraviewver, '-EGL' + local_pysuffix, ('gpsmkl', '2020')), # ensure it is available +] + +dependencies = [ + ('Python', '3.8.5'), + ('Jupyter', local_jupyterver, local_pysuffix), +] + +local_kernel_dir = 'pyparaview' +local_kernel_name = 'PyParaView-%s' % local_paraviewver + +modextrapaths = { + 'JUPYTER_PATH': ['share/jupyter'], # add search path for kernelspecs +} + +# Ensure that the user-specific $HOME/.local/share/jupyter is first entry in JUPYTHER_PATH +modluafooter = """ +prepend_path("JUPYTER_PATH", pathJoin(os.getenv("HOME"), ".local/share/jupyter")) +""" + +postinstallcmds = [ + ( + '{ cat >> %%(builddir)s/env.sh; } << \'EOF\'\n' + 'export KERNEL_DIR=%s\n' + 'export KERNEL_NAME=%s\n' + 'EOF' + ) % (local_kernel_dir, local_kernel_name), + 'source %%(builddir)s/env.sh && python -m ipykernel install --name=%s --prefix=%%(installdir)s' % local_kernel_dir, + + # write logo image + ( + 'source %%(builddir)s/env.sh && ' + ' cp %%(builddir)s/logo-32x32.png %%(installdir)s/share/jupyter/kernels/%s/logo-32x32.png' + ) % (local_kernel_dir), + ( + 'source %%(builddir)s/env.sh && ' + ' cp %%(builddir)s/logo-64x64.png %%(installdir)s/share/jupyter/kernels/%s/logo-64x64.png' + ) % (local_kernel_dir), + ( + 'source %%(builddir)s/env.sh && ' + ' cp %%(builddir)s/logo-128x128.png %%(installdir)s/share/jupyter/kernels/%s/logo-128x128.png' + ) % (local_kernel_dir), + + # write kernel.sh + ( + '{ source %%(builddir)s/env.sh && ' + ' cat > %%(installdir)s/share/jupyter/kernels/%s/kernel.sh; } << \'EOF\'\n' + '#!/bin/bash \n' + '\n' + '# Load required modules \n' + 'module purge \n' + 'module use $OTHERSTAGES \n' + 'module load Stages/2020 \n' + 'module load GCC/9.3.0 \n' + 'module load ParaStationMPI \n' + 'module load Python/%%(pyver)s \n' + 'module load Jupyter/%s%s \n' + '\n' + 'module load ParaView/%s-EGL%s \n' + 'module unload VTK \n' + '\n' + 'exec python -m ipykernel $@\n' + 'EOF' + ) % (local_kernel_dir, + local_jupyterver, local_pysuffix, + local_paraviewver, local_pysuffix), + 'source %(builddir)s/env.sh && chmod +x %(installdir)s/share/jupyter/kernels/${KERNEL_DIR}/kernel.sh', + + # write kernel.json + ( + '{ source %%(builddir)s/env.sh && ' + ' cat > %%(installdir)s/share/jupyter/kernels/%s/kernel.json; } << \'EOF\'\n' + '{ \n' + ' "argv": [ \n' + ' "%%(installdir)s/share/jupyter/kernels/%s/kernel.sh", \n' + ' "-m", \n' + ' "ipykernel_launcher", \n' + ' "-f", \n' + ' "{connection_file}" \n' + ' ], \n' + ' "display_name": "%s", \n' + ' "language": "python", \n' + ' "name": "%s" \n' + '}\n' + 'EOF' + ) % (local_kernel_dir, local_kernel_dir, local_kernel_name, local_kernel_name), +] + +# specify that Bundle easyblock should run a full sanity check, rather than just trying to load the module +# full_sanity_check = True +sanity_check_paths = { + 'files': [ + 'share/jupyter/kernels/%s/kernel.sh' % local_kernel_dir, + 'share/jupyter/kernels/%s/kernel.json' % local_kernel_dir, + ], + 'dirs': [ + 'share/jupyter/kernels/', + ], +} + +moduleclass = 'tools' diff --git a/Golden_Repo/j/JupyterKernel-R/JupyterKernel-R-4.0.2-gcccoremkl-9.3.0-2020.2.254-2020.2.5.eb b/Golden_Repo/j/JupyterKernel-R/JupyterKernel-R-4.0.2-gcccoremkl-9.3.0-2020.2.254-2020.2.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..ee02c803106fcea641d1bd70912d2ad3052aa32e --- /dev/null +++ b/Golden_Repo/j/JupyterKernel-R/JupyterKernel-R-4.0.2-gcccoremkl-9.3.0-2020.2.254-2020.2.5.eb @@ -0,0 +1,61 @@ +easyblock = 'Bundle' + +name = 'JupyterKernel-R' +version = '4.0.2' +local_jupyterver = '2020.2.5' +versionsuffix = '-' + local_jupyterver + +local_pysuffix = '-Python-3.8.5' + +homepage = 'https://github.com/IRkernel/IRkernel' +description = """ +Native R kernel for Jupyter. +Project Jupyter exists to develop open-source software, open-standards, and services +for interactive computing across dozens of programming languages. +""" + +site_contacts = 'j.goebbert@fz-juelich.de' + +toolchain = {'name': 'gcccoremkl', 'version': '9.3.0-2020.2.254'} +toolchainopts = {'pic': True} + +builddependencies = [ + ('binutils', '2.34'), +] + +dependencies = [ + ('Jupyter', local_jupyterver, local_pysuffix), + ('R', '4.0.2', '-nompi'), +] + +modextrapaths = { + 'JUPYTER_PATH': 'share/jupyter', # add search path for kernelspecs +} + +# Ensure that the user-specific $HOME/.local/share/jupyter is always first entry in JUPYTHER_PATH +modluafooter = """ +prepend_path("JUPYTER_PATH", pathJoin(os.getenv("HOME"), ".local/share/jupyter")) +""" + +postinstallcmds = [ + # Jupyter Kernel: R - https://github.com/IRkernel/IRkernel + # installs R kernel in $EBROOTJUPYTER/share/jupyter/kernels + 'R -e \'IRkernel::installspec(name="ir40", displayname="R 4.0", prefix="%(installdir)s")\'', + + # force options(bitmapType='cairo') -> https://github.com/IRkernel/IRkernel/issues/388 + ( + 'sed -i "s#IRkernel::main()#options(bitmapType=\'cairo\') ; IRkernel::main()#g" ' + ' %(installdir)s/share/jupyter/kernels/ir40/kernel.json' + ), +] + +sanity_check_paths = { + 'files': [ + 'share/jupyter/kernels/ir40/kernel.json', + ], + 'dirs': [ + 'share/jupyter/kernels/ir40/', + ], +} + +moduleclass = 'tools' diff --git a/Golden_Repo/j/JupyterKernel-Ruby/JupyterKernel-Ruby-2.7.1-gcccoremkl-9.3.0-2020.2.254-2020.2.5.eb b/Golden_Repo/j/JupyterKernel-Ruby/JupyterKernel-Ruby-2.7.1-gcccoremkl-9.3.0-2020.2.254-2020.2.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..a88416c91842db501138d1430faf784f9e915615 --- /dev/null +++ b/Golden_Repo/j/JupyterKernel-Ruby/JupyterKernel-Ruby-2.7.1-gcccoremkl-9.3.0-2020.2.254-2020.2.5.eb @@ -0,0 +1,65 @@ +easyblock = 'Bundle' + +name = 'JupyterKernel-Ruby' +version = '2.7.1' +local_jupyterver = '2020.2.5' +versionsuffix = '-' + local_jupyterver + +local_pysuffix = '-Python-3.8.5' + +homepage = 'https://github.com/SciRuby/iruby' +description = """ +Native Ruby kernel for Jupyter. +Project Jupyter exists to develop open-source software, open-standards, and services +for interactive computing across dozens of programming languages. +""" + +site_contacts = 'j.goebbert@fz-juelich.de' + +toolchain = {'name': 'gcccoremkl', 'version': '9.3.0-2020.2.254'} +toolchainopts = {'pic': True} + +builddependencies = [ + ('binutils', '2.34'), +] + +dependencies = [ + ('Python', '3.8.5'), + ('Jupyter', local_jupyterver, local_pysuffix), + ('Ruby', '2.7.1'), +] + +local_jupyter_path = 'share/jupyter' + +modextrapaths = { + 'JUPYTER_PATH': ['share/jupyter'], # add search path for kernelspecs +} + +# Ensure that the user-specific $HOME/.local/share/jupyter is always first entry in JUPYTHER_PATH +modluafooter = """ +prepend_path("JUPYTER_PATH", pathJoin(os.getenv("HOME"), ".local/share/jupyter")) +""" + +postinstallcmds = [ + 'echo "#!/bin/bash" > %(builddir)s/env.sh', + 'echo "export JUPYTER_DATA_DIR=%%(installdir)s/%s" >> %%(builddir)s/env.sh' % local_jupyter_path, + + # install Ruby kernel in $JUPYTHER_PATH + 'source %(builddir)s/env.sh && iruby register --force ', + + # ensure correct permissions + 'source %(builddir)s/env.sh && chmod -R o+x %(installdir)s/share', +] + +# specify that Bundle easyblock should run a full sanity check, rather than just trying to load the module +# full_sanity_check = True +sanity_check_paths = { + 'files': [ + 'share/jupyter/kernels/ruby/kernel.json', + ], + 'dirs': [ + 'share/jupyter/kernels/ruby/', + ], +} + +moduleclass = 'tools' diff --git a/Golden_Repo/j/JupyterProxy-XpraHTML5/JupyterProxy-XpraHTML5-0.3.0-gcccoremkl-9.3.0-2020.2.254-2020.2.5.eb b/Golden_Repo/j/JupyterProxy-XpraHTML5/JupyterProxy-XpraHTML5-0.3.0-gcccoremkl-9.3.0-2020.2.254-2020.2.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..8fde03a92d49c001e80d348d9bd7c8bc68a240b3 --- /dev/null +++ b/Golden_Repo/j/JupyterProxy-XpraHTML5/JupyterProxy-XpraHTML5-0.3.0-gcccoremkl-9.3.0-2020.2.254-2020.2.5.eb @@ -0,0 +1,57 @@ +easyblock = 'PythonBundle' + +name = 'JupyterProxy-XpraHTML5' +version = '0.3.0' + +local_jupyterver = '2020.2.5' +versionsuffix = '-' + local_jupyterver + +homepage = 'https://xpra.org' +description = """ +Jupyter proxy for Xpra HTML5 sessions. +Xpra is an open-source multi-platform persistent remote display server and client +for forwarding applications and desktop screens. +""" + +site_contacts = 'j.goebbert@fz-juelich.de' + +toolchain = {'name': 'gcccoremkl', 'version': '9.3.0-2020.2.254'} +toolchainopts = {'pic': True} + +builddependencies = [ + ('binutils', '2.34'), +] + +dependencies = [ + ('Python', '3.8.5'), + ('Jupyter', local_jupyterver, '-Python-%(pyver)s'), +] + +exts_defaultclass = 'PythonPackage' +exts_default_options = { + 'download_dep_fail': True, + 'source_urls': [PYPI_SOURCE], + 'use_pip': True, +} + +local_common_opts = { + 'req_py_majver': '3', + 'req_py_minver': '0' +} + +exts_list = [ + ('jupyter-xprahtml5-proxy', '0.3.0', dict(list(local_common_opts.items()) + [ + ('checksums', [('sha256', 'db852682e8e366091e6a3984b60ac3d2e6b3197be2ef074440c11cb09e23b80b')]), + ('source_urls', ['https://github.com/FZJ-JSC/jupyter-xprahtml5-proxy/archive/']), + ('source_tmpl', 'v0.3.0_devel.tar.gz'), + ('patches', ['jupyter_xprahtml5_proxy-launch_xpra.patch']), + ('modulename', 'jupyter_xprahtml5_proxy'), + ])), +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +moduleclass = 'tools' diff --git a/Golden_Repo/j/JupyterProxy-XpraHTML5/jupyter_xprahtml5_proxy-launch_xpra.patch b/Golden_Repo/j/JupyterProxy-XpraHTML5/jupyter_xprahtml5_proxy-launch_xpra.patch new file mode 100644 index 0000000000000000000000000000000000000000..329d2ac2728fc42991d54a2f7a74e9c081fc50b0 --- /dev/null +++ b/Golden_Repo/j/JupyterProxy-XpraHTML5/jupyter_xprahtml5_proxy-launch_xpra.patch @@ -0,0 +1,27 @@ +diff -Naur jupyter-xprahtml5-proxy.orig/jupyter_xprahtml5_proxy/share/launch_xpra.sh jupyter-xprahtml5-proxy/jupyter_xprahtml5_proxy/share/launch_xpra.sh +--- jupyter-xprahtml5-proxy.orig/jupyter_xprahtml5_proxy/share/launch_xpra.sh 2020-11-19 00:13:39.000000000 +0100 ++++ jupyter-xprahtml5-proxy/jupyter_xprahtml5_proxy/share/launch_xpra.sh 2020-11-20 18:49:09.557792000 +0100 +@@ -5,10 +5,17 @@ + # Do it here. + + # example +-# module purge > /dev/null +-# module use $OTHERSTAGES > /dev/null +-# module load Stages/2020 > /dev/null +-# module load GCCcore/.9.3.0 > /dev/null +-# module load xpra/4.0.4-Python-3.8.5 > /dev/null ++module purge ++module use $OTHERSTAGES ++module load Stages/2020 ++module load GCCcore/.9.3.0 ++module load xpra/4.0.4-Python-3.8.5 ++module load jsc-xdg-menu/.2020.3 ++ ++if ! command -v xterm &> /dev/null ++then ++ echo "xterm not found - trying to load the xterm-module" ++ module load xterm ++fi + + xpra "$@" + diff --git a/Golden_Repo/jurecadc_overlay/l/LAMMPS/LAMMPS-29Oct2020-gpsmkl-2020-CUDA.eb b/Golden_Repo/jurecadc_overlay/l/LAMMPS/LAMMPS-29Oct2020-gpsmkl-2020-CUDA.eb index ddee966f3e5b79e371d41631ff7432683350fd79..7210f37bc48a792d042c384051407ef0e62e7057 100644 --- a/Golden_Repo/jurecadc_overlay/l/LAMMPS/LAMMPS-29Oct2020-gpsmkl-2020-CUDA.eb +++ b/Golden_Repo/jurecadc_overlay/l/LAMMPS/LAMMPS-29Oct2020-gpsmkl-2020-CUDA.eb @@ -36,7 +36,7 @@ builddependencies = [ ('archspec', '0.1.0', '-Python-%(pyver)s'), ] dependencies = [ - ('CUDA', '11.0', '', True), + ('CUDA', '11.0', '', SYSTEM), ('Python', '3.8.5'), ('libpng', '1.6.37'), ('libjpeg-turbo', '2.0.5'), diff --git a/Golden_Repo/jurecadc_overlay/v/Vampir/Vampir-9.9.0.eb b/Golden_Repo/jurecadc_overlay/v/Vampir/Vampir-9.9.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..bd7449cc1fe09bb86fd46f2d4a6c7f77bdd1d167 --- /dev/null +++ b/Golden_Repo/jurecadc_overlay/v/Vampir/Vampir-9.9.0.eb @@ -0,0 +1,40 @@ +# 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/ +## +easyblock = 'Binary' + +name = "Vampir" +version = "9.9.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. + +""" + +site_contacts = 'sc@fz-juelich.de' + +toolchain = SYSTEM + +sources = ['vampir-%s%s-setup.sh' % (version, local_archsuffix)] + +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': [] +} + +modextravars = { + 'VAMPIR_LICENSE': '/p/software/jurecadc/licenses/vampir/vampir.license', +} + +moduleclass = 'tools' diff --git a/Golden_Repo/jurecadc_overlay/v/VampirServer/VampirServer-9.9.0-gpsmpi-2020.eb b/Golden_Repo/jurecadc_overlay/v/VampirServer/VampirServer-9.9.0-gpsmpi-2020.eb new file mode 100644 index 0000000000000000000000000000000000000000..fb750f42d8eaa5a0f75070b125e0a4ee43d1f821 --- /dev/null +++ b/Golden_Repo/jurecadc_overlay/v/VampirServer/VampirServer-9.9.0-gpsmpi-2020.eb @@ -0,0 +1,61 @@ +# 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/ +## +easyblock = 'Binary' + +name = "VampirServer" +version = "9.9.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> +""" + +site_contacts = 'sc@fz-juelich.de' + +toolchain = {'name': 'gpsmpi', 'version': '2020'} + +toolchainopts = {"usempi": True} + +sources = ['vampirserver-%s-linux-x86_64-setup.sh' % (version)] + +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/jurecadc/licenses/vampir/vampir.license', +} + +moduleclass = 'perf' diff --git a/Golden_Repo/jusuf_overlay/h/HDF/HDF-4.2.15-GCC-9.3.0.eb b/Golden_Repo/jusuf_overlay/h/HDF/HDF-4.2.15-GCC-9.3.0.eb index ec81e25c4bd30963b3e6ee6fd0cb7cc0de28cc3f..6178b0c12adac5ef08a67a76dd1afc8cb3e585d7 100644 --- a/Golden_Repo/jusuf_overlay/h/HDF/HDF-4.2.15-GCC-9.3.0.eb +++ b/Golden_Repo/jusuf_overlay/h/HDF/HDF-4.2.15-GCC-9.3.0.eb @@ -16,6 +16,7 @@ toolchainopts = {'opt': True, 'pic': True} builddependencies = [ ('flex', '2.6.4'), ('Bison', '3.6.4'), + ('Java', '15', '', SYSTEM), ] dependencies = [ @@ -28,7 +29,8 @@ dependencies = [ sources = [SOURCELOWER_TAR_GZ] source_urls = ['http://www.hdfgroup.org/ftp/HDF/releases/HDF%s/src/' % version.split('-')[0]] -configopts = '--with-szlib=$EBROOTSZIP --with-zlib=$EBROOTZLIB --includedir=%(installdir)s/include/%(namelower)s' +configopts = '--with-szlib=$EBROOTSZIP --with-zlib=$EBROOTZLIB --enable-java ' +configopts += '--includedir=%(installdir)s/include/%(namelower)s ' sanity_check_paths = { 'files': ['lib/libdf.a', 'lib/libhdf4.settings', 'lib/libmfhdf.a'], diff --git a/Golden_Repo/jusuf_overlay/h/HDF/HDF-4.2.15-iccifort-2020.2.254-GCC-9.3.0.eb b/Golden_Repo/jusuf_overlay/h/HDF/HDF-4.2.15-iccifort-2020.2.254-GCC-9.3.0.eb index 1f25d07deebddfb7ec4eb214c9b708458c516c8b..b3d0a06f6ac30a4a58270b00cf6ea4150dc7eec3 100644 --- a/Golden_Repo/jusuf_overlay/h/HDF/HDF-4.2.15-iccifort-2020.2.254-GCC-9.3.0.eb +++ b/Golden_Repo/jusuf_overlay/h/HDF/HDF-4.2.15-iccifort-2020.2.254-GCC-9.3.0.eb @@ -16,6 +16,7 @@ toolchainopts = {'opt': True, 'pic': True} builddependencies = [ ('flex', '2.6.4'), ('Bison', '3.6.4'), + ('Java', '15', '', SYSTEM), ] dependencies = [ @@ -28,7 +29,8 @@ dependencies = [ sources = [SOURCELOWER_TAR_GZ] source_urls = ['http://www.hdfgroup.org/ftp/HDF/releases/HDF%s/src/' % version.split('-')[0]] -configopts = '--with-szlib=$EBROOTSZIP --with-zlib=$EBROOTZLIB --includedir=%(installdir)s/include/%(namelower)s' +configopts = '--with-szlib=$EBROOTSZIP --with-zlib=$EBROOTZLIB --enable-java ' +configopts += '--includedir=%(installdir)s/include/%(namelower)s ' sanity_check_paths = { 'files': ['lib/libdf.a', 'lib/libhdf4.settings', 'lib/libmfhdf.a'], diff --git a/Golden_Repo/juwelsbooster_overlay/l/LAMMPS/LAMMPS-29Oct2020-gpsmkl-2020-CUDA.eb b/Golden_Repo/juwelsbooster_overlay/l/LAMMPS/LAMMPS-29Oct2020-gpsmkl-2020-CUDA.eb index ddee966f3e5b79e371d41631ff7432683350fd79..7210f37bc48a792d042c384051407ef0e62e7057 100644 --- a/Golden_Repo/juwelsbooster_overlay/l/LAMMPS/LAMMPS-29Oct2020-gpsmkl-2020-CUDA.eb +++ b/Golden_Repo/juwelsbooster_overlay/l/LAMMPS/LAMMPS-29Oct2020-gpsmkl-2020-CUDA.eb @@ -36,7 +36,7 @@ builddependencies = [ ('archspec', '0.1.0', '-Python-%(pyver)s'), ] dependencies = [ - ('CUDA', '11.0', '', True), + ('CUDA', '11.0', '', SYSTEM), ('Python', '3.8.5'), ('libpng', '1.6.37'), ('libjpeg-turbo', '2.0.5'), diff --git a/Golden_Repo/l/LAMMPS/LAMMPS-29Oct2020-gpsmkl-2020-CUDA.eb b/Golden_Repo/l/LAMMPS/LAMMPS-29Oct2020-gpsmkl-2020-CUDA.eb index b7411d242a805cb6bf5f3f11ae0e693ba31e223b..3a53f84ceb7dd4b9f45a5bdd24bf46daaac26f6c 100644 --- a/Golden_Repo/l/LAMMPS/LAMMPS-29Oct2020-gpsmkl-2020-CUDA.eb +++ b/Golden_Repo/l/LAMMPS/LAMMPS-29Oct2020-gpsmkl-2020-CUDA.eb @@ -36,7 +36,7 @@ builddependencies = [ ('archspec', '0.1.0', '-Python-%(pyver)s'), ] dependencies = [ - ('CUDA', '11.0', '', True), + ('CUDA', '11.0', '', SYSTEM), ('Python', '3.8.5'), ('libpng', '1.6.37'), ('libjpeg-turbo', '2.0.5'), diff --git a/Golden_Repo/l/libxc/README.md b/Golden_Repo/l/libxc/README.md new file mode 100644 index 0000000000000000000000000000000000000000..8b554daccd9029e27a209691fdab65caa674ff1d --- /dev/null +++ b/Golden_Repo/l/libxc/README.md @@ -0,0 +1,25 @@ +# libxc + +The default version of `libxc` in the stage `2020` is `4.3.4`. We decided against the newer version `libxc/5.0.0`, as some applications would need to be patched. However, also not every application is working with version `4.3.4`, as the API changed between version 3 and 4. This lead to the fact that we need two different version: + +- `libxc/3.0.1` +- `libxc/4.3.4` + +Both versions are installed for the following toolchains: + +- `GCC/9.3.0` +- `iccifort-2020.2.254-GCC-9.3.0` + +## ABINIT + +`ABINIT/8.X` is only working with `libxc/3.0.1` due to changes in the API. Starting with `ABINIT/9.X` version 4.3.0 or later is supported. + +## Quantum ESPRESSO + +While Quantum ESPRESSO 6.6 would work with `libxc/5.0.0`, QE would require a patch. From the Quantum ESPRESSO User Guide (https://www.quantum-espresso.org/Doc/user_guide.pdf): + +**Note for version 5.0.0:** the `f03` interfaces are no longer available in `libxc` 5.0.0. They have been reintroduced in the current develop version. Version 5.0.0 is still usable, but, before compiling Quantum ESPRESSO, a string replacement is necessary, namely `‘xcf03’` must berepalced with `‘xcf90’` everywhere in the following files: `funct.f90, xcldalsdadrivers.f90, xcggadrivers.f90, xcmggadrivers.f90, dmxcdrivers.f90` and `dgcxcdrivers.f90` in `Modules` folder and `xctestqelibxc.f90` in `PP/src` folder. + +## Note for future Stage 2021 + +Check if all application can work with the newest version of `libxc`, e.g. 5.0.0. One common version would be desirable. diff --git a/Golden_Repo/l/libxc/libxc-3.0.1-GCC-9.3.0.eb b/Golden_Repo/l/libxc/libxc-3.0.1-GCC-9.3.0.eb index 3041617f624344f7a24b7a980c25d692339abb56..c50654fe0634458014e8daea9605e157abf00352 100644 --- a/Golden_Repo/l/libxc/libxc-3.0.1-GCC-9.3.0.eb +++ b/Golden_Repo/l/libxc/libxc-3.0.1-GCC-9.3.0.eb @@ -9,7 +9,7 @@ Libxc is a library of exchange-correlation functionals for density-functional th The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals. """ -site_contacts = 'Sebastian Achilles (s.achilles@fz-juelich.de)' +site_contacts = 'Sebastian Achilles <s.achilles@fz-juelich.de>' toolchain = {'name': 'GCC', 'version': '9.3.0'} # Results for some functionals (e.g. mgga_c_tpss) deviate with too aggressive optimization settings. diff --git a/Golden_Repo/l/libxsmm/libxsmm-1.16.1-GCC-9.3.0.eb b/Golden_Repo/l/libxsmm/libxsmm-1.16.1-GCC-9.3.0.eb index fa00a133155d8ad92ca38b7c9140c67c8f9e6db0..89152e411f290f6a40395301a61b0b8e813ecd14 100644 --- a/Golden_Repo/l/libxsmm/libxsmm-1.16.1-GCC-9.3.0.eb +++ b/Golden_Repo/l/libxsmm/libxsmm-1.16.1-GCC-9.3.0.eb @@ -15,7 +15,7 @@ sources = ['%(version)s.tar.gz'] source_urls = ['https://github.com/hfp/libxsmm/archive/'] dependencies = [ - ('imkl', '2020.2.254', '', True), + ('imkl', '2020.2.254', '', SYSTEM), ] # install both static and dynamic version diff --git a/Golden_Repo/l/libxsmm/libxsmm-1.16.1-iccifort-2020.2.254-GCC-9.3.0.eb b/Golden_Repo/l/libxsmm/libxsmm-1.16.1-iccifort-2020.2.254-GCC-9.3.0.eb index c46b09870e6687143d89f2af3f793fa669214f83..e424c8064e7b6844838cacdf2ad6b43828fb3615 100644 --- a/Golden_Repo/l/libxsmm/libxsmm-1.16.1-iccifort-2020.2.254-GCC-9.3.0.eb +++ b/Golden_Repo/l/libxsmm/libxsmm-1.16.1-iccifort-2020.2.254-GCC-9.3.0.eb @@ -15,7 +15,7 @@ sources = ['%(version)s.tar.gz'] source_urls = ['https://github.com/hfp/libxsmm/archive/'] dependencies = [ - ('imkl', '2020.2.254', '', True), + ('imkl', '2020.2.254', '', SYSTEM), ] # install both static and dynamic version diff --git a/Golden_Repo/m/magma/magma-2.5.4-gcccoremkl-9.3.0-2020.2.254.eb b/Golden_Repo/m/magma/magma-2.5.4-gcccoremkl-9.3.0-2020.2.254.eb index 53c0ff98cae3078e56396775c7795f3713bafc30..f4def944cc3a11eb0bd00343ed7a9211df35b8b0 100644 --- a/Golden_Repo/m/magma/magma-2.5.4-gcccoremkl-9.3.0-2020.2.254.eb +++ b/Golden_Repo/m/magma/magma-2.5.4-gcccoremkl-9.3.0-2020.2.254.eb @@ -22,7 +22,7 @@ builddependencies = [ ] dependencies = [ - ('CUDA', '11.0', '', True), + ('CUDA', '11.0', '', SYSTEM), ] # make sure both static and shared libs are built diff --git a/Golden_Repo/m/mpi4py/mpi4py-3.0.3-iimpi-2020-Python-3.8.5.eb b/Golden_Repo/m/mpi4py/mpi4py-3.0.3-iimpi-2020-Python-3.8.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..403d9b55a92573b407c346d59092cbc5d3d4ff38 --- /dev/null +++ b/Golden_Repo/m/mpi4py/mpi4py-3.0.3-iimpi-2020-Python-3.8.5.eb @@ -0,0 +1,27 @@ +easyblock = 'PythonPackage' + +name = 'mpi4py' +version = '3.0.3' + +homepage = 'https://bitbucket.org/mpi4py/mpi4py' +description = """MPI for Python (mpi4py) provides bindings of the Message Passing Interface (MPI) standard for + the Python programming language, allowing any Python program to exploit multiple processors. +""" + +site_contacts = 'a.kreuzer@fz-juelich.de' + +toolchain = {'name': 'iimpi', 'version': '2020'} + +source_urls = [BITBUCKET_DOWNLOADS] +sources = [SOURCE_TAR_GZ] + +versionsuffix = '-Python-%(pyver)s' + +dependencies = [('Python', '3.8.5')] + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/mpi4py'], +} + +moduleclass = 'mpi' diff --git a/Golden_Repo/m/mpi4py/mpi4py-3.0.3-iompi-2020-Python-3.8.5.eb b/Golden_Repo/m/mpi4py/mpi4py-3.0.3-iompi-2020-Python-3.8.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..a047689c7a499148c6dfdb36da3811e0e47867c1 --- /dev/null +++ b/Golden_Repo/m/mpi4py/mpi4py-3.0.3-iompi-2020-Python-3.8.5.eb @@ -0,0 +1,27 @@ +easyblock = 'PythonPackage' + +name = 'mpi4py' +version = '3.0.3' + +homepage = 'https://bitbucket.org/mpi4py/mpi4py' +description = """MPI for Python (mpi4py) provides bindings of the Message Passing Interface (MPI) standard for + the Python programming language, allowing any Python program to exploit multiple processors. +""" + +site_contacts = 'a.kreuzer@fz-juelich.de' + +toolchain = {'name': 'iompi', 'version': '2020'} + +source_urls = [BITBUCKET_DOWNLOADS] +sources = [SOURCE_TAR_GZ] + +versionsuffix = '-Python-%(pyver)s' + +dependencies = [('Python', '3.8.5')] + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/mpi4py'], +} + +moduleclass = 'mpi' diff --git a/Golden_Repo/m/mpi4py/mpi4py-3.0.3-ipsmpi-2020-mt-Python-3.8.5.eb b/Golden_Repo/m/mpi4py/mpi4py-3.0.3-ipsmpi-2020-mt-Python-3.8.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..9aa9df5da18424443a1c83f9f11fc808e73686c6 --- /dev/null +++ b/Golden_Repo/m/mpi4py/mpi4py-3.0.3-ipsmpi-2020-mt-Python-3.8.5.eb @@ -0,0 +1,27 @@ +easyblock = 'PythonPackage' + +name = 'mpi4py' +version = '3.0.3' + +homepage = 'https://bitbucket.org/mpi4py/mpi4py' +description = """MPI for Python (mpi4py) provides bindings of the Message Passing Interface (MPI) standard for + the Python programming language, allowing any Python program to exploit multiple processors. +""" + +site_contacts = 'a.kreuzer@fz-juelich.de' + +toolchain = {'name': 'ipsmpi', 'version': '2020-mt'} + +source_urls = [BITBUCKET_DOWNLOADS] +sources = [SOURCE_TAR_GZ] + +versionsuffix = '-Python-%(pyver)s' + +dependencies = [('Python', '3.8.5')] + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/mpi4py'], +} + +moduleclass = 'mpi' diff --git a/Golden_Repo/n/Nsight-Compute/Nsight-Compute-2020.3.0-GCCcore-9.3.0.eb b/Golden_Repo/n/Nsight-Compute/Nsight-Compute-2020.3.0-GCCcore-9.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..c6029d714fce57ffe2b3fdaa402cf00a1a29a11f --- /dev/null +++ b/Golden_Repo/n/Nsight-Compute/Nsight-Compute-2020.3.0-GCCcore-9.3.0.eb @@ -0,0 +1,49 @@ +# jg (CSCS) +# AH (JSC) +easyblock = 'Binary' + +name = 'Nsight-Compute' +version = '2020.3.0' +homepage = 'https://developer.nvidia.com/nsight-compute' +description = 'NVIDIA Nsight Compute is an interactive kernel profiler for CUDA applications' + +site_contacts = 'Andreas Herten <a.herten@fz-juelich.de>' + +toolchain = {'name': 'GCCcore', 'version': '9.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.18-29307467.run', + 'extract_cmd': '/bin/sh %s' +}] +checksums = ['af838473286e180904ec972892faf13ef4546b0e0fb539b87c06382daadfe2c1'] + +# Not really necessary, but useful if we use this as a template for another package +builddependencies = [ + ('binutils', '2.34'), +] + +dependencies = [ + # ('nvidia-driver', 'default', '', SYSTEM), + ('X11', '20200222') +] + +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/o/Octave/Octave-5.2.0-gpsmkl-2020.eb b/Golden_Repo/o/Octave/Octave-5.2.0-gpsmkl-2020.eb index f269520d75a34746df74ba1b52393662c994f6e6..7ba5b3411e29ac03d42f3a0faa7d8a941d06661a 100644 --- a/Golden_Repo/o/Octave/Octave-5.2.0-gpsmkl-2020.eb +++ b/Golden_Repo/o/Octave/Octave-5.2.0-gpsmkl-2020.eb @@ -35,8 +35,9 @@ dependencies = [ ('GLPK', '4.65'), ('GL2PS', '1.4.2'), ('gnuplot', '5.2.8'), - ('Java', '1.8', '', True), + ('Java', '1.8', '', SYSTEM), ('OpenGL', '2020'), + ('freeglut', '3.2.1'), ('zlib', '1.2.11'), ('Qhull', '2020.1'), ('Qt5', '5.14.2'), @@ -61,6 +62,6 @@ sanity_check_paths = { 'dirs': [] } -sanity_check_commands = [('octave', '--eval "1+2"')] +sanity_check_commands = [('octave-cli', '--eval "1+2"')] moduleclass = 'math' diff --git a/Golden_Repo/o/Octave/Octave-6.1.0-gcccoremkl-9.3.0-2020.2.254-nompi.eb b/Golden_Repo/o/Octave/Octave-6.1.0-gcccoremkl-9.3.0-2020.2.254-nompi.eb new file mode 100644 index 0000000000000000000000000000000000000000..dff7022148519d11b831f92623c453785bc3ee76 --- /dev/null +++ b/Golden_Repo/o/Octave/Octave-6.1.0-gcccoremkl-9.3.0-2020.2.254-nompi.eb @@ -0,0 +1,70 @@ +easyblock = 'ConfigureMake' + +name = 'Octave' +version = '6.1.0' +versionsuffix = '-nompi' + +homepage = 'http://www.gnu.org/software/octave/' +description = """GNU Octave is a high-level interpreted language, primarily intended for numerical computations.""" + +site_contacts = 'a.kreuzer@fz-juelich.de' + +toolchain = {'name': 'gcccoremkl', 'version': '9.3.0-2020.2.254'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('binutils', '2.34'), + ('Bison', '3.6.4'), + ('flex', '2.6.4'), + ('pkg-config', '0.29.2'), + ('texinfo', '6.7'), + ('gperf', '3.1'), + ('Autotools', '20200321'), +] + +dependencies = [ + ('X11', '20200222'), + ('PCRE', '8.44'), + ('ncurses', '6.2'), + ('libreadline', '8.0'), + ('ARPACK-NG', '3.7.0', '-nompi'), + ('cURL', '7.71.1'), + ('FLTK', '1.3.5'), + ('fontconfig', '2.13.92'), + ('freetype', '2.10.1'), + ('GLPK', '4.65'), + ('GL2PS', '1.4.2'), + ('gnuplot', '5.2.8'), + ('Java', '15', '', SYSTEM), + ('OpenGL', '2020'), + ('freeglut', '3.2.1'), + ('zlib', '1.2.11'), + ('Qhull', '2020.1'), + ('Qt5', '5.14.2'), + ('HDF5', '1.10.6', '-serial'), + ('qrupdate', '1.1.2'), + ('GraphicsMagick', '1.3.35'), + ('FFTW', '3.3.8', '-nompi'), + ('texlive', '20200406'), +] + +maxparallel = 12 + +configopts = 'MOC=$EBROOTQT5/bin/moc ' +configopts += 'UIC=$EBROOTQT5/bin/uic ' +configopts += 'RCC=$EBROOTQT5/bin/rcc ' +configopts += 'LRELEASE=$EBROOTQT5/bin/lrelease ' +configopts += '--with-blas="$LIBBLAS" --with-lapack="$LIBLAPACK" --disable-docs ' +# correct for both GCC and Intel compilers +configopts += '--enable-fortran-calling-convention=gfortran ' + +sanity_check_paths = { + 'files': ['bin/octave'], + 'dirs': [] +} + +sanity_check_commands = [('octave-cli', '--eval "1+2"')] + +moduleclass = 'math' diff --git a/Golden_Repo/o/Octave/Octave-6.1.0-gpsmkl-2020.eb b/Golden_Repo/o/Octave/Octave-6.1.0-gpsmkl-2020.eb new file mode 100644 index 0000000000000000000000000000000000000000..c18bec08905494c893b7a97af80a1976f818a7ed --- /dev/null +++ b/Golden_Repo/o/Octave/Octave-6.1.0-gpsmkl-2020.eb @@ -0,0 +1,67 @@ +easyblock = 'ConfigureMake' + +name = 'Octave' +version = '6.1.0' + +homepage = 'http://www.gnu.org/software/octave/' +description = """GNU Octave is a high-level interpreted language, primarily intended for numerical computations.""" + +site_contacts = 'a.kreuzer@fz-juelich.de' + +toolchain = {'name': 'gpsmkl', 'version': '2020'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('Bison', '3.6.4'), + ('flex', '2.6.4'), + ('pkg-config', '0.29.2'), + ('texinfo', '6.7'), + ('gperf', '3.1'), + ('Autotools', '20200321'), +] + +dependencies = [ + ('X11', '20200222'), + ('PCRE', '8.44'), + ('ncurses', '6.2'), + ('libreadline', '8.0'), + ('ARPACK-NG', '3.7.0'), + ('cURL', '7.71.1'), + ('FLTK', '1.3.5'), + ('fontconfig', '2.13.92'), + ('freetype', '2.10.1'), + ('GLPK', '4.65'), + ('GL2PS', '1.4.2'), + ('gnuplot', '5.2.8'), + ('Java', '15', '', SYSTEM), + ('OpenGL', '2020'), + ('freeglut', '3.2.1'), + ('zlib', '1.2.11'), + ('Qhull', '2020.1'), + ('Qt5', '5.14.2'), + ('HDF5', '1.10.6'), + ('qrupdate', '1.1.2'), + ('SuiteSparse', '5.7.1', '-CUDA'), + ('GraphicsMagick', '1.3.35'), + ('FFTW', '3.3.8'), + ('texlive', '20200406'), +] + +configopts = 'MOC=$EBROOTQT5/bin/moc ' +configopts += 'UIC=$EBROOTQT5/bin/uic ' +configopts += 'RCC=$EBROOTQT5/bin/rcc ' +configopts += 'LRELEASE=$EBROOTQT5/bin/lrelease ' +configopts += '--with-blas="$LIBBLAS" --with-lapack="$LIBLAPACK" --disable-docs ' +# correct for both GCC and Intel compilers +configopts += '--enable-fortran-calling-convention=gfortran ' + +sanity_check_paths = { + 'files': ['bin/octave'], + 'dirs': [] +} + +sanity_check_commands = [('octave-cli', '--eval "1+2"')] + +moduleclass = 'math' diff --git a/Golden_Repo/p/Pillow-SIMD/Pillow-SIMD-7.0.0.post3-GCCcore-9.3.0-Python-3.8.5.eb b/Golden_Repo/p/Pillow-SIMD/Pillow-SIMD-7.0.0.post3-GCCcore-9.3.0-Python-3.8.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..c2110159fe17783ec386b8ca4e083c49df3e6ee2 --- /dev/null +++ b/Golden_Repo/p/Pillow-SIMD/Pillow-SIMD-7.0.0.post3-GCCcore-9.3.0-Python-3.8.5.eb @@ -0,0 +1,41 @@ +easyblock = 'PythonPackage' + +name = 'Pillow-SIMD' +version = '7.0.0.post3' +versionsuffix = '-Python-%(pyver)s' + + +homepage = 'https://github.com/uploadcare/pillow-simd' +description = """Pillow-SIMD is a drop-in replacement for Pillow with AVX support +Pillow is the 'friendly PIL fork' by Alex Clark and Contributors. + PIL is the Python Imaging Library by Fredrik Lundh and Contributors.""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} + +site_contacts = 'a.strube@fz-juelich.de' + +source_urls = ['https://github.com/uploadcare/pillow-simd/archive/'] +sources = ['v%(version)s.tar.gz'] + +builddependencies = [('binutils', '2.34')] + +dependencies = [ + ('Python', '3.8.5'), + ('libjpeg-turbo', '2.0.5'), + ('libpng', '1.6.37'), + ('zlib', '1.2.11'), + ('LibTIFF', '4.1.0'), + ('freetype', '2.10.1') +] + +use_pip = True +download_dep_fail = True + +options = {'modulename': 'PIL'} + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/PIL'], +} + +moduleclass = 'vis' diff --git a/Golden_Repo/p/PostgreSQL/PostgreSQL-12.3-GCCcore-9.3.0.eb b/Golden_Repo/p/PostgreSQL/PostgreSQL-12.3-GCCcore-9.3.0.eb index e18f87f8d34dd5f804eeca69be97bacf47e6a11c..a869d62bf93773a4b99e88d4f7efd384b7c0bad5 100644 --- a/Golden_Repo/p/PostgreSQL/PostgreSQL-12.3-GCCcore-9.3.0.eb +++ b/Golden_Repo/p/PostgreSQL/PostgreSQL-12.3-GCCcore-9.3.0.eb @@ -25,7 +25,7 @@ toolchain = {'name': 'GCCcore', 'version': '9.3.0'} osdependencies = [('openssl-devel', 'libssl-dev')] dependencies = [ - ('Java', '1.8', '', True), + ('Java', '1.8', '', SYSTEM), ('libreadline', '8.0'), ('zlib', '1.2.11'), ] diff --git a/Golden_Repo/p/PyFerret/Faddpath b/Golden_Repo/p/PyFerret/Faddpath new file mode 100755 index 0000000000000000000000000000000000000000..e97792348b685397f6c75bcffc2aa697be7749ea --- /dev/null +++ b/Golden_Repo/p/PyFerret/Faddpath @@ -0,0 +1,11 @@ +# Wrapper to compensate for the lack of function definition (defined when sourcing a PyFerret script) +#!/bin/sh +if [ -n "$*" ] +then + export FER_GO="$FER_GO $*" + export FER_DATA="$FER_DATA $*" + export FER_DESCR="$FER_DESCR $*" + export FER_GRIDS="$FER_GRIDS $*" +else + echo " Usage: Faddpath new_directory_1 ..." +fi diff --git a/Golden_Repo/p/PyFerret/PyFerret-7.6.3-gpsmkl-2020-Python-3.8.5.eb b/Golden_Repo/p/PyFerret/PyFerret-7.6.3-gpsmkl-2020-Python-3.8.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..c3fc983f42e8f61935e007745a9616463676a521 --- /dev/null +++ b/Golden_Repo/p/PyFerret/PyFerret-7.6.3-gpsmkl-2020-Python-3.8.5.eb @@ -0,0 +1,96 @@ +easyblock = 'ConfigureMake' + +name = 'PyFerret' +version = '7.6.3' +local_dataset_ver = '7.6' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://ferret.pmel.noaa.gov/' +description = '''PyFerret is an interactive computer visualization and analysis environment +designed to meet the needs of oceanographers and meteorologists analyzing large and complex gridded data sets.''' + +site_contacts = 'j.goebbert@fz-juelich.de' + +toolchain = {'name': 'gpsmkl', 'version': '2020'} +toolchainopts = {'usempi': False} + +source_urls = [ + 'https://github.com/NOAA-PMEL/PyFerret/archive/', + 'https://github.com/NOAA-PMEL/FerretDatasets/archive/' +] +sources = [ + 'v%(version)s.tar.gz', + 'v7.6.tar.gz' +] + +checksums = [ + ('sha256', 'f062c20bedf64713f57c3d45aaeb63eb9b4d3ba622e5c5e4a99e61fdf08d2224'), + ('sha256', 'b2fef758ec1817c1c19e6225857ca3a82c727d209ed7fd4697d45c5533bb2c72'), +] + +patches = [ + ('pyferret', 'bin'), + ('Faddpath', 'bin'), + ('configure_pyferret-7.6.3_stage2020.patch') +] + +dependencies = [ + ('Python', '3.8.5'), + ('SciPy-Stack', '2020', versionsuffix, ('gcccoremkl', '9.3.0-2020.2.254')), + ('netCDF', '4.7.4'), + ('netCDF-Fortran', '4.5.3'), + ('HDF5', '1.10.6'), + ('zlib', '1.2.11'), + ('cURL', '7.71.1'), + ('Pango', '1.44.7'), + ('libpng', '1.6.37'), + ('cairo', '1.17.2'), + ('freetype', '2.10.1'), + ('fontconfig', '2.13.92'), + ('pixman', '0.40.0'), + ('GLib', '2.64.4'), + ('PyQt5', '5.15.1', versionsuffix), +] + +maxparallel = 1 # yes! + +skipsteps = ['configure'] +start_dir = '%(builddir)s/%(name)s-%(version)s' + +prebuildopts = ['export FER_SRC_PREFIX=%(builddir)s/%(name)s-%(version)s && '] + +preinstallopts = ['export FER_DIR=%(installdir)s && '] + +modextrapaths = { + 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages', + 'LD_LIBRARY_PATH': 'lib/python%(pyshortver)s/site-packages/pyferret', +} + +modextravars = { + 'FER_DIR': '%(installdir)s', + 'FER_DSETS': '%(installdir)s/datasets', + # 'FER_WEB_BROWSER': 'firefox', # Probably nobody should use this + 'FER_DATA_THREDDS': 'http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml %(installdir)s/datasets', + 'FER_DATA': '. %(installdir)s/datasets/data %(installdir)s/go %(installdir)s/examples', + 'FER_DESCR': '. %(installdir)s/datasets/descr', + 'FER_GRIDS': '. %(installdir)s/datasets/grids', + 'FER_GO': '. %(installdir)s/go %(installdir)s/examples %(installdir)s/contrib', + 'FER_EXTERNAL_FUNCTIONS': '%(installdir)s/ext_func/libs', + 'PYFER_EXTERNAL_FUNCTIONS': '%(installdir)s/ext_func/pylibs', + 'FER_PALETTE': '. %(installdir)s/ppl', + 'SPECTRA': '%(installdir)s/ppl', + 'FER_FONTS': '%(installdir)s/ppl/fonts', + 'PLOTFONTS': '%(installdir)s/ppl/fonts', + 'FER_LIBS': '%(installdir)s/lib', + 'FER_DAT': '%(installdir)s', +} + +postinstallcmds = [ + 'chmod +x %(installdir)s/bin/pyferret', + 'mkdir %(installdir)s/datasets', + 'mv %%(builddir)s/FerretDatasets-%s/data %%(installdir)s/datasets' % local_dataset_ver, + 'mv %%(builddir)s/FerretDatasets-%s/descr %%(installdir)s/datasets' % local_dataset_ver, + 'mv %%(builddir)s/FerretDatasets-%s/grids %%(installdir)s/datasets' % local_dataset_ver, +] + +moduleclass = 'vis' diff --git a/Golden_Repo/p/PyFerret/configure_pyferret-7.6.3_stage2020.patch b/Golden_Repo/p/PyFerret/configure_pyferret-7.6.3_stage2020.patch new file mode 100644 index 0000000000000000000000000000000000000000..39846aaef0874e38f911531151609f56ef3b72e4 --- /dev/null +++ b/Golden_Repo/p/PyFerret/configure_pyferret-7.6.3_stage2020.patch @@ -0,0 +1,438 @@ +diff -Naur PyFerret-7.6.3.orig/external_functions/ef_utility/site_specific.mk PyFerret-7.6.3/external_functions/ef_utility/site_specific.mk +--- PyFerret-7.6.3.orig/external_functions/ef_utility/site_specific.mk 1970-01-01 01:00:00.000000000 +0100 ++++ PyFerret-7.6.3/external_functions/ef_utility/site_specific.mk 2020-12-17 15:22:43.154040000 +0100 +@@ -0,0 +1,75 @@ ++## Site-dependent definitions included in external function Makefiles ++## of an installed PyFerret directory. ++ ++## ========================= ++## Machine type for which to build Ferret/PyFerret ++## x86_64-linux for 64-bit RHEL ++## x86_64-linux-gnu for 64-bit Ubuntu and many "free" Linux systems ++## i386-linux for 32-bit RHEL ++## i386-linux-gnu for 32-bit Ubuntu and many "free" Linux systems ++## intel-mac for Max OSX ++## This value is used to determine which platform_specific.mk ++## file to include in the Makefiles. ++## ========================= ++# BUILDTYPE = $(HOSTTYPE) ++BUILDTYPE = x86_64-linux ++# BUILDTYPE = x86_64-linux-gnu ++# BUILDTYPE = i386-linux ++# BUILDTYPE = i386-linux-gnu ++# BUILDTYPE = intel-mac ++ ++## ========================= ++## INSTALL_FER_DIR and PYTHON_EXE are only used to construct ++## the location of pyferret library. The library should be ++## (for either 32-bit or 64-bit Linux) ++## $(INSTALL_FER_DIR)/lib/$(PYTHON_EXE)/site-package/pyferret/libpyferret.so ++## or possibly (for 64-bit Linux only) ++## $(INSTALL_FER_DIR)/lib64/$(PYTHON_EXE)/site-package/pyferret/libpyferret.so ++## ++## PyFerret installation directory, usually just $(FER_DIR) ++## Must be $(FER_DIR) when building pyferret from source. ++## (This file is also found in PyFerret installations, thus the option.) ++## ========================= ++# INSTALL_FER_DIR = $(HOME)/PyFerret ++INSTALL_FER_DIR = $(FER_DIR) ++ ++## ========================= ++## C and Fortran compilers to use. The construct "$(shell which gcc)" assigns ++## the response to "which gcc" run from a Bourne shell (such as bash). ++## When compiling for Mac OS X, one may wish to use clang instead of gcc. ++## If you wish to use values already defined in you shell environment when ++## you run make, comment out all definitions of CC and FC (do NOT leave blank). ++## ========================= ++# CC = $(shell which clang) ++CC = $(shell which gcc) ++FC = $(shell which gfortran) ++ ++## ========================= ++## Linker used to generate executables and shared-object libraries. ++## Normally the Fortran compiler is used which then calls the actual ++## linker with appropriate flags and system-level Fortran libraries. ++## The construct "$(shell which gfortran)" assigns the response to ++## "which gfortran" run from a Bourne shell (such as bash). ++## If you wish to use a value already defined in you shell environment when ++## you run make, comment out all definitions of LD (do NOT leave blank). ++## ========================= ++LD = $(shell which gfortran) ++ ++## ========================= ++## Python version used by PyFerret ++## ========================= ++# PYTHON_EXE = python2.6 ++# PYTHON_EXE = python2.7 ++# PYTHON_EXE = python3.6 ++# PYTHON_EXE = python3.7 ++PYTHON_EXE = python3.8 ++ ++## ========================= ++## FER_LOCAL_EXTFCNS is the directory in which to install ++## the Ferret Fortran external functions. The example ++## functions that come with the PyFerret installation are ++## installed in $(INSTALL_FER_DIR)/ext_func/pylibs ++## ========================= ++FER_LOCAL_EXTFCNS = $(INSTALL_FER_DIR)/ext_func/pylibs ++ ++## +diff -Naur PyFerret-7.6.3.orig/Makefile PyFerret-7.6.3/Makefile +--- PyFerret-7.6.3.orig/Makefile 2020-09-28 21:10:48.000000000 +0200 ++++ PyFerret-7.6.3/Makefile 2020-12-17 14:37:08.501952000 +0100 +@@ -74,10 +74,12 @@ + export CFLAGS="$(CFLAGS) -DNDEBUG -O" ; \ + export BUILDTYPE=$(BUILDTYPE) ; \ + export NETCDF_LIBDIR=$(NETCDF_LIBDIR) ; \ ++ export NETCDFFORTRAN_LIBDIR=$(NETCDFFORTRAN_LIBDIR) ; \ + export HDF5_LIBDIR=$(HDF5_LIBDIR) ; \ + export SZ_LIBDIR=$(SZ_LIBDIR) ; \ + export CAIRO_LIBDIR=$(CAIRO_LIBDIR) ; \ + export PIXMAN_LIBDIR=$(PIXMAN_LIBDIR) ; \ ++ export HARFBUZZ_LIBDIR=$(HARFBUZZ_LIBDIR) ; \ + export PANGO_LIBDIR=$(PANGO_LIBDIR) ; \ + export GLIB2_LIBDIR=$(GLIB2_LIBDIR) ; \ + export GFORTRAN_LIB=$(GFORTRAN_LIB) ; \ +@@ -94,10 +96,12 @@ + export CFLAGS="$(CFLAGS) -DNDEBUG -O" ; \ + export BUILDTYPE=$(BUILDTYPE) ; \ + export NETCDF_LIBDIR=$(NETCDF_LIBDIR) ; \ ++ export NETCDFFORTRAN_LIBDIR=$(NETCDFFORTRAN_LIBDIR) ; \ + export HDF5_LIBDIR=$(HDF5_LIBDIR) ; \ + export SZ_LIBDIR=$(SZ_LIBDIR) ; \ + export CAIRO_LIBDIR=$(CAIRO_LIBDIR) ; \ + export PIXMAN_LIBDIR=$(PIXMAN_LIBDIR) ; \ ++ export HARFBUZZ_LIBDIR=$(HARFBUZZ_LIBDIR) ; \ + export PANGO_LIBDIR=$(PANGO_LIBDIR) ; \ + export GLIB2_LIBDIR=$(GLIB2_LIBDIR) ; \ + export GFORTRAN_LIB=$(GFORTRAN_LIB) ; \ +@@ -117,10 +121,12 @@ + export CFLAGS="$(CFLAGS) -UNDEBUG -O0 -g" ; \ + export BUILDTYPE=$(BUILDTYPE) ; \ + export NETCDF_LIBDIR=$(NETCDF_LIBDIR) ; \ ++ export NETCDFFORTRAN_LIBDIR=$(NETCDFFORTRAN_LIBDIR) ; \ + export HDF5_LIBDIR=$(HDF5_LIBDIR) ; \ + export SZ_LIBDIR=$(SZ_LIBDIR) ; \ + export CAIRO_LIBDIR=$(CAIRO_LIBDIR) ; \ + export PIXMAN_LIBDIR=$(PIXMAN_LIBDIR) ; \ ++ export HARFBUZZ_LIBDIR=$(HARFBUZZ_LIBDIR) ; \ + export PANGO_LIBDIR=$(PANGO_LIBDIR) ; \ + export GLIB2_LIBDIR=$(GLIB2_LIBDIR) ; \ + export GFORTRAN_LIB=$(GFORTRAN_LIB) ; \ +@@ -137,10 +143,12 @@ + export CFLAGS="$(CFLAGS) -UNDEBUG -O0 -g" ; \ + export BUILDTYPE=$(BUILDTYPE) ; \ + export NETCDF_LIBDIR=$(NETCDF_LIBDIR) ; \ ++ export NETCDFFORTRAN_LIBDIR=$(NETCDFFORTRAN_LIBDIR) ; \ + export HDF5_LIBDIR=$(HDF5_LIBDIR) ; \ + export SZ_LIBDIR=$(SZ_LIBDIR) ; \ + export CAIRO_LIBDIR=$(CAIRO_LIBDIR) ; \ + export PIXMAN_LIBDIR=$(PIXMAN_LIBDIR) ; \ ++ export HARFBUZZ_LIBDIR=$(HARFBUZZ_LIBDIR) ; \ + export PANGO_LIBDIR=$(PANGO_LIBDIR) ; \ + export GLIB2_LIBDIR=$(GLIB2_LIBDIR) ; \ + export GFORTRAN_LIB=$(GFORTRAN_LIB) ; \ +@@ -185,10 +193,12 @@ + export CFLAGS="$(CFLAGS) -O" ; \ + export BUILDTYPE=$(BUILDTYPE) ; \ + export NETCDF_LIBDIR=$(NETCDF_LIBDIR) ; \ ++ export NETCDFFORTRAN_LIBDIR=$(NETCDFFORTRAN_LIBDIR) ; \ + export HDF5_LIBDIR=$(HDF5_LIBDIR) ; \ + export SZ_LIBDIR=$(SZ_LIBDIR) ; \ + export CAIRO_LIBDIR=$(CAIRO_LIBDIR) ; \ + export PIXMAN_LIBDIR=$(PIXMAN_LIBDIR) ; \ ++ export HARFBUZZ_LIBDIR=$(HARFBUZZ_LIBDIR) ; \ + export PANGO_LIBDIR=$(PANGO_LIBDIR) ; \ + export GLIB2_LIBDIR=$(GLIB2_LIBDIR) ; \ + export GFORTRAN_LIB=$(GFORTRAN_LIB) ; \ +diff -Naur PyFerret-7.6.3.orig/platform_specific.mk.x86_64-linux PyFerret-7.6.3/platform_specific.mk.x86_64-linux +--- PyFerret-7.6.3.orig/platform_specific.mk.x86_64-linux 2020-09-28 21:10:48.000000000 +0200 ++++ PyFerret-7.6.3/platform_specific.mk.x86_64-linux 2020-12-17 14:36:27.694118000 +0100 +@@ -17,6 +17,7 @@ + # Include directories + # + NETCDF_INCLUDE = -I$(NETCDF_LIBDIR)/../include ++ NETCDFFORTRAN_INCLUDE = -I$(NETCDFFORTRAN_LIBDIR)/../include + + ifeq ($(strip $(HDF5_LIBDIR)),) + HDF5_INCLUDE = +@@ -36,6 +37,12 @@ + PIXMAN_INCLUDE = -I$(PIXMAN_LIBDIR)/../include + endif + ++ifeq ($(strip $(HARFBUZZ_LIBDIR)),) ++ HARFBUZZ_INCLUDE = -I/usr/include/harfbuzz ++else ++ HARFBUZZ_INCLUDE = -I$(HARFBUZZ_LIBDIR)/../include/harfbuzz ++endif ++ + ifeq ($(strip $(PANGO_LIBDIR)),) + PANGO_INCLUDE = -I/usr/include/pango-1.0 + else +@@ -64,9 +71,11 @@ + -I$(DIR_PREFIX)/pyfermod \ + -I$(DIR_PREFIX)/external_functions/ef_utility \ + $(NETCDF_INCLUDE) \ ++ $(NETCDFFORTRAN_INCLUDE) \ + $(HDF5_INCLUDE) \ + $(CAIRO_INCLUDE) \ + $(PIXMAN_INCLUDE) \ ++ $(HARFBUZZ_INCLUDE) \ + $(PANGO_INCLUDE) \ + $(GLIB2_INCLUDE) + +diff -Naur PyFerret-7.6.3.orig/setup.py PyFerret-7.6.3/setup.py +--- PyFerret-7.6.3.orig/setup.py 2020-09-28 21:10:48.000000000 +0200 ++++ PyFerret-7.6.3/setup.py 2020-12-17 14:36:06.465376000 +0100 +@@ -30,6 +30,13 @@ + if not netcdf_libdir: + raise ValueError("Environment variable NETCDF_LIBDIR is not defined") + ++# NETCDFFORTAN_LIBDIR must be given, either for the static library or the shared-object library ++netcdffortran_libdir = os.getenv("NETCDFFORTRAN_LIBDIR") ++if netcdffortran_libdir: ++ netcdffortran_libdir = netcdffortran_libdir.strip() ++else: ++ netcdffortran_libdir = netcdf_libdir ++ + # HDF5_LIBDIR is only given if the HDF5 and NetCDF libraries are to be statically linked + hdf5_libdir = os.getenv("HDF5_LIBDIR") + if hdf5_libdir: +@@ -50,6 +57,11 @@ + if pixman_libdir: + pixman_libdir = pixman_libdir.strip() + ++# HARFBUZZ gives a non-standard location of the harfbuzz libraries ++harfbuzz_libdir = os.getenv("HARFBUZZ_LIBDIR") ++if harfbuzz_libdir: ++ harfbuzz_libdir = harfbuzz_libdir.strip() ++ + # PANGO_LIBDIR gives a non-standard location of the pango libraries + pango_libdir = os.getenv("PANGO_LIBDIR") + if pango_libdir: +@@ -66,6 +78,8 @@ + + # The list of additional directories to examine for libraries + libdir_list = [ "lib", netcdf_libdir, ] ++if netcdffortran_libdir: ++ libdir_list.append(netcdffortran_libdir) + if hdf5_libdir: + libdir_list.append(hdf5_libdir) + if sz_libdir: +@@ -74,6 +88,8 @@ + libdir_list.append(cairo_libdir) + if pixman_libdir: + libdir_list.append(pixman_libdir) ++if harfbuzz_libdir: ++ libdir_list.append(harfbuzz_libdir) + if pango_libdir: + libdir_list.append(pango_libdir) + libdir_list.append(python_libdir) +@@ -103,7 +119,7 @@ + # The hdf5 libraries are only used to resolve netcdf library function + # calls when statically linking in the netcdf libraries. + if hdf5_libdir: +- netcdff_lib = os.path.join(netcdf_libdir, "libnetcdff.a") ++ netcdff_lib = os.path.join(netcdffortran_libdir, "libnetcdff.a") + addn_link_args.append(netcdff_lib) + netcdf_lib = os.path.join(netcdf_libdir, "libnetcdf.a") + addn_link_args.append(netcdf_lib) +diff -Naur PyFerret-7.6.3.orig/site_specific.mk PyFerret-7.6.3/site_specific.mk +--- PyFerret-7.6.3.orig/site_specific.mk 1970-01-01 01:00:00.000000000 +0100 ++++ PyFerret-7.6.3/site_specific.mk 2020-12-17 14:41:42.140897914 +0100 +@@ -0,0 +1,195 @@ ++## Site-dependent definitions included in Makefiles ++ ++## !!! Also verify the values in external_functions/ef_utility/site_specific.mk !!! ++ ++## ========================= ++## Full path name of the directory containing this file (the ferret root directory). ++## Do not use $(shell pwd) since this is included in Makefiles in other directories. ++## ========================= ++# DIR_PREFIX = $(HOME)/build/pyferret_dev ++# DIR_PREFIX = $(HOME)/svn/pyferret ++DIR_PREFIX = $(FER_SRC_PREFIX) ++ ++## ========================= ++## Installation directory for built PyFerret. ++## Using the "install" Makefile target creates a generic pyferret-*.tar.gz file ++## and then extracts it to create a PyFerret installation at this location. ++## ========================= ++# INSTALL_FER_DIR = $(HOME)/ferret_distributions/rhel6_64 ++INSTALL_FER_DIR = $(FER_DIR) ++ ++## ========================= ++## Machine type for which to build Ferret/PyFerret ++## x86_64-linux for 64-bit RHEL ++## x86_64-linux-gnu for 64-bit Ubuntu and many "free" Linux systems ++## i386-linux for 32-bit RHEL ++## i386-linux-gnu for 32-bit Ubuntu and many "free" Linux systems ++## intel-mac for Mac OSX ++## ========================= ++# BUILDTYPE = $(HOSTTYPE) ++BUILDTYPE = x86_64-linux ++# BUILDTYPE = x86_64-linux-gnu ++# BUILDTYPE = i386-linux ++# BUILDTYPE = i386-linux-gnu ++# BUILDTYPE = intel-mac ++ ++## ========================= ++## C and Fortran compilers to use. The construct "$(shell which gcc)" assigns ++## the response to "which gcc" run from a Bourne shell (such as bash). ++## When compiling for Mac OS X, one may wish to use clang instead of gcc. ++## If you wish to use values already defined in you shell environment when ++## you run make, comment out all definitions of CC and FC (do NOT leave blank). ++## ========================= ++# CC = $(shell which clang) ++CC = $(shell which gcc) ++FC = $(shell which gfortran) ++ ++## ========================= ++## Python executable to invoke for build and install. ++## ========================= ++# PYTHON_EXE = python2.6 ++# PYTHON_EXE = python2.7 ++# PYTHON_EXE = python3.6 ++# PYTHON_EXE = python3.7 ++PYTHON_EXE = python3.8 ++ ++## ========================= ++## Full path to the python include files directory. ++## Should not need any modifications. ++## ========================= ++PYTHONINCDIR := $(shell $(PYTHON_EXE) -c "from __future__ import print_function ; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc())") ++ ++## ========================= ++## If given and not empty, the full path name to the gfortran library to use. ++## This is primarily used for the intel-mac build. ++## The given scripts (commented out) should provide the correct value for the gfortran libraries. ++## If empty or not given, the gfortran library is linked in using the "-lgfortran" flag. ++## ========================= ++# GFORTRAN_LIB = $(shell $(FC) --print-file-name=libgfortran.dylib) ++# GFORTRAN_LIB = $(shell $(FC) --print-file-name=libgfortran.a) ++GFORTRAN_LIB = ++ ++## ========================= ++## Directory containing the Cairo static libraries (v1.12 or later). ++## Include files are assumed to be located in an "include" sibling directory. ++## If given and not empty, the Cairo static libraries found under this directory will be used. ++## If empty or not given, the system's Cairo shared libraries will be used. ++## ========================= ++# CAIRO_LIBDIR = /usr/local/cairo/lib ++# CAIRO_LIBDIR = $(HOME)/.local/lib ++# CAIRO_LIBDIR = /usr/local/lib ++# CAIRO_LIBDIR = /p/software/juwels/stages/Devel-2020/software/cairo/1.17.2-GCCcore-9.3.0/lib64 ++CAIRO_LIBDIR = $(EBROOTCAIRO)/lib ++ ++## ========================= ++## Directory containing the Pixman static libraries used by the above Cairo static libraries. ++## Include files are assumed to be located in an "include" sibling directory. ++## If given and not empty, the Pixman-1 static libraries found in this directory will be used. ++## If empty or not given, the system's Pixman-1 shared library will be used. ++## This value should be empty or not given if CAIRO_LIBDIR is empty or not given. ++## ========================= ++# PIXMAN_LIBDIR = /usr/local/pixman/lib ++# PIXMAN_LIBDIR = $(HOME)/.local/lib ++# PIXMAN_LIBDIR = /usr/local/lib ++# PIXMAN_LIBDIR = /gpfs/software/juwels/stages/Devel-2020/software/pixman/0.40.0-GCCcore-9.3.0/lib ++PIXMAN_LIBDIR = $(EBROOTPIXMAN)/lib ++ ++## ========================= ++## Directory containing the HarfBuzz shared libraries. ++## Include files are assumed to be located in an "include" sibling directory. ++## If given and not empty, the HarfBuzz shared libraries under this directory are used. ++## If empty or not given, the system's HarfBuzz shared libraries are used. ++## This value should be empty or not given if CAIRO_LIBDIR is empty or not given. ++## ========================= ++#HARFBUZZ_LIBDIR = /p/software/juwels/stages/Devel-2020/software/HarfBuzz/2.6.7-GCCcore-9.3.0/lib64 ++HARFBUZZ_LIBDIR = $(EBROOTHARFBUZZ)/lib ++ ++## ========================= ++## Directory containing the Pango shared libraries. ++## Include files are assumed to be located in an "include" sibling directory. ++## If given and not empty, the Pango shared libraries under this directory are used. ++## If empty or not given, the system's Pango shared libraries are used. ++## This value should be empty or not given if CAIRO_LIBDIR is empty or not given. ++## ========================= ++# PANGO_LIBDIR = $(HOME)/.local/lib ++# PANGO_LIBDIR = /usr/local/lib ++# PANGO_LIBDIR = /gpfs/software/juwels/stages/Devel-2020/software/Pango/1.44.7-GCCcore-9.3.0/lib ++PANGO_LIBDIR = $(EBROOTPANGO)/lib ++ ++## ========================= ++## Library directory containing a "glib-2.0" subdirectory with GLib-2.0 include file(s) ++## (yes, a little unusual) used by the above Pango shared libraries. ++## An "include" sibling directory containing a "glib-2.0" subdirectory with more ++## GLib-2.0 include files is assumed to exist. ++## If given and not empty, GLib-2.0 include files under this directory are used. ++## If empty or not given, the system's GLib-2.0 shared libraries are used. ++## This value should be empty or not given if PANGO_LIBDIR is empty or not given. ++## ========================= ++# GLIB2_LIBDIR = $(HOME)/.local/lib ++# GLIB2_LIBDIR = /usr/local/lib ++# GLIB2_LIBDIR = /gpfs/software/juwels/stages/Devel-2020/software/GLib/2.64.4-GCCcore-9.3.0/lib ++GLIB2_LIBDIR = $(EBROOTGLIB)/lib ++ ++## ========================= ++## Directory containing the HDF5 static libraries. ++## Include files are assumed to be located in an "include" sibling directory. ++## If given and not empty, HDF5 and NetCDF static libraries will be used. ++## If empty or not given, NetCDF shared libraries (which specify the HDF5 and ++## compression libraries required) will be used. ++## ========================= ++# HDF5_LIBDIR = /usr/local/hdf5/lib ++# HDF5_LIBDIR = $(HOME)/.local/lib ++# HDF5_LIBDIR = /usr/local/lib ++# HDF5_LIBDIR = /usr/lib64 ++# HDF5_LIBDIR = /usr/lib ++# HDF5_LIBDIR = /p/software/juwels/stages/Devel-2020/software/HDF5/1.10.6-gompi-2020/lib64 ++# HDF5_LIBDIR = $(EBROOTHDF5)/lib ++ ++## ========================= ++## Location of the SZ compression static library. ++## This value should be given only if the SZ compression library was used in ++## building the HDF5 library, and the NetCDF and HDF5 static libraries are being ++## used (HDF5_LIBDIR is given and not empty). ++## If given and not empty, the SZ compression static library is used. ++## If empty or not given, the SZ compression library will not be used ++## (which is what you want if the HDF5 libraries were built using the Z compression library). ++## ========================= ++# SZ_LIBDIR = $(HOME)/.local/lib ++# SZ_LIBDIR = /usr/local/lib ++# SZ_LIBDIR = /usr/lib64 ++# SZ_LIBDIR = /usr/lib ++# SZ_LIBDIR = /gpfs/software/juwels/stages/Devel-2020/software/Szip/2.1.1-GCCcore-9.3.0/lib ++SZ_LIBDIR = $(EBROOTSZIP)/lib ++ ++## ========================= ++## Location of the NetCDF libraries. ++## Include files are assumed to be located in an "include" sibling directory. ++## If HDF5_LIBDIR is given and not empty, the static libraries will be used ++## (along with the HDF5 static libraries). ++## If HDF5_LIBDIR is empty or not given, NetCDF shared libraries will be used. ++## ========================= ++# NETCDF_LIBDIR = /usr/local/netcdf/lib ++# NETCDF_LIBDIR = $(HOME)/.local/lib ++# NETCDF_LIBDIR = /usr/local/lib ++# NETCDF_LIBDIR = /usr/lib64 ++# NETCDF_LIBDIR = /usr/lib ++# NETCDF_LIBDIR = /p/software/juwels/stages/Devel-2020/software/netCDF/4.7.4-gompi-2020/lib64 ++NETCDF_LIBDIR = $(EBROOTNETCDF)/lib64 ++ ++## ========================= ++## Location of the NetCDF fortran libraries. ++## Include files are assumed to be located in an "include" sibling directory. ++## If HDF5_LIBDIR is given and not empty, the static libraries will be used ++## (along with the HDF5 static libraries). ++## If HDF5_LIBDIR is empty or not given, NetCDF fortran shared libraries will be used. ++## If empty or not given, the netcdf fortran shared libraries will be searched for in NETCDF_LIBDIR ++## ========================= ++# NETCDFFORTRAN_LIBDIR = /usr/local/netcdf/lib ++# NETCDFFORTRAN_LIBDIR = $(HOME)/.local/lib ++# NETCDFFORTRAN_LIBDIR = /usr/local/lib ++# NETCDFFORTRAN_LIBDIR = /usr/lib64 ++# NETCDFFORTRAN_LIBDIR = /usr/lib ++# NETCDFFORTRAN_LIBDIR = /p/software/juwels/stages/Devel-2020/software/netCDF-Fortran/4.5.3-gompi-2020/lib64 ++NETCDFFORTRAN_LIBDIR = $(EBROOTNETCDFMINFORTRAN)/lib ++ ++## diff --git a/Golden_Repo/p/PyFerret/pyferret b/Golden_Repo/p/PyFerret/pyferret new file mode 100755 index 0000000000000000000000000000000000000000..46e83c36bf729bd15b7417fc107aa2cafdc9a41d --- /dev/null +++ b/Golden_Repo/p/PyFerret/pyferret @@ -0,0 +1,6 @@ +#!/bin/sh +if [ -z "${FER_LIBS}" ]; then + echo "**ERROR: Ferret environment variables are not defined" + exit 1 +fi +python -i -c "import sys; import pyferret; (errval, errmsg) = pyferret.init(sys.argv[1:], True)" $* diff --git a/Golden_Repo/p/PyTorch/PyTorch-1.7.0-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb b/Golden_Repo/p/PyTorch/PyTorch-1.7.0-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb index 16deb6cba847a0e0272cdbfa8b4c0ad828b19fde..865f39655e9398c84edee37ca14e3b146642ac9d 100644 --- a/Golden_Repo/p/PyTorch/PyTorch-1.7.0-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb +++ b/Golden_Repo/p/PyTorch/PyTorch-1.7.0-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb @@ -25,9 +25,9 @@ dependencies = [ ('SciPy-Stack', '2020', versionsuffix, ('gcccoremkl', '9.3.0-2020.2.254')), ('MPFR', '4.1.0'), ('GMP', '6.2.0'), - ('numactl', '2.0.13', '', True), + ('numactl', '2.0.13', '', SYSTEM), ('FFmpeg', '4.3.1'), - ('cuDNN', '8.0.2.39', '-CUDA-%s' % local_cudaver, True), + ('cuDNN', '8.0.2.39', '-CUDA-%s' % local_cudaver, SYSTEM), ('magma', '2.5.4'), ('NCCL', '2.8.3-1', '-CUDA-%s' % local_cudaver), ('LLVM', '10.0.1'), diff --git a/Golden_Repo/p/parallel/parallel-20201122-GCCcore-9.3.0.eb b/Golden_Repo/p/parallel/parallel-20201122-GCCcore-9.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..4e09e072ed8ef04d6759745a29e7657ef8f0accb --- /dev/null +++ b/Golden_Repo/p/parallel/parallel-20201122-GCCcore-9.3.0.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'parallel' +version = '20201122' + +homepage = 'https://savannah.gnu.org/projects/parallel/' +description = """parallel: Build and execute shell commands in parallel""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_BZ2] + +builddependencies = [('binutils', '2.34')] +dependencies = [ + ('Perl', '5.32.0'), +] + +sanity_check_paths = { + 'files': ['bin/parallel'], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/Golden_Repo/p/pixman/pixman-0.40.0-GCCcore-9.3.0.eb b/Golden_Repo/p/pixman/pixman-0.40.0-GCCcore-9.3.0.eb index db81137fbc5738f4d5c9eab2818eb10f86208254..b0e6ccc06baed58cb93621aadc554138eec8daf2 100644 --- a/Golden_Repo/p/pixman/pixman-0.40.0-GCCcore-9.3.0.eb +++ b/Golden_Repo/p/pixman/pixman-0.40.0-GCCcore-9.3.0.eb @@ -11,6 +11,7 @@ compositing and trapezoid rasterization. Important users of pixman are the cairo site_contacts = 'sc@fz-juelich.de' toolchain = {'name': 'GCCcore', 'version': '9.3.0'} +toolchainopts = {'pic': True} source_urls = ['http://cairographics.org/releases/'] sources = [SOURCE_TAR_GZ] diff --git a/Golden_Repo/p/protobuf-python/protobuf-python-3.13.0-GCCcore-9.3.0-Python-3.8.5.eb b/Golden_Repo/p/protobuf-python/protobuf-python-3.13.0-GCCcore-9.3.0-Python-3.8.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..664bab39432e214a7c0a1149d8da6f89af9b1a2c --- /dev/null +++ b/Golden_Repo/p/protobuf-python/protobuf-python-3.13.0-GCCcore-9.3.0-Python-3.8.5.eb @@ -0,0 +1,36 @@ +easyblock = 'PythonPackage' + +name = 'protobuf-python' +version = '3.13.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/google/protobuf/' +description = """Python Protocol Buffers runtime library.""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} + +site_contacts = 'a.strube@fz-juelich.de' + +source_urls = ['https://pypi.python.org/packages/source/p/protobuf'] +sources = [{'download_filename': 'protobuf-%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}] +checksums = ['6a82e0c8bb2bf58f606040cc5814e07715b2094caeba281e2e7d0b0e2e397db5'] + +dependencies = [ + ('Python', '3.8.5'), + ('protobuf', version) +] + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +# Make sure protobuf is installed as a regular folder or it will not be found if +# other google packages are installed in other site-packages folders +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/google/protobuf'], +} + +options = {'modulename': 'google.protobuf'} + +moduleclass = 'devel' diff --git a/Golden_Repo/p/pyproj/pyproj-2.6.1.post1-GCCcore-9.3.0-Python-3.8.5.eb b/Golden_Repo/p/pyproj/pyproj-2.6.1.post1-GCCcore-9.3.0-Python-3.8.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..0978d8a944fd9891ec32772198f69e59b9c05a54 --- /dev/null +++ b/Golden_Repo/p/pyproj/pyproj-2.6.1.post1-GCCcore-9.3.0-Python-3.8.5.eb @@ -0,0 +1,34 @@ +easyblock = 'PythonPackage' + +name = 'pyproj' +version = '2.6.1.post1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://pyproj4.github.io/pyproj' +description = "Python interface to PROJ4 library for cartographic transformations" + +site_contacts = 'a.strube@fz-juelich.de' + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['4f5b02b4abbd41610397c635b275a8ee4a2b5bc72a75572b98ac6ae7befa471e'] + +builddependencies = [ + ('binutils', '2.34'), +] + +dependencies = [ + ('Python', '3.8.5'), + ('PROJ', '7.1.0'), +] + +download_dep_fail = True +use_pip = True + +preinstallopts = "export PROJ_DIR=$EBROOTPROJ && " + +sanity_pip_check = True + +moduleclass = 'data' diff --git a/Golden_Repo/r/R/R-4.0.2-gcccoremkl-9.3.0-2020.2.254-nompi.eb b/Golden_Repo/r/R/R-4.0.2-gcccoremkl-9.3.0-2020.2.254-nompi.eb new file mode 100644 index 0000000000000000000000000000000000000000..719838a272dd976c03dd31536459a7af69cde72a --- /dev/null +++ b/Golden_Repo/r/R/R-4.0.2-gcccoremkl-9.3.0-2020.2.254-nompi.eb @@ -0,0 +1,2565 @@ +name = 'R' +version = '4.0.2' +versionsuffix = '-nompi' + +homepage = 'https://www.r-project.org/' +description = """R is a free software environment for statistical computing + and graphics.""" + +site_contacts = 'a.strube@fz-juelich.de' + +toolchain = {'name': 'gcccoremkl', 'version': '9.3.0-2020.2.254'} + +source_urls = ['https://cloud.r-project.org/src/base/R-%(version_major)s'] +sources = [SOURCE_TAR_GZ] +checksums = ['d3bceab364da0876625e4097808b42512395fdf41292f4915ab1fd257c1bbe75'] + +builddependencies = [ + ('pkg-config', '0.29.2'), +] +dependencies = [ + ('X11', '20200222'), + ('OpenGL', '2020'), + ('cairo', '1.17.2'), + ('libreadline', '8.0'), + ('ncurses', '6.2'), + ('bzip2', '1.0.8'), + ('XZ', '5.2.5'), + ('zlib', '1.2.11'), + ('SQLite', '3.32.3'), + ('PCRE2', '10.34'), + ('libpng', '1.6.37'), # for plotting in R + ('libjpeg-turbo', '2.0.5'), # for plottting in R + ('LibTIFF', '4.1.0'), + ('Java', '1.8', '', SYSTEM), + ('Tk', '8.6.10'), # for tcltk + ('cURL', '7.71.1'), # for RCurl + ('libxml2', '2.9.10'), # for XML + ('PROJ', '7.1.0'), # for rgdal + ('GMP', '6.2.0'), # for igraph + ('NLopt', '2.6.2'), # for nloptr + ('FFTW', '3.3.8', '-nompi'), # for fftw + ('libsndfile', '1.0.28'), # for seewave + ('ICU', '67.1'), # for rJava & gdsfmt + ('HDF5', '1.10.6', '-serial'), # for hdf5r + ('UDUNITS', '2.2.26'), # for units + ('GSL', '2.6'), # for RcppGSL + ('ImageMagick', '7.0.10-25'), # for animation + ('GLPK', '4.65'), # for Rglpk + ('netCDF', '4.7.4', '-serial'), # the ndf4 needs it + ('GEOS', '3.8.1', '-Python-3.8.5'), # for rgeos + ('ZeroMQ', '4.3.3'), # for pbdZMQ needed by IRkernel + + # OS dependency should be preferred if the os version is more recent then + # this version, it's nice to have an up to date openssl for security + # reasons + # ('OpenSSL', '1.1.1e'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +preconfigopts = 'export LDFLAGS="$LDFLAGS -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 = '4.2.2' + +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 23 July 2020 +exts_list = [ + 'base', + 'datasets', + 'graphics', + 'grDevices', + 'grid', + 'methods', + 'splines', + 'stats', + 'stats4', + 'tools', + 'utils', + 'parallel', + ('abind', '1.4-5', { + 'checksums': ['3a3ace5afbcb86e56889efcebf3bf5c3bb042a282ba7cc4412d450bb246a3f2c'], + }), + ('magic', '1.5-9', { + 'checksums': ['fa1d5ef2d39e880f262d31b77006a2a7e76ea38e306aae4356e682b90d6cd56a'], + }), + ('Rcpp', '1.0.4.6', { + 'checksums': ['45af675ddbbe155e671453b2e84fe32250bb98d4ccb4342b61c1e25cff10b302'], + }), + ('RcppProgress', '0.4.2', { + 'checksums': ['b1624b21b7aeb1dafb30f092b2a4bef4c3504efd2d6b00b2cdf55dc9df194b48'], + }), + ('lpSolve', '5.6.15', { + 'checksums': ['4627be4178abad34fc85a7d264c2eb5e27506f007e46687b0b8a4f8fbdf4f3ba'], + }), + ('linprog', '0.9-2', { + 'checksums': ['8937b2e30692e38de1713f1513b78f505f73da6f5b4a576d151ad60bac2221ce'], + }), + ('geometry', '0.4.5', { + 'checksums': ['8fedd17c64468721d398e3c17a39706321ab71098b29f5e8d8039dd115a220d8'], + }), + ('bit', '1.1-15.2', { + 'checksums': ['0b83e78385293d6cdc0189a07fcc3f9f9db286c8c4af3288467f5257e79cb28b'], + }), + ('filehash', '2.4-2', { + 'checksums': ['b6d056f75d45e315943a4618f5f62802612cd8931ba3f9f474b595140a3cfb93'], + }), + ('ff', '2.2-14.2', { + 'checksums': ['f8c06ac333ffe3545cdf56531619865176e1827728f7aeeba82d135d5c5e37e4'], + }), + ('bnlearn', '4.5', { + 'checksums': ['a8047625533260a855d309b3c0785cbeec0f9ec13f284b6664a1f61638138578'], + }), + ('bootstrap', '2019.6', { + 'checksums': ['5252fdfeb944cf1fae35016d35f9333b1bd1fc8c6d4a14e33901160e21968694'], + }), + ('combinat', '0.0-8', { + 'checksums': ['1513cf6b6ed74865bfdd9f8ca58feae12b62f38965d1a32c6130bef810ca30c1'], + }), + ('deal', '1.2-39', { + 'checksums': ['a349db8f1c86cbd8315c068da49314ce9eb585dbb50d2e5ff09300506bd8806b'], + }), + ('fdrtool', '1.2.15', { + 'checksums': ['65f964aa768d0703ceb7a199adc5e79ca79a6d29d7bc053a262eb533697686c0'], + }), + ('formatR', '1.7', { + 'checksums': ['a366621b3ff5f8e86a499b6f87858ad47eefdace138341b1377ecc307a5e5ddb'], + }), + ('gtools', '3.8.2', { + 'checksums': ['503ba60a41f3c61b8129c25de62c74dab29761d2e661d4addd106e2e02f1dcde'], + }), + ('gdata', '2.18.0', { + 'checksums': ['4b287f59f5bbf5fcbf18db16477852faac4a605b10c5284c46b93fa6e9918d7f'], + }), + ('GSA', '1.03.1', { + 'checksums': ['e192d4383f53680dbd556223ea5f8cad6bae62a80a337ba5fd8d05a8aee6a917'], + }), + ('highr', '0.8', { + 'checksums': ['4bd01fba995f68c947a99bdf9aca15327a5320151e10bd0326fad50a6d8bc657'], + }), + ('infotheo', '1.2.0', { + 'checksums': ['9b47ebc3db5708c88dc014b4ffec6734053a9c255a9241fcede30fec3e63aaa3'], + }), + ('lars', '1.2', { + 'checksums': ['64745b568f20b2cfdae3dad02fba92ebf78ffee466a71aaaafd4f48c3921922e'], + }), + ('lazy', '1.2-16', { + 'checksums': ['c796c8b987ed1bd9dfddd593e17312ed681fc4fa3a1ecfe51da2def0ac1e50df'], + }), + ('kernlab', '0.9-29', { + 'checksums': ['c3da693a0041dd34f869e7b63a8d8cf7d4bc588ac601bcdddcf7d44f68b3106f'], + }), + ('mime', '0.9', { + 'checksums': ['2ccf97d2940a09539dc051c7a9a1aee90ef04b34e9bc6c0b64b4435fb3c2fa80'], + }), + ('xfun', '0.13', { + 'checksums': ['a3da8d53b74ae58bb0f121177dcf3caf312c65fc181c18f168abd59afac33e0e'], + }), + ('markdown', '1.1', { + 'checksums': ['8d8cd47472a37362e615dbb8865c3780d7b7db694d59050e19312f126e5efc1b'], + }), + ('mlbench', '2.1-1', { + 'checksums': ['748141d56531a39dc4d37cf0a5165a40b653a04c507e916854053ed77119e0e6'], + }), + ('NLP', '0.2-0', { + 'checksums': ['fc64c80124c4e53b20f92b60c68e2fd33ee189653d0ceea410c32dd66d9e7075'], + }), + ('mclust', '5.4.6', { + 'checksums': ['d4ffcf36bf709ad42dccb2387263f67ca32012b0707f0ef6eda32730b5c286fc'], + }), + ('RANN', '2.6.1', { + 'checksums': ['b299c3dfb7be17aa41e66eff5674fddd2992fb6dd3b10bc59ffbf0c401697182'], + }), + ('rmeta', '3.0', { + 'checksums': ['b9f9d405935cffcd7a5697ff13b033f9725de45f4dc7b059fd68a7536eb76b6e'], + }), + ('segmented', '1.1-0', { + 'checksums': ['d081d0efaec708d717bf1248ba3df099876389c22796aad676655efb706e9d19'], + }), + ('som', '0.3-5.1', { + 'checksums': ['a6f4c0e5b36656b7a8ea144b057e3d7642a8b71972da387a7133f3dd65507fb9'], + }), + ('SuppDists', '1.1-9.5', { + 'checksums': ['680b67145c07d44e200275e08e48602fe19cd99fb106c05422b3f4a244c071c4'], + }), + ('stabledist', '0.7-1', { + 'checksums': ['06c5704d3a3c179fa389675c537c39a006867bc6e4f23dd7e406476ed2c88a69'], + }), + ('survivalROC', '1.0.3', { + 'checksums': ['1449e7038e048e6ad4d3f7767983c0873c9c7a7637ffa03a4cc7f0e25c31cd72'], + }), + ('pspline', '1.0-18', { + 'checksums': ['f71cf293bd5462e510ac5ad16c4a96eda18891a0bfa6447dd881c65845e19ac7'], + }), + ('timeDate', '3043.102', { + 'checksums': ['377cba03cddab8c6992e31d0683c1db3a73afa9834eee3e95b3b0723f02d7473'], + }), + ('longmemo', '1.1-2', { + 'checksums': ['7964e982287427dd58f98e1144e468ae0cbd572d25a4bea6ca9ae9c7522f3207'], + }), + ('ADGofTest', '0.3', { + 'checksums': ['9cd9313954f6ecd82480d373f6c5371ca84ab33e3f5c39d972d35cfcf1096846'], + }), + ('MASS', '7.3-51.6', { + 'checksums': ['e2035c47d8428b52afc02dd4f87ccb39a0085629932dfaff5f0a5d2c84ef3eee'], + }), + ('pixmap', '0.4-11', { + 'checksums': ['6fa010749a59cdf56aad9f81271473b7d55697036203f2cd5d81372bcded7412'], + }), + ('lattice', '0.20-41', { + 'checksums': ['54ca557f0cb33df60eb10b883c2ed2847e061ddd57ed9b5dd7695149609d57b5'], + }), + ('sp', '1.4-1', { + 'checksums': ['8f96f1a4827eea2cc02bb35c418ce2bdaf2d5ea47a214bcd4bc85f928b417039'], + }), + ('ade4', '1.7-15', { + 'checksums': ['3286fa7d8c372a5596e82c970c058e4cca1139a09935f14b238ba38aa9fdfdf6'], + }), + ('AlgDesign', '1.2.0', { + 'checksums': ['ff86c9e19505770520e7614970ad19c698664d08001ce888b8603e44c2a3b52a'], + }), + ('base64enc', '0.1-3', { + 'checksums': ['6d856d8a364bcdc499a0bf38bfd283b7c743d08f0b288174fba7dbf0a04b688d'], + }), + ('BH', '1.72.0-3', { + 'checksums': ['888ec1a3316bb69e1ba749b08ba7e0903ebc4742e3a185de8d148c13cddac8ab'], + }), + ('brew', '1.0-6', { + 'checksums': ['d70d1a9a01cf4a923b4f11e4374ffd887ad3ff964f35c6f9dc0f29c8d657f0ed'], + }), + ('Brobdingnag', '1.2-6', { + 'checksums': ['19eccaed830ce9d93b70642f6f126ac66722a98bbd48586899cc613dd9966ad4'], + }), + ('corpcor', '1.6.9', { + 'checksums': ['2e4fabd1d3936fecea67fa365233590147ca50bb45cf80efb53a10345a8a23c2'], + }), + ('longitudinal', '1.1.12', { + 'checksums': ['d4f894c38373ba105b1bdc89e3e7c1b215838e2fb6b4470b9f23768b84e603b5'], + }), + ('backports', '1.1.6', { + 'checksums': ['d0e8af477514d81b46cc777e0fa532835c1dc7eecd3c2432bb40228131bc199c'], + }), + ('checkmate', '2.0.0', { + 'checksums': ['0dc25b0e20c04836359df1885d099c6e4ad8ae0e585a9e4107f7ea945d9c6fa4'], + }), + ('cubature', '2.0.4', { + 'checksums': ['d97ce5eaac5e43910208e8274ddf6ff4f974d05688f0247ebccd807e24c2fe4a'], + }), + ('DEoptimR', '1.0-8', { + 'checksums': ['846911c1b2561a9fae73a8c60a21a5680963ebb0050af3c1f1147ae9a121e5ef'], + }), + ('digest', '0.6.25', { + 'checksums': ['15ccadb7b8bccaa221b6700bb549011719d0f4b38dbd3a1f29face3e019e2de5'], + }), + ('fastmatch', '1.1-0', { + 'checksums': ['20b51aa4838dbe829e11e951444a9c77257dcaf85130807508f6d7e76797007d'], + }), + ('ffbase', '0.12.8', { + 'checksums': ['18622f799641fb624dc274cdd31c52c9bd77c8f1f63fbb1dc636be80673b5356'], + }), + ('iterators', '1.0.12', { + 'checksums': ['96bf31d60ebd23aefae105d9b7790715e63327eec0deb2ddfb3d543994ea9f4b'], + }), + ('maps', '3.3.0', { + 'checksums': ['199afe19a4edcef966ae79ef802f5dcc15a022f9c357fcb8cae8925fe8bd2216'], + }), + ('nnls', '1.4', { + 'checksums': ['0e5d77abae12bc50639d34354f96a8e079408c9d7138a360743b73bd7bce6c1f'], + }), + ('sendmailR', '1.2-1', { + 'checksums': ['04feb08c6c763d9c58b2db24b1222febe01e28974eac4fe87670be6fb9bff17c'], + }), + ('dotCall64', '1.0-0', { + 'checksums': ['69318dc6b8aecc54d4f789c8105e672198363b395f1a764ebaeb54c0473d17ad'], + }), + ('spam', '2.5-1', { + 'checksums': ['d145881a0d48351ce88678a57862c0d0f716d98f3166f6338d954acacc51c067'], + }), + ('subplex', '1.6', { + 'checksums': ['0d05da1622fffcd20a01cc929fc6c2b7df40a8246e7018f7f1f3c175b774cbf9'], + }), + ('stringi', '1.4.6', { + 'checksums': ['633f67da5bd7bcb611764e4f478b0da050d22a715bbcbdd67aed0300dcef6fd6'], + }), + ('magrittr', '1.5', { + 'checksums': ['05c45943ada9443134caa0ab24db4a962b629f00b755ccf039a2a2a7b2c92ae8'], + }), + ('glue', '1.4.0', { + 'checksums': ['ea6c409f7141754baa090deba96cff270a11b185452cf9e6fb69cb148a9069c1'], + }), + ('stringr', '1.4.0', { + 'checksums': ['87604d2d3a9ad8fd68444ce0865b59e2ffbdb548a38d6634796bbd83eeb931dd'], + }), + ('evaluate', '0.14', { + 'checksums': ['a8c88bdbe4e60046d95ddf7e181ee15a6f41cdf92127c9678f6f3d328a3c5e28'], + }), + ('logspline', '2.1.15', { + 'checksums': ['dfe0c89a2ae219d121ea7af788dd994097f42d2ff39f4f86f5c4288a4ec0f71e'], + }), + ('ncbit', '2013.03.29', { + 'checksums': ['4480271f14953615c8ddc2e0666866bb1d0964398ba0fab6cc29046436820738'], + }), + ('permute', '0.9-5', { + 'checksums': ['d2885384a07497e8df273689d6713fc7c57a7c161f6935f3572015e16ab94865'], + }), + ('plotrix', '3.7-8', { + 'checksums': ['8ccd1f7e656413b9956cea614c986ce9cc61366deba356afb38cee6672a59480'], + }), + ('randomForest', '4.6-14', { + 'checksums': ['f4b88920419eb0a89d0bc5744af0416d92d112988702dc726882394128a8754d'], + }), + ('scatterplot3d', '0.3-41', { + 'checksums': ['4c8326b70a3b2d37126ca806771d71e5e9fe1201cfbe5b0d5a0a83c3d2c75d94'], + }), + ('SparseM', '1.78', { + 'checksums': ['d6b79ec881a10c91cb03dc23e6e783080ded9db4f2cb723755aa0d7d29a8b432'], + }), + ('tripack', '1.3-9', { + 'checksums': ['2b40670c23894b12e86a36fb2f42cab4728c8af8bd5338e94fbf86b7916a8c10'], + }), + ('R6', '2.4.1', { + 'checksums': ['26b0fd64827655c28c903f7ff623e839447387f3ad9b04939a02f41ac82faa3e'], + }), + ('irace', '3.4.1', { + 'checksums': ['7eea92ba42e6ba320fa8bdca3c53091ae42f26a0f097244f65e7e117f6d514b6'], + }), + ('rJava', '0.9-12', { + 'checksums': ['2248a8c73cacfecf75445ad0ebda4960409ec3f21afb180a1bc02a6de4057b0f'], + }), + ('RColorBrewer', '1.1-2', { + 'checksums': ['f3e9781e84e114b7a88eb099825936cc5ae7276bbba5af94d35adb1b3ea2ccdd'], + }), + ('png', '0.1-7', { + 'checksums': ['e269ff968f04384fc9421d17cfc7c10cf7756b11c2d6d126e9776f5aca65553c'], + }), + ('jpeg', '0.1-8.1', { + 'checksums': ['1db0a4976fd9b2ae27a37d3e856cca35bc2909323c7a40724846a5d3c18915a9'], + }), + ('latticeExtra', '0.6-29', { + 'checksums': ['6cadc31d56f73d926e2e8d72e43ae17ac03607a4d1a374719999a4a231e3df11'], + }), + ('Matrix', '1.2-18', { + 'checksums': ['f7ff018c2811946767ffd4c96d3987e859b82786ff72e1c211ab18bc03cb6119'], + }), + ('RcppArmadillo', '0.9.870.2.0', { + 'checksums': ['bb605d6702d49d447b18986d9a7864b27e5512630a6713bca67afbb5bb54f1e4'], + }), + ('plyr', '1.8.6', { + 'checksums': ['ea55d26f155443e9774769531daa5d4c20a0697bb53abd832e891b126c935287'], + }), + ('gtable', '0.3.0', { + 'checksums': ['fd386cc4610b1cc7627dac34dba8367f7efe114b968503027fb2e1265c67d6d3'], + }), + ('reshape2', '1.4.4', { + 'checksums': ['d88dcf9e2530fa9695fc57d0c78adfc5e361305fe8919fe09410b17da5ca12d8'], + }), + ('dichromat', '2.0-0', { + 'checksums': ['31151eaf36f70bdc1172da5ff5088ee51cc0a3db4ead59c7c38c25316d580dd1'], + }), + ('colorspace', '1.4-1', { + 'checksums': ['693d713a050f8bfecdb7322739f04b40d99b55aed168803686e43401d5f0d673'], + }), + ('munsell', '0.5.0', { + 'checksums': ['d0f3a9fb30e2b5d411fa61db56d4be5733a2621c0edf017d090bdfa5e377e199'], + }), + ('labeling', '0.3', { + 'checksums': ['0d8069eb48e91f6f6d6a9148f4e2dc5026cabead15dd15fc343eff9cf33f538f'], + }), + ('viridisLite', '0.3.0', { + 'checksums': ['780ea12e7c4024d5ba9029f3a107321c74b8d6d9165262f6e64b79e00aa0c2af'], + }), + ('farver', '2.0.3', { + 'checksums': ['0e1590df79ec6078f10426411b96216b70568a4eaf3ffd84ca723add0ed8e5cc'], + }), + ('rlang', '0.4.5', { + 'checksums': ['cd1fac76f1a6ac26e07cc11dd08c55947fe152e4703daf8c94e3a650721b10a8'], + }), + ('lifecycle', '0.2.0', { + 'checksums': ['29746e8dee05d4e36f9c612e8c7a903a4f648a36b3b94c9776e518c38a412224'], + }), + ('scales', '1.1.0', { + 'checksums': ['1ee4a6fd1dbc5f52fe57dd8cce8caee4ce2fecb02d4e7d519e83f15aa45b2d03'], + }), + ('assertthat', '0.2.1', { + 'checksums': ['85cf7fcc4753a8c86da9a6f454e46c2a58ffc70c4f47cac4d3e3bcefda2a9e9f'], + }), + ('crayon', '1.3.4', { + 'checksums': ['fc6e9bf990e9532c4fcf1a3d2ce22d8cf12d25a95e4779adfa17713ed836fa68'], + }), + ('fansi', '0.4.1', { + 'checksums': ['3c69eec803a3827e5227f9cf084976eeb738b22c7eb7665bb5faa251bce41e09'], + }), + ('cli', '2.0.2', { + 'checksums': ['490834e5b80eb036befa0e150996bcab1c4d5d168c3d45209926e52d0d5413b6'], + }), + ('utf8', '1.1.4', { + 'checksums': ['f6da9cadfc683057d45f54b43312a359cf96ec2731c0dda18a8eae31d1e31e54'], + }), + ('zeallot', '0.1.0', { + 'checksums': ['439f1213c97c8ddef9a1e1499bdf81c2940859f78b76bc86ba476cebd88ba1e9'], + }), + ('ellipsis', '0.3.0', { + 'checksums': ['0bf814cb7a1f0ee1f2949bdc98752a0d535f2a9489280dd4d8fcdb10067ee907'], + }), + ('vctrs', '0.2.4', { + 'checksums': ['dcc8b6bfd2d951d48d338a3d4deaaabfee356c0ee43169a6d6b06ea78cfe4f97'], + }), + ('pillar', '1.4.3', { + 'checksums': ['5a8bc40bd836baab80f70fba268e3f530fb464a9268ad99f1c037380f83f560b'], + }), + ('pkgconfig', '2.0.3', { + 'checksums': ['330fef440ffeb842a7dcfffc8303743f1feae83e8d6131078b5a44ff11bc3850'], + }), + ('tibble', '3.0.1', { + 'checksums': ['154552cfb767e0bd48ef3fc61df8286ce52205e970815c5bc2560f41eceea79e'], + }), + ('lazyeval', '0.2.2', { + 'checksums': ['d6904112a21056222cfcd5eb8175a78aa063afe648a562d9c42c6b960a8820d4'], + }), + ('withr', '2.3.0', { + 'checksums': ['2cc03c9947d424717e94f301a0ab7d97eb2079eea5c6a0a3cdf2da32aedc67a0'], + }), + ('nlme', '3.1-147', { + 'checksums': ['efc8d82e5758c4696458f647f2b8bb1776fdbff6c8eaad3fe3c0573a3c1f0ce7'], + }), + ('mgcv', '1.8-31', { + 'checksums': ['736de462a0ac43a6ed38cd57dfb0ba2942c941dfbb538128782727ab7125c3c5'], + }), + ('rprojroot', '1.3-2', { + 'checksums': ['df5665834941d8b0e377a8810a04f98552201678300f168de5f58a587b73238b'], + }), + ('desc', '1.2.0', { + 'checksums': ['e66fb5d4fc7974bc558abcdc107a1f258c9177a29dcfcf9164bc6b33dd08dae8'], + }), + ('ps', '1.3.2', { + 'checksums': ['89f2456af6c7ffbc151aeccb620584ca26015b7d6188eb188488c7c4afc14704'], + }), + ('processx', '3.4.2', { + 'checksums': ['94a0ffc632759be85d13b7b11ed006adf6c08c2d9cd99612cd0372833bd75c09'], + }), + ('callr', '3.4.3', { + 'checksums': ['01b7277f20c1d662c6bebbfa2798d179922b36d4148b4298853579aeda0382b5'], + }), + ('prettyunits', '1.1.1', { + 'checksums': ['9a199aa80c6d5e50fa977bc724d6e39dae1fc597a96413053609156ee7fb75c5'], + }), + ('pkgbuild', '1.0.7', { + 'checksums': ['29bb38a38202ba780d2d46aeca0a6e2f052653e4a83891ec38d19bebd131a971'], + }), + ('rstudioapi', '0.13', { + 'checksums': ['aac35bbdcb4a8e8caba943bc8a2b98120e8940b80cd1020224bb1a26ff776d8b'], + }), + ('pkgload', '1.0.2', { + 'checksums': ['3186564e690fb05eabe76e1ac0bfd4312562c3ac8794b29f8850399515dcf27c'], + }), + ('praise', '1.0.0', { + 'checksums': ['5c035e74fd05dfa59b03afe0d5f4c53fbf34144e175e90c53d09c6baedf5debd'], + }), + ('testthat', '2.3.2', { + 'checksums': ['1a268d8df07f7cd8d282d03bb96ac2d96a24a95c9aa52f4cca5138a09dd8e06c'], + }), + ('isoband', '0.2.1', { + 'checksums': ['18883606bea8352e04a4618bea4e5c9833269e73a46b50bc006dddf4c8b6b4d9'], + }), + ('ggplot2', '3.3.0', { + 'checksums': ['320e3c76fe0d0397e29f4782bf85af3647518154b3900a39fd18cf024c554148'], + }), + ('pROC', '1.16.2', { + 'checksums': ['b68b960ed9a2cdea7976943649082c3945e370d14115b7adbce440fc7f51fc2a'], + }), + ('quadprog', '1.5-8', { + 'checksums': ['22128dd6b08d3516c44ff89276719ad4fe46b36b23fdd585274fa3a93e7a49cd'], + }), + ('BB', '2019.10-1', { + 'checksums': ['04d0b6ce6e5f070b109478a6005653dbe78613bb4e3ea4903203d851b5d3c94d'], + }), + ('BBmisc', '1.11', { + 'checksums': ['1ea48c281825349d8642a661bb447e23bfd651db3599bf72593bfebe17b101d2'], + }), + ('fail', '1.3', { + 'checksums': ['ede8aa2a9f2371aff5874cd030ac625adb35c33954835b54ab4abf7aeb34d56d'], + }), + ('rlecuyer', '0.3-5', { + 'checksums': ['4723434ff7624d4f404a6854ffa0673fc43daa46f58f064dbeeaa17da28ab626'], + }), + ('snow', '0.4-3', { + 'checksums': ['8512537daf334ea2b8074dbb80cf5e959a403a78d68bc1e97664e8a4f64576d8'], + }), + ('tree', '1.0-40', { + 'checksums': ['ffab16382d7ed5b76529801ab26b4970363b2072231c6a87330326298ce626e7'], + }), + ('pls', '2.7-2', { + 'checksums': ['67e91e36dbebeb2f2d9c9b88f310dc00f70de275e5f382f392e72dd36af42b88'], + }), + ('class', '7.3-17', { + 'checksums': ['be1f85b6df7556db93f50cb08106aac6620d4b5bb3fee846422863a022461313'], + }), + ('e1071', '1.7-3', { + 'checksums': ['bb2dba526b673ec3a573befe365e3500b773593f0384fd6694e0835496bcc25d'], + }), + ('nnet', '7.3-14', { + 'checksums': ['5d1b9e9764d74d16c651f18f949aa4e9e2995ba64633cbfa2c6a7355ae30f4af'], + }), + ('minqa', '1.2.4', { + 'checksums': ['cfa193a4a9c55cb08f3faf4ab09c11b70412523767f19894e4eafc6e94cccd0c'], + }), + ('RcppEigen', '0.3.3.7.0', { + 'checksums': ['62ea627284425bfdb56613bc315cca492ed3483a56a03c1f9dc9821a25c3e8ac'], + }), + ('MatrixModels', '0.4-1', { + 'checksums': ['fe878e401e697992a480cd146421c3a10fa331f6b37a51bac83b5c1119dcce33'], + }), + ('quantreg', '5.55', { + 'checksums': ['cbe1541409aed8222a41043958ab9c352b84dba4e0766b54bf1eac59d2454cfe'], + }), + ('robustbase', '0.93-6', { + 'checksums': ['ea1463a646a0aad0cc6f48e011c8baf990178f1228e0759be63259123b3a24b3'], + }), + ('zoo', '1.8-7', { + 'checksums': ['9e072ddc8f245adcdeb230cbf0c818db9c028c320894f48211758da2bf2085f0'], + }), + ('lmtest', '0.9-37', { + 'checksums': ['ddc929f94bf055974832fa4a20fdd0c1eb3a84ee11f716c287936f2141d5ca0a'], + }), + ('vcd', '1.4-7', { + 'checksums': ['ec89b2ad202b89d70344b49d9410ddc8a15dced00462ed7e6f9b516811325299'], + }), + ('snowfall', '1.84-6.1', { + 'checksums': ['5c446df3a931e522a8b138cf1fb7ca5815cc82fcf486dbac964dcbc0690e248d'], + }), + ('rpart', '4.1-15', { + 'checksums': ['2b8ebe0e9e11592debff893f93f5a44a6765abd0bd956b0eb1f70e9394cfae5c'], + }), + ('survival', '3.1-12', { + 'checksums': ['b62ed66eb646f3df13f7e9bf6571e3bfecae128c66491e174c8833cbef1bf21f'], + }), + ('bindr', '0.1.1', { + 'checksums': ['7c785ca77ceb3ab9282148bcecf64d1857d35f5b800531d49483622fe67505d0'], + }), + ('plogr', '0.2.0', { + 'checksums': ['0e63ba2e1f624005fe25c67cdd403636a912e063d682eca07f2f1d65e9870d29'], + }), + ('bindrcpp', '0.2.2', { + 'checksums': ['48130709eba9d133679a0e959e49a7b14acbce4f47c1e15c4ab46bd9e48ae467'], + }), + ('purrr', '0.3.4', { + 'checksums': ['23ebc93bc9aed9e7575e8eb9683ff4acc0270ef7d6436cc2ef4236a9734840b2'], + }), + ('tidyselect', '1.0.0', { + 'checksums': ['fe761766d03af86d04da9a9a7800e9c8271d2cb067776cfb817d853725d59caf'], + }), + ('dplyr', '0.8.5', { + 'checksums': ['5750d3bf4bda7b5448e08af264ed183b4f7bd0c59a9d828fe9dd399b14590218'], + }), + ('tidyr', '1.0.2', { + 'checksums': ['2403dd2f4d350d1ecb449be5d61cdccf6655572a807409325f9122c716924e69'], + }), + ('mnormt', '1.5-6', { + 'checksums': ['2951fcc9711d577d7d5577d313875c4ed9f7a7a06df8c3b62fa27c231f021e4d'], + }), + ('foreign', '0.8-79', { + 'checksums': ['af36b6945afbf849543ef7e432e27fecb66d5a8b3932b2428e59c2392699b9b4'], + }), + ('psych', '1.9.12.31', { + 'checksums': ['25e71dbe0b0d8211e7a9c8439c1c205a25fd571a0f95a89b8425b87b95b9290a'], + }), + ('generics', '0.0.2', { + 'checksums': ['71b3d1b719ce89e71dd396ac8bc6aa5f1cd99bbbf03faff61dfbbee32fec6176'], + }), + ('broom', '0.5.6', { + 'checksums': ['0b06f670ace7349b95a71313c360dbded2428d65d17eaacccc93750196964335'], + }), + ('nloptr', '1.2.2.1', { + 'checksums': ['d037bea484725cf6cbc069eee17db17f1bc8fc4edc1f1ca16cf6c34bc21610ae'], + }), + ('boot', '1.3-25', { + 'checksums': ['464835fcb453072346ce49e4ae318e04c9dba682349be49db616623b6088fbbe'], + }), + ('statmod', '1.4.34', { + 'checksums': ['1a81c286e099d2395e39f47f1e87295b8e1d64b64ec55bb09bc817ae8879747a'], + }), + ('lme4', '1.1-23', { + 'checksums': ['99d542b1f78fae33a64f1b8eec33b7a4532a8d82d2ac47bdb2838248f14c0262'], + }), + ('ucminf', '1.1-4', { + 'checksums': ['a2eb382f9b24e949d982e311578518710f8242070b3aa3314a331c1e1e7f6f07'], + }), + ('numDeriv', '2016.8-1.1', { + 'checksums': ['d8c4d19ff9aeb31b0c628bd4a16378e51c1c9a3813b525469a31fe89af00b345'], + }), + ('ordinal', '2019.12-10', { + 'checksums': ['7a41e7b7e852a8fa3e911f8859d36e5709ccec5ca42ee3de14a813b7aaac7725'], + }), + ('jomo', '2.6-10', { + 'checksums': ['4063d48e259e936dc0bd9dc616a09043f695703848cb1bf8faa08c07922034cd'], + }), + ('hms', '0.5.3', { + 'checksums': ['4e2b67c8cf65fe86179f24f42d82b3ca9377d5907837bda98b4fc6c2318853ad'], + }), + ('clipr', '0.7.0', { + 'checksums': ['03a4e4b72ec63bd08b53fe62673ffc19a004cc846957a335be2b30d046b8c2e2'], + }), + ('readr', '1.3.1', { + 'checksums': ['33f94de39bb7f2a342fbb2bd4e5afcfec08798eac39672ee18042ac0b349e4f3'], + }), + ('forcats', '0.5.0', { + 'checksums': ['8f960e789333ec597ddf2d653a64e330f03b86f465e9b71f6779f227355d90c4'], + }), + ('haven', '2.2.0', { + 'checksums': ['199ee9b14e1ff70a0b0c3b9ce33dfdec8ed3b5e857a2a36bfb82e78a7b352d3d'], + }), + ('pan', '1.6', { + 'checksums': ['adc0df816ae38bc188bce0aef3aeb71d19c0fc26e063107eeee71a81a49463b6'], + }), + ('mitml', '0.3-7', { + 'checksums': ['c6f796d0059f1b093b599a89d955982fa257de9c45763ecc2cbbce10fdec1e7b'], + }), + ('mice', '3.8.0', { + 'checksums': ['04bc18d6cf225d626d4a5d52dd98a30a19662ae14263c83b51744efce25e7ec5'], + }), + ('urca', '1.3-0', { + 'checksums': ['621cc82398e25b58b4a16edf000ed0a1484d9a0bc458f734e97b6f371cc76aaa'], + }), + ('fracdiff', '1.5-1', { + 'checksums': ['b8103b32a4ca3a59dda1624c07da08ecd144c7a91a747d1f4663e99421950eb6'], + }), + ('logistf', '1.23', { + 'checksums': ['5adb22a40569883395dc048c877f849dd08d07582a991f1b160f0338f0b13838'], + }), + ('akima', '0.6-2', { + 'checksums': ['61da3e556553eea6d1f8db7c92218254441da31e365bdef82dfe5da188cc97ce'], + }), + ('bitops', '1.0-6', { + 'checksums': ['9b731397b7166dd54941fb0d2eac6df60c7a483b2e790f7eb15b4d7b79c9d69c'], + }), + ('mixtools', '1.2.0', { + 'checksums': ['ef033ef13625209065d26767bf70d129972e6808927f755629f1d70a118b9023'], + }), + ('cluster', '2.1.0', { + 'checksums': ['eaf955bef8f616ea563351ec7f597c445aec43e65991ca975e382ef1fd70aa14'], + }), + ('gclus', '1.3.2', { + 'checksums': ['9cc61cdff206c11213e73afca3d570a7234250cf6044a9202c2589932278e0b3'], + }), + ('coda', '0.19-3', { + 'checksums': ['d3df1fc848bcf1af8fae13d61eeab60e99a3d4b4db384bec4326f909f502c5d6'], + }), + ('codetools', '0.2-16', { + 'checksums': ['f67a66175cb5d8882457d1e9b91ea2f16813d554fa74f80c1fd6e17cf1877501'], + }), + ('foreach', '1.5.0', { + 'checksums': ['1af9a713418c4cdeb49c4194f6482a7ee8ae4959b995a958a8a8a19ec8b60415'], + }), + ('doMC', '1.3.6', { + 'checksums': ['2977fc9e2dc54d85d45b4a36cd286dff72834fbc73f38b6ee45a6eb8557fc9b2'], + }), + ('DBI', '1.1.0', { + 'checksums': ['a96db7fa39a58f1ed34c6e78d8f5f7e4cf0882afb301323b5c6975d6729203e4'], + }), + ('gam', '1.16.1', { + 'checksums': ['80d04102c6152143e8ed364f91eb312e413f73b8fcab7cf15d677867a16e74b9'], + }), + ('gamlss.data', '5.1-4', { + 'checksums': ['0d3777d8c3cd76cef273aa6bde40a91688719be401195ed9bfd1e85bd7d5eeb5'], + }), + ('gamlss.dist', '5.1-6', { + 'checksums': ['3ff0e36dfd7ddea109410c539375a408af8f8f865dd8865555e41fb0402720dd'], + }), + ('gamlss', '5.1-6', { + 'checksums': ['b9c9a21343ed7777c239d8c5ad63b6f6efa0254bfcd6eaf66a74c319268b6799'], + }), + ('gamlss.tr', '5.1-0', { + 'checksums': ['f9e1c4935d8876bfc80dddc0a9bc2c82b4deeda9482df208297a84a638a4a9df'], + }), + ('hwriter', '1.3.2', { + 'checksums': ['6b3531d2e7a239be9d6e3a1aa3256b2745eb68aa0bdffd2076d36552d0d7322b'], + }), + ('KernSmooth', '2.23-17', { + 'checksums': ['2b3d73fe15db46dbc2f6e3b043baadb7633c46bfa4a66d9eea5aed633058e685'], + }), + ('xts', '0.12-0', { + 'checksums': ['df11e6dad7cf0a266702988fa6127aaf72437da743ca40e9abcd9e6b3d628c60'], + }), + ('curl', '4.3', { + 'checksums': ['7406d485bb50a6190e3ed201e3489063fd249b8b3b1b4f049167ac405a352edb'], + }), + ('TTR', '0.23-6', { + 'checksums': ['afc10a89d3a18f121ddf0f7256408eeb05cc64e18ee94e654bfa803e5415e265'], + }), + ('quantmod', '0.4.17', { + 'checksums': ['0aff56f276f8e347c56356060f7320913f0e417f1c5411c49f0865ca732044eb'], + }), + ('mvtnorm', '1.1-0', { + 'checksums': ['8112e12eb11f5db2ff145893f48426520e669be99b87889457dd2c4f2636cb5d'], + }), + ('pcaPP', '1.9-73', { + 'checksums': ['ca4566b0babfbe83ef9418283b08a12b3420dc362f93c6562f265df7926b53fc'], + }), + ('SQUAREM', '2020.2', { + 'checksums': ['6e3373bb5190ade222d676dae9f1aad32feddd50e97499fab7d66fd94752dac8'], + }), + ('lava', '1.6.7', { + 'checksums': ['63f7a8454cfc70739877812481a987deea33d4235f05234d0dd0ed8bd6eadf39'], + }), + ('prodlim', '2019.11.13', { + 'checksums': ['6809924f503a14681de84730489cdaf9240d7951c64f5b98ca37dc1ce7809b0f'], + }), + ('pscl', '1.5.5', { + 'checksums': ['054c9b88a991abdec3338688f58e81b6ba55f91edb988621864b24fd152fee6f'], + }), + ('memoise', '1.1.0', { + 'checksums': ['b276f9452a26aeb79e12dd7227fcc8712832781a42f92d70e86040da0573980c'], + }), + ('bit64', '0.9-7', { + 'checksums': ['7b9aaa7f971198728c3629f9ba1a1b24d53db5c7e459498b0fdf86bbd3dff61f'], + }), + ('blob', '1.2.1', { + 'checksums': ['ef54bc7a9646c1b73f4d2f60c869b4f1940bc3505874175114297ad7772d8bea'], + }), + ('RSQLite', '2.2.0', { + 'checksums': ['000d126fda069cd97d1a9f9df16cd267ca76d8b96c290ca9b8c32d9e91d468d4'], + }), + ('data.table', '1.12.8', { + 'checksums': ['d3a75f3a355ff144cc20a476041617e21fcf2a9f79265fd9bbd4693f3671f9dc'], + }), + ('BatchJobs', '1.8', { + 'checksums': ['35cc2dae31994b1df982d11939509ce965e12578418c4fbb8cd7a422afd6e4ff'], + }), + ('sandwich', '2.5-1', { + 'checksums': ['dbef6f4d12b83e166f9a2508b7c732b04493641685d6758d29f3609e564166d6'], + }), + ('sfsmisc', '1.1-6', { + 'checksums': ['57b22cdd713e71e9235ff1ace8cdf73564bfdcee4b018f3d7cde6fb35493db11'], + }), + ('spatial', '7.3-12', { + 'checksums': ['7639039ee7407bd088e1b253376b2cb4fcdf4cc9124d6b48e4119d5cda872d63'], + }), + ('VGAM', '1.1-3', { + 'checksums': ['0c9ff51b9ee76d8b182a19b61f278970ad6d421c0206bfef40b7413b7acb94c3'], + }), + ('waveslim', '1.8.2', { + 'checksums': ['133c4f7a027282742fe99b583ca65f178fc7a3df2ce75cb4d60650f0a1dd7145'], + }), + ('xtable', '1.8-4', { + 'checksums': ['5abec0e8c27865ef0880f1d19c9f9ca7cc0fd24eadaa72bcd270c3fb4075fd1c'], + }), + ('profileModel', '0.6.0', { + 'checksums': ['a829ceec29c817d6d15947b818e28f9cf5a188a231b9b5d0a75018388887087b'], + }), + ('brglm', '0.6.2', { + 'checksums': ['c2af432a43ccf37e9de50317f770b9703a4c80b4ef79ec40aa8e7ec3987e3631'], + }), + ('deSolve', '1.28', { + 'checksums': ['4c55ef4cae841df91034382d277b483985af120240f87af587ff82177fdb5a49'], + }), + ('tseriesChaos', '0.1-13.1', { + 'checksums': ['23cb5fea56409a305e02a523ff8b7642ec383942d415c9cffdc92208dacfd961'], + }), + ('tseries', '0.10-47', { + 'checksums': ['202377df56806fe611c2e12c4d9732c71b71220726e2defa7e568d2b5b62fb7b'], + }), + ('fastICA', '1.2-2', { + 'checksums': ['32223593374102bf54c8fdca7b57231e4f4d0dd0be02d9f3500ad41b1996f1fe'], + }), + ('R.methodsS3', '1.8.0', { + 'checksums': ['e005f5ee21bfb6fbbf415de957a9ca0ed6e9f2800b95d98d76a9acb3c14185a5'], + }), + ('R.oo', '1.23.0', { + 'checksums': ['f5124ce3dbb0a62e8ef1bfce2de2d1dc2f776e8c48fd8cac358f7f5feb592ea1'], + }), + ('jsonlite', '1.6.1', { + 'checksums': ['74921dd249857a23afabc1ad1485a63a48828e57f240f0619deb04c60f883377'], + }), + ('sys', '3.3', { + 'checksums': ['a6217c2a7240ed68614006f392c6d062247dab8b9b0d498f95e947110df19b93'], + }), + ('askpass', '1.1', { + 'checksums': ['db40827d1bdbb90c0aa2846a2961d3bf9d76ad1b392302f9dd84cc2fd18c001f'], + }), + ('openssl', '1.4.1', { + 'checksums': ['f7fbecc75254fc43297a95a4338c674ab9ba2ec056b59e027d16d23122161fc6'], + }), + ('httr', '1.4.1', { + 'checksums': ['675c7e07bbe82c48284ee1ab929bb14a6e653abae2860d854dc41a3c028de156'], + }), + ('cgdsr', '1.3.0', { + 'checksums': ['4aa2a3564cee2449c3ff39ab2ad631deb165d4c78b8107e0ff77a9095340cc1f'], + }), + ('R.utils', '2.9.2', { + 'checksums': ['ac6b3b8e814fbb855c38fbdb89a4f0cf0ed65ce7fa308445bd74107fbc0d32cf'], + }), + ('R.matlab', '3.6.2', { + 'checksums': ['1ba338f470a24b7f6ef68cadbd04eb468ead4a689f263d2642408ad591b786bb'], + }), + ('gridExtra', '2.3', { + 'checksums': ['81b60ce6f237ec308555471ae0119158b115463df696d2eca9b177ded8988e3b'], + }), + ('gbm', '2.1.5', { + 'checksums': ['06fbde10639dfa886554379b40a7402d1f1236a9152eca517e97738895a4466f'], + }), + ('Formula', '1.2-3', { + 'checksums': ['1411349b20bd09611a9fd0ee6d15f780c758ad2b0e490e908facb49433823872'], + }), + ('acepack', '1.4.1', { + 'checksums': ['82750507926f02a696f6cc03693e8d4a5ee7e92500c8c15a16a9c12addcd28b9'], + }), + ('proto', '1.0.0', { + 'checksums': ['9294d9a3b2b680bb6fac17000bfc97453d77c87ef68cfd609b4c4eb6d11d04d1'], + }), + ('chron', '2.3-55', { + 'checksums': ['0f731fb9e79818cd95b5fa843cc233616a5f8e5dd39a1ae8048f5a1fd8d1eb25'], + }), + ('viridis', '0.5.1', { + 'checksums': ['ddf267515838c6eb092938133035cee62ab6a78760413bfc28b8256165701918'], + }), + ('yaml', '2.2.1', { + 'checksums': ['1115b7bc2a397fa724956eec916df5160c600c99a3be186d21558dd38d782783'], + }), + ('htmltools', '0.4.0', { + 'checksums': ['5b18552e1183b1b90b5cca8e7f95b57e8124c9d517b22aa64783b829513b811a'], + }), + ('htmlwidgets', '1.5.1', { + 'checksums': ['d42e59144552d9b4131f11ddd6169dfb9bd538c7996669a09acbdb400d18d781'], + }), + ('knitr', '1.28', { + 'checksums': ['05ee01da31d715bf24793efb3e4ef3bb3101ef1e1ab2d760c645fc5b9d40232a'], + }), + ('htmlTable', '1.13.3', { + 'checksums': ['d459c43675f6ee0a1ae8232ea8819b2a842e795a833b28127081fa344d09393d'], + }), + ('Hmisc', '4.4-0', { + 'checksums': ['f16ecf4c5ee2202d51f426282a54f8000ffa8b9747c3e910205f34f878556ec7'], + }), + ('fastcluster', '1.1.25', { + 'checksums': ['f3661def975802f3dd3cec5b2a1379f3707eacff945cf448e33aec0da1ed4205'], + }), + ('registry', '0.5-1', { + 'checksums': ['dfea36edb0a703ec57e111016789b47a1ba21d9c8ff30672555c81327a3372cc'], + }), + ('bibtex', '0.4.2.2', { + 'checksums': ['073887668f16568d9fafaa5862ed7d3d866f40cbc1a028371b038cdbbe9c1090'], + }), + ('pkgmaker', '0.31.1', { + 'checksums': ['1702b8e2fa9751fa67c3031468273eaa28358d27ba2df98a4fbb08df80500f64'], + }), + ('rngtools', '1.5', { + 'checksums': ['8274873b73f7acbe0ce007e62893bf4d369d2aab8768754a60da46b3f078f575'], + }), + ('doParallel', '1.0.15', { + 'checksums': ['71ad7ea69616468996aefdd8d02a4a234759a21ddde9ed1657e3c537145cd86e'], + }), + ('gridBase', '0.4-7', { + 'checksums': ['be8718d24cd10f6e323dce91b15fc40ed88bccaa26acf3192d5e38fe33e15f26'], + }), + ('irlba', '2.3.3', { + 'checksums': ['6ee233697bcd579813bd0af5e1f4e6dd1eea971e8919c748408130d970fef5c0'], + }), + ('igraph', '1.2.5', { + 'checksums': ['0cdd675b2e6a31f54bd5ba4530a26f00996eb310ceea93263c6fc4ba9e0fdf88'], + }), + ('GeneNet', '1.2.14', { + 'checksums': ['76f4d1a5954b3060d95017b0108b2f0936fdf38c15e5c1fd051cfc5c82ccb031'], + }), + ('ape', '5.3', { + 'checksums': ['08b0df134c523feb00a86896d1aa2a43f0f0dab20a53bc6b5d6268d867988b23'], + }), + ('RJSONIO', '1.3-1.4', { + 'checksums': ['54142c931e15eca278a02dad5734026bb49d960471eb085008af825352953190'], + }), + ('caTools', '1.18.0', { + 'checksums': ['0343698a41e8b516769af0433ac2e52a7df9be709b7f78c1825e88e1a37f3378'], + }), + ('gplots', '3.0.3', { + 'checksums': ['d776d3ee9e284085f6ec1b7717afcd5c4addad60d2f1f4f220cda788c8ac4643'], + }), + ('ROCR', '1.0-7', { + 'checksums': ['e7ef710f847e441a48b20fdc781dbc1377f5a060a5ee635234053f7a2a435ec9'], + }), + ('later', '1.0.0', { + 'checksums': ['277b9848ef2e5e1ac7257aefeb58f6b20cca17693460e7c4eee0477de456b287'], + }), + ('promises', '1.1.0', { + 'checksums': ['c8ea0f3e3256cf3010439b3a6111966db419c3dcff9a561e73caf8bd65f38006'], + }), + ('httpuv', '1.5.2', { + 'checksums': ['93b32be974e0f531a3cb343685165c0caadf30cfea07683f8d69302a34045d8d'], + }), + ('rjson', '0.2.20', { + 'checksums': ['3a287c1e5ee7c333ed8385913c0a307daf99335fbdf803e9dcca6e3d5adb3f6c'], + }), + ('sourcetools', '0.1.7', { + 'checksums': ['47984406efb3b3face133979ccbae9fefb7360b9a6ca1a1c11473681418ed2ca'], + }), + ('fastmap', '1.0.1', { + 'checksums': ['4778b05dfebd356f8df980dfeff3b973a72bca14898f870e5c40c1d84db9faec'], + }), + ('shiny', '1.4.0.2', { + 'checksums': ['dca6ac83d03266a3d930273e7b821afa4a574f02ef89f963672972c2a2f5e064'], + }), + ('seqinr', '3.6-1', { + 'checksums': ['c44fc8922ef410da3c3b5ca117cdbec55ccb546c9e6d96c01ede44398dfa6048'], + }), + ('LearnBayes', '2.15.1', { + 'checksums': ['9b110858456523ca0b2a63f22013c4e1fbda6674b9d84dc1f4de8bffc5260532'], + }), + ('deldir', '0.1-25', { + 'checksums': ['f0a2f2eb511e8e99423a8f9b6ebc9073967d79629db4c86824eb0696d1a6af4d'], + }), + ('gmodels', '2.18.1', { + 'checksums': ['626140a34eb8c53dd0a06511a76c71bc61c48777fa76fcc5e6934c9c276a1369'], + }), + ('expm', '0.999-4', { + 'checksums': ['58d06427a08c9442462b00a5531e2575800be13ed450c5a1546261251e536096'], + }), + ('raster', '3.1-5', { + 'checksums': ['db6622d55bb9e5c4a8d8e59887a802b35fc07dcee946800453bc5e1901c01a04'], + }), + ('spData', '0.3.5', { + 'checksums': ['901e840ba42e945d51ea0dfe815fece44dd92a8e74a2356345ccbb2577908926'], + }), + ('units', '0.6-6', { + 'checksums': ['d0b6c76afb9aa5d7a0eaae05e6fc1bd2bb9d62d4c43e986b4782d6e5c2efa687'], + }), + ('classInt', '0.4-3', { + 'checksums': ['9ede7a2a7a6b6c114919a3315a884fb592e33b037a50a4fe45cbd4fe2fc434ac'], + }), + ('vegan', '2.5-6', { + 'checksums': ['b3c00aceb3db38101960515658e2b9ec1552439c3ed4e26e72989f18eccbc03c'], + }), + ('progress', '1.2.2', { + 'checksums': ['b4a4d8ed55db99394b036a29a0fb20b5dd2a91c211a1d651c52a1023cc58ff35'], + }), + ('rncl', '0.8.4', { + 'checksums': ['6b19d0dd9bb08ecf99766be5ad684bcd1894d1cd9291230bdd709dbd3396496b'], + }), + ('XML', '3.99-0.3', { + 'checksums': ['81b7a76308f3b7378dff525eff0180bba73b31117483a26cc3aa172d15c7f753'], + }), + ('tinytex', '0.22', { + 'checksums': ['6bbcbc907cad14bc0a583670bad1d9648d1f1cedd364354042aee83bb6302e69'], + }), + ('rmarkdown', '2.1', { + 'checksums': ['ef450e21206c454aa78eeca9023bbc78d1b2939e0b4bed9fdec9f2bf81ee455d'], + }), + ('reshape', '0.8.8', { + 'checksums': ['4d5597fde8511e8fe4e4d1fd7adfc7ab37ff41ac68c76a746f7487d7b106d168'], + }), + ('xml2', '1.3.2', { + 'checksums': ['df22f9e7e3189d8c9b8804eaf0105324fdac983cffe743552f6d76613600a4cf'], + }), + ('triebeard', '0.3.0', { + 'checksums': ['bf1dd6209cea1aab24e21a85375ca473ad11c2eff400d65c6202c0fb4ef91ec3'], + }), + ('urltools', '1.7.3', { + 'checksums': ['6020355c1b16a9e3956674e5dea9ac5c035c8eb3eb6bbdd841a2b5528cafa313'], + }), + ('httpcode', '0.3.0', { + 'checksums': ['593a030a4f94c3df8c15576837c17344701bac023ae108783d0f06c476062f76'], + }), + ('crul', '0.9.0', { + 'checksums': ['a7b42c69ca31648a419b93c618d32d0613f3ea053e45d584e84ef422ccf531c0'], + }), + ('bold', '0.9.0', { + 'checksums': ['45e844a83f4545a2f84887e36db83113da824a8673fa039f067a3bd7ee82ed5e'], + }), + ('rredlist', '0.6.0', { + 'checksums': ['bed33680f4e36f0f357d5785b631ae91232c8593a7517f1c0a4199d4e1e28332'], + }), + ('rentrez', '1.2.2', { + 'checksums': ['e5cb4265fd06d2ed0e11da3667ba79f7f2c8816005ba72cf5f53b8cf02dc193e'], + }), + ('rotl', '3.0.10', { + 'checksums': ['38b4679fe2d5407f7d0799d624ae8ea5d73ec0b6531b0e3d48246dea5575073a'], + }), + ('solrium', '1.1.4', { + 'checksums': ['5fccdb455746493c56e4df91f01ea9e89cdf0d67cfa5f958ca246b9207d20375'], + }), + ('ritis', '0.9.0', { + 'checksums': ['4abbe6c860fd3e465116573c9b2f119dbbd0046646844551523188ded63f0f6c'], + }), + ('worrms', '0.4.0', { + 'checksums': ['8480c56a4412662a383103fef68e73fcf14e94fcb878c25df8c6d5a8c0146059'], + }), + ('natserv', '0.4.0', { + 'checksums': ['ba7ef96290b4713e46197cc872d5400710086dc3668717d67995ee3de3d19c87'], + }), + ('WikipediR', '1.5.0', { + 'checksums': ['f8d0e6f04fb65f7ad9c1c068852a6a8b699ffe8d39edf1f3fa07d32d087e8ff0'], + }), + ('WikidataR', '1.4.0', { + 'checksums': ['64b1d53d7023249b73a77a7146adc3a8957b7bf3d808ebd6734795e9f58f4b2a'], + }), + ('wikitaxa', '0.3.0', { + 'checksums': ['10dbabac6c56c1d0f33a66ff9b4f48b0bcb470711808a86863b48dc1140ec86c'], + }), + ('phangorn', '2.5.5', { + 'checksums': ['c58dc1ace26cb4358619a15da3ea4765dbdde1557acccc5103c85589a7571346'], + }), + ('taxize', '0.9.95', { + 'checksums': ['8a27d81678e60f67082d9b0b3cd104fe531ea2be2d9073a20cab016259228834'], + }), + ('uuid', '0.1-4', { + 'checksums': ['98e0249dda17434bfa209c2058e9911e576963d4599be9f7ea946e664f8ca93e'], + }), + ('RNeXML', '2.4.3', { + 'checksums': ['bf801c93da4d5a59c92d17c15c04072e1ba4f72c50461a1e1eda2d446109a925'], + }), + ('phylobase', '0.8.10', { + 'checksums': ['5a44380ff49bab333a56f6f96157324ade8afb4af0730e013194c4badb0bf94b'], + }), + ('magick', '2.3', { + 'checksums': ['a8412512a132a74ed88fbe64a0a415e9ba5437a1b8a664990638e10915274ba0'], + }), + ('animation', '2.6', { + 'checksums': ['90293638920ac436e7e4de76ebfd92e1643ccdb0259b62128f16dd0b13245b0a'], + }), + ('bigmemory.sri', '0.1.3', { + 'checksums': ['55403252d8bae9627476d1f553236ea5dc7aa6e54da6980526a6cdc66924e155'], + }), + ('bigmemory', '4.5.36', { + 'checksums': ['18c67fbe6344b2f8223456c4f19ceebcf6c1166255eab81311001fd67a45ef0e'], + }), + ('calibrate', '1.7.5', { + 'checksums': ['33f4f6874f0a979af3ce592ed1105e829d3df1fbf05c6e0cd3829a13b21d82e8'], + }), + ('clusterGeneration', '1.3.4', { + 'checksums': ['7c591ad95a8a9d7fb0e4d5d80dfd78f7d6a63cf7d11eb53dd3c98fdfb5b868aa'], + }), + ('dismo', '1.1-4', { + 'checksums': ['f2110f716cd9e4cca5fd2b22130c6954658aaf61361d2fe688ba22bbfdfa97c8'], + }), + ('extrafontdb', '1.0', { + 'checksums': ['faa1bafee5d4fbc24d03ed237f29f1179964ebac6e3a46ac25b0eceda020b684'], + }), + ('Rttf2pt1', '1.3.8', { + 'checksums': ['560646d4488bf70edd8f785a99e8208e7fd004014e29cb52b050fb55e7176e2c'], + }), + ('extrafont', '0.17', { + 'checksums': ['2f6d7d79a890424b56ddbdced361f8b9ddede5edd33e090b816b88a99315332d'], + }), + ('fields', '10.3', { + 'checksums': ['490bff3637edd6d42b578776648be031486fc38cdbe668fd46b07c2add3e698a'], + }), + ('shapefiles', '0.7', { + 'checksums': ['eeb18ea4165119519a978d4a2ba1ecbb47649deb96a7f617f5b3100d63b3f021'], + }), + ('fossil', '0.4.0', { + 'checksums': ['37c082fa15ebae89db99d6071b2bb2cad6a97a0405e9b4ef77f62a8f6ad274c1'], + }), + ('geiger', '2.0.6.4', { + 'checksums': ['8ddc12779b86b14b173a5c72a28c4e22784e4a7a48e6c806e48a097c2928af64'], + }), + ('shape', '1.4.4', { + 'checksums': ['f4cb1b7d7c84cf08d2fa97f712ea7eb53ed5fa16e5c7293b820bceabea984d41'], + }), + ('glmnet', '3.0-2', { + 'checksums': ['f48956a75af7e2be045198873fc9eb637a549af1db83dcf76cac3774bfb3762c'], + }), + ('crosstalk', '1.1.0.1', { + 'checksums': ['36a70b10bc11826e314c05f9579fd791b9ac3b3a2cfed4d4ca74ce1ad991300e'], + }), + ('miniUI', '0.1.1.1', { + 'checksums': ['452b41133289f630d8026507263744e385908ca025e9a7976925c1539816b0c0'], + }), + ('webshot', '0.5.2', { + 'checksums': ['f183dc970157075b51ac543550a7a48fa3428b9c6838abb72fe987c21982043f'], + }), + ('manipulateWidget', '0.10.1', { + 'checksums': ['9d621192121f6b516bc7f1a18305995bfb7838c6683ac701422afc03a50e27ee'], + }), + ('rgl', '0.100.54', { + 'checksums': ['17b7f8f135f526aba17dc516952f692daa7a7d6e787157fdff8dd5175113fad5'], + }), + ('Rtsne', '0.15', { + 'checksums': ['56376e4f0a382fad3d3d40e2cb0562224be5265b827622bcd235e8fc63df276c'], + }), + ('labdsv', '2.0-1', { + 'checksums': ['5a4d55e9be18222dc47e725008b450996448ab117d83e7caaa191c0f13fd3925'], + }), + ('stabs', '0.6-3', { + 'checksums': ['e961ae21d45babc1162b6eeda874c4e3677fc286fd06f5427f071ad7a5064a9f'], + }), + ('modeltools', '0.2-23', { + 'checksums': ['6b3e8d5af1a039db5c178498dbf354ed1c5627a8cea9229726644053443210ef'], + }), + ('strucchange', '1.5-2', { + 'checksums': ['7d247c5ae6f5a63c80e478799d009c57fb8803943aa4286d05f71235cc1002f8'], + }), + ('TH.data', '1.0-10', { + 'checksums': ['618a1c67a30536d54b1e48ba3af46a6edcd6c2abef17935b5d4ba526a43aff55'], + }), + ('multcomp', '1.4-13', { + 'checksums': ['d30f0357b8307e7feb574d6d307e0ebc6bdca66b2cc172980fa5309685885fdb'], + }), + ('libcoin', '1.0-5', { + 'checksums': ['0a744164e00557d2f3e888d14cfd6108d17c14e983db620f74c7a5475be8a9b2'], + }), + ('matrixStats', '0.56.0', { + 'checksums': ['39e34a3dc480b9df05bb1a555eaef1dc1971a53f3ea6e01eb3a68bd1d3760f27'], + }), + ('coin', '1.3-1', { + 'checksums': ['5de2519a6e2b059bba9d74c58085cccaff1aaaa0454586ed164a108ebd1b2062'], + }), + ('party', '1.3-4', { + 'checksums': ['7689bd4fe7968ef1981147c5ad11237d630eddd5789a05c090339898eff71e7f'], + }), + ('inum', '1.0-1', { + 'checksums': ['3c2f94c13c03607e05817e4859595592068b55e810fed94e29bc181ad248a099'], + }), + ('partykit', '1.2-7', { + 'checksums': ['5c993c729c2975095eb27e6363eeb1c8a8ba22035f226f598af9d43a4ca312c1'], + }), + ('mboost', '2.9-2', { + 'checksums': ['34c6ba2051adc5ff429a594f7144bffcb7b129d5ff7c28a14cf21f38dbd554aa'], + }), + ('msm', '1.6.8', { + 'checksums': ['f3f18a9ea622a6d56f0f6d675b4890081d6def8b91a694c6764dac0d1cf262b4'], + }), + ('nor1mix', '1.3-0', { + 'checksums': ['9ce4ee92f889a4a4041b5ea1ff09396780785a9f12ac46f40647f74a37e327a0'], + }), + ('np', '0.60-10', { + 'checksums': ['a27b4bbca8b83a289c98920c1c8f5e9979ba9772086893252a4297dd2698081a'], + }), + ('polynom', '1.4-0', { + 'checksums': ['c5b788b26f7118a18d5d8e7ba93a0abf3efa6603fa48603c70ed63c038d3d4dd'], + }), + ('polspline', '1.1.17', { + 'checksums': ['d67b269d01105d4a6ea774737e921e66e065a859d1931ae38a70f88b6fb7ee30'], + }), + ('rms', '5.1-4', { + 'checksums': ['38f5844c4944a95b2adebea6bb1d163111270b8662399ea0349c45c0758076a6'], + }), + ('RWekajars', '3.9.3-2', { + 'checksums': ['16e6b019aab1646f89c5203f0d6fc1cb800129e5169b15aaef30fd6236f5da1a'], + }), + ('RWeka', '0.4-42', { + 'checksums': ['84e53028875d4603bd073c77709941d358152b8274977d45934fa89121b02104'], + }), + ('slam', '0.1-47', { + 'checksums': ['696356a68aa92059fa794444faa4c1775193c723a262a5f75de3c3c3047fcf89'], + }), + ('tm', '0.7-7', { + 'checksums': ['d0dbe41ff8414bdc2eee06a1b0d6db4567850135c4c6ff0a9c9ca8239166d15f'], + }), + ('TraMineR', '2.2-0', { + 'checksums': ['eeaeaf5151ec7a6b7179fd04dbdfb16479b4893e1547ccc29be74e444691d0f6'], + }), + ('chemometrics', '1.4.2', { + 'checksums': ['b705832fa167dc24b52b642f571ed1efd24c5f53ba60d02c7797986481b6186a'], + }), + ('FNN', '1.1.3', { + 'checksums': ['de763a25c9cfbd19d144586b9ed158135ec49cf7b812938954be54eb2dc59432'], + }), + ('ipred', '0.9-9', { + 'checksums': ['0da87a70730d5a60b97e46b2421088765e7d6a7cc2695757eba0f9d31d86416f'], + }), + ('miscTools', '0.6-26', { + 'checksums': ['be3c5a63ca12ce7ce4d43767a1815cd3dcf32664728ade251cfb03ea6f77fc9a'], + }), + ('maxLik', '1.3-8', { + 'checksums': ['33404d10bfe7746cab8227b880b50808a63909036daf6fedbac94c75ac68dfe5'], + }), + ('gbRd', '0.4-11', { + 'checksums': ['0251f6dd6ca987a74acc4765838b858f1edb08b71dbad9e563669b58783ea91b'], + }), + ('Rdpack', '0.11-1', { + 'checksums': ['58020f150be07209fd1fdd7f5e58c138863e850f4e4c1512d69250286e091e20'], + }), + ('mlogit', '1.0-3.1', { + 'checksums': ['e4b601d8f0d0bcd1c63468ab88aa305355d2811c60b038a5ba4b99245cf59b0c'], + }), + ('getopt', '1.20.3', { + 'checksums': ['531f5fdfdcd6b96a73df2b39928418de342160ac1b0043861e9ea844f9fbf57f'], + }), + ('gsalib', '2.1', { + 'checksums': ['e1b23b986c18b89a94c58d9db45e552d1bce484300461803740dacdf7c937fcc'], + }), + ('optparse', '1.6.6', { + 'checksums': ['51779d497146e9354b1153713d939e81551e08948c2b00e4b117b1377c0b60d0'], + }), + ('labelled', '2.3.0', { + 'checksums': ['9f16f168436039d7881d535a9f15fb0dce752fd3a28bce89192718cdbd043a50'], + }), + ('questionr', '0.7.0', { + 'checksums': ['c4566880a1ca8f01faad396e20d907d913f4a252acaf83a0cb508a3738874cb3'], + }), + ('klaR', '0.6-15', { + 'checksums': ['5bfe5bc643f8a64b222317732c26e9f93be297cdc318a869f15cc9ab0d9e0fae'], + }), + ('neuRosim', '0.2-12', { + 'checksums': ['f4f718c7bea2f4b61a914023015f4c71312f8a180124dcbc2327b71b7be256c3'], + }), + ('locfit', '1.5-9.4', { + 'checksums': ['d9d3665c5f3d49f698fb4675daf40a0550601e86db3dc00f296413ceb1099ced'], + }), + ('GGally', '1.5.0', { + 'checksums': ['069261cd469e2d2c8c794b2956e69c356b471eccfc45a60c55e55dfd83185a20'], + }), + ('beanplot', '1.2', { + 'checksums': ['49da299139a47171c5b4ccdea79ffbbc152894e05d552e676f135147c0c9b372'], + }), + ('clValid', '0.6-6', { + 'checksums': ['c13ef1b6258e34ba53615b78f39dbe4d8ba47b976b3c24a3eedaecf5ffba19ed'], + }), + ('DiscriMiner', '0.1-29', { + 'checksums': ['5aab7671086ef9940e030324651976456f0e84dab35edb7048693ade885228c6'], + }), + ('ellipse', '0.4.1', { + 'checksums': ['1a9a9c52195b26c2b4d51ad159ab98aff7aa8ca25fdc6b2198818d1a0adb023d'], + }), + ('leaps', '3.1', { + 'checksums': ['3d7c3a102ce68433ecf167ece96a7ebb4207729e4defd0ac8fc00e7003f5c3b6'], + }), + ('pbkrtest', '0.4-8.6', { + 'checksums': ['5f863b167968d97ea504f3fffabc1b4c922e244d4e194e013229960d3384bd68'], + }), + ('carData', '3.0-3', { + 'checksums': ['986b84bdd289159eead8b050ea82600a4f77bf0bbe0293a7c7b25d607ff7e231'], + }), + ('maptools', '0.9-9', { + 'checksums': ['69ba3b2cd50260f78fb6c25cf0557b4a0d31498d6a4f4ff00e466334fba4946c'], + }), + ('zip', '2.0.4', { + 'checksums': ['ab5dd0c63bd30b478d0f878735e7baf36e2e76e4d12d2b4b8eddd03b665502b0'], + }), + ('openxlsx', '4.1.4', { + 'checksums': ['07a38b21f6ce6e92d58d7a51ea9f4b5fd77db49b019a18ba9ecea69878a39dd7'], + }), + ('rematch', '1.0.1', { + 'checksums': ['a409dec978cd02914cdddfedc974d9b45bd2975a124d8870d52cfd7d37d47578'], + }), + ('cellranger', '1.1.0', { + 'checksums': ['5d38f288c752bbb9cea6ff830b8388bdd65a8571fd82d8d96064586bd588cf99'], + }), + ('readxl', '1.3.1', { + 'checksums': ['24b441713e2f46a3e7c6813230ad6ea4d4ddf7e0816ad76614f33094fbaaaa96'], + }), + ('rio', '0.5.16', { + 'checksums': ['d3eb8d5a11e0a3d26169bb9d08f834a51a6516a349854250629072d59c29d465'], + }), + ('car', '3.0-7', { + 'checksums': ['ad98a2f0f47105285d6677b398fc1b169cc20458e799e05dae47c84068984e87'], + }), + ('flashClust', '1.01-2', { + 'checksums': ['48a7849bb86530465ff3fbfac1c273f0df4b846e67d5eee87187d250c8bf9450'], + }), + ('ggrepel', '0.8.2', { + 'checksums': ['0d01bfc005e9af5e6b57e2a677781424387f38ec208818295eb87dd5867551e1'], + }), + ('FactoMineR', '2.3', { + 'checksums': ['c64f30a3839a375395a3b7d8a4131e1df74aea31da6348d7a506eaa9da70af51'], + }), + ('flexclust', '1.4-0', { + 'checksums': ['82fe445075a795c724644864c7ee803c5dd332a89ea9e6ccf7cd1ae2d1ecfc74'], + }), + ('flexmix', '2.3-15', { + 'checksums': ['ba444c0bfe33ab87d440ab590c06b03605710acd75811c1622253171bb123f43'], + }), + ('prabclus', '2.3-2', { + 'checksums': ['f421bcbcb557281e0de4a06b15f9a496adb5c640e883c0f7bb12051efc69e441'], + }), + ('diptest', '0.75-7', { + 'checksums': ['462900100ca598ef21dbe566bf1ab2ce7c49cdeab6b7a600a50489b05f61b61b'], + }), + ('trimcluster', '0.1-5', { + 'checksums': ['9239f20e4a06ac2fa89e5d5d89b23a45c8c534a7264d89bede8a35d43dda518b'], + }), + ('fpc', '2.2-5', { + 'checksums': ['45855d446593b93ea0873d701a6c7c6b47335a67ab34066e4cc8ae1d3f24a080'], + }), + ('BiasedUrn', '1.07', { + 'checksums': ['2377c2e59d68e758a566452d7e07e88663ae61a182b9ee455d8b4269dda3228e'], + }), + ('TeachingDemos', '2.12', { + 'checksums': ['3e75405ce1affa406d6df85e06f96381412bc7a2810b25d8c81bfe64c4698644'], + }), + ('kohonen', '3.0.10', { + 'checksums': ['996956ea46a827c9f214e4f940a19304a0ff35bda707d4d7312f80d3479067b2'], + }), + ('base64', '2.0', { + 'checksums': ['8e259c2b12446197d1152b83a81bab84ccb5a5b77021a9b5645dd4c63c804bd1'], + }), + ('doRNG', '1.8.2', { + 'checksums': ['33e9d45b91b0fde2e35e911b9758d0c376049121a98a1e4c73a1edfcff11cec9'], + }), + ('nleqslv', '3.3.2', { + 'checksums': ['f54956cf67f9970bb3c6803684c84a27ac78165055745e444efc45cfecb63fed'], + }), + ('Deriv', '4.0', { + 'checksums': ['76788764177b24dc27f4e27046fa563ad97014e0d53e14a880ebff2f9177b40e'], + }), + ('RGCCA', '2.1.2', { + 'checksums': ['20f341fca8f616c556699790814debdf2ac7aa4dd9ace2071100c66af1549d7d'], + }), + ('pheatmap', '1.0.12', { + 'checksums': ['579d96ee0417203b85417780eca921969cda3acc210c859bf9dfeff11539b0c1'], + }), + ('pvclust', '2.2-0', { + 'checksums': ['7892853bacd413b5a921006429641ad308a344ca171b3081c15e4c522a8b0201'], + }), + ('RCircos', '1.2.1', { + 'checksums': ['3b9489ab05ea83ead99ca6e4a1e6830467a2064779834aff1317b42bd41bb8fd'], + }), + ('lambda.r', '1.2.4', { + 'checksums': ['d252fee39065326c6d9f45ad798076522cec05e73b8905c1b30f95a61f7801d6'], + }), + ('futile.options', '1.0.1', { + 'checksums': ['7a9cc974e09598077b242a1069f7fbf4fa7f85ffe25067f6c4c32314ef532570'], + }), + ('futile.logger', '1.4.3', { + 'checksums': ['5e8b32d65f77a86d17d90fd8690fc085aa0612df8018e4d6d6c1a60fa65776e4'], + }), + ('VennDiagram', '1.6.20', { + 'checksums': ['e51cb3fff23c6ec8191966490bf875a7415f8725d4054bae881a25febb9281c5'], + }), + ('xlsxjars', '0.6.1', { + 'checksums': ['37c1517f95f8bca6e3514429394d2457b9e62383305eba288416fb53ab2e6ae6'], + }), + ('xlsx', '0.6.3', { + 'checksums': ['e5a9b8ead1b4502e7a1143a1d842d4994dd92f333a95a00d81a27ef62c5e035e'], + }), + ('uroot', '2.1-0', { + 'checksums': ['3c02a9dadd22aa67a59e99007ab6f576dc428859fa746d3a8f3ffa2bb43d18c2'], + }), + ('forecast', '8.12', { + 'checksums': ['eb607fd584d66abf39b14c00d50111304e892a6e0778c9a8354195c6c92f92f9'], + }), + ('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-2', { + 'checksums': ['e497992666b002b6c6bed73bf05047ad7aa69eb58898da0ad8f1f5b2219e7647'], + }), + ('spatstat.utils', '1.17-0', { + 'checksums': ['39cd683ed7f41d8adc9e28af073d91b244aa1cf5ad966dfbb396ee3ee79f0922'], + }), + ('spatstat.data', '1.4-3', { + 'checksums': ['8955b6ac40cc7d0d89e02334bb46f4c223ff0755e5818f132fee753e77918ea2'], + }), + ('spatstat', '1.63-3', { + 'checksums': ['07b4a1a1b37c91944f31779dd789598f4a5ad047a3de3e9ec2ca99b9e9565528'], + }), + ('pracma', '2.2.9', { + 'checksums': ['0cea0ff5e88643df121e07b9aebfe57084c61e11801680039752f371fe87bf1e'], + }), + ('RCurl', '1.98-1.2', { + 'checksums': ['5d74a0cdc3c5684b0348b959f67039e3c2a5da2bbb6176f6800a94124895a7a8'], + }), + ('bio3d', '2.4-1', { + 'checksums': ['679fbd87fe9fb82a65427d281d3b68906509e411270cd87d2deb95d404333c1f'], + }), + ('AUC', '0.3.0', { + 'checksums': ['e705f2c63d336249d19187f3401120d738d42d323fce905f3e157c2c56643766'], + }), + ('interpretR', '0.2.4', { + 'checksums': ['4c08a6dffd6fd5764f27812f3a085c53e6a21d59ae82d903c9c0da93fd1dd059'], + }), + ('cvAUC', '1.1.0', { + 'checksums': ['c4d8ed53b93869650aa2f666cf6d1076980cbfea7fa41f0b8227595be849738d'], + }), + ('SuperLearner', '2.0-26', { + 'checksums': ['4462922c8daae2773f79ecdea7ca3cc4ea51bfd101c5e6c1ad22f9190e746081'], + }), + ('mediation', '4.5.0', { + 'checksums': ['210206618787c395a67689be268283df044deec7199d9860ed95218ef1e60845'], + }), + ('ModelMetrics', '1.2.2.2', { + 'checksums': ['5e06f1926aebca5654e1329c66ef19b04058376b2277ebb16e3bf8c208d73457'], + }), + ('CVST', '0.2-2', { + 'checksums': ['854b8c983427ecf9f2f7798c4fd1c1d06762b5b0bcb1045502baadece6f78316'], + }), + ('DRR', '0.0.4', { + 'checksums': ['93e365a4907e301ae01f7d943e6bdcda71ef23c51a4759ba3c94bcf842d4e0f8'], + }), + ('dimRed', '0.2.3', { + 'checksums': ['e6e56e3f6999ebdc326e64ead5269f3aaf61dd587beefafb7536ac3890370d84'], + }), + ('lubridate', '1.7.8', { + 'checksums': ['3da19922fc373e113ecc58c4984955ba26da703edc9c991bd444b7077d4b553c'], + }), + ('ddalpha', '1.3.11', { + 'checksums': ['c30b4a3a9549cb4dc0a8e51e06f5b6e4c457c5326acc8f4680968c920f59b6e9'], + }), + ('gower', '0.2.1', { + 'checksums': ['af3fbe91cf818c0841b2c0ec4ddf282c182a588031228c8d88f7291b2cdff100'], + }), + ('RcppRoll', '0.3.0', { + 'checksums': ['cbff2096443a8a38a6f1dabf8c90b9e14a43d2196b412b5bfe5390393f743f6b'], + }), + ('recipes', '0.1.10', { + 'checksums': ['4f345e31568e41b3efb6c6333e8ccab032e293dbd0256299d922fe6c9532c985'], + }), + ('caret', '6.0-86', { + 'checksums': ['da4a1c7c3fbf645c5b02871e563a77404622b83623f0d1c5dc1425de7aa4ce37'], + }), + ('adabag', '4.2', { + 'checksums': ['47019eb8cefc8372996fbb2642f64d4a91d7cedc192690a8d8be6e7e03cd3c81'], + }), + ('parallelMap', '1.5.0', { + 'checksums': ['4afa727f4786279718cc799e45e91859a46f5cbc1ee652b0f47ae3b9f9d45e4e'], + }), + ('ParamHelpers', '1.14', { + 'checksums': ['b17652d0a69de3241a69f20be4ad1bfe02c413328a17f3c1ac7b73886a6ba2eb'], + }), + ('ggvis', '0.4.5', { + 'checksums': ['82373c3565c299279f6849f798cc39127b2b3f7ff2deee1946528474824b3124'], + }), + ('mlr', '2.17.1', { + 'checksums': ['0b71b9d00c627647cf5fc1f456d4445f025c90be2f974e05ccdb84e25ba1923b'], + }), + ('unbalanced', '2.0', { + 'checksums': ['9be32b1ce9d972f1abfff2fbe18f5bb5ba9c3f4fb1282063dc410b82ad4d1ea2'], + }), + ('RSNNS', '0.4-12', { + 'checksums': ['b18dfeda71573bc92c6888af72da407651bff7571967965fd3008f0d331743b9'], + }), + ('abc.data', '1.0', { + 'checksums': ['b242f43c3d05de2e8962d25181c6b1bb6ca1852d4838868ae6241ca890b161af'], + }), + ('abc', '2.1', { + 'checksums': ['0bd2dcd4ee1915448d325fb5e66bee68e0497cbd91ef67a11b400b2fbe52ff59'], + }), + ('lhs', '1.0.2', { + 'checksums': ['e2945192740fb088b210786006b311d3d4e7da967733a1998380d597320c1158'], + }), + ('tensorA', '0.36.1', { + 'checksums': ['c7ffe12b99867675b5e9c9f31798f9521f14305c9d9f9485b171bcbd8697d09c'], + }), + ('EasyABC', '1.5', { + 'checksums': ['1dd7b1383a7c891cafb34d9cec65d92f1511a336cff1b219e63c0aa791371b9f'], + }), + ('whisker', '0.4', { + 'checksums': ['7a86595be4f1029ec5d7152472d11b16175737e2777134e296ae97341bf8fba8'], + }), + ('commonmark', '1.7', { + 'checksums': ['d14a767a3ea9778d6165f44f980dd257423ca6043926e3cd8f664f7171f89108'], + }), + ('roxygen2', '7.1.0', { + 'checksums': ['7e9b36f6e7c01a5c8c4747340b3d0c064ce2e48c93fcfbfe45139854fae74103'], + }), + ('git2r', '0.26.1', { + 'checksums': ['13d609286a0af4ef75ba76f2c2f856593603b8014e311b88896243a50b417435'], + }), + ('rversions', '2.0.1', { + 'checksums': ['51ec1f64e7d628e88d716a020d5d521eba71d472e3c9ae7b694428ef6dd786c5'], + }), + ('xopen', '1.0.0', { + 'checksums': ['e207603844d69c226142be95281ba2f4a056b9d8cbfae7791ba60535637b3bef'], + }), + ('sessioninfo', '1.1.1', { + 'checksums': ['166b04678448a7decd50f24afabe5e2ad613e3c55b180ef6e8dd7a870a1dae48'], + }), + ('rcmdcheck', '1.3.3', { + 'checksums': ['1ab679eb1976d74cd3be5bcad0af7fcc673dbdfd4406bbce32591c8fddfb93b4'], + }), + ('remotes', '2.1.1', { + 'checksums': ['4e590746fce618094089372b185e1ea234b3337b23c44c44118e942d0fb5118b'], + }), + ('fs', '1.4.1', { + 'checksums': ['ae9103dff26ca56a34901408bd650a2949f491b2a0886c686a51a179d38b7a4e'], + }), + ('clisymbols', '1.2.0', { + 'checksums': ['0649f2ce39541820daee3ed408d765eddf83db5db639b493561f4e5fbf88efe0'], + }), + ('ini', '0.3.1', { + 'checksums': ['7b191a54019c8c52d6c2211c14878c95564154ec4865f57007953742868cd813'], + }), + ('gh', '1.1.0', { + 'checksums': ['de9faf383c3fe5e87a75391d82cf71b1331b3c80cd00c4203146a303825d89ad'], + }), + ('rematch2', '2.1.1', { + 'checksums': ['d0423a418e8b46ac3a4819af7a7d19c39ca7c8c862c1e9a1c1294aa19152518f'], + }), + ('usethis', '1.6.1', { + 'checksums': ['60339059a97ed07dea7f8908b828b5bb42e0fd0b471165c061bc9660b0d59d6f'], + }), + ('DT', '0.13', { + 'checksums': ['79a073fe96980ce150d790ab76133c9e80bd463270c34d149c03934a622d63b5'], + }), + ('rex', '1.2.0', { + 'checksums': ['06b491f1469078862e40543fd74e1d38b2e0fb61fdf01c8083add4b11ac2eb54'], + }), + ('covr', '3.5.0', { + 'checksums': ['cb919912018130164a40803ac573a37dde2186678c058c03c6303d79604979df'], + }), + ('devtools', '2.3.0', { + 'checksums': ['4fc375c171335c67bd71df4e0b1b3dff2ae3aa17b3e0566b790ba0808b39dcd0'], + }), + ('Rook', '1.1-1', { + 'checksums': ['00f4ecfa4c5c57018acbb749080c07154549a6ecaa8d4130dd9de79427504903'], + }), + ('Cairo', '1.5-12', { + 'checksums': ['4e08eafb8c44045d16674ee5ae659f182ffe13ca86076fb077832947aa4a620b'], + }), + ('RMTstat', '0.3', { + 'checksums': ['81eb4c5434d04cb66c749a434c33ceb1c07d92ba79765d4e9233c13a092ec2da'], + }), + ('Lmoments', '1.3-1', { + 'checksums': ['7c9d489a08f93fa5877e2f233ab9732e0d1b2761596b3f6ac91f2295e41a865d'], + }), + ('distillery', '1.0-7', { + 'checksums': ['898833ceceed5291b4a02bf62c6fa5b78dd7837f9cc5a42b87a08672c7dae270'], + }), + ('extRemes', '2.0-11', { + 'checksums': ['75fbdeef677c81cf5661b8df3df4090c55f53e9bb96bb138b498eb0fbbf5af42'], + }), + ('tkrplot', '0.0-24', { + 'checksums': ['2873630a37d7ae1e09a5803d9a89ca0494edd83526c7b1860d9246543722f311'], + }), + ('misc3d', '0.8-4', { + 'checksums': ['75de3d2237f67f9e58a36e80a6bbf7e796d43eb46789f2dd1311270007bf5f62'], + }), + ('multicool', '0.1-11', { + 'checksums': ['1c907e64af2ac39facdf431a5691e69649f64af1f50e198ae39da5bf30026476'], + }), + ('plot3D', '1.3', { + 'checksums': ['b9e4ec2789e34ad249318900e186868650e1a33466b385cb492a45466db3dfc9'], + }), + ('plot3Drgl', '1.0.1', { + 'checksums': ['466d428d25c066c9c96d892f24da930513d42b1bdf76d3b53628c3ba13c3e48a'], + }), + ('OceanView', '1.0.5', { + 'checksums': ['c16e1bed97f4ede46dc017fdd6bd7575d925b57bd2601317bd3ad2357609f885'], + }), + ('ks', '1.11.7', { + 'checksums': ['6a6d9c2366e85a4c6af39b798f3798d20a42615ddfcebcedf6cf56087cdfd2b8'], + }), + ('logcondens', '2.1.5', { + 'checksums': ['72e61abc1f3eb28830266fbe5b0da0999eb5520586000a3024e7c26be93c02eb'], + }), + ('Iso', '0.0-18', { + 'checksums': ['2d7e8c4452653364ee086d95cea620c50378e30acfcff129b7261e1756a99504'], + }), + ('penalized', '0.9-51', { + 'checksums': ['eaa80dca99981fb9eb576261f30046cfe492d014cc2bf286c447b03a92e299fd'], + }), + ('clusterRepro', '0.9', { + 'checksums': ['940d84529ff429b315cf4ad25700f93e1156ccacee7b6c38e4bdfbe2d4c6f868'], + }), + ('randomForestSRC', '2.9.3', { + 'checksums': ['bc47bef9e5afade8fdf56e08ae0ad320e424dfa5b11a32cd2d166c9988dc2e16'], + }), + ('sm', '2.2-5.6', { + 'checksums': ['b890cd7ebe8ed711ab4a3792c204c4ecbe9e6ca1fd5bbc3925eba5833a839c30'], + }), + ('pbivnorm', '0.6.0', { + 'checksums': ['07c37d507cb8f8d2d9ae51a9a6d44dfbebd8a53e93c242c4378eaddfb1cc5f16'], + }), + ('lavaan', '0.6-5', { + 'checksums': ['feeb6e1b419aa1d54fd5af1d67260b5d13ff251c19de8136a4df565305d47b12'], + }), + ('matrixcalc', '1.0-3', { + 'checksums': ['17e6caeeecd596b850a6caaa257984398de9ec5d2b41ce83c428f112614b9cb0'], + }), + ('arm', '1.11-1', { + 'checksums': ['7b82dbe8c5141546d11b0af656a6addda4c07f06fc165d01c7c1e39540b55444'], + }), + ('mi', '1.0', { + 'checksums': ['34f44353101e8c3cb6bf59c5f4ff5b2391d884dcbb9d23066a11ee756b9987c0'], + }), + ('visNetwork', '2.0.9', { + 'checksums': ['5e0b3dc3a91e66e0a359433f03cc856d04b981b0f9ad228d8fa9c96b7fcaa420'], + }), + ('servr', '0.16', { + 'checksums': ['cc950bedbd52f2d93c54157dc5b261113be6baee2d9e90e99a8de048c09fda80'], + }), + ('rgexf', '0.16.0', { + 'checksums': ['2a671df9ac70cfefd4092754317cb28e32a33df345b80e1975bf838e838245ee'], + }), + ('influenceR', '0.1.0', { + 'checksums': ['4fc9324179bd8896875fc0e879a8a96b9ef2a6cf42a296c3b7b4d9098519e98a'], + }), + ('downloader', '0.4', { + 'checksums': ['1890e75b028775154023f2135cafb3e3eed0fe908138ab4f7eff1fc1b47dafab'], + }), + ('DiagrammeR', '1.0.5', { + 'checksums': ['0877af707925b03c58a7e00cd84eb4e9906b551a61d86130ef4165477654e334'], + }), + ('sem', '3.1-9', { + 'checksums': ['4a33780202506543da85877cd2813250114420d6ec5e75457bc67477cd332cb9'], + }), + ('network', '1.16.0', { + 'checksums': ['a24f51457439c7186ffa1fe53719742c501929ac1a354e458754a83f280fce36'], + }), + ('statnet.common', '4.3.0', { + 'checksums': ['834a3359eac967df0420eee416ae4983e3b502a3de56bb24f494a7ca4104e959'], + }), + ('sna', '2.5', { + 'checksums': ['13b508cacb0bf1e79b55d5c8f7e9ada3b173468d4d6d5f1dc606990ac03071c8'], + }), + ('glasso', '1.11', { + 'checksums': ['4c37844b26f55985184a734e16b8fe880b192e3d2763614b0ab3f99b4530e30a'], + }), + ('huge', '1.3.4.1', { + 'checksums': ['78ef9eae464d52c5247998b9514a81b178419b857b1a6c00d885e3ae6c03a886'], + }), + ('d3Network', '0.5.2.1', { + 'checksums': ['5c798dc0c87c6d574abb7c1f1903346e6b0fec8adfd1df7aef5e4f9e7e3a09be'], + }), + ('BDgraph', '2.62', { + 'checksums': ['7e5de4406f4a7873bf948852291d2851a2ab312288467687dd5c0392b2723bac'], + }), + ('pbapply', '1.4-2', { + 'checksums': ['ac19f209f36f4fa3d0f5b14b6cc5b0c279996fb9d3e86c848c0f6d03c025b3f6'], + }), + ('graphlayouts', '0.7.0', { + 'checksums': ['20464b60376d9f8d522eec6a7495054b1715e4919f10e9a049868d8866398c9e'], + }), + ('tweenr', '1.0.1', { + 'checksums': ['efd68162cd6d5a4f6d833dbf785a2bbce1cb7b9f90ba3fb060931a4bd705096b'], + }), + ('ggforce', '0.3.1', { + 'checksums': ['a05271da9b226c12ae5fe6bc6eddb9ad7bfe19e1737e2bfcd6d7a89631332211'], + }), + ('tidygraph', '1.1.2', { + 'checksums': ['5642001d4cccb122d66481b7c61a06c724c02007cbd356ee61cb29726a56fafe'], + }), + ('ggraph', '2.0.2', { + 'checksums': ['80caab7a38f2548a9fcd1ff3655a6bdbcb776fe662e3d93c17798bf2a04078b2'], + }), + ('qgraph', '1.6.5', { + 'checksums': ['2295ccca41f84cba34ad0e6c1b31af8bde79bda7373754c255e0ee9e63d29e5f'], + }), + ('HWxtest', '1.1.9', { + 'checksums': ['a37309bed4a99212ca104561239d834088217e6c5e5e136ff022544c706f25e6'], + }), + ('diveRsity', '1.9.90', { + 'checksums': ['b8f49cdbfbd82805206ad293fcb2dad65b962fb5523059a3e3aecaedf5c0ee86'], + }), + ('doSNOW', '1.0.18', { + 'checksums': ['70e7bd82186e477e3d1610676d4c6a75258ac08f104ecf0dcc971550ca174766'], + }), + ('geepack', '1.3-1', { + 'checksums': ['823153ca28e1a8bd8a45de778279480c1c35e063d62c8955b6cea1602f28d6df'], + }), + ('biom', '0.3.12', { + 'checksums': ['4ad17f7811c7346dc4923bd6596a007c177eebb1944a9f46e5674afcc5fdd5a1'], + }), + ('pim', '2.0.2', { + 'checksums': ['1195dbdbd67348dfef4b6fc34fcec643da685ebe58d34bbe049ab121aca9944f'], + }), + ('minpack.lm', '1.2-1', { + 'checksums': ['14cb7dba3ef2b46da0479b46d46c76198e129a31f6157cd8b37f178adb15d5a3'], + }), + ('rootSolve', '1.8.2.1', { + 'checksums': ['488451182663197ae4513e46e24f72cadb2297d35a58a3007a0dbf1bf0833031'], + }), + ('diagram', '1.6.4', { + 'checksums': ['7c2bc5d5d634c3b8ca7fea79fb463e412962d88f47a77a74c811cc62f375ce38'], + }), + ('FME', '1.3.6.1', { + 'checksums': ['ae0c69f75614e2ef9f2096c205c7f8eb90485c6311213762c1416ece4036be18'], + }), + ('bmp', '0.3', { + 'checksums': ['bdf790249b932e80bc3a188a288fef079d218856cf64ffb88428d915423ea649'], + }), + ('tiff', '0.1-5', { + 'checksums': ['9514e6a9926fcddc29ce1dd12b1072ad8265900373f738de687ef4a1f9124e2b'], + }), + ('readbitmap', '0.1.5', { + 'checksums': ['737d7d585eb33de2c200da64d16781e3c9522400fe2af352e1460c6a402a0291'], + }), + ('imager', '0.42.1', { + 'checksums': ['cb9c0f8dbf1383951bf96f5aeded1e774c26135a0117279de7e728cb6822eab4'], + }), + ('signal', '0.7-6', { + 'checksums': ['6b60277b07cf0167f8272059b128cc82f27a9bab1fd33d74c2a9e1f2abca5def'], + }), + ('tuneR', '1.3.3', { + 'checksums': ['bdc3c2017b162d2ba0a249e80361a4f47202e763c21aecfc57380a482a3a692b'], + }), + ('pastecs', '1.3.21', { + 'checksums': ['8c1ef2affe88627f0b23295aa5edb758b8fd6089ef09f60f37c46445128b8d7c'], + }), + ('audio', '0.1-7', { + 'checksums': ['52e0397a45325aa9586ec68b94ab9e505bdefaf2a588d634fcb57a6a11659c74'], + }), + ('fftw', '1.0-6', { + 'checksums': ['397ef5ec354b919884f74fba4202bfc13ad11a70b16285c41677aad1d3b170ce'], + }), + ('seewave', '2.1.5', { + 'checksums': ['718b1fb1c289f92be50de099da36d20380d113cb1577569333fca6195f71e8e1'], + }), + ('gsw', '1.0-5', { + 'checksums': ['eb468918ee91e429b47fbcac43269eca627b7f64b61520de5bbe8fa223e96453'], + }), + ('oce', '1.2-0', { + 'checksums': ['99072f2b20ad471b5a2afeb4d0690cad57cc770d60769a5cb20d001511439aa2'], + }), + ('ineq', '0.2-13', { + 'checksums': ['e0876403f59a3dfc2ea7ffc0d965416e1ecfdecf154e5856e5f54800b3efda25'], + }), + ('soundecology', '1.3.3', { + 'checksums': ['276164d5eb92c78726c647be16232d2443acbf7061371ddde2672b4fdb7a069a'], + }), + ('memuse', '4.1-0', { + 'checksums': ['58d6d1ca5d6bd481f4ed299eff6a9d5660eb0f8db1abe54c49e144093cba72ad'], + }), + ('pinfsc50', '1.1.0', { + 'checksums': ['b6b9b6365a3f408533264d7ec820494f57eccaf362553e8478a46a8e5b474aba'], + }), + ('vcfR', '1.10.0', { + 'checksums': ['9e19c8b23c981b61320aa275821f9accae8738bca775175b1201fcc30479ae8d'], + }), + ('glmmML', '1.1.0', { + 'checksums': ['34f088a73ccf6092908502a5bdaaf8209e9134d38abbbd7c4dd559832e653188'], + }), + ('cowplot', '1.0.0', { + 'checksums': ['70f9a7c46d10f409d1599f1afc9fd3c947051cf2b430f01d903c64ef1e6c98a5'], + }), + ('tsne', '0.1-3', { + 'checksums': ['66fdf5d73e69594af529a9c4f261d972872b9b7bffd19f85c1adcd66afd80c69'], + }), + ('sn', '1.6-1', { + 'checksums': ['80071625131256147f94a1a35b6f0cabd6de8b225f16860e398b6a8ca688d96a'], + }), + ('tclust', '1.4-1', { + 'checksums': ['4b0be612c8ecd7b4eb19a44ab6ac8f5d40515600ae1144c55989b6b41335ad9e'], + }), + ('ranger', '0.12.1', { + 'checksums': ['fc308e0ac06718272799928e1a19612de16b05bde481d8f38e11a101df5425ef'], + }), + ('hexbin', '1.28.1', { + 'checksums': ['42d092c709ebc84b18df8121beb6bd1d8a3f6f357afd5c3490757c4c4795c6e7'], + }), + ('pryr', '0.1.4', { + 'checksums': ['d39834316504c49ecd4936cbbcaf3ee3dae6ded287af42475bf38c9e682f721b'], + }), + ('moments', '0.14', { + 'checksums': ['2a3b81e60dafdd092d2bdd3513d7038855ca7d113dc71df1229f7518382a3e39'], + }), + ('laeken', '0.5.1', { + 'checksums': ['1aa94a1768969eb999f7a41212af2d8b2943b43a68a92f99c9f77929e19439a5'], + }), + ('VIM', '5.1.1', { + 'checksums': ['ca1430103b6bd658e318bbbbd9c25763d11d0b3f52706b1a7ea7fafd408e4270'], + }), + ('proxy', '0.4-24', { + 'checksums': ['8cff9bf036475941a7c44ba9bb5e2f6d4777d49ab3daaeb52d23f4b2af6d9c7c'], + }), + ('smoother', '1.1', { + 'checksums': ['91b55b82f805cfa1deedacc0a4e844a2132aa59df593f3b05676954cf70a195b'], + }), + ('dynamicTreeCut', '1.63-1', { + 'checksums': ['831307f64eddd68dcf01bbe2963be99e5cde65a636a13ce9de229777285e4db9'], + }), + ('beeswarm', '0.2.3', { + 'checksums': ['0115425e210dced05da8e162c8455526a47314f72e441ad2a33dcab3f94ac843'], + }), + ('vipor', '0.4.5', { + 'checksums': ['7d19251ac37639d6a0fed2d30f1af4e578785677df5e53dcdb2a22771a604f84'], + }), + ('ggbeeswarm', '0.6.0', { + 'checksums': ['bbac8552f67ff1945180fbcda83f7f1c47908f27ba4e84921a39c45d6e123333'], + }), + ('shinydashboard', '0.7.1', { + 'checksums': ['51a49945c6b8a684111a2ba4b2a5964e3a50610286ce0378e37ae02316620a4e'], + }), + ('rrcov', '1.5-2', { + 'checksums': ['a7641b93ca8efd91b0957adecd76f96c53d3804ace7b1cbe84872f655199c254'], + }), + ('WriteXLS', '5.0.0', { + 'checksums': ['5aeb631c7f4dee300a19ded493110d7241e1b79744be05beca770a01ffc1d7bf'], + }), + ('bst', '0.3-17', { + 'checksums': ['1ed161d33a7304abfa2fb23daeda2f870ad8483b7fa9b91e6fc8ced21fd8f074'], + }), + ('mpath', '0.3-25', { + 'checksums': ['3332f74255520152cb2149bdff24ad650a036161a7629f686c8fee804c0336e8'], + }), + ('timereg', '1.9.4', { + 'checksums': ['fbf4eeee1648fceb98773156764c32b3a9481f0fb9f8dc3a9d0331a9051cb54b'], + }), + ('peperr', '1.1-7.1', { + 'checksums': ['5d4eff0f0b61c0b3e479c2ac2978c8e32373b9630565bf58fee48ead6166698a'], + }), + ('heatmap3', '1.1.7', { + 'checksums': ['bab39bdcc462ed9e15dda54d58385b7c8d2bca800cd0e6ee2fce12475661b2bd'], + }), + ('GlobalOptions', '0.1.1', { + 'checksums': ['4249ef78424128050af83bbb8e71b4af82f8490c87f6a9d927782b80be830975'], + }), + ('circlize', '0.4.8', { + 'checksums': ['22d6908b9d2e496105d9b70b73a74152398e5e9e38c60042ffe041df2b4c794b'], + }), + ('GetoptLong', '0.1.8', { + 'checksums': ['6c0edb7233b79fb7f4789a825e8e7d7eee50b5e85b7fd5b7d74b9440fd9e1dd1'], + }), + ('dendextend', '1.13.4', { + 'checksums': ['c456b4f43075e8de0f29a6c997e1c0d4788487ab7b947a4b1bf05db2b4f94bde'], + }), + ('RInside', '0.2.16', { + 'checksums': ['7ae4ade128ea05f37068d59e610822ff0b277f9d39d8900f7eb31759ad5a2a0e'], + }), + ('limSolve', '1.5.6', { + 'checksums': ['b97ea9930383634c8112cdbc42f71c4e93fe0e7bfaa8f401921835cb44cb49a0'], + }), + ('dbplyr', '1.4.3', { + 'checksums': ['69ac7b4022c691e3822fc73fabb3bf073405d5a433c52f5f0f98cf90a1d228ea'], + }), + ('modelr', '0.1.6', { + 'checksums': ['d7e5f3ddf0b3e6520ca06229471f5bcd9e371e2fecd53c03202b474c2a1955f4'], + }), + ('debugme', '1.1.0', { + 'checksums': ['4dae0e2450d6689a6eab560e36f8a7c63853abbab64994028220b8fd4b793ab1'], + }), + ('reprex', '0.3.0', { + 'checksums': ['203c2ae6343f6ff887e7a5a3f5d20bae465f6e8d9745c982479f5385f4effb6c'], + }), + ('selectr', '0.4-2', { + 'checksums': ['5588aed05f3f5ee63c0d29953ef53da5dac7afccfdd04b7b22ef24e1e3b0c127'], + }), + ('rvest', '0.3.5', { + 'checksums': ['0e7f41be4ce6501d7af50575a2532d4bfd9153ca57900ee62dbc27c0a22c0a64'], + }), + ('tidyverse', '1.3.0', { + 'checksums': ['6d8acb81e994f9bef5e4dcf908bcea3786d108adcf982628235b6c8c80f6fe09'], + }), + ('R.cache', '0.14.0', { + 'checksums': ['18af4e372440b9f28b4b71346c8ed9de220232f9903730ccee2bfb3c612c16d9'], + }), + ('R.rsp', '0.43.2', { + 'checksums': ['f291a78ce9955943e0ebad1291f729dc4d9a8091f04b83fc4b1526bcb6c71f89'], + }), + ('listenv', '0.8.0', { + 'checksums': ['fd2aaf3ff2d8d546ce33d1cb38e68401613975117c1f9eb98a7b41facf5c485f'], + }), + ('globals', '0.12.5', { + 'checksums': ['1519a7668b4b549c081f60a5f6b71d8d1dc8833f618125f6c0e4caf8b48a48c1'], + }), + ('future', '1.17.0', { + 'checksums': ['2fa3b88439eaa33901669295186d04eb54f033257015683cf8a2e3c7f83b9e34'], + }), + ('gdistance', '1.3-1', { + 'checksums': ['0e9a7ab4fb75c2990ff7b85aa0661aaadbf4804f2a92fac9dd6d3c75db346813'], + }), + ('vioplot', '0.3.4', { + 'checksums': ['4914262f2e7913ffa5741e74b20157f4a904ba31e648fa5df9ff6a1aaba753bb'], + }), + ('emulator', '1.2-20', { + 'checksums': ['7cabf2cf74d879ad9dbaed8fdee54a5c94a8658a0645c021d160b2ef712ce287'], + }), + ('gmm', '1.6-4', { + 'checksums': ['03ad5ff37d174e9cef13fa41d866412c57b7cbd9155312831e16a1fcda70bc95'], + }), + ('tmvtnorm', '1.4-10', { + 'checksums': ['1a9f35e9b4899672e9c0b263affdc322ecb52ec198b2bb015af9d022faad73f0'], + }), + ('IDPmisc', '1.1.20', { + 'checksums': ['bcb9cd7b8097e5089d1936286ef310ac2030ea7791350df706382ba470afc67f'], + }), + ('gap', '1.2.2', { + 'checksums': ['9c66a52b371b282b20295676bdd86a11d59a6fb2acddb19170376e1a5c65b834'], + }), + ('qrnn', '2.0.5', { + 'checksums': ['3bd83ee8bd83941f9defdab1b5573d0ceca02bf06759a67665e5b9358ff92f52'], + }), + ('TMB', '1.7.16', { + 'checksums': ['84740a2eaecd2ece7049c82d661fe1688008fdece96d90399d31a5d8a0089e52'], + }), + ('glmmTMB', '1.0.1', { + 'checksums': ['b582ac41fb4390146f1446c6629fec40c6c9c125f99083602f091dc60f0ebd69'], + }), + ('gmp', '0.5-13.6', { + 'checksums': ['39a61618cc9eeabd00665cc5f24721e75f0dec8268059a0d18c907c2adf85a48'], + }), + ('ROI', '0.3-3', { + 'checksums': ['2977604b9def46a3638d56a7efa890f2e84fa320bece693d03c196771466a919'], + }), + ('Rglpk', '0.6-4', { + 'checksums': ['a28dbc3130b9618d6ed2ef718d2c55df8ed8c44a47161097c53fe15fa3bfbfa6'], + }), + ('ROI.plugin.glpk', '0.3-0', { + 'checksums': ['160ac14d20c217ff186912c06d53bccf2a33664977ae4c6fc5113a7ac8533ba8'], + }), + ('spaMM', '3.2.0', { + 'checksums': ['40d54ad52c4839f33baa1e488e1e76042e57083ff7780f9c5640c49340ff2999'], + }), + ('qgam', '1.3.2', { + 'checksums': ['273a40d0bfdc340c049bcb85aea83acd887868d8a69c0062b8399e0b24137a52'], + }), + ('DHARMa', '0.3.0', { + 'checksums': ['1c7ac2f1897ca62e0ebb7367c4b31866515c8503d0fa645fa5e8ac5172310298'], + }), + ('mvnfast', '0.2.5', { + 'checksums': ['21b9fa72d1e3843513908aaacd6c4d876cc7a9339782d0151b24910df2975f88'], + }), + ('bridgesampling', '1.0-0', { + 'checksums': ['9e182e15ba4e0a0fefd6edc58f1939fd971dd5c53c444ca9c1820bb2c1de90ab'], + }), + ('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.1', { + 'checksums': ['052d8802500fcfdb3b37a8e3e6f3fbd5c3a54e48c3f68122402d2ea3a15403bc'], + }), + ('cghFLasso', '0.2-1', { + 'checksums': ['6e697959b35a3ceb2baa1542ef81f0335006a5a9c937f0173c6483979cb4302c'], + }), + ('svd', '0.5', { + 'checksums': ['d042d448671355d0664d37fd64dc90932eb780e6494c479d4431d1faae2071a1'], + }), + ('Rssa', '1.0.2', { + 'checksums': ['3991ad98e0170034b06ae8bb5b6337cbc418dc31ce465d02030cedf4ab69ff91'], + }), + ('JBTools', '0.7.2.9', { + 'checksums': ['b33cfa17339df7113176ad1832cbb0533acf5d25c36b95e888f561d586c5d62f'], + }), + ('RUnit', '0.4.32', { + 'checksums': ['23a393059989000734898685d0d5509ece219879713eb09083f7707f167f81f1'], + }), + ('DistributionUtils', '0.6-0', { + 'checksums': ['7443d6cd154760d55b6954142908eae30385672c4f3f838dd49876ec2f297823'], + }), + ('gapfill', '0.9.6', { + 'checksums': ['850d0be9d05e3f3620f0f5143496321f1004ed966299bffd6a67a9abd8d9040d'], + }), + ('gee', '4.13-20', { + 'checksums': ['53014cee059bd87dc22f9679dfbf18fe6813b9ab41dfe90361921159edfbf798'], + }), + ('Matching', '4.9-7', { + 'checksums': ['1956ecb5ebe1c88e2112cd277ae5c2ab4b8d8f60743e6e856a2c2e40aa05fc6d'], + }), + ('MatchIt', '3.0.2', { + 'checksums': ['782b159a2b5172e758e3993177930d604140ae668fd8a7c98c30792df80de9de'], + }), + ('RItools', '0.1-17', { + 'checksums': ['75654780e9ca39cb3c43acfaca74080ad74de50f92c5e36e95694aafdfdc0cea'], + }), + ('optmatch', '0.9-13', { + 'checksums': ['f8f327faa95c808773376570793bbabdbc185a6c7fcdce3b96a09c998134d0d8'], + }), + ('SPAtest', '3.0.2', { + 'checksums': ['7a5e02f636df4c299d3a2d36033f26492b6db51f04a5cd1c2ff17e7ec1a4e831'], + }), + ('SKAT', '2.0.0', { + 'checksums': ['b90be9552f65f0055311ec7a4de5b33520a040f9202aa5872fbfae306c496ce2'], + }), + ('GillespieSSA', '0.6.1', { + 'checksums': ['272e9b6b26001d166fd7ce8d04f32831ba23c676075fbd1e922e27ba2c962052'], + }), + ('startupmsg', '0.9.6', { + 'checksums': ['1d60ff13bb260630f797bde66a377a5d4cd65d78ae81a3936dc4374572ec786e'], + }), + ('distr', '2.8.0', { + 'checksums': ['bb7df05d6b946bcdbbec2e3397c7c7e349b537cabfcbb13a34bcf6312a71ceb7'], + }), + ('distrEx', '2.8.0', { + 'checksums': ['b064cde7d63ce93ec9969c8c4463c1e327758b6f8ea7765217d77f9ba9d590bf'], + }), + ('KODAMA', '1.5', { + 'checksums': ['8ecf53732c1be2bd1e111b3c6de65b66caf28360306e683fe945dc76d4c267dd'], + }), + ('locfdr', '1.1-8', { + 'checksums': ['42d6e12593ae6d541e6813a140b92591dabeb1df94432a515507fc2eee9a54b9'], + }), + ('ica', '1.0-2', { + 'checksums': ['e721596fc6175d3270a60d5e0b5b98be103a8fd0dd93ef16680af21fe0b54179'], + }), + ('dtw', '1.21-3', { + 'checksums': ['1aa46b285b7a31ba19759e83562671ed9076140abec79fe0df0316af43871e0a'], + }), + ('SDMTools', '1.1-221.2', { + 'checksums': ['f0dd8c5f98d2f2c012536fa56d8f7a58aaf0c11cbe3527e66d4ee3194f6a6cf7'], + }), + ('ggridges', '0.5.2', { + 'checksums': ['b03a775df279a71f259470335decf033b0b9e34b7ee5726681b302ae4e11ff0e'], + }), + ('TFisher', '0.2.0', { + 'checksums': ['bd9b7484d6fba0165841596275b446f85ba446d40e92f3b9cb37381a3827e76f'], + }), + ('lsei', '1.2-0', { + 'checksums': ['4781ebd9ef93880260d5d5f23066580ac06061e95c1048fb25e4e838963380f6'], + }), + ('npsurv', '0.4-0', { + 'checksums': ['404cf7135dc40a04e9b81224a543307057a8278e11109ba1fcaa28e87c6204f3'], + }), + ('fitdistrplus', '1.0-14', { + 'checksums': ['85082590f62aa08d99048ea3414c5cc1e5b780d97b3779d2397c6cb435470083'], + }), + ('rappdirs', '0.3.1', { + 'checksums': ['2fd891ec16d28862f65bb57e4a78f77a597930abb59380e757afd8b6c6d3264a'], + }), + ('reticulate', '1.15', { + 'checksums': ['47db3e9c9424263ade15287da8e74f6ba261a936b644b197dba6772853b7b50d'], + }), + ('hdf5r', '1.3.2', { + 'installopts': '--configure-args="--with-hdf5=$EBROOTHDF5/bin/h5cc"', + 'preinstallopts': "unset LIBS && ", + 'checksums': ['31493d9dde9705543e5474c937fa5b4b64895ae1dd6ee51d7039dd95a6015730'], + }), + ('DTRreg', '1.5', { + 'checksums': ['eb9b4d98b25eec304a447db302f618a75180f8d8fe0f5728ecd7e85957613456'], + }), + ('pulsar', '0.3.6', { + 'checksums': ['b5851bf365003ace07542fd21ccff015c4b21ffd73e21ec3a539563e9ef53564'], + }), + ('bayesm', '3.1-4', { + 'checksums': ['061b216c62bc72eab8d646ad4075f2f78823f9913344a781fa53ea7cf4a48f94'], + }), + ('energy', '1.7-7', { + 'checksums': ['67b88fb33ee6e7bec2e4fe356a4efd36f70c3cf9b0ebe2f6d9da9ec96de9968f'], + }), + ('compositions', '1.40-5', { + 'checksums': ['879e296037b0b3c52cfe48556820500b94d4eea16ec2b40f85988b65c5f72a51'], + }), + ('clustree', '0.4.2', { + 'checksums': ['5d6b8ee3cbbcdd235a7abe4107429e45847ed09ec1cdb572ad6efb9d88dff82e'], + }), + ('plotly', '4.9.2.1', { + 'checksums': ['f45eae325ab7e7924b0be098bad866ce003d657cf63e137104401c2dd4401db8'], + }), + ('tweedie', '2.3.2', { + 'checksums': ['9a6226e64e3d56eb7eb2a408f8b825c2ad6ee0ea203a9220e85e7789514adb81'], + }), + ('RcppGSL', '0.3.7', { + 'checksums': ['45e95c4170fc8421ae9b32134b3a402f76ea9657030969723a3563c7ce14dc32'], + }), + ('mvabund', '4.1.3', { + 'checksums': ['4b98049026fcc5a262163f6801d5b98b8543267cf7b0edac8382d5311b81a8fc'], + }), + ('fishMod', '0.29', { + 'checksums': ['5989e49ca6d6b2c5d514655e61f75b019528a8c975f0d6056143f17dc4277a5d'], + }), + ('gllvm', '1.2.1', { + 'checksums': ['a9dca68227a8f89c61950f6411de3b988e6e067d97fadc589f69ddd731c2e1ff'], + }), + ('grpreg', '3.2.2', { + 'checksums': ['e59f576ee5d794444917e0fbdab0d1ebf4aa71967c9a35ec196899ed5b168388'], + }), + ('trust', '0.1-8', { + 'checksums': ['952e348b62aec35988b103fd152329662cb6a451538f184549252fbf49d7dcac'], + }), + ('ergm', '3.10.4', { + 'checksums': ['885f0b1a23c5a2c1947962350cfab66683dfdfd1db173c115e90396d00831f22'], + }), + ('networkDynamic', '0.10.1', { + 'checksums': ['22eed8d9dea8d70877c1619eb2bc3f1ac5142ce3db6fd6eb3e0879ca56b76ca0'], + }), + ('tergm', '3.6.1', { + 'checksums': ['21de2eca943d89ba63af14951655d626f241bafccc4b2709fa39aa130625cd0f'], + }), + ('ergm.count', '3.4.0', { + 'checksums': ['7c24c79d0901c18991cce907306a1531cca676ae277c6b0a0e4962ad27c36baf'], + }), + ('tsna', '0.3.1', { + 'checksums': ['bba4b5e04ba647784581a2137f653f60b4c83cfd726c399556054c5a6d2cbd95'], + }), + ('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.4-6', { + 'checksums': ['6bcd018d6fa589a6854ee1bcea18b9d6c4095f3deae9058f69afbb09cba873c7'], + }), + ('shinythemes', '1.1.2', { + 'checksums': ['2e13d4d5317fc61082e8f3128b15e0b10ed9736ce81e152dd7ae7f6109f9b18a'], + }), + ('csSAM', '1.2.4', { + 'checksums': ['3d6442ad8c41fa84633cbbc275cd67e88490a160927a5c55d29da55a36e148d7'], + }), + ('bridgedist', '0.1.0', { + 'checksums': ['dc7c1c8874d6cfa34d550d9af194389e13471dfbc55049a1ab66db112fbf1343'], + }), + ('asnipe', '1.1.12', { + 'checksums': ['3a1f166f1c71b5877a2acca1384ec6c9b430b67af67ef26125f2abbb53c66206'], + }), + ('oddsratio', '2.0.0', { + 'checksums': ['89bf3c68a6ded6a98f4ee8d487c29605ad00ac5f8db9b8bf1a52144e65332553'], + }), + ('mltools', '0.3.5', { + 'checksums': ['7093ffceccdf5d4c3f045d8c8143deaa8ab79935cc6d5463973ffc7d3812bb10'], + }), + ('h2o', '3.30.0.1', { + 'checksums': ['cb11ef58a7d7dfd3a9193686ddd9c8a9f988b33a69656d8b3e8f59082068b0f5'], + }), + ('mlegp', '3.1.7', { + 'checksums': ['d4845eaf9260f8b8112726dd7ceb5c2f5ce75125fa313191db9de121f2ee15e0'], + }), + ('itertools', '0.1-3', { + 'checksums': ['b69b0781318e175532ad2d4f2840553bade9637e04de215b581704b5635c45d3'], + }), + ('missForest', '1.4', { + 'checksums': ['f785804b03bdf424e1c76095989a803afb3b47d6bebca9a6832074b6326c0278'], + }), + ('bartMachineJARs', '1.1', { + 'checksums': ['f2c31cb94d7485174a2519771127a102e35b9fe7f665e27beda3e76a56feeef2'], + }), + ('bartMachine', '1.2.4.2', { + 'checksums': ['28a5f7363325021bd93f9bd060cc48f20c689dae2f2f6f7100faae66d7651f80'], + }), + ('lqa', '1.0-3', { + 'checksums': ['3889675dc4c8cbafeefe118f4f20c3bd3789d4875bb725933571f9991a133990'], + }), + ('PresenceAbsence', '1.1.9', { + 'checksums': ['1a30b0a4317ea227d674ac873ab94f87f8326490304e5b08ad58953cdf23169f'], + }), + ('GUTS', '1.1.1', { + 'checksums': ['094b8f51719cc36ddc56e3412dbb146eafc93c5e8fbb2c5999c2e80ea7a7d216'], + }), + ('GenSA', '1.1.7', { + 'checksums': ['9d99d3d0a4b7770c3c3a6de44206811272d78ab94481713a8c369f7d6ae7b80f'], + }), + ('parsedate', '1.2.0', { + 'checksums': ['39ab3c507cb3efcd677c6cf453f46d6b1948662bd70c7765845e755ea1e1633d'], + }), + ('circular', '0.4-93', { + 'checksums': ['76cee2393757390ad91d3db3e5aeb2c2d34c0a46822b7941498571a473417142'], + }), + ('cobs', '1.3-4', { + 'checksums': ['a1c7b77e4ca097349884fd1c0d863d74f9092766131094d603f34d33ab2e3c42'], + }), + ('resample', '0.4', { + 'checksums': ['f0d5f735e1b812612720845d79167a19f713a438fd10a6a3206e667045fd93e5'], + }), + ('MIIVsem', '0.5.4', { + 'checksums': ['de918d6b1820c59a7d4324342ad15444c2370ce1d843397a136c307397ed64b9'], + }), + ('medflex', '0.6-6', { + 'checksums': ['b9d04fb5281d0ea0555ec4f327a0ee951a7f312a3af944578dc175183dc49211'], + }), + ('Rserve', '1.7-3.1', { + 'checksums': ['3ba1e919706e16a8632def5f45d666b6e44eafa6c14b57064d6ddf3415038f99'], + }), + ('spls', '2.2-3', { + 'checksums': ['bbd693da80487eef2939c37aba199f6d811ec289828c763d9416a05fa202ab2e'], + }), + ('Boruta', '6.0.0', { + 'checksums': ['1c9a7aabe09f040e147f6c614f5fe1d0b951d3b0f0024161fbb4c31da8fae8de'], + }), + ('dr', '3.0.10', { + 'checksums': ['ce523c1bdb62a9dda30afc12b1dd96975cc34695c61913012236f3b80e24bf36'], + }), + ('CovSel', '1.2.1', { + 'checksums': ['b375d00cc567e125ff106b4357654f43bba3abcadeed2238b6dea4b7a68fda09'], + }), + ('tmle', '1.4.0.1', { + 'checksums': ['075e7b7fe0496e02785eb35aed0db84476db756c6f14a0047808af2565b33501'], + }), + ('ctmle', '0.1.2', { + 'checksums': ['e3fa0722cd87aa0e0b209c2dddf3fc44c6d09993f1e66a6c43285fe950948161'], + }), + ('BayesPen', '1.0', { + 'checksums': ['772df9ae12cd8a3da1d5b7d1f1629602c7693f0eb03945784df2809e2bb061b0'], + }), + ('inline', '0.3.15', { + 'checksums': ['ff043fe13c1991a3b285bed256ff4a9c0ba10bee764225a34b285875b7d69c68'], + }), + ('BMA', '3.18.12', { + 'checksums': ['cbabb77d92b09a11a986ad03950322e78dff743f82ff67fda51d32e44135dd79'], + }), + ('BCEE', '1.3.0', { + 'checksums': ['82afc9b8c6d617f5f728341960ae32922194f637c550916b3bea12c231414fa7'], + }), + ('bacr', '1.0.1', { + 'checksums': ['c847272e2c03fd08ed79b3b739f57fe881af77404b6fd087caa0c398c90ef993'], + }), + ('clue', '0.3-57', { + 'checksums': ['6e369d07b464a9624209a06b5078bf988f01f7963076e946649d76aea0622d17'], + }), + ('bdsmatrix', '1.3-4', { + 'checksums': ['251e21f433a016ec85e478811ea3ad34c572eb26137447f48d1bbf3cc8bb06ea'], + }), + ('fftwtools', '0.9-8', { + 'checksums': ['4641c8cd70938c2a8bde0b6da6cf7f83e96175ef52f1ca42ec3920a1dabf1bdb'], + }), + ('imagerExtra', '1.3.2', { + 'checksums': ['0ebfa1eabb89459d774630ab73c7a97a93b9481ea5afc55482975475acebd5b8'], + }), + ('MALDIquant', '1.19.3', { + 'checksums': ['a730327c1f8d053d29e558636736b7b66d0671a009e0004720b869d2c76ff32c'], + }), + ('threejs', '0.3.3', { + 'checksums': ['76c759c8b20fb34f4f7a01cbd1b961296e1f19f4df6dded69aae7f1bca80219c'], + }), + ('LaplacesDemon', '16.1.4', { + 'checksums': ['4152a1c3c652979e97870e5c50c45a243d0ad8d4ff968091160e3d66509f61db'], + }), + ('rda', '1.0.2-2.1', { + 'checksums': ['eea3a51a2e132a023146bfbc0c384f5373eb3ea2b61743d7658be86a5b04949e'], + }), + ('sampling', '2.8', { + 'checksums': ['356923f35971bb55f7e97b178aede3366374aa3ad3d24a97be765660553bf21a'], + }), + ('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', '3.0', { + 'checksums': ['ada4e1f8cbb08ba8ff16275ec5f9a453857e0cab63b70d42753989ab4c716b7b'], + }), + ('bbmle', '1.0.23.1', { + 'checksums': ['60421eb01190b741ab14885eaf1088f51d49dcf70e58c42b360489bca04e745c'], + }), + ('emdbook', '1.3.12', { + 'checksums': ['0646caf9e15aaa61ff917a4b5fdf82c06ac17ef221a61dec3fbb554e7bff4353'], + }), + ('SOAR', '0.99-11', { + 'checksums': ['d5a0fba3664087308ce5295a1d57d10bad149eb9771b4fe67478deae4b7f68d8'], + }), + ('rasterVis', '0.47', { + 'checksums': ['123ebe870895c2ba3a4b64d8a18bccab5287c831fa14bb0fe07f0d7de61e51d3'], + }), + ('tictoc', '1.0', { + 'checksums': ['47da097c1822caa2d8e262381987cfa556ad901131eb96109752742526b2e2fe'], + }), + ('ISOcodes', '2020.03.16', { + 'checksums': ['160eb4ea23be53305e4e728002c8f5d3852d89155f538deccb734e7c8ad4e1c3'], + }), + ('stopwords', '2.0', { + 'checksums': ['5cca60ce9f44406486e0dca2e36cec2488096c3558b45fc3bd0e7b6d1500af94'], + }), + ('janeaustenr', '0.1.5', { + 'checksums': ['992f6673653daf7010fe176993a01cd4127d9a88be428da8da7a28241826d6f3'], + }), + ('SnowballC', '0.7.0', { + 'checksums': ['b10fee9d322f567a22c580b49b5d4ba1c86eae40a71794ca92552c726b3895f3'], + }), + ('tokenizers', '0.2.1', { + 'checksums': ['28617cdc5ddef5276abfe14a2642999833322b6c34697de1d4e9d6dc7670dd00'], + }), + ('hunspell', '3.0', { + 'checksums': ['01fb9c87f7cf094aaad3b7098378134f2e503286224351e91d08c00b6ee19857'], + }), + ('topicmodels', '0.2-11', { + 'checksums': ['9c26b4d967be6ec26834a39f04aa92b059ea9503eb70c700e1c0a7a43637b74a'], + }), + ('tidytext', '0.2.4', { + 'checksums': ['46ff59063b6a519c9eb606ae135ef31d7073ac729e4a912c9f77e234801b933d'], + }), + ('splitstackshape', '1.4.8', { + 'checksums': ['656032c3f1e3dd5b8a3ee19ffcae617e07104c0e342fc3da4d863637a770fe56'], + }), + ('grImport2', '0.2-0', { + 'checksums': ['a102a2d877e42cd4e4e346e5510a77b2f3e57b43ae3c6d5c272fdceb506b00a7'], + }), + ('preseqR', '4.0.0', { + 'checksums': ['0143db473fb9a811f9cf582a348226a5763e62d9857ce3ef4ec41412abb559bc'], + }), + ('idr', '1.2', { + 'checksums': ['8bbfdf82c8c2b5c73eb079127e198b6cb65c437bb36729f502c7bcd6037fdb16'], + }), + ('entropy', '1.2.1', { + 'checksums': ['edb27144b8f855f1ef21de6b93b6b6c5cf7d4f2c3d592bf625e5158c02226f83'], + }), + ('kedd', '1.0.3', { + 'checksums': ['38760abd8c8e8f69ad85ca7992803060acc44ce68358de1763bd2415fdf83c9f'], + }), + ('HiddenMarkov', '1.8-11', { + 'checksums': ['4a1614249eee9f428bc182ea9ced443dff4eafa7babf4259c720e5b4da2d08fa'], + }), + ('lmerTest', '3.1-2', { + 'checksums': ['385870873fd303c2caa4ac43e2df0ca5aa36ddb484bfb4eefbc5c4ac4bef6de2'], + }), + ('loo', '2.2.0', { + 'checksums': ['466df60953a89fcb135b32909197c3ff26ecea719c191667faa5747324fb01c3'], + }), + ('StanHeaders', '2.21.0-1', { + 'checksums': ['4e94148af2960f203b208c2b725d8be628ca282c7a1e967a7e6e78aa5eb90d3f'], + }), + ('rstan', '2.19.3', { + 'checksums': ['d7025dccdc2337fd0cf3b9689c3e0a07558a47a08b7cbc370e0b3998256f1689'], + }), + ('Rborist', '0.2-3', { + 'checksums': ['f3b3f953ca99e0d17425ac6ba9a7b1e9d6098343abace575cdb492bca2a9c461'], + }), + ('VSURF', '1.1.0', { + 'checksums': ['eee99e0c441795c2ccb21cc6e0a37b24f580241e494c83e811b726b43469eeab'], + }), + ('mRMRe', '2.1.0', { + 'checksums': ['fe23c5c1e7b5b653e0358e98f25ebd8c0c74c6c871606d1b24cd02a5534181d4'], + }), + ('dHSIC', '2.1', { + 'checksums': ['94c86473790cf69f11c68ed8ba9d6ae98218c7c69b7a9a093f235d175cf83db0'], + }), + ('ggsci', '2.9', { + 'checksums': ['4af14e6f3657134c115d5ac5e65a2ed74596f9a8437c03255447cd959fe9e33c'], + }), + ('ggsignif', '0.6.0', { + 'checksums': ['6fe13efda31386483e64d466ba2f5a53a2a235ae04f5c17bba3ccc63d283499e'], + }), + ('corrplot', '0.84', { + 'checksums': ['0dce5e628ead9045580a191f60c58fd7c75b4bbfaaa3307678fc9ed550c303cc'], + }), + ('rstatix', '0.5.0', { + 'checksums': ['06b2ba1b16698c93203474eb67e59169fa4127283d46cf694e032a5472956b46'], + }), + ('ggfan', '0.1.3', { + 'checksums': ['5c888b203ecf5e3dc7a317a790ca059c733002fbca4b4bc1a4f62b7ded5f70dc'], + }), + ('ggpubr', '0.3.0', { + 'checksums': ['b82ffc6bd5974c3036d08393fa1f2bafeaf6f567e0b3faf43e38226b19399eb6'], + }), + ('yaImpute', '1.0-32', { + 'checksums': ['08eee5d851b80aad9c7c80f9531aadd50d60e4b16b3a80657a50212269cd73ff'], + }), + ('intrinsicDimension', '1.2.0', { + 'checksums': ['6cc9180a83aa0d123f1e420136bb959c0d5877867fa170b79536f5ee22106a32'], + }), + ('patchwork', '1.0.0', { + 'checksums': ['8bfb59b91775781848f39eedcaaaf92c147e2637f384085fcdd41fc8355b3c63'], + }), + ('leiden', '0.3.3', { + 'checksums': ['c2b5e1c061c8bbea494639a0d7f0fa22f5b41ff5fd911409e5f832f3575d06c2'], + }), + ('future.apply', '1.4.0', { + 'checksums': ['737e5a8e2d0ce2678835f5be15c96d491f690d307662ed6719be41937633f8cd'], + }), + ('sctransform', '0.2.1', { + 'checksums': ['d6430a81a66c93da770b1a7c55344df42187321038b4eee80b7066cdd8a7631f'], + }), + ('packrat', '0.5.0', { + 'checksums': ['d6a09290fbe037a6c740921c5dcd70b500e5b36e4713eae4010adf0c456bc5f7'], + }), + ('shinyjs', '1.1', { + 'checksums': ['8986181baa68fb2863eea65b9df1b04b9b4e1293685298531d42de3bc2f06892'], + }), + ('colourpicker', '1.0', { + 'checksums': ['f1dacbafb05c09f61b9bdd0fdcee5344409759b042a71ec46d7c9e3710107b7c'], + }), + ('ggExtra', '0.9', { + 'checksums': ['f22db92d6e3e610901998348acbcaa6652fa6c62a285a622d3b962ba9e89aba2'], + }), + ('findpython', '1.0.5', { + 'checksums': ['3e9a21988cb78833769b02680d128a0cc01bcb41aa9c9725ab1742f349759145'], + }), + ('argparse', '2.0.1', { + 'checksums': ['949843920d14fc7c162aedab331a936499541736e7dafbb103fbfd79be8147ab'], + }), + ('intergraph', '2.0-2', { + 'checksums': ['6cbe77f1e87fa1c110db2d46010f2f3ae72bfdb708ce2ca84c1cdc2cd6eb47a1'], + }), + ('ggnetwork', '0.5.8', { + 'checksums': ['a8c7c19a2bafce898c95d0b2401ef052925db57b85058c7203f0122b3af7bbbd'], + }), + ('qqman', '0.1.4', { + 'checksums': ['3ad01f82132bf75960ae0d8a81cae84eaf4a9ab262f183fc3d6439189e4a3aed'], + }), + ('rstantools', '2.0.0', { + 'checksums': ['d200a4d8c62d8577fdba819bf770e7abb11c57c3332f4498e1d30ce824598b3a'], + }), + ('bayesplot', '1.7.1', { + 'checksums': ['820ca9ca3258fc68333e75fd60898c0d0f08f513b66c161ca6159a54ad54006b'], + }), + ('dygraphs', '1.1.1.6', { + 'checksums': ['c3d331f30012e721a048e04639f60ea738cd7e54e4f930ac9849b95f0f005208'], + }), + ('rsconnect', '0.8.16', { + 'checksums': ['3f728c6a5153dca28f69b9355ae9d18c5f7e70d12495c0c047eef673c1053116'], + }), + ('shinystan', '2.5.0', { + 'checksums': ['45f9c552a31035c5de8658bb9e5d72da7ec1f88fbddb520d15fe701c677154a1'], + }), + ('brms', '2.12.0', { + 'checksums': ['fa21505dca65d027f1cf1c573258de5f3c51ca8b94abd6dcf9123a3a27a72999'], + }), + ('drgee', '1.1.10', { + 'checksums': ['e684f07f7dfec922380d4202922c11094f859721f77b31ff38b0d35d0f42c743'], + }), + ('stdReg', '3.4.0', { + 'checksums': ['b423df43e9c4bb8ffafe2de88b93fdcf3a90f964f136580ea1b849a83dba7400'], + }), + ('mcmcse', '1.4-1', { + 'checksums': ['6b181f56d60ddf55c9c08a2468ef9ffe3ec8a1b16cfa9a7742c3872597f85d17'], + }), + ('copCAR', '2.0-3', { + 'checksums': ['e626380d3f11ca6c756381f2423ef3661efb52667147114253416cc6151a71b8'], + }), + ('batchmeans', '1.0-4', { + 'checksums': ['8694573009d9070a76007281407d3314da78902e122a9d8aec1f819d3bbe562c'], + }), + ('ngspatial', '1.2-2', { + 'checksums': ['3fa79e45d3a502a58c1454593ec83dfc73144e92b34c14f617a6126557dd0d26'], + }), + ('BIGL', '1.4.3', { + 'checksums': ['7ef7edd5c1852409f1da176e810a9a2a7f0b9441e0e6459d4d16179f3eb000f4'], + }), + ('drugCombo', '1.1.1', { + 'checksums': ['9fdc3a7cf63552c32f1c7573258fc4ceacdaf5c475fe79aa4ca8c9226b9f8a38'], + }), + ('betareg', '3.1-3', { + 'checksums': ['cc19387ec516492d11cf59cdfa07e1733950a2af8196c1e155bc95939bc76246'], + }), + ('unmarked', '1.0.1', { + 'checksums': ['a3bb9bdc7a4a79ea38482df3f8cbb6e9082332a0d894eeb4b3dc816344cec0e4'], + }), + ('maxlike', '0.1-8', { + 'checksums': ['90aaab9602f259cbfae61fe96e105cc4a0c2a385b42380f85c14f5d544107251'], + }), + ('coxme', '2.2-16', { + 'checksums': ['a0ce4b5649c4c1abbfe2c2bf23089744d1f66eb8368dea16e74e090f366a5111'], + }), + ('AICcmodavg', '2.3-0', { + 'checksums': ['4d6bcff3c549be9dcefdd849b239659618fdaf9ba0d27b9d0589620d104e5e24'], + }), + ('pacman', '0.5.1', { + 'checksums': ['9ec9a72a15eda5b8f727adc877a07c4b36f8372fe7ed80a1bc6c2068dab3ef7c'], + }), + ('spaa', '0.2.2', { + 'checksums': ['a5a54454d4a7af473ce797875f849bd893005cb04325bf3e0dbddb19fe8d7198'], + }), + ('maxnet', '0.1.2', { + 'checksums': ['dfa02ca1031b369415d8b16863ca5fd115c7bf96b1f8fc24f91719b017f5cce5'], + }), + ('ENMeval', '0.3.0', { + 'checksums': ['1c924098a27c82a9bf75408173b47429c40cc41cae3aba18c86ba217bb45ba60'], + }), + ('plotmo', '3.5.7', { + 'checksums': ['aa366a49a63cabfd5d799a1524e23a4faed022f10ee60f8407d70ab70731b38c'], + }), + ('earth', '5.1.2', { + 'checksums': ['326f98e8c29365ca3cd5584cf2bd6529358f5ef81664cbd494162f92b6c3488d'], + }), + ('mda', '0.5-2', { + 'checksums': ['344f2053215ddf535d1554b4539e9b09067dac878887cc3eb995cef421fc00c3'], + }), + ('biomod2', '3.4.6', { + 'checksums': ['41fd7745f4d0af3f799e9cf4fa5484a427de6854db84c6476fde7a7414787d5b'], + }), + ('ncdf4', '1.17', { + 'checksums': ['db95c4729d3187d1a56dfd019958216f442be6221bd15e23cd597e6129219af6'], + }), + ('mapdata', '2.3.0', { + 'checksums': ['1edc180990387b6b1cd4e43a9505ebeb98e6115e4205c4f32f05b397c781dd76'], + }), + ('wavelets', '0.3-0.2', { + 'checksums': ['22d1d6bff71574a37b047ee5c31d17d52e321d2dd54db1a221f2d7267536e01c'], + }), + ('biwavelet', '0.20.19', { + 'checksums': ['2b9f99e4f56cee87ee2db53abcece205ff592887a9c9cf298c875a1ea594b25d'], + }), + ('wavethresh', '4.6.8', { + 'checksums': ['93b369c6eabcc0187b860b31d84a9d7c72c4a2ed5b23c1520c93bd7bea22e7db'], + }), + ('splancs', '2.01-40', { + 'checksums': ['79744381ebc4a361740a36dca3c9fca9ae015cfe0bd585b7856a664a3da74363'], + }), + ('RandomFieldsUtils', '0.5.3', { + 'checksums': ['ea823cba2e254a9f534efb4b772c0aeef2039ee9ef99744e077b969a87f8031d'], + }), + ('RandomFields', '3.3.8', { + 'checksums': ['8a08e2fdae428e354a29fb6818ae781cc56235a6849a0d29574dc756f73199d0'], + }), + ('geoR', '1.8-1', { + 'checksums': ['990647804590b925a50f72897b24bbabd331cebef0be1696a60528b2f79d6fd3'], + }), + ('intervals', '0.15.2', { + 'checksums': ['0bd23b0ce817ddd851238233d8a5420bf3a6d29e75fd361418cbc50118777c57'], + }), + ('spacetime', '1.2-3', { + 'checksums': ['ca7c0b962d5da0741f6dd85b271d693598756e0eeeb364ada828dbb6d1b9b25b'], + }), + ('gstat', '2.0-6', { + 'checksums': ['6711e68aa2444cf2927879a03a976d8caeca5eac98d806b19a6a7178b90bfcab'], + }), + ('rgeos', '0.5-3', { + 'checksums': ['357454e110ae19a665d5af5ffd7d670d2d7471566dd638dc614365c29b68600b'], + }), + ('repr', '1.1.0', { + 'checksums': ['743fe018f9e3e54067a970bc38b6b8c0c0498b43f88d179ac4a959c2013a5f96'], + }), + ('IRdisplay', '0.7.0', { + 'checksums': ['91eac9acdb92ed0fdc58e5da284aa4bb957ada5eef504fd89bec136747999089'], + }), + ('pbdZMQ', '0.3-3.1', { + 'checksums': ['9e034745cd9c1bdf510a2ec8e7060501abc92ec86020c430ed7e36f5d5cf1523'], + }), + ('IRkernel', '1.1.1', { + 'checksums': ['f5a129168f44bdda6da8cc907189a2737f692d427529515d87312a17dbd806f8'], + }), + # language server support + ('collections', '0.3.5', { + 'checksums': ['bf76ab5c6a8082b6bb70b9bf3bdb30658e823e3b7b28cf7be7e8a87d117a7114'], + }), + ('xmlparsedata', '1.0.4', { + 'checksums': ['387b13c25bea9ddc0a39b817c17c199b86ab9acafa328daae2233a9ca577fb9c'], + }), + ('cyclocomp', '1.1.0', { + 'checksums': ['cdbf65f87bccac53c1527a2f1269ec7840820c18503a7bb854910b30b71e7e3e'], + }), + ('lintr', '2.0.1', { + 'checksums': ['fe0723757b653ef83ec7a5005d0a7524cd917d646d35a5627ee639158881ce93'], + }), + ('styler', '1.3.2', { + 'checksums': ['3fcf574382c607c2147479bad4f9fa8b823f54fb1462d19ec4a330e135a44ff1'], + }), + ('mockery', '0.4.2', { + 'checksums': ['988e249c366ee7faf277de004084cf5ca24b5c8a8c6e3842f1b1362ce2f7ea9b'], + }), + ('languageserver', '0.3.8', { + 'checksums': ['371db6976d6066d654c9d31f911dba667c1f8ceb4ab67da34d44037b66f3ca9b'], + }), +] + +moduleclass = 'lang' diff --git a/Golden_Repo/r/R/R-4.0.2-gpsmkl-2020.eb b/Golden_Repo/r/R/R-4.0.2-gpsmkl-2020.eb index 44aacee1e37451c02c5dca5d045a3f475bf0aad0..fb9b2a4ee5787a8c8ed54519573aaa64ad78aa1a 100644 --- a/Golden_Repo/r/R/R-4.0.2-gpsmkl-2020.eb +++ b/Golden_Repo/r/R/R-4.0.2-gpsmkl-2020.eb @@ -30,7 +30,7 @@ dependencies = [ ('libpng', '1.6.37'), # for plotting in R ('libjpeg-turbo', '2.0.5'), # for plottting in R ('LibTIFF', '4.1.0'), - ('Java', '1.8', '', True), + ('Java', '1.8', '', SYSTEM), ('Tk', '8.6.10'), # for tcltk ('cURL', '7.71.1'), # for RCurl ('libxml2', '2.9.10'), # for XML @@ -469,8 +469,8 @@ exts_list = [ ('pkgbuild', '1.0.7', { 'checksums': ['29bb38a38202ba780d2d46aeca0a6e2f052653e4a83891ec38d19bebd131a971'], }), - ('rstudioapi', '0.11', { - 'checksums': ['13e07fb7e2eba8cf1d885db2721901d676d219a1042d7ef5d166125e4905306b'], + ('rstudioapi', '0.13', { + 'checksums': ['aac35bbdcb4a8e8caba943bc8a2b98120e8940b80cd1020224bb1a26ff776d8b'], }), ('pkgload', '1.0.2', { 'checksums': ['3186564e690fb05eabe76e1ac0bfd4312562c3ac8794b29f8850399515dcf27c'], @@ -2544,6 +2544,28 @@ exts_list = [ ('IRkernel', '1.1.1', { 'checksums': ['f5a129168f44bdda6da8cc907189a2737f692d427529515d87312a17dbd806f8'], }), + # language server support + ('collections', '0.3.5', { + 'checksums': ['bf76ab5c6a8082b6bb70b9bf3bdb30658e823e3b7b28cf7be7e8a87d117a7114'], + }), + ('xmlparsedata', '1.0.4', { + 'checksums': ['387b13c25bea9ddc0a39b817c17c199b86ab9acafa328daae2233a9ca577fb9c'], + }), + ('cyclocomp', '1.1.0', { + 'checksums': ['cdbf65f87bccac53c1527a2f1269ec7840820c18503a7bb854910b30b71e7e3e'], + }), + ('lintr', '2.0.1', { + 'checksums': ['fe0723757b653ef83ec7a5005d0a7524cd917d646d35a5627ee639158881ce93'], + }), + ('styler', '1.3.2', { + 'checksums': ['3fcf574382c607c2147479bad4f9fa8b823f54fb1462d19ec4a330e135a44ff1'], + }), + ('mockery', '0.4.2', { + 'checksums': ['988e249c366ee7faf277de004084cf5ca24b5c8a8c6e3842f1b1362ce2f7ea9b'], + }), + ('languageserver', '0.3.8', { + 'checksums': ['371db6976d6066d654c9d31f911dba667c1f8ceb4ab67da34d44037b66f3ca9b'], + }), ] moduleclass = 'lang' diff --git a/Golden_Repo/s/Score-P/Score-P-6.0-gompi-2020.eb b/Golden_Repo/s/Score-P/Score-P-6.0-gompi-2020.eb index bb1380f27880d1b901e537c791faebbe506bc8d3..7037c78bff8437068491567a8832a1878eb47879 100644 --- a/Golden_Repo/s/Score-P/Score-P-6.0-gompi-2020.eb +++ b/Golden_Repo/s/Score-P/Score-P-6.0-gompi-2020.eb @@ -33,7 +33,7 @@ patches = [ ] builddependencies = [ - ('CUDA', '11.0', '', True), + ('CUDA', '11.0', '', SYSTEM), ('CubeLib', '4.5'), ('CubeWriter', '4.5'), # Unwinding/sampling support (optional): diff --git a/Golden_Repo/s/Score-P/Score-P-6.0-gpsmpi-2020.eb b/Golden_Repo/s/Score-P/Score-P-6.0-gpsmpi-2020.eb index 30b2e861dff7a9dcee4fe4bfc79de7ef2ac7132a..a654979fef2bcd3fbb7b26bbc8e18c5d916e231a 100644 --- a/Golden_Repo/s/Score-P/Score-P-6.0-gpsmpi-2020.eb +++ b/Golden_Repo/s/Score-P/Score-P-6.0-gpsmpi-2020.eb @@ -33,7 +33,7 @@ patches = [ ] builddependencies = [ - ('CUDA', '11.0', '', True), + ('CUDA', '11.0', '', SYSTEM), ('CubeLib', '4.5'), ('CubeWriter', '4.5'), # Unwinding/sampling support (optional): diff --git a/Golden_Repo/s/Score-P/Score-P-6.0-iimpi-2020.eb b/Golden_Repo/s/Score-P/Score-P-6.0-iimpi-2020.eb index 807d8fed2ffd9dd1dd569760feb0d5600dabfda8..1dd32b425e26a853984b4c775d2176860f59cbd1 100644 --- a/Golden_Repo/s/Score-P/Score-P-6.0-iimpi-2020.eb +++ b/Golden_Repo/s/Score-P/Score-P-6.0-iimpi-2020.eb @@ -33,7 +33,7 @@ patches = [ ] builddependencies = [ - ('CUDA', '11.0', '', True), + ('CUDA', '11.0', '', SYSTEM), ('CubeLib', '4.5'), ('CubeWriter', '4.5'), # Unwinding/sampling support (optional): diff --git a/Golden_Repo/s/Score-P/Score-P-6.0-ipsmpi-2020.eb b/Golden_Repo/s/Score-P/Score-P-6.0-ipsmpi-2020.eb index 56fbb9367c43e92f4409311c0133a28dc96459b9..79c00c01536bd236ca672c9a78aeebb827ad6f59 100644 --- a/Golden_Repo/s/Score-P/Score-P-6.0-ipsmpi-2020.eb +++ b/Golden_Repo/s/Score-P/Score-P-6.0-ipsmpi-2020.eb @@ -33,7 +33,7 @@ patches = [ ] builddependencies = [ - ('CUDA', '11.0', '', True), + ('CUDA', '11.0', '', SYSTEM), ('CubeLib', '4.5'), ('CubeWriter', '4.5'), # Unwinding/sampling support (optional): diff --git a/Golden_Repo/s/Score-P/Score-P-6.0-npsmpic-2020.eb b/Golden_Repo/s/Score-P/Score-P-6.0-npsmpic-2020.eb index bee2e759d062b0d5683cd65cfef67800217b5dbf..eb958fb47f5ac34bbe54a24869875ab2e0970bf2 100644 --- a/Golden_Repo/s/Score-P/Score-P-6.0-npsmpic-2020.eb +++ b/Golden_Repo/s/Score-P/Score-P-6.0-npsmpic-2020.eb @@ -33,7 +33,7 @@ patches = [ ] builddependencies = [ - ('CUDA', '11.0', '', True), + ('CUDA', '11.0', '', SYSTEM), ('CubeLib', '4.5'), ('CubeWriter', '4.5'), # Unwinding/sampling support (optional): diff --git a/Golden_Repo/s/Shapely/Shapely-1.7.1-GCCcore-9.3.0-Python-3.8.5.eb b/Golden_Repo/s/Shapely/Shapely-1.7.1-GCCcore-9.3.0-Python-3.8.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..47db47fc91daae2c2c102039da8f217b7a6dd211 --- /dev/null +++ b/Golden_Repo/s/Shapely/Shapely-1.7.1-GCCcore-9.3.0-Python-3.8.5.eb @@ -0,0 +1,28 @@ +easyblock = 'PythonPackage' + +name = 'Shapely' +version = '1.7.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/Toblerity/Shapely' +description = """Shapely is a BSD-licensed Python package for manipulation and analysis of planar geometric objects. +It is based on the widely deployed GEOS (the engine of PostGIS) and JTS (from which GEOS is ported) libraries.""" + +site_contacts = 'a.strube@fz-juelich.de' + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['1641724c1055459a7e2b8bbe47ba25bdc89554582e62aec23cb3f3ca25f9b129'] + +dependencies = [ + ('Python', '3.8.5'), + ('GEOS', '3.8.1', versionsuffix), +] + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +moduleclass = 'math' diff --git a/Golden_Repo/t/TensorFlow/TensorFlow-2.3.1-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb b/Golden_Repo/t/TensorFlow/TensorFlow-2.3.1-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb index db5df775129fe326c2bd8acd9acac539ca559687..9a55c28c37c3eafc4ca9b2049a1237e2c1823d32 100644 --- a/Golden_Repo/t/TensorFlow/TensorFlow-2.3.1-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb +++ b/Golden_Repo/t/TensorFlow/TensorFlow-2.3.1-gcccoremkl-9.3.0-2020.2.254-Python-3.8.5.eb @@ -24,8 +24,8 @@ builddependencies = [ ('pybind11', '2.5.0', versionsuffix), ] dependencies = [ - ('CUDA', local_cudaver, '', True), - ('cuDNN', '8.0.2.39', '-CUDA-%s' % local_cudaver, True), + ('CUDA', local_cudaver, '', SYSTEM), + ('cuDNN', '8.0.2.39', '-CUDA-%s' % local_cudaver, SYSTEM), ('NCCL', '2.8.3-1', '-CUDA-%s' % local_cudaver), ('Python', '3.8.5'), ('h5py', '2.10.0', '-serial%s' % versionsuffix), @@ -42,6 +42,7 @@ dependencies = [ ('nsync', '1.24.0'), ('SQLite', '3.32.3'), ('PCRE', '8.44'), + ('protobuf-python', '3.13.0', versionsuffix), ('libpng', '1.6.37'), ('snappy', '1.1.8'), ('SWIG', '4.0.2', versionsuffix), diff --git a/Golden_Repo/t/torchvision/torchvision-0.8.1-gcccoremkl-9.3.0-2020.2.254-GPU-Python-3.8.5.eb b/Golden_Repo/t/torchvision/torchvision-0.8.1-gcccoremkl-9.3.0-2020.2.254-GPU-Python-3.8.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..2c61fff6031bd155a08070990ce903dd2f036f35 --- /dev/null +++ b/Golden_Repo/t/torchvision/torchvision-0.8.1-gcccoremkl-9.3.0-2020.2.254-GPU-Python-3.8.5.eb @@ -0,0 +1,44 @@ +easyblock = 'PythonPackage' + +name = 'torchvision' +version = '0.8.1' +versionsuffix = '-Python-%(pyver)s' + + +homepage = 'http://pytorch.org/' +description = """The torchvision package consists of popular datasets, model architectures, and common image +transformations for computer vision.""" + +site_contacts = 'a.strube@fz-juelich.de' + +toolchain = {'name': 'gcccoremkl', 'version': '9.3.0-2020.2.254'} + +download_dep_fail = True + +source_urls = [ + 'https://github.com/pytorch/vision/archive', +] +sources = [ + 'v%(version)s.tar.gz' +] + +dependencies = [ + ('Python', '3.8.5'), + ('SciPy-Stack', '2020', versionsuffix), + ('PyTorch', '1.7.0', versionsuffix), + ('Pillow-SIMD', '7.0.0.post3', versionsuffix), +] + +options = {'modulename': 'torchvision'} + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +# Add a property +modluafooter = """ +add_property("arch","gpu") +""" + +moduleclass = 'devel' diff --git a/Golden_Repo/u/UDUNITS/UDUNITS-2.2.26-GCCcore-9.3.0.eb b/Golden_Repo/u/UDUNITS/UDUNITS-2.2.26-GCCcore-9.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..eb012fc637df01c285b2f77756b239865731ed90 --- /dev/null +++ b/Golden_Repo/u/UDUNITS/UDUNITS-2.2.26-GCCcore-9.3.0.eb @@ -0,0 +1,42 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg, Ghent University +# Authors:: Fotis Georgatos <fotis@cern.ch>, Kenneth Hoste (Ghent University) +# 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/HPCBIOS_2012-97.html +## + +easyblock = 'ConfigureMake' + +name = 'UDUNITS' +version = '2.2.26' + +homepage = 'http://www.unidata.ucar.edu/software/udunits/' +description = """UDUNITS supports conversion of unit specifications between formatted and binary forms, + arithmetic manipulation of units, and conversion of values between compatible scales of measurement. +""" + +site_contacts = 'a.kreuzer@fz-juelich.de' + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} +toolchainopts = {'opt': True, 'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['ftp://ftp.unidata.ucar.edu/pub/udunits'] + +builddependencies = [('binutils', '2.34')] +dependencies = [('expat', '2.2.9')] + +sanity_check_paths = { + 'files': ['bin/udunits2', 'include/converter.h', 'include/udunits2.h', 'include/udunits.h', + 'lib/libudunits2.a', 'lib/libudunits2.%s' % SHLIB_EXT], + 'dirs': ['share'], +} + +parallel = 1 + +moduleclass = 'phys' diff --git a/Golden_Repo/v/VTK/VTK-8.2.0-gpsmpi-9.3.0-Python-3.8.5.eb b/Golden_Repo/v/VTK/VTK-8.2.0-gpsmpi-9.3.0-Python-3.8.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..ab774b4ddadf39423d3e94b72405d2595ec59411 --- /dev/null +++ b/Golden_Repo/v/VTK/VTK-8.2.0-gpsmpi-9.3.0-Python-3.8.5.eb @@ -0,0 +1,184 @@ +easyblock = 'CMakeMake' + +name = 'VTK' +version = '8.2.0' +versionsuffix = '-Python-%(pyver)s' + +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.""" + +site_contacts = 'j.goebbert@fz-juelich.de' + +toolchain = {'name': 'gpsmpi', 'version': '2020'} +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-8.2.0_python_3.8_compatibility.patch', ('vtk-version.egg-info', '.')] +checksums = [ + '34c3dc775261be5e45a8049155f7228b6bd668106c72a3c435d95730d17d57bb', # VTK-8.2.0.tar.gz + 'd1ff312f7a63d90d8b7033a99109801f16a462ae411d648642838aae04bcc21e', # VTKData-8.2.0.tar.gz + 'a7586f60501de145d4c31e48aa0589547d9fe7a39f96ab31dae8e82aa5fb4403', # VTK-8.2.0_python_3.8_compatibility.patch + '787b82415ae7a4a1f815b4db0e25f7abc809a05fc85d7d219627f3a7e5d3867b', # vtk-version.egg-info +] + +builddependencies = [ + ('CMake', '3.18.0'), +] + +dependencies = [ + ('Python', '3.8.5'), + ('HDF5', '1.10.6'), + ('SciPy-Stack', '2020', versionsuffix, ('gcccoremkl', '9.3.0-2020.2.254')), + ('mpi4py', '3.0.3', versionsuffix), + ('libxc', '3.0.1'), + ('netCDF', '4.7.4'), + ('X11', '20200222'), + ('OpenGL', '2020'), +] + +separate_build_dir = True + +configopts = "-DCMAKE_BUILD_TYPE=Release " +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_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_VERSION=%(pyshortver)s " +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=OFF " +# configopts += "-DModule_vtkpegtl:BOOL=OFF " +# configopts += "-DModule_vtkxdmf2:BOOL=OFF " +# configopts += "-DModule_vtkxdmf3:BOOL=OFF " +# configopts += "-DModule_vtkzfp:BOOL=OFF " + +preinstallopts = "export PYTHONPATH=%(installdir)s/lib/python%(pyshortver)s/site-packages:$PYTHONPATH && " + +# Install a egg-info file so VTK is more python friendly, required for mayavi +local_egg_info_src = '%(builddir)s/VTK-%(version)s/vtk-version.egg-info' +local_egg_info_dest = '%(installdir)s/lib/python%(pyshortver)s/site-packages/vtk-%(version)s.egg-info' +postinstallcmds = [ + 'sed "s/#VTK_VERSION#/%%(version)s/" %s > %s' % (local_egg_info_src, local_egg_info_dest), +] + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +sanity_check_paths = { + 'files': ['bin/vtk%s-%%(version_major_minor)s' % x for x in + ['WrapPythonInit', 'WrapPython', 'WrapHierarchy']] + + ['bin/pvtkpython', 'bin/vtkpython'], + '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\")'"), +] + +moduleclass = 'vis' diff --git a/Golden_Repo/v/VTK/VTK-8.2.0_python_3.8_compatibility.patch b/Golden_Repo/v/VTK/VTK-8.2.0_python_3.8_compatibility.patch new file mode 100644 index 0000000000000000000000000000000000000000..60134b1fee16d4856ded561d40795e9a7e521540 --- /dev/null +++ b/Golden_Repo/v/VTK/VTK-8.2.0_python_3.8_compatibility.patch @@ -0,0 +1,176 @@ +From 257b9d7b18d5f3db3fe099dc18f230e23f7dfbab Mon Sep 17 00:00:00 2001 +From: David Gobbi <david.gobbi@gmail.com> +Date: Tue, 20 Aug 2019 17:02:24 -0600 +Subject: [PATCH] Compatibility for Python 3.8 + +The PyTypeObject struct was modified in Python 3.8, this change is +required to avoid compile errors. +--- + .../PythonInterpreter/vtkPythonStdStreamCaptureHelper.h | 6 ++++++ + Wrapping/PythonCore/PyVTKMethodDescriptor.cxx | 2 +- + Wrapping/PythonCore/PyVTKNamespace.cxx | 2 +- + Wrapping/PythonCore/PyVTKReference.cxx | 8 ++++---- + Wrapping/PythonCore/PyVTKTemplate.cxx | 2 +- + Wrapping/PythonCore/vtkPythonCompatibility.h | 8 +++++++- + Wrapping/Tools/vtkWrapPythonClass.c | 2 +- + Wrapping/Tools/vtkWrapPythonEnum.c | 2 +- + Wrapping/Tools/vtkWrapPythonType.c | 2 +- + 9 files changed, 23 insertions(+), 11 deletions(-) + +diff --git a/Utilities/PythonInterpreter/vtkPythonStdStreamCaptureHelper.h b/Utilities/PythonInterpreter/vtkPythonStdStreamCaptureHelper.h +index b1c12c83de..14ccfbe928 100644 +--- a/Utilities/PythonInterpreter/vtkPythonStdStreamCaptureHelper.h ++++ b/Utilities/PythonInterpreter/vtkPythonStdStreamCaptureHelper.h +@@ -140,6 +140,12 @@ static PyTypeObject vtkPythonStdStreamCaptureHelperType = { + #if PY_VERSION_HEX >= 0x03040000 + 0, // tp_finalize + #endif ++#if PY_VERSION_HEX >= 0x03080000 ++ 0, // tp_vectorcall ++#if PY_VERSION_HEX < 0x03090000 ++ 0, // tp_print ++#endif ++#endif + }; + + static PyObject* vtkWrite(PyObject* self, PyObject* args) +diff --git a/Wrapping/PythonCore/PyVTKMethodDescriptor.cxx b/Wrapping/PythonCore/PyVTKMethodDescriptor.cxx +index 2b0d443537..3840038498 100644 +--- a/Wrapping/PythonCore/PyVTKMethodDescriptor.cxx ++++ b/Wrapping/PythonCore/PyVTKMethodDescriptor.cxx +@@ -186,7 +186,7 @@ PyTypeObject PyVTKMethodDescriptor_Type = { + sizeof(PyMethodDescrObject), // tp_basicsize + 0, // tp_itemsize + PyVTKMethodDescriptor_Delete, // tp_dealloc +- nullptr, // tp_print ++ 0, // tp_vectorcall_offset + nullptr, // tp_getattr + nullptr, // tp_setattr + nullptr, // tp_compare +diff --git a/Wrapping/PythonCore/PyVTKNamespace.cxx b/Wrapping/PythonCore/PyVTKNamespace.cxx +index 71ee2a3516..5cf5bfbe6b 100644 +--- a/Wrapping/PythonCore/PyVTKNamespace.cxx ++++ b/Wrapping/PythonCore/PyVTKNamespace.cxx +@@ -49,7 +49,7 @@ PyTypeObject PyVTKNamespace_Type = { + 0, // tp_basicsize + 0, // tp_itemsize + PyVTKNamespace_Delete, // tp_dealloc +- nullptr, // tp_print ++ 0, // tp_vectorcall_offset + nullptr, // tp_getattr + nullptr, // tp_setattr + nullptr, // tp_compare +diff --git a/Wrapping/PythonCore/PyVTKReference.cxx b/Wrapping/PythonCore/PyVTKReference.cxx +index 943ac71080..b7104091c0 100644 +--- a/Wrapping/PythonCore/PyVTKReference.cxx ++++ b/Wrapping/PythonCore/PyVTKReference.cxx +@@ -1010,7 +1010,7 @@ PyTypeObject PyVTKReference_Type = { + sizeof(PyVTKReference), // tp_basicsize + 0, // tp_itemsize + PyVTKReference_Delete, // tp_dealloc +- nullptr, // tp_print ++ 0, // tp_vectorcall_offset + nullptr, // tp_getattr + nullptr, // tp_setattr + nullptr, // tp_compare +@@ -1067,7 +1067,7 @@ PyTypeObject PyVTKNumberReference_Type = { + sizeof(PyVTKReference), // tp_basicsize + 0, // tp_itemsize + PyVTKReference_Delete, // tp_dealloc +- nullptr, // tp_print ++ 0, // tp_vectorcall_offset + nullptr, // tp_getattr + nullptr, // tp_setattr + nullptr, // tp_compare +@@ -1124,7 +1124,7 @@ PyTypeObject PyVTKStringReference_Type = { + sizeof(PyVTKReference), // tp_basicsize + 0, // tp_itemsize + PyVTKReference_Delete, // tp_dealloc +- nullptr, // tp_print ++ 0, // tp_vectorcall_offset + nullptr, // tp_getattr + nullptr, // tp_setattr + nullptr, // tp_compare +@@ -1181,7 +1181,7 @@ PyTypeObject PyVTKTupleReference_Type = { + sizeof(PyVTKReference), // tp_basicsize + 0, // tp_itemsize + PyVTKReference_Delete, // tp_dealloc +- nullptr, // tp_print ++ 0, // tp_vectorcall_offset + nullptr, // tp_getattr + nullptr, // tp_setattr + nullptr, // tp_compare +diff --git a/Wrapping/PythonCore/PyVTKTemplate.cxx b/Wrapping/PythonCore/PyVTKTemplate.cxx +index be200985b3..340fe7953b 100644 +--- a/Wrapping/PythonCore/PyVTKTemplate.cxx ++++ b/Wrapping/PythonCore/PyVTKTemplate.cxx +@@ -268,7 +268,7 @@ PyTypeObject PyVTKTemplate_Type = { + 0, // tp_basicsize + 0, // tp_itemsize + nullptr, // tp_dealloc +- nullptr, // tp_print ++ 0, // tp_vectorcall_offset + nullptr, // tp_getattr + nullptr, // tp_setattr + nullptr, // tp_compare +diff --git a/Wrapping/PythonCore/vtkPythonCompatibility.h b/Wrapping/PythonCore/vtkPythonCompatibility.h +index 4a767844a6..be208faeef 100644 +--- a/Wrapping/PythonCore/vtkPythonCompatibility.h ++++ b/Wrapping/PythonCore/vtkPythonCompatibility.h +@@ -64,7 +64,13 @@ + #endif + + // PyTypeObject compatibility +-#if PY_VERSION_HEX >= 0x03040000 ++#if PY_VERSION_HEX >= 0x03090000 ++#define VTK_WRAP_PYTHON_SUPPRESS_UNINITIALIZED \ ++ 0, 0, 0, 0, ++#elif PY_VERSION_HEX >= 0x03080000 ++#define VTK_WRAP_PYTHON_SUPPRESS_UNINITIALIZED \ ++ 0, 0, 0, 0, 0, ++#elif PY_VERSION_HEX >= 0x03040000 + #define VTK_WRAP_PYTHON_SUPPRESS_UNINITIALIZED \ + 0, 0, 0, + #else +diff --git a/Wrapping/Tools/vtkWrapPythonClass.c b/Wrapping/Tools/vtkWrapPythonClass.c +index b1e45f8e80..4d558ea081 100644 +--- a/Wrapping/Tools/vtkWrapPythonClass.c ++++ b/Wrapping/Tools/vtkWrapPythonClass.c +@@ -521,7 +521,7 @@ void vtkWrapPython_GenerateObjectType( + " sizeof(PyVTKObject), // tp_basicsize\n" + " 0, // tp_itemsize\n" + " PyVTKObject_Delete, // tp_dealloc\n" +- " nullptr, // tp_print\n" ++ " 0, // tp_vectorcall_offset\n" + " nullptr, // tp_getattr\n" + " nullptr, // tp_setattr\n" + " nullptr, // tp_compare\n" +diff --git a/Wrapping/Tools/vtkWrapPythonEnum.c b/Wrapping/Tools/vtkWrapPythonEnum.c +index b933702242..1249362854 100644 +--- a/Wrapping/Tools/vtkWrapPythonEnum.c ++++ b/Wrapping/Tools/vtkWrapPythonEnum.c +@@ -145,7 +145,7 @@ void vtkWrapPython_GenerateEnumType( + " sizeof(PyIntObject), // tp_basicsize\n" + " 0, // tp_itemsize\n" + " nullptr, // tp_dealloc\n" +- " nullptr, // tp_print\n" ++ " 0, // tp_vectorcall_offset\n" + " nullptr, // tp_getattr\n" + " nullptr, // tp_setattr\n" + " nullptr, // tp_compare\n" +diff --git a/Wrapping/Tools/vtkWrapPythonType.c b/Wrapping/Tools/vtkWrapPythonType.c +index 744cb1b9d3..0a1375e541 100644 +--- a/Wrapping/Tools/vtkWrapPythonType.c ++++ b/Wrapping/Tools/vtkWrapPythonType.c +@@ -709,7 +709,7 @@ void vtkWrapPython_GenerateSpecialType( + " sizeof(PyVTKSpecialObject), // tp_basicsize\n" + " 0, // tp_itemsize\n" + " Py%s_Delete, // tp_dealloc\n" +- " nullptr, // tp_print\n" ++ " 0, // tp_vectorcall_offset\n" + " nullptr, // tp_getattr\n" + " nullptr, // tp_setattr\n" + " nullptr, // tp_compare\n" +-- +2.24.1 + diff --git a/Golden_Repo/y/yuicompressor/yuicompressor-2.4.8-GCCcore-9.3.0-Python-3.8.5.eb b/Golden_Repo/y/yuicompressor/yuicompressor-2.4.8-GCCcore-9.3.0-Python-3.8.5.eb index da015d63ed316562930d1cec1ebdc2e926c6f4c1..585047becdcc0b838c0c31fa9351e8b38c505587 100644 --- a/Golden_Repo/y/yuicompressor/yuicompressor-2.4.8-GCCcore-9.3.0-Python-3.8.5.eb +++ b/Golden_Repo/y/yuicompressor/yuicompressor-2.4.8-GCCcore-9.3.0-Python-3.8.5.eb @@ -22,7 +22,7 @@ builddependencies = [ dependencies = [ ('Python', '3.8.5'), - ('Java', '1.8', '', True), + ('Java', '1.8', '', SYSTEM), ] use_pip = True diff --git a/README.md b/README.md index db2aad9a0d653a2d151166348f59e6d34c97aa65..8b54f8407b3f17d9a15e16c445e037bc0811c3f2 100644 --- a/README.md +++ b/README.md @@ -2,3 +2,15 @@ This is the repo to store all the EasyBuild configuration files, including easyconfigs. Each stage is in a separate branch, containing all the relevant files for that stage + + +This repository uses [autopep8](https://github.com/hhatto/autopep8) and [pre-commit](https://pre-commit.com). For that, you need to run this on your machine: + +```sh +pip3 install --user autopep8 +pip3 install --user pre-commit +pre-commit install +``` + +After those steps, `pre-commit` will call `autopep8` on each commit, and make small changes pass the pep8 test without needing to do a manual `eb --check-style` and checking each little mistake. +