diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index d36d0a6398e..82cf7cacef9 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-20.04 strategy: matrix: - python: [3.6] + python: [3.6, '3.11'] modules_tool: [Lmod-7.8.22, Lmod-8.6.8] module_syntax: [Lua, Tcl] # exclude some configurations: only test Tcl module syntax with Lmod 8.x and Python 3.6 @@ -147,10 +147,6 @@ jobs: eb --search '^foss-2019b.eb' | tee eb_search_foss.out grep '/foss-2019b.eb$' eb_search_foss.out - # make sure CVS easyconfigs are included in installation (cfr. issue #10325) - echo "Searching for CVS easyconfigs..." - eb --search '^CVS-' | grep '/CVS-' - # try installing M4 with system toolchain (requires ConfigureMake easyblock + easyconfig) # use /tmp/sources because that has cached downloads (see cache step above) eb --prefix /tmp/$USER/$GITHUB_SHA --sourcepath /tmp/sources M4-1.4.18.eb @@ -159,7 +155,7 @@ jobs: runs-on: ubuntu-20.04 strategy: matrix: - python: [3.6] + python: [3.6, '3.11'] steps: - uses: actions/checkout@v2 @@ -184,12 +180,3 @@ jobs: else echo "No .git folders found in source tarball: OK" fi - - # CVS easyconfigs must be included in source tarball, - # see https://github.com/easybuilders/easybuild-easyconfigs/issues/10325 - cvs_easyconfigs=$(find . -name 'CVS-*.eb') - if [ -z "$cvs_easyconfigs" ]; then - echo "CVS easyconfigs not found" && false - else - echo "Found CVS easyconfigs: $cvs_easyconfigs" - fi diff --git a/.gitignore b/.gitignore index 32e6a7345c4..c667a41e000 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ dist/ *.ropeproject/ eb-*.log /MANIFEST +/easybuild/easyconfigs/.eb-path-index diff --git a/RELEASE_NOTES b/RELEASE_NOTES index 6ac82efe759..96daf16fe02 100644 --- a/RELEASE_NOTES +++ b/RELEASE_NOTES @@ -3,10 +3,89 @@ For more detailed information, please see the git log. These release notes can also be consulted at https://docs.easybuild.io/en/latest/Release_notes.html. -The latest version of easybuild-easyconfig provides 18,021 easyconfig files, for 3,224 different software packages, +The latest version of easybuild-easyconfig provides 18,407 easyconfig files, for 3,292 different software packages, incl. 40 different (compiler) toolchains. +v4.8.2 (29 October 2023) +------------------------ + +update/bugfix release +- added example easyconfig files for 48 new software packages: + - ALL (#18971), anadama2 (#18688), AOFlagger (#19010), bases2fastq (#18866), BgeeCall (#18784), + biobakery-workflows (#18688), BMTK (#18863), CIRIquant (#18815), Clair3 (#18748), CLEAR (#16357), + cpio (#14728), DP3 (#19010), EveryBeam (#19010), fasta-reader (#18936), git-annex (#18673), GSD (#6453), + imutils (#18920), Jblob (#18478), Jmol (#18988), kneaddata (#18688), libbaseencode (#12319), + libcotp (#12319), MACS3 (#18354), Mashtree (#19019), mpath (#5029), MUSCLE3 (#18287), plotutils (#16196), + ProBiS (#18830), PyMC (#10399), PyPy (#18847), PyTensor (#18928), Qt6 (#18683), QuickTree (#19019), + Raptor (#18919), RCall (#18933), ResistanceGA (#18933), scCODA (#18949), scikit-build-core (#18777), + segmentation-models-pytorch (#18930), SNAP-ESA (#19031), SNAP-ESA-python (#19031), starparser (#18965), + synapseclient (#19016), uncertainties (#18923), WSClean (#19010), XBeach (#18849), XOOPIC (#15269), + zeus-mcmc (#19033) +- added additional easyconfigs for various supported software packages, including: + - alleleCount 4.3.0, Amber 22.4, ant 1.10.14, ArviZ 0.16.1, ASAP3 3.13.2, biobambam2 2.0.185, BLAST+ 2.14.1, + bokeh 3.2.2, Brotli 1.1.0, Cantera 3.0.0, CapnProto 1.0.1, casacore 3.5.0, Catch2 2.13.9, CGAL 5.6, + Chemaxon-Marvin 23.9, CMake 3.27.6, code-server 4.16.1, Coot 0.9.8.92, CSBDeep 0.7.4, CUDA-Samples 12.1.1, + CuPy 12.1.0, cURL 8.3.0, dask 2023.9.2, DL_POLY_4 5.1.0, DoubletFinder 2.0.3-20230131, Doxygen 1.9.8, dxpy 0.345.0, + EDirect 20.5.20231006, FastANI 1.34, FastME 2.1.6.3, Flask 2.3.3, Flye 2.9.2, fmt 10.1.0, foss/2023.09, + freetype 2.13.2, GDAL 3.7.1, GDRCopy 2.4, git 2.42.0, GMP 6.3.0, Go 1.21.1, googletest 1.14.0, GPAW 23.9.1, + groff 1.23.0, GTDB-Tk 2.3.2, GTK4 4.13.1, gzip 1.13, harmony 0.1.0, HDF 4.2.16, HighFive 2.7.1, Highway 1.0.7, + HMMER 3.4, hmmlearn 0.3.0, Imath 3.1.9, Inspector 2023.2.0, intel/2023.07, IsoSeq 4.0.0, itac 2021.10.0, + JupyterNotebook 7.0.3, libarchive 3.7.2, libcint 5.4.0, libdeflate 1.19, libdrm 2.4.117, libglvnd 1.7.0, + libjpeg-turbo 3.0.1, libmaus2 2.0.813, libpng 1.6.40, libsigc++ 2.12.1, libsodium 1.0.19, LibTIFF 4.6.0, + libwebp 1.3.2, libxc 6.2.2, line_profiler 4.1.1, LMDB 0.9.31, MAFFT 7.520, makeinfo 7.1, MATLAB 2023b, + MEGAN 6.25.3, Mesa 23.1.9, Meson 1.2.3, mold 2.3.1, MPFR 4.2.1, msgpack-c 6.0.0, nanopolish 0.14.0, + NBO 7.0.10, netcdf4-python 1.6.4, OpenBLAS 0.3.24, OpenCV 4.8.1, OpenEXR 3.2.0, OpenMolcas 23.06, OpenMPI 4.1.6, + openslide-python 1.3.1, OrthoFinder 2.5.5, OSU-Micro-Benchmarks 7.2, ParaView 5.11.2, Perl-bundle-CPAN 5.38.0, + PETSc 3.19.2, PMIx 4.2.6, poppler 23.09.0, preCICE 2.5.0, pretty-yaml 23.9.5, PyCairo 1.25.0, pyEGA3 5.0.2, + PyGObject 3.46.0, pygraphviz 1.11, pytest-rerunfailures 12.0, Python 3.11.5, PyTorch 2.0.1, PyTorch-bundle 1.13.1, + PyTorch-Ignite 0.4.12, PyYAML 6.0.1, RagTag 2.1.0, rapidcsv 8.62, rasterstats 0.19.0, RAxML-NG 1.2.0, + RDFlib 7.0.0, RDKit 2023.03.3, ReFrame 4.3.3, RMBlast 2.14.0, ruamel.yaml 0.17.32, Rust 1.73.0, scikit-learn 1.3.1, + SCons 4.5.2, SHAP 0.42.1, SignalP 6.0h, SMRT-Link 12.0.0.177059, spglib-python 2.1.0, SQLite 3.43.1, + TensorRT 8.6.1, texlive 20230313, Tkinter 3.11.5, UCX 1.15.0, VBZ-Compression 1.0.3, VCFtools 0.1.16, + VTune 2023.2.0, X11 20231019, x264 20231019, xarray 2023.9.0, XlsxWriter 3.1.3, xtb 6.6.0, ZeroMQ 4.3.5 +- minor enhancements, including: + - also run easyconfigs test suite with Python 3.11 (#18009) + - don't disable building of third and fourth derivates in libxc 6.1.0 (#18467) + - add easyconfigs cache file to `.gitignore` (#18797) + - add patch to improve CUDA 11 compatibility of `GCCcore/12.2.0` and `GCCcore/12.3.0` (#18854) + - also build Python bindings for ITK 5.2.1 with `foss/2022a` (#18922) + - add ridge extension to R 4.2.2 (#18924) + - add MSstatsLiP (#19009)and escape (#19027) to Bioconductor 3.16 bundle + - add patches to build Qt5 5.15.10 with Python 3 instead of Python 2.7 (#19045) +- various bug fixes, including: + - rename ACT to Artemis (#18382) + - backport lchown patch to PMIx 3.1.x + 3.2.x (#18759) + - also copy scripts directory for Clair3 (#18783) + - rename isoseq3 after download for IsoSeq 3.8.2 + fix permissions (#18785) + - add missing required extensions + fix wrong version of extensions in recent Perl easyconfigs (#18789) + - add patch for OpenBLAS 0.3.23 to fix hanging tests (#18790) + - add patch to fix Open MPI 4.1.5 with PMIx >= 4.2.3 (#18833) + - fix permission issues when copying xvfb-run script in Xvfb easyconfigs (#18834) + - statically link Boost 1.75 in Cufflinks v20190706 installed with `GCC/11.2.0`, so Boost can be changed to build dependency (#18843) + - add missing required PyPy dependency for Clair3, also copy preprocess and shared subdirectories, and enhance sanity check for provided libclair3 Python package (#18847) + - add patch to fix build of util-linux 2.39 on CentOS 7 (#18855) + - add patch to fix finding of tk.tcl for Tk 8.6.13 (#18864) + - add patch to fix issue with automatic detection of NeoverseV1 CPU architecture in OpenBLAS v0.3.20 (#18870) + - fix source URL for segemehl 0.3.4 (#18878) + - avoid use of hardcoded paths for Pillow by using `--disable-platform-guessing` option (#18881) + - add patch to disable flaky DDRGES3 LAPACK test in OpenBLAS 0.3.23 + 0.3.24 (#18887) + - add alternate checksum for NCCL v2.18.3 (#18906) + - add missing dependencies for MONAI to support extras required by MONAI-Label (#18921) + - make sure Python dependency included for ESPResSo is actually used by specifying `-DPYTHON_EXECUTABLE` (#18963) + - only add tbb as dependency in recent LAMMPS easyconfigs when installing on x86_64 (#19000) + - detect the correct Python for vcflib (#19001) + - fix invalid pointer access in UCX 1.11-1.14 (#19023) + - disable threadedmpi in recent SCOTCH easyconfigs using gompi toolchain (#19024) + - add missing GSL dependency for casacore 3.4.0 (#19042) + - fix pybind11 incompatibility with some CUDA versions and add Catch2 dependency for tests (#19047) + - enable `-fPIC` in easyconfig for libwebp 1.3.2 (#19098) +- other changes: + - remove 'cstd': 'c++17' as that's the default in GCC 11 (#18941, #18942, #18943, #18944, #18945, #18946) + - rename CVS to ConcurrentVersionsSystem, to avoid problems with recent setuptools versions (#18985) + - use sysroot template in wget easyconfigs to define PKG_CONFIG_PATH (#19080) + + v4.8.1 (11 September 2023) -------------------------- diff --git a/easybuild/easyconfigs/a/ACT/ACT-18.0.2-Java-11.eb b/easybuild/easyconfigs/a/ACT/ACT-18.0.2-Java-11.eb deleted file mode 100644 index 0ede9d4bbab..00000000000 --- a/easybuild/easyconfigs/a/ACT/ACT-18.0.2-Java-11.eb +++ /dev/null @@ -1,26 +0,0 @@ -easyblock = 'PackedBinary' - -name = 'ACT' -version = '18.0.2' -versionsuffix = '-Java-%(javaver)s' - -homepage = 'http://sanger-pathogens.github.io/Artemis/ACT/' -description = """ ACT is a Java application for displaying pairwise comparisons between two or more DNA sequences. - It can be used to identify and analyse regions of similarity and difference between genomes - and to explore conservation of synteny, in the context of the entire sequences and their annotation. - It can read complete EMBL, GENBANK and GFF entries or sequences in FASTA or raw format. """ - -toolchain = SYSTEM - -source_urls = ['https://github.com/sanger-pathogens/Artemis/releases/download/v%(version)s/'] -sources = ['artemis-unix-release-%(version)s.tar.gz'] -checksums = ['1cb9f36af4c96ae3bde4fa849e01e66c830d4b968867e7842abbab9195b57e60'] - -dependencies = [('Java', '11')] - -sanity_check_paths = { - 'files': ['act', 'art'], - 'dirs': [], -} - -moduleclass = 'bio' diff --git a/easybuild/easyconfigs/a/ACT/ACT-18.0.3-Java-11.eb b/easybuild/easyconfigs/a/ACT/ACT-18.0.3-Java-11.eb deleted file mode 100644 index ba982a15488..00000000000 --- a/easybuild/easyconfigs/a/ACT/ACT-18.0.3-Java-11.eb +++ /dev/null @@ -1,33 +0,0 @@ -easyblock = 'PackedBinary' - -name = 'ACT' -version = '18.0.3' -versionsuffix = '-Java-%(javaver)s' - -homepage = 'https://sanger-pathogens.github.io/Artemis/ACT/' -description = """ ACT is a Java application for displaying pairwise comparisons between two or more DNA sequences. - It can be used to identify and analyse regions of similarity and difference between genomes - and to explore conservation of synteny, in the context of the entire sequences and their annotation. - It can read complete EMBL, GENBANK and GFF entries or sequences in FASTA or raw format. """ - -toolchain = SYSTEM - -source_urls = ['https://github.com/sanger-pathogens/Artemis/releases/download/v%(version)s/'] -sources = ['artemis-unix-release-%(version)s.tar.gz'] -checksums = ['2603e6daf123c866817fcc22d4577244787349913cebc7acecbcc2e059a8e15c'] - -dependencies = [('Java', '11')] - -sanity_check_paths = { - 'files': ['act', 'art'], - 'dirs': [], -} - -# act -help returns exit-code 1, but it is valid working executable. -# Workaround is to grep phrase from help command output -# https://github.com/sanger-pathogens/Artemis/issues/296 -sanity_check_commands = [ - "act -help | grep -q 'EXAMPLES'" -] - -moduleclass = 'bio' diff --git a/easybuild/easyconfigs/a/ALL/ALL-0.9.2-foss-2022b.eb b/easybuild/easyconfigs/a/ALL/ALL-0.9.2-foss-2022b.eb new file mode 100644 index 00000000000..a528178aeec --- /dev/null +++ b/easybuild/easyconfigs/a/ALL/ALL-0.9.2-foss-2022b.eb @@ -0,0 +1,41 @@ +easyblock = 'CMakeMake' + +name = 'ALL' +version = '0.9.2' + +homepage = 'https://gitlab.jsc.fz-juelich.de/SLMS/loadbalancing' +description = """A Load Balancing Library (ALL) aims to provide an easy way to include dynamic +domain-based load balancing into particle based simulation codes. The library +is developed in the Simulation Laboratory Molecular Systems of the Jülich +Supercomputing Centre at Forschungszentrum Jülich.""" + +toolchain = {'name': 'foss', 'version': '2022b'} +toolchainopts = {'usempi': True} + +source_urls = ["https://gitlab.jsc.fz-juelich.de/SLMS/loadbalancing/-/archive/v%(version)s/"] +sources = ['loadbalancing-v%(version)s.tar.gz'] +checksums = ['2b4ef52c604c3c0c467712d0912a33c82177610b67edc14df1e034779c6ddb71'] + +builddependencies = [ + ('CMake', '3.24.3'), + ('Boost', '1.81.0'), # only needed for tests +] + +dependencies = [ + ('VTK', '9.2.6'), +] + +configopts = '-DCM_ALL_FORTRAN=ON -DCM_ALL_USE_F08=ON -DCM_ALL_VORONOI=ON -DCM_ALL_VTK_OUTPUT=ON ' +configopts += '-DCM_ALL_TESTS=ON -DCM_ALL_AUTO_DOC=OFF -DVTK_DIR=$EBROOTVTK ' + +runtest = 'test' + +sanity_check_paths = { + 'files': [ + 'include/ALL.hpp', 'include/ALL_Voronoi.hpp', 'lib/all_module.mod', + 'lib/libALL.a', 'lib/libALL_fortran.a' + ], + 'dirs': ['lib/cmake'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/a/AOFlagger/AOFlagger-3.4.0-foss-2022a.eb b/easybuild/easyconfigs/a/AOFlagger/AOFlagger-3.4.0-foss-2022a.eb new file mode 100644 index 00000000000..eeb528a357b --- /dev/null +++ b/easybuild/easyconfigs/a/AOFlagger/AOFlagger-3.4.0-foss-2022a.eb @@ -0,0 +1,42 @@ +easyblock = 'CMakeMake' + +name = 'AOFlagger' +version = '3.4.0' + +homepage = 'https://aoflagger.readthedocs.io/' +description = """The AOFlagger is a tool that can find and remove radio-frequency interference (RFI) +in radio astronomical observations. It can make use of Lua scripts to make flagging strategies flexible, +and the tools are applicable to a wide set of telescopes.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +sources = [{ + 'source_urls': ['https://gitlab.com/aroffringa/aoflagger/-/package_files/96704214/'], + 'filename': '%(namelower)s-v%(version)s.tar.bz2', + 'download_filename': 'download' # provided source tarball is not versioned... +}] +checksums = ['9560b7381b68f37d842599f222a8aa2a5d3d3d501d1277471e1a0ba3d7b2aeba'] + +builddependencies = [ + ('CMake', '3.24.3'), +] +dependencies = [ + ('casacore', '3.5.0'), + ('Boost', '1.79.0'), + ('CFITSIO', '4.2.0'), + ('GSL', '2.7'), + ('HDF5', '1.12.2'), + ('Python', '3.10.4'), + ('Lua', '5.4.4'), + ('libpng', '1.6.37'), + ('libxml2', '2.9.13'), +] + +sanity_check_paths = { + 'files': ['include/aoflagger.h', 'bin/aoflagger'], + 'dirs': ['bin'], +} + +sanity_check_commands = [('aoflagger', '-v')] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/a/ASAP3/ASAP3-3.13.2-foss-2023a.eb b/easybuild/easyconfigs/a/ASAP3/ASAP3-3.13.2-foss-2023a.eb new file mode 100644 index 00000000000..b65c2f93441 --- /dev/null +++ b/easybuild/easyconfigs/a/ASAP3/ASAP3-3.13.2-foss-2023a.eb @@ -0,0 +1,36 @@ +easyblock = "PythonPackage" + +name = 'ASAP3' +version = '3.13.2' + +homepage = 'https://wiki.fysik.dtu.dk/asap/' +description = """ASAP is a calculator for doing large-scale classical molecular +dynamics within the Campos Atomic Simulation Environment (ASE).""" + +toolchain = {'name': 'foss', 'version': '2023a'} +toolchainopts = {'pic': True, 'usempi': True, 'openmp': False} + +sources = [SOURCELOWER_TAR_GZ] +checksums = ['c2e6f0570de8037be45afd9bf35f6b4e76e1f518a0af0207c6bf5809ddb1abb8'] + +builddependencies = [ + ('pkgconf', '1.9.5'), +] + +dependencies = [ + ('Python', '3.11.3'), + ('SciPy-bundle', '2023.07'), + ('ASE', '3.22.1'), + ('kim-api', '2.3.0'), +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/%(namelower)s'] +} + +moduleclass = 'phys' diff --git a/easybuild/easyconfigs/a/ASCAT/ASCAT-3.1.2-foss-2022b-R-4.2.2.eb b/easybuild/easyconfigs/a/ASCAT/ASCAT-3.1.2-foss-2022b-R-4.2.2.eb new file mode 100644 index 00000000000..d8d12897241 --- /dev/null +++ b/easybuild/easyconfigs/a/ASCAT/ASCAT-3.1.2-foss-2022b-R-4.2.2.eb @@ -0,0 +1,30 @@ +easyblock = 'RPackage' + +name = 'ASCAT' +version = '3.1.2' +versionsuffix = '-R-%(rver)s' + +homepage = 'https://github.com/VanLoo-lab/ascat' +description = """ASCAT is a method to derive copy number profiles of tumor cells, + accounting for normal cell admixture and tumor aneuploidy.""" + +toolchain = {'name': 'foss', 'version': '2022b'} + +source_urls = ['https://github.com/VanLoo-lab/ascat/archive/refs/tags/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['5d65aef417ad12ea0e638b4179def5a9b8f25e1ccd757e41a6509534fe20eb17'] + +dependencies = [ + ('R', '4.2.2'), + ('R-bundle-Bioconductor', '3.16', versionsuffix), + ('alleleCount', '4.3.0'), +] + +start_dir = '%(name)s' + +sanity_check_paths = { + 'files': [], + 'dirs': ['%(name)s'] +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/a/ASE/ASE-3.22.1-gfbf-2023a.eb b/easybuild/easyconfigs/a/ASE/ASE-3.22.1-gfbf-2023a.eb new file mode 100644 index 00000000000..d63319385b2 --- /dev/null +++ b/easybuild/easyconfigs/a/ASE/ASE-3.22.1-gfbf-2023a.eb @@ -0,0 +1,64 @@ +easyblock = 'PythonBundle' + +name = 'ASE' +version = '3.22.1' + +homepage = 'https://wiki.fysik.dtu.dk/ase' +description = """ASE is a python package providing an open source Atomic Simulation Environment + in the Python scripting language. + +From version 3.20.1 we also include the ase-ext package, it contains optional reimplementations +in C of functions in ASE. ASE uses it automatically when installed.""" + +toolchain = {'name': 'gfbf', 'version': '2023a'} + +dependencies = [ + ('Python', '3.11.3'), + ('Python-bundle-PyPI', '2023.06'), + ('SciPy-bundle', '2023.07'), + ('Flask', '2.3.3'), + ('matplotlib', '3.7.2'), + ('Tkinter', '%(pyver)s'), # Needed by GUI of ASE + ('spglib-python', '2.1.0'), # optional +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('pytest-mock', '3.11.1', { + 'checksums': ['7f6b125602ac6d743e523ae0bfa71e1a697a2f5534064528c6ff84c2f7c2fc7f'], + }), + ('ase', version, { + 'patches': [ + 'ASE-3.22.1-Compatibility-with-pytest-from-Python-3-10.patch', + 'ASE-3.22.1-Compatibility-with-pytest-part-2.patch', + 'ASE-3.22.1-Compatibility-with-Scipy-2022-05.patch', + 'ASE-3.22.1-Compatibility-with-Flask-2-2-2.patch', + ], + 'checksums': [ + {'ase-3.22.1.tar.gz': '004df6b0ea04b1114c790fadfe45d4125eb0e53125c66a93425af853d82ab432'}, + {'ASE-3.22.1-Compatibility-with-pytest-from-Python-3-10.patch': + '8184765ecc9e14081b183fee5c4470da716d77caa67c25164018ac1fdd225eac'}, + {'ASE-3.22.1-Compatibility-with-pytest-part-2.patch': + '3a3473912f5f96ffc625119d87227781ba4ea581de15d4af6a58ba960cdf4601'}, + {'ASE-3.22.1-Compatibility-with-Scipy-2022-05.patch': + 'c1cb07160b063d432f098efd40dd4b3c9f015b7966572c838a908613a482e0c8'}, + {'ASE-3.22.1-Compatibility-with-Flask-2-2-2.patch': + '2a05f98291dc970cb759904988783d1ecc3512ba6a0da852af1d3205667b398d'}, + ], + }), + ('ase-ext', '20.9.0', { + 'checksums': ['a348b0e42cf9fdd11f04b3df002b0bf150002c8df2698ff08d3c8fc7a1223aed'], + }), +] + +sanity_check_paths = { + 'files': ['bin/ase'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +# make sure Tkinter is available, otherwise 'ase gui' will not work +sanity_check_commands = ["python -c 'import tkinter' "] + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/a/Abseil/Abseil-20230125.2-GCCcore-11.3.0.eb b/easybuild/easyconfigs/a/Abseil/Abseil-20230125.2-GCCcore-11.3.0.eb index 48b976f0841..9359c052492 100644 --- a/easybuild/easyconfigs/a/Abseil/Abseil-20230125.2-GCCcore-11.3.0.eb +++ b/easybuild/easyconfigs/a/Abseil/Abseil-20230125.2-GCCcore-11.3.0.eb @@ -10,7 +10,7 @@ C++ code base, has been extensively tested and used in production, and is the same code we depend on in our daily coding lives.""" toolchain = {'name': 'GCCcore', 'version': '11.3.0'} -toolchainopts = {'pic': True, 'cstd': 'c++17'} +toolchainopts = {'pic': True} source_urls = ['https://github.com/abseil/abseil-cpp/archive/refs/tags'] sources = ['%(version)s.tar.gz'] diff --git a/easybuild/easyconfigs/a/Abseil/Abseil-20230125.2-GCCcore-12.2.0.eb b/easybuild/easyconfigs/a/Abseil/Abseil-20230125.2-GCCcore-12.2.0.eb index bb35f74269d..4c79a033123 100644 --- a/easybuild/easyconfigs/a/Abseil/Abseil-20230125.2-GCCcore-12.2.0.eb +++ b/easybuild/easyconfigs/a/Abseil/Abseil-20230125.2-GCCcore-12.2.0.eb @@ -10,7 +10,7 @@ C++ code base, has been extensively tested and used in production, and is the same code we depend on in our daily coding lives.""" toolchain = {'name': 'GCCcore', 'version': '12.2.0'} -toolchainopts = {'pic': True, 'cstd': 'c++17'} +toolchainopts = {'pic': True} source_urls = ['https://github.com/abseil/abseil-cpp/archive/refs/tags'] sources = ['%(version)s.tar.gz'] diff --git a/easybuild/easyconfigs/a/Abseil/Abseil-20230125.3-GCCcore-12.3.0.eb b/easybuild/easyconfigs/a/Abseil/Abseil-20230125.3-GCCcore-12.3.0.eb index c50c396f801..3ad5e5c79b6 100644 --- a/easybuild/easyconfigs/a/Abseil/Abseil-20230125.3-GCCcore-12.3.0.eb +++ b/easybuild/easyconfigs/a/Abseil/Abseil-20230125.3-GCCcore-12.3.0.eb @@ -10,7 +10,7 @@ C++ code base, has been extensively tested and used in production, and is the same code we depend on in our daily coding lives.""" toolchain = {'name': 'GCCcore', 'version': '12.3.0'} -toolchainopts = {'pic': True, 'cstd': 'c++17'} +toolchainopts = {'pic': True} source_urls = ['https://github.com/abseil/abseil-cpp/archive/refs/tags'] sources = ['%(version)s.tar.gz'] diff --git a/easybuild/easyconfigs/a/Amber/Amber-22.4-foss-2022a-AmberTools-22.5-CUDA-11.7.0.eb b/easybuild/easyconfigs/a/Amber/Amber-22.4-foss-2022a-AmberTools-22.5-CUDA-11.7.0.eb new file mode 100644 index 00000000000..61dca38c61d --- /dev/null +++ b/easybuild/easyconfigs/a/Amber/Amber-22.4-foss-2022a-AmberTools-22.5-CUDA-11.7.0.eb @@ -0,0 +1,99 @@ +name = 'Amber' +local_amber_ver = 22 +local_ambertools_ver = 22 +# Patch levels from https://ambermd.org/AmberPatches.php and https://ambermd.org/ATPatches.php +patchlevels = (5, 4) # (AmberTools, Amber) +version = '%s.%s' % (local_amber_ver, patchlevels[1]) +versionsuffix = '-AmberTools-%s.%s-CUDA-%%(cudaver)s' % (local_ambertools_ver, patchlevels[0]) + +homepage = 'https://ambermd.org/amber.html' +description = """Amber (originally Assisted Model Building with Energy Refinement) is software for performing + molecular dynamics and structure prediction.""" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'usempi': True, 'openmp': True} + +sources = [ + '%%(name)s%s.tar.bz2' % local_amber_ver, + {'filename': 'AmberTools%s.tar.bz2' % local_ambertools_ver, 'alt_location': 'AmberTools'}, +] +patches = [ + {'name': 'AmberTools-20_cmake-locate-netcdf.patch', 'alt_location': 'AmberTools'}, + {'name': 'AmberTools-20_fix_missing_MPI_LIBRARY_error.patch', 'alt_location': 'AmberTools'}, + {'name': 'AmberTools-20_fix_xblas_missing_make_dependency.patch', 'alt_location': 'AmberTools'}, + {'name': 'AmberTools-21_CMake-FlexiBLAS.patch', 'alt_location': 'AmberTools'}, + {'name': 'AmberTools-21_fix_DGESVD_workspace_query.patch', 'alt_location': 'AmberTools'}, + {'name': 'AmberTools-21_fix_incorrect_dvout_call.patch', 'alt_location': 'AmberTools'}, + {'name': 'AmberTools-21_fix_incorrect_mexit_calls.patch', 'alt_location': 'AmberTools'}, + {'name': 'AmberTools-21_fix_more_blas_argument_problems.patch', 'alt_location': 'AmberTools'}, + {'name': 'AmberTools-21_fix_multiple_definition.patch', 'alt_location': 'AmberTools'}, + {'name': 'AmberTools-21_fix_potential_use_before_init.patch', 'alt_location': 'AmberTools'}, + {'name': 'AmberTools-21_fix_rism_argument_mismatch.patch', 'alt_location': 'AmberTools'}, + {'name': 'AmberTools-21_fix_xray_fftpack_arg_mismatch.patch', 'alt_location': 'AmberTools'}, + {'name': 'AmberTools-22_fix_test_missing_cuda_dir.patch', 'alt_location': 'AmberTools'}, + {'name': 'AmberTools-22_fix_missing_error_check_on_test_run.patch', 'alt_location': 'AmberTools'}, + 'Amber-22_reduce_precision_of_kmmd_test.patch', + 'Amber-22_remove_undeclared_redundant_variable.patch', +] +checksums = [ + '3c887ccbad690fc76ff0b120a3448eae023c08e76582aac07900d4a9708ebd16', # Amber22.tar.bz2 + '1571d4e0f7d45b2a71dce5999fa875aea8c90ee219eb218d7916bf30ea229121', # AmberTools22.tar.bz2 + '473e07c53b6f641d96d333974a6af2e03413fecef79f879d3fdecf7fecaab4d0', # AmberTools-20_cmake-locate-netcdf.patch + # AmberTools-20_fix_missing_MPI_LIBRARY_error.patch + '0b89a0624167bc23876bcdefcb1055f591e38e3bd559a71d5749e342bd311acc', + # AmberTools-20_fix_xblas_missing_make_dependency.patch + 'ff25e91fdc72347a778c3837b581e174d6a8c71efa5b46e11391b18bca84fd65', + '9543812c24c4b7842f64f1f8abaf2c92b5c4c0fadcdbd9811e76b81a778f0d36', # AmberTools-21_CMake-FlexiBLAS.patch + # AmberTools-21_fix_DGESVD_workspace_query.patch + '560c73e9d8bd159c609098c63a0256cdee78f49e524d06ea94d16d3146f69bcd', + '1054d4007f5c79126a41582e1e80514267cf406416ed6c471574cd708b16319b', # AmberTools-21_fix_incorrect_dvout_call.patch + 'd1de8c596119dcedbb809515816f0c98762306c469e9caf2c0b878d9b0a1095f', # AmberTools-21_fix_incorrect_mexit_calls.patch + # AmberTools-21_fix_more_blas_argument_problems.patch + 'c6279b57752239184b942d37f760749494ae0eff95236f3368c76ac0d2726a7c', + 'ce30eeaba9feea53aa115e4b0dcc5be943b8a55abe322480c807ca7ea963d83b', # AmberTools-21_fix_multiple_definition.patch + # AmberTools-21_fix_potential_use_before_init.patch + '377e645b5bd2c91ebb4d0b6fbca0407a94289e5ddc5b1e7ed0cb0b0724ad2139', + # AmberTools-21_fix_rism_argument_mismatch.patch + '14255e5739cec39303df570f06820c7532f7395e1b73b1e4104377984e2c9fc1', + # AmberTools-21_fix_xray_fftpack_arg_mismatch.patch + '99c954e693659efc2a1d121f91510f56408006f0751d91595f45a34b03364e2f', + 'fb1ab74314d7816169bb9f3f527b78085654aae2825c52cebf50a5760401b737', # AmberTools-22_fix_test_missing_cuda_dir.patch + # AmberTools-22_fix_missing_error_check_on_test_run.patch + 'a86eee60bd65c16a849469e303cb99dfc207cbadd2ae9e70b9ff580ced785475', + 'b5855866c63c2ee860a5e6ad6f618ac4dab7072f5caae95769d4b2457d616a8e', # Amber-22_reduce_precision_of_kmmd_test.patch + # Amber-22_remove_undeclared_redundant_variable.patch + 'b94900c2178dd6dbf2824b17074980a3e5e6e71b38c0b2b30e1f147e4e1ac8cb', +] + +builddependencies = [ + ('CMake', '3.23.1'), + ('Bison', '3.8.2'), + ('flex', '2.6.4'), + ('make', '4.3'), +] + +dependencies = [ + ('zlib', '1.2.12'), + ('bzip2', '1.0.8'), + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), # mpi4py required for MMPBSA + ('Perl', '5.34.1'), + ('Boost', '1.79.0'), + ('libreadline', '8.1.2'), + ('matplotlib', '3.5.2'), + ('netCDF', '4.9.0'), + ('netCDF-Fortran', '4.6.0'), + ('PnetCDF', '1.12.3'), + ('Tkinter', '3.10.4'), + ('X11', '20220504'), + ('CUDA', '11.7.0', '', SYSTEM), + ('NCCL', '2.12.12', '-CUDA-%(cudaver)s'), + ('UCX-CUDA', '1.12.1', '-CUDA-%(cudaver)s'), +] + +# Some CUDA tests differs from expected results +runtest = False + +static = False + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/a/Anaconda3/Anaconda3-2023.09-0.eb b/easybuild/easyconfigs/a/Anaconda3/Anaconda3-2023.09-0.eb new file mode 100644 index 00000000000..524403e9fc3 --- /dev/null +++ b/easybuild/easyconfigs/a/Anaconda3/Anaconda3-2023.09-0.eb @@ -0,0 +1,32 @@ +# author: Jillian Rowe +# config upgrade to v5.1.0 by Adam Huffman +# config upgrade to v5.0.1, v5.3.0, 2018.12, 2019.07, +# 2019.10, 2020.2, 2020.11, 2022.05, +# 2022.10 by J. Hein +# config upgrade to 2019.03 by Davide Vanzo +# config upgrade to 2023.09 by Sarah Walters +easyblock = 'EB_Anaconda' + +name = 'Anaconda3' +version = '2023.09-0' + +homepage = 'https://www.anaconda.com' +description = """Built to complement the rich, open source Python community, +the Anaconda platform provides an enterprise-ready data analytics platform +that empowers companies to adopt a modern open data science analytics architecture. +""" + +toolchain = SYSTEM + +source_urls = ['https://repo.anaconda.com/archive/'] +local_arch = {'arm64': 'aarch64'}.get(ARCH, ARCH) +sources = ['%%(name)s-%%(version)s-Linux-%s.sh' % local_arch] +checksums = [ + { + '%(name)s-%(version)s-Linux-x86_64.sh': '6c8a4abb36fbb711dc055b7049a23bbfd61d356de9468b41c5140f8a11abd851', + '%(name)s-%(version)s-Linux-ppc64le.sh': '5ea1ed9808af95eb2655fe6a4ffdb66bea66ecd1d053fc2ee69eacc7685ef665', + '%(name)s-%(version)s-Linux-aarch64.sh': '69ee26361c1ec974199bce5c0369e3e9a71541de7979d2b9cfa4af556d1ae0ea', + } +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/a/Arrow/Arrow-8.0.0-foss-2021a.eb b/easybuild/easyconfigs/a/Arrow/Arrow-8.0.0-foss-2021a.eb new file mode 100644 index 00000000000..8c7316d60a9 --- /dev/null +++ b/easybuild/easyconfigs/a/Arrow/Arrow-8.0.0-foss-2021a.eb @@ -0,0 +1,71 @@ +easyblock = 'CMakeMake' + +name = 'Arrow' +version = '8.0.0' + +homepage = 'https://arrow.apache.org' +description = """Apache Arrow (incl. PyArrow Python bindings), a cross-language development platform + for in-memory data.""" + +toolchain = {'name': 'foss', 'version': '2021a'} + +source_urls = ['https://archive.apache.org/dist/%(namelower)s/%(namelower)s-%(version)s'] +sources = ['apache-arrow-%(version)s.tar.gz'] +checksums = ['ad9a05705117c989c116bae9ac70492fe015050e1b80fb0e38fde4b5d863aaa3'] + +builddependencies = [ + ('CMake', '3.20.1'), + ('Autotools', '20210128'), + ('flex', '2.6.4'), + ('Bison', '3.7.6'), + ('pkgconf', '1.8.0'), +] + +# Arrow strongly prefers included jemalloc, so not including it as a dependency +dependencies = [ + ('Python', '3.9.5'), + ('SciPy-bundle', '2021.05'), # for numpy + ('Boost', '1.76.0'), + ('lz4', '1.9.3'), + ('zlib', '1.2.11'), + ('bzip2', '1.0.8'), + ('zstd', '1.4.9'), + ('snappy', '1.1.8'), + ('RapidJSON', '1.1.0'), + ('RE2', '2022-02-01'), + ('utf8proc', '2.6.1'), +] + +start_dir = 'cpp' + +# see https://arrow.apache.org/docs/developers/python.html +configopts = "-DARROW_DATASET=on -DARROW_PYTHON=on -DARROW_PARQUET=ON -DARROW_WITH_SNAPPY=ON " +configopts += "-DCMAKE_INSTALL_LIBDIR=lib -DPython3_ROOT_DIR=$EBROOTPYTHON " +configopts += "-DARROW_WITH_ZLIB=ON -DARROW_WITH_BZ2=ON -DARROW_WITH_ZSTD=ON -DARROW_WITH_LZ4=ON " +configopts += "-DZSTD_ROOT=$EBROOTZSTD " + +# also install Python bindings +local_install_pyarrow_cmds = "export PKG_CONFIG_PATH=%(installdir)s/lib/pkgconfig:$PKG_CONFIG_PATH && " +local_install_pyarrow_cmds += "export PYTHONPATH=%(installdir)s/lib/python%(pyshortver)s/site-packages:$PYTHONPATH && " +local_install_pyarrow_cmds += "cd %(builddir)s/*arrow-%(version)s/python && export XDG_CACHE_HOME=$TMPDIR && " +local_install_pyarrow_cmds += "sed -i 's/numpy==[0-9.]*/numpy/g' pyproject.toml && " +local_install_pyarrow_cmds += "Python3_ROOT_DIR=$EBROOTPYTHON " +local_install_pyarrow_cmds += "PYARROW_WITH_DATASET=1 PYARROW_WITH_PARQUET=1 " +local_install_pyarrow_cmds += "python -m pip install --prefix %(installdir)s --no-build-isolation ." +postinstallcmds = [local_install_pyarrow_cmds] + +modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'} + +sanity_check_paths = { + 'files': ['lib/libarrow.a', 'lib/libarrow.%s' % SHLIB_EXT, + 'lib/libarrow_python.a', 'lib/libarrow_python.%s' % SHLIB_EXT], + 'dirs': ['include/arrow', 'lib/cmake/arrow', 'lib/pkgconfig', 'lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + "python -c 'import pyarrow'", + "python -c 'import pyarrow.dataset'", + "python -c 'import pyarrow.parquet'", +] + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/a/Artemis/Artemis-18.0.2-Java-11.eb b/easybuild/easyconfigs/a/Artemis/Artemis-18.0.2-Java-11.eb new file mode 100644 index 00000000000..d851e2aa64b --- /dev/null +++ b/easybuild/easyconfigs/a/Artemis/Artemis-18.0.2-Java-11.eb @@ -0,0 +1,31 @@ +easyblock = 'PackedBinary' + +name = 'Artemis' +version = '18.0.2' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'http://sanger-pathogens.github.io/Artemis/' +description = """The Artemis Software is a set of software tools for genome browsing and annotation. + It includes: Artemis, Artemis Comparison Tool (ACT), BamView and DNAPlotter.""" + +toolchain = SYSTEM + +source_urls = ['https://github.com/sanger-pathogens/%(name)s/releases/download/v%(version)s/'] +sources = ['%(namelower)s-unix-release-%(version)s.tar.gz'] +checksums = ['1cb9f36af4c96ae3bde4fa849e01e66c830d4b968867e7842abbab9195b57e60'] + +dependencies = [('Java', '11')] + +sanity_check_paths = { + 'files': ['act', 'art', 'bamview', 'dnaplotter'], + 'dirs': [], +} + +# act -help returns exit-code 1, but it is valid working executable. +# Workaround is to grep phrase from help command output +# https://github.com/sanger-pathogens/Artemis/issues/296 +sanity_check_commands = [ + "act -help | grep -q 'EXAMPLES'" +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/a/Artemis/Artemis-18.0.3-Java-11.eb b/easybuild/easyconfigs/a/Artemis/Artemis-18.0.3-Java-11.eb new file mode 100644 index 00000000000..58cd4cbcce6 --- /dev/null +++ b/easybuild/easyconfigs/a/Artemis/Artemis-18.0.3-Java-11.eb @@ -0,0 +1,31 @@ +easyblock = 'PackedBinary' + +name = 'Artemis' +version = '18.0.3' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'http://sanger-pathogens.github.io/Artemis/' +description = """The Artemis Software is a set of software tools for genome browsing and annotation. + It includes: Artemis, Artemis Comparison Tool (ACT), BamView and DNAPlotter.""" + +toolchain = SYSTEM + +source_urls = ['https://github.com/sanger-pathogens/%(name)s/releases/download/v%(version)s/'] +sources = ['%(namelower)s-unix-release-%(version)s.tar.gz'] +checksums = ['2603e6daf123c866817fcc22d4577244787349913cebc7acecbcc2e059a8e15c'] + +dependencies = [('Java', '11')] + +sanity_check_paths = { + 'files': ['act', 'art', 'bamview', 'dnaplotter'], + 'dirs': [], +} + +# act -help returns exit-code 1, but it is valid working executable. +# Workaround is to grep phrase from help command output +# https://github.com/sanger-pathogens/Artemis/issues/296 +sanity_check_commands = [ + "act -help | grep -q 'EXAMPLES'" +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/a/Artemis/Artemis-18.2.0-Java-11.eb b/easybuild/easyconfigs/a/Artemis/Artemis-18.2.0-Java-11.eb new file mode 100644 index 00000000000..4e8a42fd6f8 --- /dev/null +++ b/easybuild/easyconfigs/a/Artemis/Artemis-18.2.0-Java-11.eb @@ -0,0 +1,30 @@ +easyblock = 'PackedBinary' + +name = 'Artemis' +version = '18.2.0' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'http://sanger-pathogens.github.io/Artemis/' +description = """The Artemis Software is a set of software tools for genome browsing and annotation. + It includes: Artemis, Artemis Comparison Tool (ACT), BamView and DNAPlotter.""" + +toolchain = SYSTEM + +source_urls = ['https://github.com/sanger-pathogens/%(name)s/releases/download/v%(version)s/'] +sources = ['%(namelower)s-unix-release-%(version)s.tar.gz'] +checksums = ['06441e1abab139cb0a09d5844cb1b84ae727ace53a6c0efdd1eea8d8cfab8382'] + +dependencies = [('Java', '11')] + +sanity_check_paths = { + 'files': ['act', 'art', 'bamview', 'dnaplotter'], + 'dirs': [], +} + +sanity_check_commands = [ + "act --help", + "art --help", + "dnaplotter --help", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/a/ArviZ/ArviZ-0.12.1-foss-2021a.eb b/easybuild/easyconfigs/a/ArviZ/ArviZ-0.12.1-foss-2021a.eb new file mode 100644 index 00000000000..68de3de1a5e --- /dev/null +++ b/easybuild/easyconfigs/a/ArviZ/ArviZ-0.12.1-foss-2021a.eb @@ -0,0 +1,34 @@ +easyblock = 'PythonBundle' + +name = 'ArviZ' +version = '0.12.1' + +homepage = 'https://github.com/arviz-devs/arviz' +description = "Exploratory analysis of Bayesian models with Python" + +toolchain = {'name': 'foss', 'version': '2021a'} + +dependencies = [ + ('Python', '3.9.5'), + ('SciPy-bundle', '2021.05'), # numpy, scipy, pandas + ('netcdf4-python', '1.5.7'), + ('xarray', '0.19.0'), + ('matplotlib', '3.4.2'), + ('typing-extensions', '3.10.0.0'), +] + +use_pip = True + +exts_list = [ + ('xarray-einstats', '0.5.0', { + 'checksums': ['3f799ead32bb28ce4e9b3cf95c2daa9c2040f06b25a34f8f2cd303f0268445ed'], + }), + (name, version, { + 'sources': ['%(namelower)s-%(version)s.tar.gz'], + 'checksums': ['57d80eacc51909f18e6ab63c96a6b02227c3b077c5ffa406d5f4dabe03b8f019'], + }), +] + +sanity_pip_check = True + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/a/ArviZ/ArviZ-0.16.1-foss-2023a.eb b/easybuild/easyconfigs/a/ArviZ/ArviZ-0.16.1-foss-2023a.eb new file mode 100644 index 00000000000..af5291fdab6 --- /dev/null +++ b/easybuild/easyconfigs/a/ArviZ/ArviZ-0.16.1-foss-2023a.eb @@ -0,0 +1,35 @@ +easyblock = 'PythonBundle' + +name = 'ArviZ' +version = '0.16.1' + +homepage = 'https://github.com/arviz-devs/arviz' +description = "Exploratory analysis of Bayesian models with Python" + +toolchain = {'name': 'foss', 'version': '2023a'} + +dependencies = [ + ('Python', '3.11.3'), + ('SciPy-bundle', '2023.07'), # numpy, scipy, pandas + ('netcdf4-python', '1.6.4'), + ('xarray', '2023.9.0'), + ('matplotlib', '3.7.2'), + ('h5netcdf', '1.2.0'), +] + +use_pip = True + +exts_list = [ + ('xarray-einstats', '0.6.0', { + 'sources': ['xarray_einstats-%(version)s.tar.gz'], + 'checksums': ['ace90601505cfbe2d374762e674557ed14e1725b024823372f7ef9fd237effad'], + }), + (name, version, { + 'sources': ['%(namelower)s-%(version)s.tar.gz'], + 'checksums': ['35bab9072f66f5a8204d2a71911d09ce05056c177f1a780de53efa2714c27575'], + }), +] + +sanity_pip_check = True + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/a/alleleCount/alleleCount-4.3.0-GCC-12.2.0.eb b/easybuild/easyconfigs/a/alleleCount/alleleCount-4.3.0-GCC-12.2.0.eb new file mode 100644 index 00000000000..3ff0a8ddd2f --- /dev/null +++ b/easybuild/easyconfigs/a/alleleCount/alleleCount-4.3.0-GCC-12.2.0.eb @@ -0,0 +1,89 @@ +## +# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild +# +# Author: Jonas Demeulemeester +# The Francis Crick Institute, London, UK +## + +easyblock = 'ConfigureMake' + +name = 'alleleCount' +version = '4.3.0' + +homepage = 'http://cancerit.github.io/alleleCount/' +description = """ The alleleCount package primarily exists to prevent code duplication +between some other projects, specifically AscatNGS and Battenberg. As of v4 the perl +code wraps the C implementation of allele counting code for BAM/CRAM processing. """ + +toolchain = {'name': 'GCC', 'version': '12.2.0'} + +source_urls = ['https://github.com/cancerit/%(name)s/archive/v%(version)s'] +sources = ['v%(version)s.tar.gz'] +checksums = ['5363ae12c2385c962728336a4498b1a29c9eaa3d4a24492d0debf897771cfd3c'] + +# HTSlib 1.7 is built, used and removed again in the provided setup script +dependencies = [ + ('Perl', '5.36.0'), + ('HTSlib', '1.17'), + ('libdeflate', '1.15'), +] + +skipsteps = ['configure'] + +buildopts = "-C c && cd perl && perl Makefile.PL INSTALL_BASE=%(installdir)s " +preinstallopts = "cd perl && " +installopts = " && cd .. && cp -a c/bin/alleleCounter %(installdir)s/bin/" + +exts_defaultclass = 'PerlModule' +exts_filter = ("perl -e 'require %(ext_name)s'", '') +exts_default_options = { + 'buildopts': '', + 'preinstallopts': '', + 'installopts': '', +} + +exts_list = [ + ('Const::Fast', '0.014', { + 'source_tmpl': 'Const-Fast-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT/'], + 'checksums': ['f805953a08c57846a16a4d85d7b766398afaf7c36c1465fcb1dea09e5fa394db'], + }), + ('Devel::Cover', '1.40', { + 'source_tmpl': 'Devel-Cover-%(version)s.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/P/PJ/PJCJ/'], + 'checksums': ['26e2f431fbcf7bff3851f352f83b84067c09ff206f40ab975cad8d2bafe711a8'], + }), + ('Pod::Coverage', '0.23', { + 'source_tmpl': 'Pod-Coverage-%(version)s.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RC/RCLAMP/'], + 'checksums': ['30b7a0b0c942f44a7552c0d34e9b1f2e0ba0b67955c61e3b1589ec369074b107'], + }), + ('Pod::Parser', '1.66', { + 'source_tmpl': 'Pod-Parser-%(version)s.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/M/MA/MAREKR/'], + 'checksums': ['22928a7bffe61b452c05bbbb8f5216d4b9cf9fe2a849b776c25500d24d20df7c'], + }), + ('Devel::Symdump', '2.18', { + 'source_tmpl': 'Devel-Symdump-%(version)s.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/A/AN/ANDK/'], + 'checksums': ['826f81a107f5592a2516766ed43beb47e10cc83edc9ea48090b02a36040776c0'], + }), +] + +postinstallcmds = ["chmod u+w %(installdir)s/bin/alleleCounter.pl"] + +fix_perl_shebang_for = ['bin/alleleCounter.pl'] + +sanity_check_paths = { + 'files': ['bin/alleleCounter', 'bin/alleleCounter.pl'], + 'dirs': ['lib/perl5'], +} + +sanity_check_commands = [ + "alleleCounter --help", + "alleleCounter.pl --help", +] + +modextrapaths = {'PERL5LIB': ['lib/perl5', 'lib/perl5/site_perl/%(perlver)s']} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/a/alleleIntegrator/alleleIntegrator-0.8.8-foss-2022b-R-4.2.2.eb b/easybuild/easyconfigs/a/alleleIntegrator/alleleIntegrator-0.8.8-foss-2022b-R-4.2.2.eb new file mode 100644 index 00000000000..cd4f3b1e0ea --- /dev/null +++ b/easybuild/easyconfigs/a/alleleIntegrator/alleleIntegrator-0.8.8-foss-2022b-R-4.2.2.eb @@ -0,0 +1,51 @@ +easyblock = 'Bundle' + +name = 'alleleIntegrator' +version = '0.8.8' +versionsuffix = '-R-%(rver)s' + +homepage = 'https://github.com/constantAmateur/alleleIntegrator' +description = 'R package to generate allele specific counts for scRNA data and use it to identify cancer cells' + +toolchain = {'name': 'foss', 'version': '2022b'} + +dependencies = [ + ('R', '4.2.2'), + ('alleleCount', '4.3.0'), + ('BCFtools', '1.17'), + ('parallel', '20230722'), + ('ASCAT', '3.1.2', versionsuffix) +] + +exts_defaultclass = 'RPackage' +exts_default_options = { + 'sources': ['%(name)s_%(version)s.tar.gz'], + '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 + ], +} + +exts_list = [ + ('grr', '0.9.5', { + 'checksums': ['292606de2983ac5840c90d3e0977441b482c9e73c1674b662f8b4fb8f3632b2b'], + }), + ('Matrix.utils', '0.9.8', { + 'checksums': ['ebc59d3ef751775515586ff1f2396e429a1e9d91a10099d804134fcf74c0ae28'], + }), + (name, version, { + 'source_urls': ['https://github.com/constantAmateur/alleleIntegrator/archive/'], + 'sources': [{'download_filename': '7bf7970.tar.gz', 'filename': '%(namelower)s-%(version)s.tar.gz'}], + 'checksums': ['9e852c37485548c27c8ce29b90d163818c394410874d459e4fd92f184e4ff004'], + }), +] + +sanity_check_paths = { + 'files': [], + 'dirs': [name], +} + +modextrapaths = {'R_LIBS_SITE': ''} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/a/anadama2/anadama2-0.10.0-foss-2022a.eb b/easybuild/easyconfigs/a/anadama2/anadama2-0.10.0-foss-2022a.eb new file mode 100644 index 00000000000..6a4a30dac5d --- /dev/null +++ b/easybuild/easyconfigs/a/anadama2/anadama2-0.10.0-foss-2022a.eb @@ -0,0 +1,40 @@ +easyblock = 'PythonBundle' + +name = 'anadama2' +version = '0.10.0' + +homepage = 'http://huttenhower.sph.harvard.edu/anadama2' +description = """AnADAMA2 is the next generation of AnADAMA +(Another Automated Data Analysis Management Application). AnADAMA is a tool to +create reproducible workflows and execute them efficiently.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = { + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('networkx', '2.8.4'), + ('LevelDB', '1.22'), + ('IPython', '8.5.0'), +} + +exts_list = [ + ('cloudpickle', '2.2.1', { + 'checksums': ['d89684b8de9e34a2a43b3460fbca07d09d6e25ce858df4d5a44240403b6178f5'], + }), + ('Markdown', '3.4.1', { + 'checksums': ['3b809086bb6efad416156e00a0da66fe47618a5d6918dd688f53f40c8e4cfeff'], + }), + ('Pweave', '0.30.3', { + 'checksums': ['5e5298d90e06414a01f48e0d6aa4c36a70c5f223d929f2a9c7e2d388451c7357'], + }), + (name, version, { + 'checksums': ['386c4d0f4c96bf078ac2b595bafcadaa43cd44cdb1a864dc8ebc42dc1664f87f'], + 'preinstallopts': 'sed -i "s/pweave==0.25/pweave/g" requirements.txt && ', + }), +] + +use_pip = True +sanity_pip_check = True + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/a/ant/ant-1.10.14-Java-11.eb b/easybuild/easyconfigs/a/ant/ant-1.10.14-Java-11.eb new file mode 100644 index 00000000000..dac2b969e10 --- /dev/null +++ b/easybuild/easyconfigs/a/ant/ant-1.10.14-Java-11.eb @@ -0,0 +1,27 @@ +easyblock = 'PackedBinary' + +name = 'ant' +version = '1.10.14' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'https://ant.apache.org/' +description = """Apache Ant is a Java library and command-line tool whose mission is to drive processes described in + build files as targets and extension points dependent upon each other. The main known usage of Ant is the build of + Java applications.""" + +toolchain = SYSTEM + +source_urls = ['https://archive.apache.org/dist/ant/binaries/'] +sources = ['apache-%(name)s-%(version)s-bin.tar.gz'] +checksums = ['e2852fddaaddc1ab76a099ca0d7b2ee47a907b8a91a64f70f6aa9e6a3d0dd504'] + +dependencies = [('Java', '11')] + +sanity_check_paths = { + 'files': ['bin/ant', 'lib/ant.jar'], + 'dirs': [], +} + +modextravars = {'ANT_HOME': '%(installdir)s'} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/a/attr/attr-2.5.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/a/attr/attr-2.5.1-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..078c65a6a5e --- /dev/null +++ b/easybuild/easyconfigs/a/attr/attr-2.5.1-GCCcore-12.3.0.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'attr' +version = '2.5.1' + +homepage = 'https://savannah.nongnu.org/projects/attr' + +description = """Commands for Manipulating Filesystem Extended Attributes""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +source_urls = [GNU_SAVANNAH_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['bae1c6949b258a0d68001367ce0c741cebdacdd3b62965d17e5eb23cd78adaf8'] + +builddependencies = [('binutils', '2.40')] + +sanity_check_paths = { + 'files': ['bin/attr', 'bin/getfattr', 'bin/setfattr', + 'include/%(name)s/attributes.h', 'include/%(name)s/error_context.h', + 'include/%(name)s/libattr.h', 'lib/libattr.a', + 'lib/libattr.%s' % SHLIB_EXT], + 'dirs': ['share'], +} + +sanity_check_commands = ["getfattr --help"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/b/BLAST+/BLAST+-2.14.1-gompi-2023a.eb b/easybuild/easyconfigs/b/BLAST+/BLAST+-2.14.1-gompi-2023a.eb new file mode 100644 index 00000000000..47c8e2d2ef6 --- /dev/null +++ b/easybuild/easyconfigs/b/BLAST+/BLAST+-2.14.1-gompi-2023a.eb @@ -0,0 +1,51 @@ +# # +# EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos , Kenneth Hoste (UGent) +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of +# the policy: https://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-94.html +# # + +easyblock = 'ConfigureMake' + +name = 'BLAST+' +version = '2.14.1' + +homepage = 'https://blast.ncbi.nlm.nih.gov/' +description = """Basic Local Alignment Search Tool, or BLAST, is an algorithm + for comparing primary biological sequence information, such as the amino-acid + sequences of different proteins or the nucleotides of DNA sequences.""" + +toolchain = {'name': 'gompi', 'version': '2023a'} +toolchainopts = {'usempi': True, 'pic': True} + +source_urls = ['https://ftp.ncbi.nlm.nih.gov/blast/executables/%(namelower)s/%(version)s/'] +sources = ['ncbi-blast-%(version)s+-src.tar.gz'] +checksums = ['712c2dbdf0fb13cc1c2d4f4ef5dd1ce4b06c3b57e96dfea8f23e6e99f5b1650e'] + +dependencies = [ + ('zlib', '1.2.13'), + ('bzip2', '1.0.8'), + ('PCRE', '8.45'), + ('Boost', '1.82.0'), + ('GMP', '6.2.1'), + ('libpng', '1.6.39'), + ('libjpeg-turbo', '2.1.5.1'), + ('LMDB', '0.9.31'), +] + +configopts = "--with-64 --with-z=$EBROOTZLIB --with-bz2=$EBROOTBZIP2 " +configopts += "--with-pcre=$EBROOTPCRE --with-boost=$EBROOTBOOST " +configopts += "--with-gmp=$EBROOTGMP --with-png=$EBROOTLIBPNG " +configopts += "--with-jpeg=$EBROOTLIBJPEGMINTURBO --with-lmdb=$EBROOTLMDB" + +sanity_check_paths = { + 'files': ['bin/blastn', 'bin/blastp', 'bin/blastx'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/BLAT/BLAT-3.7-GCC-10.3.0.eb b/easybuild/easyconfigs/b/BLAT/BLAT-3.7-GCC-10.3.0.eb new file mode 100644 index 00000000000..dceaa2704a8 --- /dev/null +++ b/easybuild/easyconfigs/b/BLAT/BLAT-3.7-GCC-10.3.0.eb @@ -0,0 +1,55 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2012-2013 The Cyprus Institute +# Authors:: Andreas Panteli , Thekla Loizou +# Contributors:: Alex Domingo (Vrije Universiteit Brussel) +# License:: MIT/GPL +# +## + +name = 'BLAT' +version = '3.7' + +homepage = 'https://genome.ucsc.edu/goldenPath/help/blatSpec.html' +description = """BLAT on DNA is designed to quickly find sequences of 95% and +greater similarity of length 25 bases or more.""" + +toolchain = {'name': 'GCC', 'version': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://genome-test.gi.ucsc.edu/~kent/src/'] +sources = ['%%(namelower)sSrc%s.zip' % ''.join(version.split('.'))] +patches = ['BLAT-%(version)s_mend-tests.patch'] +checksums = [ + {'blatSrc37.zip': '88ee2b272d42ab77687c61d200b11f1d58443951069feb7e10226a2509f84cf2'}, + {'BLAT-3.7_mend-tests.patch': '1f42c7fadf7676a5cc3a2016f70089c3541aa1d53816cf86072682c44cf311a6'}, +] + +# BLAT relies on a bundled old version of HTSlib. We use the bundled library +# because it is statically linked and the newer HTSlib in this toolchain is not +# API compatible with it. +dependencies = [ + ('freetype', '2.10.4'), + ('libiconv', '1.16'), + ('libpng', '1.6.37'), + ('MariaDB', '10.6.4'), + ('OpenSSL', '1.1', '', SYSTEM), + ('util-linux', '2.36'), + ('zlib', '1.2.11'), +] + +pretestopts = 'PATH="%(builddir)s/blatSrc/bin:$PATH"' +runtest = 'test' + +_blat_bins = ["blat", "faToNib", "faToTwoBit", "gfClient", "gfServer", "nibFrag", "pslPretty", + "pslReps", "pslSort", "twoBitInfo", "twoBitToFa"] + +files_to_copy = [(["bin/%s" % x for x in _blat_bins] + ["webBlat/webBlat"], 'bin')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in _blat_bins + ["webBlat"]], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/BLIS/BLIS-0.9.0-GCC-13.2.0.eb b/easybuild/easyconfigs/b/BLIS/BLIS-0.9.0-GCC-13.2.0.eb new file mode 100644 index 00000000000..17fa98dc916 --- /dev/null +++ b/easybuild/easyconfigs/b/BLIS/BLIS-0.9.0-GCC-13.2.0.eb @@ -0,0 +1,42 @@ +easyblock = 'ConfigureMake' + +name = 'BLIS' +version = '0.9.0' + +homepage = 'https://github.com/flame/blis/' +description = """BLIS is a portable software framework for instantiating high-performance +BLAS-like dense linear algebra libraries.""" + +toolchain = {'name': 'GCC', 'version': '13.2.0'} + +source_urls = ['https://github.com/flame/blis/archive/'] +sources = ['%(version)s.tar.gz'] +patches = [ + '%(name)s-%(version)s_disable_power9_kernels.patch', + '%(name)s-%(version)s_enable_ppc_autodetect.patch', +] +checksums = [ + '1135f664be7355427b91025075562805cdc6cc730d3173f83533b2c5dcc2f308', # 0.9.0.tar.gz + # BLIS-0.9.0_disable_power9_kernels.patch + 'ed7a326bc5c5c21c42faefbec2fd7be609d1c7236981b466475edace39307279', + # BLIS-0.9.0_enable_ppc_autodetect.patch + 'f373fb252c0d14036fb631f048091976cceb02abb3e570a97fbaeac2fbb12328', +] +builddependencies = [ + ('Python', '3.11.5'), + ('Perl', '5.38.0'), +] + +configopts = '--enable-cblas --enable-threading=openmp --enable-shared CC="$CC" auto' + +runtest = 'check' + +sanity_check_paths = { + 'files': ['include/blis/cblas.h', 'include/blis/blis.h', + 'lib/libblis.a', 'lib/libblis.%s' % SHLIB_EXT], + 'dirs': [], +} + +modextrapaths = {'CPATH': 'include/blis'} + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/b/BMTK/BMTK-1.0.8-foss-2021a.eb b/easybuild/easyconfigs/b/BMTK/BMTK-1.0.8-foss-2021a.eb new file mode 100644 index 00000000000..6d46f47d72b --- /dev/null +++ b/easybuild/easyconfigs/b/BMTK/BMTK-1.0.8-foss-2021a.eb @@ -0,0 +1,43 @@ +easyblock = 'PythonBundle' + +name = 'BMTK' +version = '1.0.8' + +homepage = 'https://alleninstitute.github.io/bmtk/index.html' +description = """The Brain Modeling Toolkit (BMTK) is a python-based software +package for building, simulating and analyzing large-scale neural network +models. It supports the building and simulation of models of varying +levels-of-resolution; from multi-compartment biophysically detailed networks, +to point-neuron models, to filter-based models, and even population-level +firing rate models.""" + +toolchain = {'name': 'foss', 'version': '2021a'} + +dependencies = [ + ('Python', '3.9.5'), + ('SciPy-bundle', '2021.05'), + ('matplotlib', '3.4.2'), + ('h5py', '3.2.1'), + ('sympy', '1.8'), + ('scikit-image', '0.18.3'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('bmtk', version, { + 'checksums': ['9609da6347e74b440a44590f22fc2de0b281fc2eed4c1ee259730c5a8b3c0535'], + }), + ('pynrrd', '1.0.0', { + 'modulename': 'nrrd', + 'checksums': ['4eb4caba03fbca1b832114515e748336cb67bce70c7f3ae36bfa2e135fc990d2'], + }), + ('nptyping', '2.0.0', { + 'source_urls': ['https://github.com/ramonhagenaars/nptyping/archive/refs/tags/'], + 'sources': ['v%(version)s.tar.gz'], + 'checksums': ['2c99b0cde2f548ebae71b0856e3eb51e61b79935b2d0e07af9717fcb685f6616'], + }), +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/BgeeCall/BgeeCall-1.16.0-foss-2021a-R-4.1.0.eb b/easybuild/easyconfigs/b/BgeeCall/BgeeCall-1.16.0-foss-2021a-R-4.1.0.eb new file mode 100644 index 00000000000..b1dd59c835c --- /dev/null +++ b/easybuild/easyconfigs/b/BgeeCall/BgeeCall-1.16.0-foss-2021a-R-4.1.0.eb @@ -0,0 +1,77 @@ +easyblock = 'Bundle' + +name = 'BgeeCall' +version = '1.16.0' +versionsuffix = '-R-%(rver)s' + +# While BgeeCall does not require the latest Bioconductor dependencies +# we search the latest Bioconductor release archive for them +local_bioc_version = 3.17 + +homepage = 'https://github.com/BgeeDB/BgeeCall' +description = """Automatic RNA-Seq present/absent gene expression calls generation""" +software_license = 'LicenseGPLv3' + +toolchain = {'name': 'foss', 'version': '2021a'} + +builddependencies = [ + ('pkg-config', '0.29.2'), + ('R', '4.1.0'), +] + +dependencies = [ + ('R-bundle-Bioconductor', '3.13', versionsuffix), +] + +exts_default_options = { + 'source_urls': [ + 'https://bioconductor.org/packages/%s/bioc/src/contrib/' % local_bioc_version, + 'https://bioconductor.org/packages/%s/bioc/src/contrib/Archive/%%(name)s' % local_bioc_version, + 'https://bioconductor.org/packages/%s/data/annotation/src/contrib/' % local_bioc_version, + 'https://bioconductor.org/packages/%s/data/experiment/src/contrib/' % local_bioc_version, + 'https://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'https://cran.r-project.org/src/contrib/', # current version of packages + 'https://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], + 'source_tmpl': '%(name)s_%(version)s.tar.gz' +} + +exts_defaultclass = 'RPackage' + +# check whether correct version is installed in extension filter +# (some versions in this bundle may be newer than the ones provided by R) +local_ext_version_check = "pkgver = packageVersion('%(ext_name)s'); if (pkgver != '%(ext_version)s') " +local_stop_msg = "stop('%(ext_name)s %(ext_version)s not installed, found ', pkgver, ' instead')" +exts_filter = ("R -q --no-save", "%s { %s }" % (local_ext_version_check, local_stop_msg)) + +# CRAN packages on which these Bioconductor packages depend are available in R module on which this depends +# !! order of packages is important !! +exts_list = [ + ('insight', '0.19.3', { + 'checksums': ['ff1f39b15e84f671f1602e5f7ef646d0f1c25ea63ad87c272a58e25d8b8d887e'], + }), + ('datawizard', '0.8.0', { + 'checksums': ['13a3ed4f36157b18955dcbcb5a1f81a0d913349312cd44141f0afde16a3d22a2'], + }), + ('sjlabelled', '1.2.0', { + 'checksums': ['731c7e907361971dbc890ad80bc95a38ecc38455a0217fdbc3dbb7c60b3648ed'], + }), + ('sjmisc', '2.8.9', { + 'checksums': ['78b05741ce9e1cc783fda97a0f18caff689822fdd4bdf733dc20f7c94ac2f3bf'], + }), + ('rslurm', '0.6.2', { + 'checksums': ['540158ece7d838c9630886f37e0960353038fefa4f9cc374004240b767f6b47c'], + }), + (name, version, { + 'checksums': ['80dabc64b8eb13f9937852f433ef6919ebcf1583ece8eb78872b147c3bd30349'], + }), +] + +modextrapaths = {'R_LIBS_SITE': ''} + +sanity_check_paths = { + 'files': [], + 'dirs': [name], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/Bowtie/Bowtie-1.3.1-GCC-10.3.0.eb b/easybuild/easyconfigs/b/Bowtie/Bowtie-1.3.1-GCC-10.3.0.eb new file mode 100644 index 00000000000..4f96d59e220 --- /dev/null +++ b/easybuild/easyconfigs/b/Bowtie/Bowtie-1.3.1-GCC-10.3.0.eb @@ -0,0 +1,30 @@ +## +# This is a contribution from DeepThought HPC Service, Flinders University, Adelaide, Australia +# Homepage: https://staff.flinders.edu.au/research/deep-thought +# +# Authors:: Robert Qiao +# License:: Artistic v2.0 +# +# Notes:: +## + +name = 'Bowtie' +version = '1.3.1' + +homepage = 'http://bowtie-bio.sourceforge.net/index.shtml' +description = """Bowtie is an ultrafast, memory-efficient short read aligner. + It aligns short DNA sequences (reads) to the human genome.""" + +toolchain = {'name': 'GCC', 'version': '10.3.0'} +toolchainopts = {'pic': True, 'cstd': 'gnu++98'} + +source_urls = ['https://sourceforge.net/projects/bowtie-bio/files/bowtie/%(version)s/'] +sources = ['%(namelower)s-%(version)s-src.zip'] +checksums = ['e23517aa53846ef828172be911750cd05748522117efcbbe5a36f3241fb40761'] + +dependencies = [ + ('tbb', '2020.3'), + ('zlib', '1.2.11'), +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/Bowtie2/Bowtie2-2.5.1-GCC-12.3.0.eb b/easybuild/easyconfigs/b/Bowtie2/Bowtie2-2.5.1-GCC-12.3.0.eb new file mode 100644 index 00000000000..379484dfaea --- /dev/null +++ b/easybuild/easyconfigs/b/Bowtie2/Bowtie2-2.5.1-GCC-12.3.0.eb @@ -0,0 +1,45 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# Modified by: Robert Schmidt +# Ottawa Hospital Research Institute - Bioinformatics Team +# Modified by: Adam Huffman +# The Francis Crick Institute +# Modified by: Kurt Lust, UAntwerp +# Modified by: Sebastien Moretti for non-x86_64 systems +# SIB Swiss Institute of Bioinformatics + +name = 'Bowtie2' +version = '2.5.1' + +homepage = 'https://bowtie-bio.sourceforge.net/bowtie2/index.shtml' +description = """ Bowtie 2 is an ultrafast and memory-efficient tool for aligning sequencing reads + to long reference sequences. It is particularly good at aligning reads of about 50 up to 100s or 1,000s + of characters, and particularly good at aligning to relatively long (e.g. mammalian) genomes. + Bowtie 2 indexes the genome with an FM Index to keep its memory footprint small: for the human genome, + its memory footprint is typically around 3.2 GB. Bowtie 2 supports gapped, local, and paired-end alignment modes.""" + +toolchain = {'name': 'GCC', 'version': '12.3.0'} +toolchainopts = {'pic': True, 'cstd': 'gnu++98'} + +source_urls = [('https://sourceforge.net/projects/bowtie-bio/files/%(namelower)s/%(version)s', 'download')] +sources = ['%(namelower)s-%(version)s-source.zip'] +checksums = ['cb6cbbbb5a7167a2f21a3d63cb9774336361f540e1ec3d8ff907f955c35f71b8'] + +dependencies = [ + ('zlib', '1.2.13'), + ('Perl', '5.36.1'), + ('Python', '3.11.3'), +] + + +# to add script folder to path just uncomment this line +# modextrapaths = {'PATH': 'scripts'} + +sanity_check_commands = [ + "%(namelower)s --help", + "%(namelower)s-build --help", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/Brotli/Brotli-1.1.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/b/Brotli/Brotli-1.1.0-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..eeacd739652 --- /dev/null +++ b/easybuild/easyconfigs/b/Brotli/Brotli-1.1.0-GCCcore-13.2.0.eb @@ -0,0 +1,31 @@ +easyblock = 'CMakeMake' + +name = 'Brotli' +version = '1.1.0' + +homepage = 'https://github.com/google/brotli' +description = """Brotli is a generic-purpose lossless compression algorithm that compresses data using a combination + of a modern variant of the LZ77 algorithm, Huffman coding and 2nd order context modeling, with a compression ratio + comparable to the best currently available general-purpose compression methods. It is similar in speed with deflate + but offers more dense compression. +The specification of the Brotli Compressed Data Format is defined in RFC 7932.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://github.com/google/brotli/archive'] +sources = ['v%(version)s.tar.gz'] +checksums = ['e720a6ca29428b803f4ad165371771f5398faba397edf6778837a18599ea13ff'] + +builddependencies = [ + ('binutils', '2.40'), + ('CMake', '3.27.6'), +] + +sanity_check_paths = { + 'files': ['bin/brotli', 'lib/libbrotlidec.%s' % SHLIB_EXT, 'lib/libbrotlienc.%s' % SHLIB_EXT], + 'dirs': [], +} + +sanity_check_commands = ["brotli --help"] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/b/bases2fastq/bases2fastq-1.5.1.eb b/easybuild/easyconfigs/b/bases2fastq/bases2fastq-1.5.1.eb new file mode 100644 index 00000000000..fa3cce5b299 --- /dev/null +++ b/easybuild/easyconfigs/b/bases2fastq/bases2fastq-1.5.1.eb @@ -0,0 +1,30 @@ +easyblock = 'PackedBinary' + +name = 'bases2fastq' +version = '1.5.1' + +homepage = 'https://docs.elembio.io/docs/bases2fastq' +description = """ Bases2Fastq Software demultiplexes sequencing data and converts base calls + into FASTQ files for secondary analysis with the FASTQ-compatible software of your choice. + The Element AVITI™ System records base calls, which are the main output of a sequencing run, + with associated quality scores (Q-scores) in bases files. Bases files must be converted into + the FASTQ file format for secondary analysis. + +To generate QC reports, also load BeautifulSoup and bokeh. """ + +toolchain = SYSTEM + +source_urls = ['https://bases2fastq-release.s3.amazonaws.com/'] +sources = ['%(name)s-v%(version)s.tar.gz'] +checksums = ['832fab35ff7e74a190473d3f50faad9f62291d60e49f92c098556f4a5b33cfa9'] + +sanity_check_paths = { + 'files': ['bases2fastq'], + 'dirs': [], +} + +sanity_check_commands = [ + "bases2fastq --version" +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/biobakery-workflows/biobakery-workflows-3.1-foss-2022a.eb b/easybuild/easyconfigs/b/biobakery-workflows/biobakery-workflows-3.1-foss-2022a.eb new file mode 100644 index 00000000000..7fc8fe63552 --- /dev/null +++ b/easybuild/easyconfigs/b/biobakery-workflows/biobakery-workflows-3.1-foss-2022a.eb @@ -0,0 +1,42 @@ +easyblock = 'PythonPackage' + +name = 'biobakery-workflows' +version = '3.1' + +homepage = 'http://huttenhower.sph.harvard.edu/biobakery_workflows' +description = """bioBakery workflows is a collection of workflows and tasks for executing +common microbial community analyses using standardized, validated tools and parameters. +Quality control and statistical summary reports are automatically generated for most data +types, which include 16S amplicons, metagenomes, and metatranscriptomes. Workflows are run +directly from the command line and tasks can be imported to create your own custom workflows. +The workflows and tasks are built with AnADAMA2 which allows for parallel task execution locally +and in a grid compute environment.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +sources = ["biobakery_workflows-%(version)s.tar.gz"] +checksums = ['c11a00192aa0bd6a6978eabef768c483dd240281991ce2a31bfaf291fe3d0e2b'] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('kneaddata', '0.12.0'), + ('humann', '3.6'), + ('MetaPhlAn', '4.0.6'), + ('anadama2', '0.10.0'), +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +sanity_check_paths = { + 'files': ['bin/biobakery_workflows'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + "biobakery_workflows --help", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/biobambam2/biobambam2-2.0.185-GCC-12.3.0.eb b/easybuild/easyconfigs/b/biobambam2/biobambam2-2.0.185-GCC-12.3.0.eb new file mode 100644 index 00000000000..69ef6ed8f53 --- /dev/null +++ b/easybuild/easyconfigs/b/biobambam2/biobambam2-2.0.185-GCC-12.3.0.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'biobambam2' +version = '2.0.185' + +homepage = 'https://github.com/gt1/biobambam2' +description = "Tools for processing BAM files" + +toolchain = {'name': 'GCC', 'version': '12.3.0'} + +local_release = '20221211202123' +source_urls = ['https://gitlab.com/german.tischler/biobambam2/-/archive/%%(version)s-release-%s' % local_release] +sources = ['biobambam2-%%(version)s-release-%s.tar.gz' % local_release] +checksums = ['e405421e869ac7220c3a7e5da0d24a3c7b4c7b1807e044a439fe68efc88a1f2a'] + +dependencies = [ + ('libmaus2', '2.0.813'), +] + +configopts = "--with-libmaus2=$EBROOTLIBMAUS2" + +local_binaries = ['bamcollate2', 'bammarkduplicates', 'bammaskflags', 'bamrecompress', + 'bamsormadup', 'bamsort', 'bamtofastq'] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in local_binaries], + 'dirs': ['share/man'], +} + +sanity_check_commands = ["%s --help" % x for x in local_binaries] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/bokeh/bokeh-3.2.2-foss-2023a.eb b/easybuild/easyconfigs/b/bokeh/bokeh-3.2.2-foss-2023a.eb new file mode 100644 index 00000000000..f2407b6c84b --- /dev/null +++ b/easybuild/easyconfigs/b/bokeh/bokeh-3.2.2-foss-2023a.eb @@ -0,0 +1,51 @@ +easyblock = 'PythonBundle' + +name = 'bokeh' +version = '3.2.2' + +homepage = 'https://github.com/bokeh/bokeh' +description = "Statistical and novel interactive HTML plots for Python" + +toolchain = {'name': 'foss', 'version': '2023a'} + +builddependencies = [ + ('meson-python', '0.13.2'), + ('hatchling', '1.18.0'), # fixes error "xyzservices>=2021.09.1, but you have 0.0.0" +] + +dependencies = [ + ('Python', '3.11.3'), + ('matplotlib', '3.7.2'), + ('PyYAML', '6.0'), + ('Pillow-SIMD', '9.5.0'), + ('SciPy-bundle', '2023.07'), + ('Python-bundle-PyPI', '2023.06'), + ('tornado', '6.3.2'), +] + +use_pip = True + +exts_list = [ + ('contourpy', '1.0.7', { + 'checksums': ['d8165a088d31798b59e91117d1f5fc3df8168d8b48c4acc10fc0df0d0bdbcc5e'], + }), + ('xyzservices', '2023.7.0', { + 'checksums': ['0ec928742227d6f5d4367ea7b457fcfed943429f4de2949b5b02a82cdf5569d6'], + }), + (name, version, { + # bokeh uses git tags to get version, so we'll instead inject the version into setup.py + 'preinstallopts': """sed -i 's/setup(/setup(version="%(version)s",/g' setup.py && """, + 'checksums': ['b2959b8524d69ec4e7886bc36407445f0a92e1f19530d3bfc4045236a1b7a6ff'], + }), +] + +sanity_check_paths = { + 'files': ['bin/bokeh'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["bokeh --help"] + +sanity_pip_check = True + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/b/buildenv/buildenv-default-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/b/buildenv/buildenv-default-foss-2023a-CUDA-12.1.1.eb new file mode 100644 index 00000000000..eee044d98f7 --- /dev/null +++ b/easybuild/easyconfigs/b/buildenv/buildenv-default-foss-2023a-CUDA-12.1.1.eb @@ -0,0 +1,20 @@ +easyblock = 'BuildEnv' + +name = 'buildenv' +version = 'default' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'None' +description = """This module sets a group of environment variables for compilers, linkers, maths libraries, etc., that + you can use to easily transition between toolchains when building your software. To query the variables being set + please use: module show """ + +toolchain = {'name': 'foss', 'version': '2023a'} + +dependencies = [ + ('CUDA', '12.1.1', '', SYSTEM), + ('UCX-CUDA', '1.14.1', versionsuffix), + ('UCC-CUDA', '1.2.0', versionsuffix), +] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/b/buildenv/buildenv-default-foss-2023a.eb b/easybuild/easyconfigs/b/buildenv/buildenv-default-foss-2023a.eb new file mode 100644 index 00000000000..f87290601c7 --- /dev/null +++ b/easybuild/easyconfigs/b/buildenv/buildenv-default-foss-2023a.eb @@ -0,0 +1,13 @@ +easyblock = 'BuildEnv' + +name = 'buildenv' +version = 'default' + +homepage = 'None' +description = """This module sets a group of environment variables for compilers, linkers, maths libraries, etc., that + you can use to easily transition between toolchains when building your software. To query the variables being set + please use: module show """ + +toolchain = {'name': 'foss', 'version': '2023a'} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/b/buildenv/buildenv-default-intel-2023a.eb b/easybuild/easyconfigs/b/buildenv/buildenv-default-intel-2023a.eb new file mode 100644 index 00000000000..d0d48e47dac --- /dev/null +++ b/easybuild/easyconfigs/b/buildenv/buildenv-default-intel-2023a.eb @@ -0,0 +1,13 @@ +easyblock = 'BuildEnv' + +name = 'buildenv' +version = 'default' + +homepage = 'None' +description = """This module sets a group of environment variables for compilers, linkers, maths libraries, etc., that + you can use to easily transition between toolchains when building your software. To query the variables being set + please use: module show """ + +toolchain = {'name': 'intel', 'version': '2023a'} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/b/buildenv/buildenv-default-nvompi-2022.07.eb b/easybuild/easyconfigs/b/buildenv/buildenv-default-nvompi-2022.07.eb new file mode 100644 index 00000000000..8b4d32b3950 --- /dev/null +++ b/easybuild/easyconfigs/b/buildenv/buildenv-default-nvompi-2022.07.eb @@ -0,0 +1,13 @@ +easyblock = 'BuildEnv' + +name = 'buildenv' +version = 'default' + +homepage = 'None' +description = """This module sets a group of environment variables for compilers, linkers, maths libraries, etc., that + you can use to easily transition between toolchains when building your software. To query the variables being set + please use: module show """ + +toolchain = {'name': 'nvompi', 'version': '2022.07'} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8-GCCcore-13.2.0.eb b/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..3ce27b74c39 --- /dev/null +++ b/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8-GCCcore-13.2.0.eb @@ -0,0 +1,27 @@ +name = 'bzip2' +version = '1.0.8' + +homepage = 'https://sourceware.org/bzip2' +description = """ + bzip2 is a freely available, patent free, high-quality data compressor. It + typically compresses files to within 10% to 15% of the best available + techniques (the PPM family of statistical compressors), whilst being around + twice as fast at compression and six times faster at decompression. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://sourceware.org/pub/%(name)s/'] +sources = [SOURCE_TAR_GZ] +patches = ['bzip2-%(version)s-pkgconfig.patch'] +checksums = [ + 'ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269', # bzip2-1.0.8.tar.gz + '9299e8ee4d014ea973777b6ea90661fe329dfa991f822add4c763ea9ddb9aab1', # bzip2-1.0.8-pkgconfig.patch +] + +builddependencies = [ + ('binutils', '2.40'), +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/c/CGAL/CGAL-5.6-GCCcore-12.3.0.eb b/easybuild/easyconfigs/c/CGAL/CGAL-5.6-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..38817452cd4 --- /dev/null +++ b/easybuild/easyconfigs/c/CGAL/CGAL-5.6-GCCcore-12.3.0.eb @@ -0,0 +1,26 @@ +easyblock = 'CMakeMake' +name = 'CGAL' +version = '5.6' + +homepage = 'https://www.cgal.org/' +description = """The goal of the CGAL Open Source Project is to provide easy access to efficient + and reliable geometric algorithms in the form of a C++ library.""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} +toolchainopts = {'strict': True} + +source_urls = ['https://github.com/CGAL/cgal/releases/download/v%(version)s/'] +sources = [SOURCE_TAR_XZ] +checksums = ['dcab9b08a50a06a7cc2cc69a8a12200f8d8f391b9b8013ae476965c10b45161f'] + +builddependencies = [ + ('CMake', '3.26.3'), + ('binutils', '2.40'), +] + +sanity_check_paths = { + 'files': ['include/CGAL/Simple_cartesian.h'], + 'dirs': ['include/CGAL', 'lib/cmake/CGAL'], +} + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/c/CIRCexplorer2/CIRCexplorer2-2.3.8-foss-2021b-Python-2.7.18.eb b/easybuild/easyconfigs/c/CIRCexplorer2/CIRCexplorer2-2.3.8-foss-2021b-Python-2.7.18.eb new file mode 100644 index 00000000000..349d6b4d3c9 --- /dev/null +++ b/easybuild/easyconfigs/c/CIRCexplorer2/CIRCexplorer2-2.3.8-foss-2021b-Python-2.7.18.eb @@ -0,0 +1,44 @@ +easyblock = 'PythonPackage' + +name = 'CIRCexplorer2' +version = '2.3.8' +versionsuffix = "-Python-%(pyver)s" + +homepage = 'http://circexplorer2.readthedocs.io/' +description = "CIRCexplorer2 is a comprehensive and integrative circular RNA analysis toolset." + +toolchain = {'name': 'foss', 'version': '2021b'} + +sources = [SOURCE_TAR_GZ] +checksums = ['8261ee884f6d895131ce681d5eda6554376e973851a9de4dc50e2b3e242ccc80'] + +dependencies = [ + ('Python', '2.7.18'), + ('SciPy-bundle', '2021.10', versionsuffix), + # sticking to v2.1.0, since using v2.1.1 has problems, cfr. https://www.biostars.org/p/186979/ + ('TopHat', '2.1.2', versionsuffix), + ('Cufflinks', '20190706'), + ('BEDTools', '2.30.0'), + ('Kent_tools', '422'), + ('STAR', '2.7.9a'), + ('BWA', '0.7.17'), + ('segemehl', '0.3.4'), + ('Pysam', '0.17.0', versionsuffix), + ('pybedtools', '0.8.2', versionsuffix), +] + +download_dep_fail = True +use_pip = True + +options = {'modulename': 'circ2'} + +sanity_check_paths = { + 'files': ['bin/CIRCexplorer2'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["CIRCexplorer2 denovo --help"] + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/c/CIRIquant/CIRIquant-1.1.2-20221201-foss-2021b-Python-2.7.18.eb b/easybuild/easyconfigs/c/CIRIquant/CIRIquant-1.1.2-20221201-foss-2021b-Python-2.7.18.eb new file mode 100644 index 00000000000..b2f6bd3849e --- /dev/null +++ b/easybuild/easyconfigs/c/CIRIquant/CIRIquant-1.1.2-20221201-foss-2021b-Python-2.7.18.eb @@ -0,0 +1,50 @@ +easyblock = 'PythonBundle' + +name = 'CIRIquant' +local_commit = '2d0663e' +version = '1.1.2-20221201' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/bioinfo-biols/CIRIquant' +description = "CIRIquant is a comprehensive analysis pipeline for circRNA detection and quantification in RNA-Seq data" + +toolchain = {'name': 'foss', 'version': '2021b'} + +dependencies = [ + ('Python', '2.7.18'), + ('SciPy-bundle', '2021.10', versionsuffix), + ('PyYAML', '5.4.1', versionsuffix), + ('Pysam', '0.17.0', versionsuffix), + ('scikit-learn', '0.20.4', versionsuffix), +] + +use_pip = True + +exts_list = [ + ('argparse', '1.4.0', { + 'checksums': ['62b089a55be1d8949cd2bc7e0df0bddb9e028faefc8c32038cc84862aefdd6e4'], + }), + (name, version, { + 'source_urls': ['https://github.com/bioinfo-biols/CIRIquant/archive/'], + 'sources': [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}], + 'checksums': ['4990122c0eb820b1ec9cfc64fcfe49d3f9680dae69719dba3f8a7d77f9c3ff54'], + # relax numpy version requirement, no actual need for 1.22.0 + # (cfr. https://github.com/bioinfo-biols/CIRIquant/pull/39), + # and remove very strict version requirements for all required Python packages + 'preinstallopts': "sed -i 's/numpy==1.22.0/numpy==1.16.4/g' setup.py && sed -i 's/==/>=/g' setup.py && ", + 'modulename': 'CIRIquant', + }), +] + +sanity_pip_check = True + +sanity_check_paths = { + 'files': ['bin/CIRIquant'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["CIRIquant --help"] + +modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages/CIRIquant'} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/c/CLEAR/CLEAR-20210117-foss-2021b-Python-2.7.18.eb b/easybuild/easyconfigs/c/CLEAR/CLEAR-20210117-foss-2021b-Python-2.7.18.eb new file mode 100644 index 00000000000..46ab6c20df7 --- /dev/null +++ b/easybuild/easyconfigs/c/CLEAR/CLEAR-20210117-foss-2021b-Python-2.7.18.eb @@ -0,0 +1,41 @@ +easyblock = 'PythonPackage' + +name = 'CLEAR' +local_commit = '64bc22d52d99466a044848992fd0d775a983d60c' +version = '20210117' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/YangLab/CLEAR' +description = 'Direct comparison of circular and linear RNA expression' + +toolchain = {'name': 'foss', 'version': '2021b'} + +source_urls = ['https://github.com/YangLab/CLEAR/archive'] +sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}] +checksums = ['a0824bcbaf6db52dcbb24467277045d341bbd266e582d9a89fd1656c89ba64ea'] + +dependencies = [ + ('Python', '2.7.18'), + ('CIRCexplorer2', '2.3.8', versionsuffix), + ('HISAT2', '2.2.1'), + ('StringTie', '2.2.1', versionsuffix), + ('Bowtie', '1.3.1'), +] + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +options = {'modulename': 'src.circ_quant'} + +sanity_check_paths = { + 'files': ['bin/circ_quant', 'bin/clear_quant'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + "circ_quant --help", + "clear_quant --help", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.27.6-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/CMake/CMake-3.27.6-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..04b7770a077 --- /dev/null +++ b/easybuild/easyconfigs/c/CMake/CMake-3.27.6-GCCcore-13.2.0.eb @@ -0,0 +1,30 @@ +name = 'CMake' +version = '3.27.6' + +homepage = 'https://www.cmake.org' + +description = """ + CMake, the cross-platform, open-source build system. CMake is a family of + tools designed to build, test and package software. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['ef3056df528569e0e8956f6cf38806879347ac6de6a4ff7e4105dc4578732cfb'] + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('ncurses', '6.4'), + ('zlib', '1.2.13'), + ('bzip2', '1.0.8'), + ('cURL', '8.3.0'), + ('libarchive', '3.7.2'), + ('OpenSSL', '1.1', '', SYSTEM), +] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/c/CSBDeep/CSBDeep-0.7.4-foss-2022a.eb b/easybuild/easyconfigs/c/CSBDeep/CSBDeep-0.7.4-foss-2022a.eb new file mode 100644 index 00000000000..e65992a566c --- /dev/null +++ b/easybuild/easyconfigs/c/CSBDeep/CSBDeep-0.7.4-foss-2022a.eb @@ -0,0 +1,36 @@ +# This easyconfig was created by the BEAR Software team at the University of Birmingham. +easyblock = 'PythonBundle' + +name = 'CSBDeep' +version = '0.7.4' + +homepage = "https://csbdeep.bioimagecomputing.com/" +description = """CSBDeep is a toolbox for Content-aware Image Restoration (CARE).""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('TensorFlow', '2.11.0'), + ('matplotlib', '3.5.2'), + ('tqdm', '4.64.0'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('tifffile', '2023.9.26', { + 'checksums': ['67e355e4595aab397f8405d04afe1b4ae7c6f62a44e22d933fee1a571a48c7ae'], + }), + (name, version, { + 'source_tmpl': '%(namelower)s-%(version)s.tar.gz', + 'checksums': ['85d6fc360bb33253ba6f543d75cf0cf123595f0ea4dd1fa76b1e5bc8fc55b901'], + 'modulename': '%(namelower)s', + }), +] + +sanity_check_commands = ['care_predict'] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-11.6-GCC-11.3.0-CUDA-11.7.0.eb b/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-11.6-GCC-11.3.0-CUDA-11.7.0.eb new file mode 100644 index 00000000000..d4240930bd1 --- /dev/null +++ b/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-11.6-GCC-11.3.0-CUDA-11.7.0.eb @@ -0,0 +1,54 @@ +easyblock = 'MakeCp' + +name = 'CUDA-Samples' +version = '11.6' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://github.com/NVIDIA/cuda-samples' +description = "Samples for CUDA Developers which demonstrates features in CUDA Toolkit" + +toolchain = {'name': 'GCC', 'version': '11.3.0'} + +source_urls = ['https://github.com/NVIDIA/cuda-samples/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['75b858bcf9e534eaa0f129c418e661b83872d743de218df8a5278cc429f9ea98'] + +dependencies = [ + ('CUDA', '11.7.0', '', SYSTEM), +] + +# Get rid of pre-built Windows DLLs. +prebuildopts = "rm -r bin/win64 && " + +# Filter out samples that require extensive dependencies +local_filters = "Samples/EGLStream_CUDA_Interop/Makefile " +local_filters += "Samples/boxFilterNPP/Makefile " +local_filters += "Samples/cannyEdgeDetectorNPP/Makefile " +local_filters += "Samples/cudaNvSci/Makefile " +local_filters += "Samples/cudaNvSciNvMedia/Makefile " +local_filters += "Samples/simpleGL/Makefile " +local_filters += "Samples/warpAggregatedAtomicsCG/Makefile " +local_filters += "Samples/simpleVulkan/Makefile " +local_filters += "Samples/simpleVulkanMMAP/Makefile " +local_filters += "Samples/streamOrderedAllocationIPC/Makefile " +local_filters += "Samples/vulkanImageCUDA/Makefile" + +buildopts = "HOST_COMPILER=g++ FILTER_OUT='%s'" % local_filters + +files_to_copy = [ + (['bin/%s/linux/release/*' % ARCH], 'bin'), + 'LICENSE', +] + +local_binaries = ['deviceQuery', 'matrixMul', 'bandwidthTest', 'cudaOpenMP'] + +# Only paths are used for sanity checks. +# Commands may fail due to missing compatibility libraries that might be needed +# to be able to use this specific CUDA version in combination with the available +# NVIDIA drivers. +sanity_check_paths = { + 'files': ['bin/%s' % x for x in local_binaries], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-12.1-GCC-12.3.0-CUDA-12.1.1.eb b/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-12.1-GCC-12.3.0-CUDA-12.1.1.eb new file mode 100644 index 00000000000..438e0f44965 --- /dev/null +++ b/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-12.1-GCC-12.3.0-CUDA-12.1.1.eb @@ -0,0 +1,61 @@ +easyblock = 'MakeCp' + +name = 'CUDA-Samples' +version = '12.1' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://github.com/NVIDIA/cuda-samples' +description = "Samples for CUDA Developers which demonstrates features in CUDA Toolkit" + +toolchain = {'name': 'GCC', 'version': '12.3.0'} + +source_urls = ['https://github.com/NVIDIA/cuda-samples/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['f758160645b366d79c2638d8dfd389f01029b8d179ab0c11726b9ef58aecebd9'] + +dependencies = [ + ('CUDA', '12.1.1', '', SYSTEM), +] + +# Get rid of pre-built Windows DLLs. +prebuildopts = "rm -r bin/win64 && " + +# Filter out samples that require extensive dependencies +local_filters = "Samples/2_Concepts_and_Techniques/EGLStream_CUDA_Interop/Makefile " +local_filters += "Samples/2_Concepts_and_Techniques/streamOrderedAllocationIPC/Makefile " +local_filters += "Samples/3_CUDA_Features/tf32TensorCoreGemm/Makefile " +local_filters += "Samples/3_CUDA_Features/warpAggregatedAtomicsCG/Makefile " +local_filters += "Samples/4_CUDA_Libraries/boxFilterNPP/Makefile " +local_filters += "Samples/4_CUDA_Libraries/cannyEdgeDetectorNPP/Makefile " +local_filters += "Samples/4_CUDA_Libraries/cudaNvSci/Makefile " +local_filters += "Samples/4_CUDA_Libraries/cudaNvSciNvMedia/Makefile " +local_filters += "Samples/5_Domain_Specific/simpleGL/Makefile " +local_filters += "Samples/5_Domain_Specific/simpleVulkan/Makefile " +local_filters += "Samples/5_Domain_Specific/simpleVulkanMMAP/Makefile " +local_filters += "Samples/5_Domain_Specific/vulkanImageCUDA/Makefile " + +# Sample does not compile with GCC>11 +local_filters += "Samples/0_Introduction/simpleAWBarrier/Makefile " +local_filters += "Samples/3_CUDA_Features/bf16TensorCoreGemm/Makefile " +local_filters += "Samples/3_CUDA_Features/dmmaTensorCoreGemm/Makefile " +local_filters += "Samples/3_CUDA_Features/globalToShmemAsyncCopy/Makefile " + +buildopts = "HOST_COMPILER=g++ FILTER_OUT='%s'" % local_filters + +files_to_copy = [ + (['bin/%s/linux/release/*' % ARCH], 'bin'), + 'LICENSE', +] + +local_binaries = ['deviceQuery', 'matrixMul', 'bandwidthTest', 'cudaOpenMP'] + +# Only paths are used for sanity checks. +# Commands may fail due to missing compatibility libraries that might be needed +# to be able to use this specific CUDA version in combination with the available +# NVIDIA drivers. +sanity_check_paths = { + 'files': ['bin/%s' % x for x in local_binaries], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/c/Cantera/Cantera-3.0.0-foss-2023a.eb b/easybuild/easyconfigs/c/Cantera/Cantera-3.0.0-foss-2023a.eb new file mode 100644 index 00000000000..6c72b7b0f23 --- /dev/null +++ b/easybuild/easyconfigs/c/Cantera/Cantera-3.0.0-foss-2023a.eb @@ -0,0 +1,57 @@ +easyblock = 'SCons' + +name = 'Cantera' +version = '3.0.0' + +homepage = 'https://github.com/Cantera/cantera' +description = """Chemical kinetics, thermodynamics, and transport tool suite""" + +toolchain = {'name': 'foss', 'version': '2023a'} +toolchainopts = {'strict': True} + +source_urls = ['https://github.com/Cantera/cantera/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['6d17cdef21dae9deaf91351260b68ccf7e264c37c6030c9d4bf26a2cefb2b905'] + +builddependencies = [ + ('SCons', '4.5.2'), + ('Eigen', '3.4.0'), + ('fmt', '10.1.0'), + ('googletest', '1.13.0'), +] + +dependencies = [ + ('Python', '3.11.3'), + ('h5py', '3.9.0'), + ('pygraphviz', '1.11'), + ('JupyterLab', '4.0.5'), + ('matplotlib', '3.7.2'), + ('Boost', '1.82.0'), + ('SUNDIALS', '6.6.0'), + ('yaml-cpp', '0.7.0'), + ('ruamel.yaml', '0.17.32'), + ('HighFive', '2.7.1'), +] + +local_common_opts = 'env_vars=all CC="$CC" CXX="$CXX" cc_flags="$CFLAGS" cxx_flags="$CXXFLAGS" ' +local_common_opts += 'blas_lapack_libs=flexiblas blas_lapack_dir=$BLAS_LAPACK_LIB_DIR ' +local_common_opts += 'sundials_include=$EBROOTSUNDIALS/include sundials_libdir=$EBROOTSUNDIALS/lib' +buildopts = 'build ' + local_common_opts +# tests hang, so disable them for now +# runtest = 'test ' + local_common_opts +installopts = 'install ' + local_common_opts +prefix_arg = 'prefix=' + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +sanity_check_paths = { + 'files': ['bin/cti2yaml'], + 'dirs': ['include/cantera', 'lib/pkgconfig', 'lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + "cti2yaml --help", + "python -c 'import cantera'", +] + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/c/CapnProto/CapnProto-0.10.2-GCCcore-11.3.0.eb b/easybuild/easyconfigs/c/CapnProto/CapnProto-0.10.2-GCCcore-11.3.0.eb index c833e53d566..abe914d7bd6 100644 --- a/easybuild/easyconfigs/c/CapnProto/CapnProto-0.10.2-GCCcore-11.3.0.eb +++ b/easybuild/easyconfigs/c/CapnProto/CapnProto-0.10.2-GCCcore-11.3.0.eb @@ -12,10 +12,6 @@ homepage = 'https://capnproto.org' description = "Cap’n Proto is an insanely fast data interchange format and capability-based RPC system." toolchain = {'name': 'GCCcore', 'version': '11.3.0'} -# -std=c++17 to avoid problems like "error: 'aligned_alloc' was not declared in this scope" -# lowopt (-O1) to avoid problems like "capnp/schema-loader.c++:1971: failed: no schema node loaded for ..." -# (only on Intel Skylake?) -toolchainopts = {'cstd': 'c++17', 'lowopt': True} source_urls = ['https://capnproto.org/'] sources = ['capnproto-c++-%(version)s.tar.gz'] diff --git a/easybuild/easyconfigs/c/CapnProto/CapnProto-0.10.3-GCCcore-12.2.0.eb b/easybuild/easyconfigs/c/CapnProto/CapnProto-0.10.3-GCCcore-12.2.0.eb index ee6242554c7..4c35e236eac 100644 --- a/easybuild/easyconfigs/c/CapnProto/CapnProto-0.10.3-GCCcore-12.2.0.eb +++ b/easybuild/easyconfigs/c/CapnProto/CapnProto-0.10.3-GCCcore-12.2.0.eb @@ -12,10 +12,6 @@ homepage = 'https://capnproto.org' description = "Cap’n Proto is an insanely fast data interchange format and capability-based RPC system." toolchain = {'name': 'GCCcore', 'version': '12.2.0'} -# -std=c++17 to avoid problems like "error: 'aligned_alloc' was not declared in this scope" -# lowopt (-O1) to avoid problems like "capnp/schema-loader.c++:1971: failed: no schema node loaded for ..." -# (only on Intel Skylake?) -toolchainopts = {'cstd': 'c++17', 'lowopt': True} source_urls = ['https://capnproto.org/'] sources = ['capnproto-c++-%(version)s.tar.gz'] diff --git a/easybuild/easyconfigs/c/CapnProto/CapnProto-0.9.1-GCCcore-11.2.0.eb b/easybuild/easyconfigs/c/CapnProto/CapnProto-0.9.1-GCCcore-11.2.0.eb index 19069313fa4..f4e16deac46 100644 --- a/easybuild/easyconfigs/c/CapnProto/CapnProto-0.9.1-GCCcore-11.2.0.eb +++ b/easybuild/easyconfigs/c/CapnProto/CapnProto-0.9.1-GCCcore-11.2.0.eb @@ -12,10 +12,6 @@ homepage = 'https://capnproto.org' description = "Cap’n Proto is an insanely fast data interchange format and capability-based RPC system." toolchain = {'name': 'GCCcore', 'version': '11.2.0'} -# -std=c++17 to avoid problems like "error: 'aligned_alloc' was not declared in this scope" -# lowopt (-O1) to avoid problems like "capnp/schema-loader.c++:1971: failed: no schema node loaded for ..." -# (only on Intel Skylake?) -toolchainopts = {'cstd': 'c++17', 'lowopt': True} source_urls = ['https://capnproto.org/'] sources = ['capnproto-c++-%(version)s.tar.gz'] diff --git a/easybuild/easyconfigs/c/CapnProto/CapnProto-1.0.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/c/CapnProto/CapnProto-1.0.1-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..f0caa438cfa --- /dev/null +++ b/easybuild/easyconfigs/c/CapnProto/CapnProto-1.0.1-GCCcore-12.3.0.eb @@ -0,0 +1,31 @@ +# Contribution by +# DeepThought, Flinders University +# Updated to 0.9.1 +# R.QIAO + +easyblock = 'ConfigureMake' + +name = 'CapnProto' +version = '1.0.1' + +homepage = 'https://capnproto.org' +description = "Cap’n Proto is an insanely fast data interchange format and capability-based RPC system." + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +source_urls = ['https://capnproto.org/'] +sources = ['capnproto-c++-%(version)s.tar.gz'] +checksums = ['0f7f4b8a76a2cdb284fddef20de8306450df6dd031a47a15ac95bc43c3358e09'] + +builddependencies = [('binutils', '2.40')] + +local_bins = ['capnp', 'capnpc', 'capnpc-c++', 'capnpc-capnp'] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in local_bins], + 'dirs': ['include/capnp', 'include/kj', 'lib'], +} + +sanity_check_commands = ["%s --help" % x for x in local_bins] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/c/Catch2/Catch2-2.13.9.eb b/easybuild/easyconfigs/c/Catch2/Catch2-2.13.9.eb new file mode 100644 index 00000000000..23d28166d62 --- /dev/null +++ b/easybuild/easyconfigs/c/Catch2/Catch2-2.13.9.eb @@ -0,0 +1,32 @@ +easyblock = 'CMakeMake' + +name = 'Catch2' +version = '2.13.9' + +homepage = 'https://github.com/catchorg/Catch2' +description = """A modern, C++-native, header-only, + test framework for unit-tests, TDD and BDD + - using C++11, C++14, C++17 and later +""" + +toolchain = SYSTEM + +source_urls = ['https://github.com/catchorg/Catch2/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['06dbc7620e3b96c2b69d57bf337028bf245a211b3cddb843835bfe258f427a52'] + +# using CMake built with GCCcore to avoid relying on the system compiler to build it +builddependencies = [ + ('GCCcore', '10.2.0'), # required to a access CMake when using hierarchical module naming scheme + ('binutils', '2.35', '', ('GCCcore', '10.2.0')), # to make CMake compiler health check pass on old systems + ('CMake', '3.18.4', '', ('GCCcore', '10.2.0')), +] + +separate_build_dir = True + +sanity_check_paths = { + 'files': [], + 'dirs': ['include/catch2', 'lib64/cmake'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/c/Cereal/Cereal-1.3.2-GCCcore-12.2.0.eb b/easybuild/easyconfigs/c/Cereal/Cereal-1.3.2-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..b6bb38d747b --- /dev/null +++ b/easybuild/easyconfigs/c/Cereal/Cereal-1.3.2-GCCcore-12.2.0.eb @@ -0,0 +1,36 @@ +## +# @Authors:: Maxime Boissonneault, Compute Canada +# @date: October 15, 2020 +## + +easyblock = 'CMakeMake' + +name = 'Cereal' +version = '1.3.2' + +homepage = 'https://uscilab.github.io/cereal/' +description = """cereal is a header-only C++11 serialization library. cereal takes arbitrary data types and reversibly +turns them into different representations, such as compact binary encodings, XML, or JSON. cereal was designed to be +fast, light-weight, and easy to extend - it has no external dependencies and can be easily bundled with other code or +used standalone.""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +github_account = 'USCiLab' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['16a7ad9b31ba5880dac55d62b5d6f243c3ebc8d46a3514149e56b5e7ea81f85f'] + +builddependencies = [ + ('CMake', '3.24.3'), + ('binutils', '2.39'), +] + +configopts = '-DJUST_INSTALL_CEREAL=ON -DSKIP_PERFORMANCE_COMPARISON=ON ' + +sanity_check_paths = { + 'files': ['include/cereal/cereal.hpp'], + 'dirs': ['include', 'lib/cmake'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/c/Chemaxon-Marvin/Chemaxon-Marvin-23.9.eb b/easybuild/easyconfigs/c/Chemaxon-Marvin/Chemaxon-Marvin-23.9.eb new file mode 100644 index 00000000000..b33bbef2e31 --- /dev/null +++ b/easybuild/easyconfigs/c/Chemaxon-Marvin/Chemaxon-Marvin-23.9.eb @@ -0,0 +1,72 @@ +## +# This is a contribution from SIB Swiss Institute of Bioinformatics +# Homepage: https://www.sib.swiss/research-infrastructure/competence-centers/vital-it +# +# Authors:: Sebastien Moretti +# +## + +# Cannot use *easyblock = 'Rpm'* because the RPM misses some fields: +# Summary and License fields must be present in package: (main package) +easyblock = 'Binary' + +name = 'Chemaxon-Marvin' +version = '23.9' + +homepage = 'https://chemaxon.com/marvin' +description = """Marvin suite is a chemically intelligent desktop toolkit built +to help you draw, edit, publish, render, import and export your chemical structures +and as well as allowing you to convert between various chemical and graphical file +formats. It is free for individual, academic and non-commercial use.""" + +# NOTE not in the license list of EB +# software_license = 'Proprietary: Personal, Commercial or Academic' +software_license_urls = ['https://www.chemaxon.com/marvin/license.html'] +docurls = [ + 'https://docs.chemaxon.com/display/docs/marvinsketch-user-s-guide.md', + 'https://docs.chemaxon.com/display/docs/marvinview-user-s-guide.md', + 'https://docs.chemaxon.com/display/docs/file-formats.md', +] + +toolchain = SYSTEM + +# Download and license at https://chemaxon.com/products/marvin +# Once logged in download files can be found here: +# https://download.chemaxon.com/marvin +sources = ['marvin_linux_%(version)s_openjdk11.rpm'] +checksums = ['21a3bcd75d41d614fb9768949e713bfbb299e5c782a7166eaad0cd13654b140f'] + +osdependencies = [('rpm', 'cpio')] # for extracting rpm-files + +dependencies = [ + ('Java', '11'), +] + +extract_sources = False + +install_cmd = 'rpm2cpio ' + sources[0] + ' | cpio -idmv && ' +install_cmd += 'cd opt/chemaxon/marvinsuite/ && ' +install_cmd += 'chmod -x bin/*.bat && ' +install_cmd += 'cp -ar . %(installdir)s/ && ' +install_cmd += 'rm -Rf %(installdir)s/jre %(installdir)s/legal' + +# plugins directory is empty +sanity_check_paths = { + 'files': ["bin/cxcalc", "bin/cxtrain", "bin/evaluate", "bin/molconvert", + "bin/msketch", "bin/mview", "EULA.html"], + 'dirs': ['lib'] +} + +sanity_check_commands = ["molconvert"] + +# You need a key/license file to fully activate Chemaxon Marvin +# +# COMMERCIAL +# For commercial use please contact sales@chemaxon.com +# NON-COMMERCIAL +# For personal use get a key to be renewed every 2 months at https://download.chemaxon.com/marvin +# For academic use get a key for research or educational purposes at https://chemaxon.com/academic-program +# +# The license file "license.cxl" has to be placed in $HOME/.chemaxon/ + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/c/Circuitscape/Circuitscape-5.12.3-Julia-1.9.2.eb b/easybuild/easyconfigs/c/Circuitscape/Circuitscape-5.12.3-Julia-1.9.2.eb new file mode 100644 index 00000000000..a6649359df9 --- /dev/null +++ b/easybuild/easyconfigs/c/Circuitscape/Circuitscape-5.12.3-Julia-1.9.2.eb @@ -0,0 +1,408 @@ +easyblock = 'JuliaBundle' + +name = 'Circuitscape' +version = '5.12.3' +_julia_ver = '1.9.2' +versionsuffix = "-Julia-%s" % _julia_ver + +homepage = 'https://github.com/Circuitscape/Circuitscape.jl' +description = "Algorithms from circuit theory to predict connectivity in heterogeneous landscapes" + +toolchain = SYSTEM + +dependencies = [ + ('Julia', _julia_ver, '-linux-%s' % ARCH, True), +] + +exts_list = [ + ('Preferences', '1.3.0', { + 'source_urls': ['https://github.com/JuliaPackaging/Preferences.jl/archive/'], + 'checksums': ['a87c1fc863fcb6240c3f4327776fa01a1f87e0d2df5a0c1850f789ce24469da2'], + }), + ('JLLWrappers', '1.4.1', { + 'source_urls': ['https://github.com/JuliaPackaging/JLLWrappers.jl/archive/'], + 'checksums': ['2cb61d4171e8ebc74e36ee20e6e0ba959aa5525a9c2fef5547e0993566018775'], + }), + ('IntelOpenMP_jll', '2018.0.3+2', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/IntelOpenMP_jll.jl/archive/'], + 'sources': ['IntelOpenMP-v%(version)s.tar.gz'], + 'checksums': ['4e8586f0b794ba5cf159dde99774aab4509a32555fc900140f533999db476aab'], + }), + ('MKL_jll', '2022.2.0+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/MKL_jll.jl/archive/'], + 'sources': ['MKL-v%(version)s.tar.gz'], + 'checksums': ['228a80c33ae71a3efc78ed9f6a3329fd20a48ad80ff7af44f0d42057e1af4241'], + }), + ('Reexport', '1.2.2', { + 'source_urls': ['https://github.com/simonster/Reexport.jl/archive/'], + 'checksums': ['2566f7776aae9697cbf15765fc32187f46dd51200abc953a0266863ad67132b3'], + }), + ('CommonSolve', '0.2.3', { + 'source_urls': ['https://github.com/SciML/CommonSolve.jl/archive/'], + 'checksums': ['5a1fe0c82571697e45bf8d4488b68a656584b07c8a2045b26e52ae01ec118e1b'], + }), + ('AlgebraicMultigrid', '0.5.1', { + 'source_urls': ['https://github.com/JuliaLinearAlgebra/AlgebraicMultigrid.jl/archive/'], + 'checksums': ['c33896880d1495b2ffc80dcbe5a2a2d6f305a9555e041ebd1191899e824e75e7'], + }), + ('Pardiso', '0.5.4', { + 'source_urls': ['https://github.com/JuliaSparse/Pardiso.jl/archive/'], + 'checksums': ['b60a693dd71a19fc3155b36683f8c812f217de59ee7eda77c9cd0855468a3c4a'], + }), + ('GZip', '0.5.1', { + 'source_urls': ['https://github.com/JuliaIO/GZip.jl/archive/'], + 'checksums': ['c74976af07cbe835a5bb5396ade41feb90a782267e94bc3a98bb1ad1446ba54f'], + }), + ('SnoopPrecompile', '2.9.5', { + 'source_urls': ['https://github.com/timholy/SnoopCompile.jl/archive/'], + 'start_dir': '%(name)s', + 'checksums': ['a86ca9179fac77efd3771c71c620914aa6909754d474cd754f2ee8600fad9a4a'], + }), + ('RecipesBase', '1.3.0', { + 'source_urls': ['https://github.com/JuliaPlots/RecipesBase.jl/archive/'], + 'checksums': ['2a4b7371e565f175a018c0df0cc24dce41fc2f103ad80de87f6c5bc600dbca1a'], + }), + ('NaNMath', '1.0.1', { + 'source_urls': ['https://github.com/JuliaMath/NaNMath.jl/archive/'], + 'checksums': ['caa5666b24b4c5fb8f4d3e4b650f6360e8e19b8bd2d1cb3019a15849c363c45d'], + }), + ('FixedPointNumbers', '0.8.4', { + 'source_urls': ['https://github.com/JuliaMath/FixedPointNumbers.jl/archive/'], + 'checksums': ['6ccfbaf032ed49cf9c82e2770fa8fd53dc88bea12c3799f3fc7f5bc9a33cb89c'], + }), + ('ColorTypes', '0.11.4', { + 'source_urls': ['https://github.com/JuliaGraphics/ColorTypes.jl/archive/'], + 'checksums': ['b188587bb23a59ae5898d741197767e1ab9ad7463eda93efa9a4903863033941'], + }), + ('Colors', '0.12.10', { + 'source_urls': ['https://github.com/JuliaGraphics/Colors.jl/archive/'], + 'checksums': ['a428649a4dc839bb04d43b6424943442609436a8472142076396bbe08c154219'], + }), + ('TensorCore', '0.1.1', { + 'source_urls': ['https://github.com/JuliaMath/TensorCore.jl/archive/'], + 'checksums': ['af2696c11f0fdcb884cea2446297cb792ada202ef2e7b438db65a981ba20c34c'], + }), + ('Compat', '4.5.0', { + 'source_urls': ['https://github.com/JuliaLang/Compat.jl/archive/'], + 'checksums': ['247e7c5f9fd405233bd2b4c96fb3f6deb4a27385d9c6c4d0a74eed6fbad0c02f'], + }), + ('ChainRulesCore', '1.15.6', { + 'source_urls': ['https://github.com/JuliaDiff/ChainRulesCore.jl/archive/'], + 'checksums': ['79e22fc981fa7c44b3efc2f07903f555c5520dc38d0d3d31b6390980c786cb60'], + }), + ('IrrationalConstants', '0.1.1', { + 'source_urls': ['https://github.com/JuliaMath/IrrationalConstants.jl/archive/'], + 'checksums': ['2eccfb55449d25d363d96ce116c45b39110d1572248e04e136ec4c37fe84ba96'], + }), + ('ChangesOfVariables', '0.1.4', { + 'source_urls': ['https://github.com/JuliaMath/ChangesOfVariables.jl/archive/'], + 'checksums': ['2eb2eb59711d53d284a9cc998e9facf3a1720cfde26eb672676cbe944fa9224a'], + }), + ('DocStringExtensions', '0.9.3', { + 'source_urls': ['https://github.com/JuliaDocs/DocStringExtensions.jl/archive/'], + 'checksums': ['9c712789b1cbd367bced9fafb995dee026f931ac68b55e476d1c666210564ae6'], + }), + ('InverseFunctions', '0.1.8', { + 'source_urls': ['https://github.com/JuliaMath/InverseFunctions.jl/archive/'], + 'checksums': ['6b3e72037c2198268bc5247daeb14eaa5cf2b37f41c7c735b3cd2355bad1584b'], + }), + ('LogExpFunctions', '0.3.19', { + 'source_urls': ['https://github.com/JuliaStats/LogExpFunctions.jl/archive/'], + 'checksums': ['759e0c217d3a2d665229cd2a019adc03b4c3691934cf9662bff04afec47844e4'], + }), + ('OpenSpecFun_jll', '0.5.5+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/OpenSpecFun_jll.jl/archive/'], + 'sources': ['OpenSpecFun-v%(version)s.tar.gz'], + 'checksums': ['6d1df617dd0a80fc0de5bc41a092e51f72782dbfd296c64e151707733cb57b6f'], + }), + ('SpecialFunctions', '2.1.7', { + 'source_urls': ['https://github.com/JuliaMath/SpecialFunctions.jl/archive/'], + 'checksums': ['a2c917bdb7a854a6bf76eaca7891b4faaf1b99d39ef976d22eb5694deae57da9'], + }), + ('ColorVectorSpace', '0.9.9', { + 'source_urls': ['https://github.com/JuliaGraphics/ColorVectorSpace.jl/archive/'], + 'checksums': ['65fbeb5ab58ad0063dcd2d1451b4f0744680eb35f2965b382330158d4b076f15'], + }), + ('ColorSchemes', '3.20.0', { + 'source_urls': ['https://github.com/JuliaGraphics/ColorSchemes.jl/archive/'], + 'checksums': ['270a075dcbc73de571a51ffc24b535ab50c2755d225d126d49982d8ffde42df0'], + }), + ('PlotUtils', '1.3.4', { + 'source_urls': ['https://github.com/JuliaPlots/PlotUtils.jl/archive/'], + 'checksums': ['823e5410b2195c9c20803560f1528306d2c8c33986120c2c52d3aa8ffb75f200'], + }), + ('IterativeSolvers', '0.9.2', { + 'source_urls': ['https://github.com/JuliaLinearAlgebra/IterativeSolvers.jl/archive/'], + 'checksums': ['95fbfa39aa68e989ae6bad2f51ce0fe5635ba3f3375d0ea4d9422e77ff924a9b'], + }), + ('Inflate', '0.1.3', { + 'source_urls': ['https://github.com/GunnarFarneback/Inflate.jl/archive/'], + 'sources': [{'download_filename': '8bae86f.tar.gz', 'filename': 'Inflate.v%(version)s.tar.gz'}], + 'checksums': ['7a22ff75ad9bb1975e578877a817056a2fdd71a68fe824cbb4eb354202f03d37'], + }), + ('MacroTools', '0.5.10', { + 'source_urls': ['https://github.com/FluxML/MacroTools.jl/archive/'], + 'checksums': ['0c61fe20a40346b0d1c248ff57e047b669ae47ad2d971b2ca7b91efdddff71ac'], + }), + ('SimpleTraits', '0.9.4', { + 'source_urls': ['https://github.com/mauro3/SimpleTraits.jl/archive/'], + 'checksums': ['56bf55e12e6aba4ad55cc831150b1c9b0ca1647956d306c9ffb57b7db5315568'], + }), + ('OrderedCollections', '1.4.1', { + 'source_urls': ['https://github.com/JuliaCollections/OrderedCollections.jl/archive/'], + 'checksums': ['ad6d191a2bf6f0c04abaf795fa93b3db6c3f3fb97498b464fcf7297b3a4bf6b6'], + }), + ('DataStructures', '0.18.13', { + 'source_urls': ['https://github.com/JuliaCollections/DataStructures.jl/archive/'], + 'checksums': ['0d34f8a04390cac93321acbe9a15b5ecdd01473f1e5d9696ff2ce0625ff85804'], + }), + ('StaticArraysCore', '1.4.0', { + 'source_urls': ['https://github.com/JuliaArrays/StaticArraysCore.jl/archive/'], + 'checksums': ['75000b27d655effa6b0b6ee20071ce476895fd6c5551a3143ee691e535d2b4fb'], + }), + ('StaticArrays', '1.5.11', { + 'source_urls': ['https://github.com/JuliaArrays/StaticArrays.jl/archive/'], + 'checksums': ['aee09ee3f32ffe437e7fcb7cd69aab840cbff97bbb5896984902afb83d5dc89c'], + }), + ('ArnoldiMethod', '0.2.0', { + 'source_urls': ['https://github.com/JuliaLinearAlgebra/ArnoldiMethod.jl/archive/'], + 'checksums': ['cd232b8fe2c6f9277fb646d03d77cc1fc80fd5b3278db6b3dfa32fb20d5c0a21'], + }), + ('Graphs', '1.7.4', { + 'source_urls': ['https://github.com/JuliaGraphs/Graphs.jl/archive/'], + 'checksums': ['b66aea6943ce1ca087d38c998c2b8c4fd7fb2868dedd4049027cb5bf716a7163'], + }), + ('SimpleWeightedGraphs', '1.2.1', { + 'source_urls': ['https://github.com/JuliaGraphs/SimpleWeightedGraphs.jl/archive/'], + 'sources': [{'download_filename': 'bf40216.tar.gz', 'filename': 'SimpleWeightedGraphs.v%(version)s.tar.gz'}], + 'checksums': ['ba62083cc2575c8eeac80f1bcdd31ba6aa88bb98f462029e950a397dc9f21294'], + }), + ('Adapt', '3.4.0', { + 'source_urls': ['https://github.com/JuliaGPU/Adapt.jl/archive/'], + 'checksums': ['de313f013c0c3125164efcc74299f52c9a9f1b5bbff99856df755c3cdb7fb72a'], + }), + ('OffsetArrays', '1.12.8', { + 'source_urls': ['https://github.com/JuliaArrays/OffsetArrays.jl/archive/'], + 'checksums': ['c4a103b1e80e70365b936e9c9a5282b4318b7324830401355c6ce76dd748218e'], + }), + ('DiskArrays', '0.3.8', { + 'source_urls': ['https://github.com/meggart/DiskArrays.jl/archive/'], + 'checksums': ['fbc25877def2392c2287b7b61684eda5168c0d64696f872d2f1d0ab46f152282'], + }), + ('GeoFormatTypes', '0.4.1', { + 'source_urls': ['https://github.com/JuliaGeo/GeoFormatTypes.jl/archive/'], + 'checksums': ['9acb138b9ef1d16f89d38ef4bde69d43e3ce0d29e142c9369f1b2476f27694fa'], + }), + ('GeoInterface', '0.5.7', { + 'source_urls': ['https://github.com/JuliaGeo/GeoInterface.jl/archive/'], + 'checksums': ['c88ea36f341dedf4057dedca0bb40ca4ac28454ff140cf9b72af29060f3aacf6'], + }), + ('CEnum', '0.4.2', { + 'source_urls': ['https://github.com/JuliaInterop/CEnum.jl/archive/'], + 'checksums': ['8d7f546621692028d64df10112a8c180ba12c64edba225ef52c8a5708c13ebce'], + }), + ('Zstd_jll', '1.5.2+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/Zstd_jll.jl/archive/'], + 'sources': ['Zstd-v%(version)s.tar.gz'], + 'checksums': ['7a4830ea735d9fc5918c972791f58e9aa53ad225a0f4e5a9f4fcad12bc37f75d'], + }), + ('Expat_jll', '2.4.8+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/Expat_jll.jl/archive/'], + 'sources': ['Expat-v%(version)s.tar.gz'], + 'checksums': ['b4b6c5f15d4ed1674d0eb91f419ab82d41f9e7b3fed0d92fea483ad28f04fcf4'], + }), + ('LZO_jll', '2.10.1+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/LZO_jll.jl/archive/'], + 'sources': ['LZO-v%(version)s.tar.gz'], + 'checksums': ['e17d6a3177942daa4913d3cebdd81d61484ee5a60ab2300d16fb7aa144a26763'], + }), + ('snappy_jll', '1.1.9+1', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/snappy_jll.jl/archive/'], + 'sources': ['snappy-v%(version)s.tar.gz'], + 'checksums': ['d01d93b110aebe9a77259cf765c47304e5a6384bff688d97172e1bf5e2a400d3'], + }), + ('Bzip2_jll', '1.0.8+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/Bzip2_jll.jl/archive/'], + 'sources': [{'download_filename': 'aa035c3.tar.gz', 'filename': 'Bzip2.v%(version)s.tar.gz'}], + 'checksums': ['8cb62e388fbcc10fc67842ee74db618ddf394744b04eb9c9afd8297c2fd86695'], + }), + ('boost_jll', '1.76.0+1', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/boost_jll.jl/archive/'], + 'sources': ['boost-v%(version)s.tar.gz'], + 'checksums': ['a79a87aff9b742c6274ff76765cf12e6e618ae2167bc43606e98d08e6523167d'], + }), + ('Lz4_jll', '1.9.3+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/Lz4_jll.jl/archive/'], + 'sources': ['Lz4-v%(version)s.tar.gz'], + 'checksums': ['3a283936a65f1ca0aa9560e51cfb8d1603813632dbe8b04720c7675df923f5a0'], + }), + ('Thrift_jll', '0.16.0+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/Thrift_jll.jl/archive/'], + 'sources': ['Thrift-v%(version)s.tar.gz'], + 'checksums': ['b9e80b4eee731964b1f32b5a9b32b33c8864b68b46b12bc04bcd059586a16129'], + }), + ('Arrow_jll', '10.0.0+1', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/Arrow_jll.jl/archive/'], + 'sources': ['Arrow-v%(version)s.tar.gz'], + 'checksums': ['4738ef5887323e5e00881e786c1354c62264a1152b65fb85a9213fb2570f5493'], + }), + ('GEOS_jll', '3.11.0+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/GEOS_jll.jl/archive/'], + 'sources': ['GEOS-v%(version)s.tar.gz'], + 'checksums': ['eda41987007fc51049984177bed13e90d2b2cb0dc095b7e32e49a423491d9611'], + }), + ('OpenSSL_jll', '1.1.19+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/OpenSSL_jll.jl/archive/'], + 'sources': ['OpenSSL-v%(version)s.tar.gz'], + 'checksums': ['40ad35be566994e9d2176b4cd5a0da9c2887515a061e3d683abc22d1a83043b1'], + }), + ('HDF5_jll', '1.12.2+2', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/HDF5_jll.jl/archive/'], + 'sources': ['HDF5-v%(version)s.tar.gz'], + 'checksums': ['18524e113506f3c94243199f76d56294b316c304c1dfc2a3a6aece44c4620da4'], + }), + ('Libiconv_jll', '1.16.1+2', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/Libiconv_jll.jl/archive/'], + 'sources': ['Libiconv-v%(version)s.tar.gz'], + 'checksums': ['3c5064c969e1e3530515205404c7857daa0c4d1cc1f49f1a60984d23d610c270'], + }), + ('XML2_jll', '2.9.14+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/XML2_jll.jl/archive/'], + 'sources': ['XML2-v%(version)s.tar.gz'], + 'checksums': ['f4cd422d1b67d2d66ef4650035a0e437c521e5a32d6598edd282b50464dcb054'], + }), + ('NetCDF_jll', '400.902.5+1', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/NetCDF_jll.jl/archive/'], + 'sources': ['NetCDF-v%(version)s.tar.gz'], + 'checksums': ['0382f17c486ffe7aa6f18f5b2ee514a837ef5db09385665494cbf58612355163'], + }), + ('SQLite_jll', '3.40.0+1', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/SQLite_jll.jl/archive/'], + 'sources': ['SQLite-v%(version)s.tar.gz'], + 'checksums': ['f77d154bfb66a4f724cba274ab370fbfe3854894940bc02e69c7ef6a1babe9df'], + }), + ('JpegTurbo_jll', '2.1.2+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/JpegTurbo_jll.jl/archive/'], + 'sources': ['JpegTurbo-v%(version)s.tar.gz'], + 'checksums': ['f6e8f77a39fdd6888a1ce7e0c752ab8c3fd17ade62f7f45f5fc829de45600395'], + }), + ('LERC_jll', '3.0.0+1', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/LERC_jll.jl/archive/'], + 'sources': ['LERC-v%(version)s.tar.gz'], + 'checksums': ['60ba286d96254373a0a6b0ec8691d7476ed33b25a75dc804c95dfcd1d656455a'], + }), + ('Libtiff_jll', '4.4.0+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/Libtiff_jll.jl/archive/'], + 'sources': ['Libtiff-v%(version)s.tar.gz'], + 'checksums': ['73ad75c466fc5694aa1f394f44e2f3202414e361fb5ded49f716ec505e7bbe3d'], + }), + ('PROJ_jll', '900.100.0+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/PROJ_jll.jl/archive/'], + 'sources': ['PROJ-v%(version)s.tar.gz'], + 'checksums': ['6518f3806c2dffad35a8dc72869ddd8cf1fd2e3db991df24a8d7c10ce26f2103'], + }), + ('libpng_jll', '1.6.37+5', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/libpng_jll.jl/archive/'], + 'sources': [{'download_filename': '7610368.tar.gz', 'filename': 'libpng.v%(version)s.tar.gz'}], + 'checksums': ['7e0a70ab2113c54fe4073b361c5fa8eb8b58a26e9b3f645d3ffa7ce4b73ec958'], + }), + ('LittleCMS_jll', '2.12.0+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/LittleCMS_jll.jl/archive/'], + 'sources': ['LittleCMS-v%(version)s.tar.gz'], + 'checksums': ['4dede22b4ab918066bbf6b8a80b44e4ffe8d83dd883fc422b51a90655b057b4a'], + }), + ('OpenJpeg_jll', '2.4.0+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/OpenJpeg_jll.jl/archive/'], + 'sources': ['OpenJpeg-v%(version)s.tar.gz'], + 'checksums': ['1d8d18e86094819415a5ab48ab4f37d745bc635a5b08ff01fa5f859a53e5794f'], + }), + ('Kerberos_krb5_jll', '1.19.3+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/Kerberos_krb5_jll.jl/archive/'], + 'sources': ['Kerberos_krb5-v%(version)s.tar.gz'], + 'checksums': ['0f844d477d3ef0a9fbe87db467b7e336dca978c58a55e3924b4c60d7356142a8'], + }), + ('LibPQ_jll', '14.3.0+1', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/LibPQ_jll.jl/archive/'], + 'sources': ['LibPQ-v%(version)s.tar.gz'], + 'checksums': ['d6ede7d326efa4b1551825a606472ed6db4b7cd2c95ff32a99f2fc6626699cb0'], + }), + ('libgeotiff_jll', '100.700.100+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/libgeotiff_jll.jl/archive/'], + 'sources': ['libgeotiff-v%(version)s.tar.gz'], + 'checksums': ['5181a2f0efc07938768644560c80674122e91011ad9e169aaf62d369dd8730df'], + }), + ('GDAL_jll', '301.600.100+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/GDAL_jll.jl/archive/'], + 'sources': ['GDAL-v%(version)s.tar.gz'], + 'checksums': ['7e10b59b3375da11db936fd7f0669e4f0d3490a90fc2dca465c6e07e9670482e'], + }), + ('GDAL', '1.5.0', { + 'source_urls': ['https://github.com/JuliaGeo/GDAL.jl/archive/'], + 'checksums': ['0ef1553577b11a14d7e8e9bc7d139754ccccd6d5def6a9a6de728e5a6b433f1b'], + }), + ('IteratorInterfaceExtensions', '1.0.0', { + 'source_urls': ['https://github.com/queryverse/IteratorInterfaceExtensions.jl/archive/'], + 'checksums': ['c43dc43fc29c0c7aa738793c5a847ce29491c5fca1a0f0e434fff1bb1c5c7994'], + }), + ('TableTraits', '1.0.1', { + 'source_urls': ['https://github.com/queryverse/TableTraits.jl/archive/'], + 'checksums': ['a69811f66cd1b7a6d91a0da30bf8a3ab796138615c4ada2d0f4ec044313b32e2'], + }), + ('DataAPI', '1.14.0', { + 'source_urls': ['https://github.com/JuliaData/DataAPI.jl/archive/'], + 'checksums': ['595e34053a6bfe9d504644a0df438560bc2676dba29c7175a733fb5300ce1ad4'], + }), + ('DataValueInterfaces', '1.0.0', { + 'source_urls': ['https://github.com/queryverse/DataValueInterfaces.jl/archive/'], + 'checksums': ['7f70be7cf1e49f7ce45bca8452193d08c2e75378f6b473205395c01010929825'], + }), + ('Tables', '1.10.0', { + 'source_urls': ['https://github.com/JuliaData/Tables.jl/archive/'], + 'checksums': ['4bb59d844830a0888de4ba3612484ce681e56b8571a6e4d6a605d442b3d1d0e4'], + }), + ('Graphics', '1.1.2', { + 'source_urls': ['https://github.com/JuliaGraphics/Graphics.jl/archive/'], + 'checksums': ['c28a6b29266f3c260616eef3d139184b267e0ae4d95ad89b379a5c973888bbb7'], + }), + ('PaddedViews', '0.5.11', { + 'source_urls': ['https://github.com/JuliaArrays/PaddedViews.jl/archive/'], + 'checksums': ['0506dc45cb371e6078fd055b8f21cd40755326e4b5c1b752e71489445e020cda'], + }), + ('MappedArrays', '0.4.1', { + 'source_urls': ['https://github.com/JuliaArrays/MappedArrays.jl/archive/'], + 'checksums': ['58ba4ef19d23737ffc2501e871545365fa1f6c5af84eef93549402a9f25fad56'], + }), + ('StackViews', '0.1.1', { + 'source_urls': ['https://github.com/JuliaArrays/StackViews.jl/archive/'], + 'checksums': ['8a8f008663c70ea9409263c9d2b78b0e246f9e6c700003e6a0e4dd5fe01558e9'], + }), + ('MosaicViews', '0.3.4', { + 'source_urls': ['https://github.com/JuliaArrays/MosaicViews.jl/archive/'], + 'sources': [{'download_filename': '7bb84df.tar.gz', 'filename': 'MosaicViews.v%(version)s.tar.gz'}], + 'checksums': ['fd7fc8679417789b77130e847605fec2c9fe68a3de8a4b12f5c2612aee269273'], + }), + ('AbstractFFTs', '1.2.1', { + 'source_urls': ['https://github.com/JuliaMath/AbstractFFTs.jl/archive/'], + 'checksums': ['58abf90b037c618daeed89940c77ac129b5155b26429ac77643cc9c5db453363'], + }), + ('ImageCore', '0.9.4', { + 'source_urls': ['https://github.com/JuliaImages/ImageCore.jl/archive/'], + 'checksums': ['de5d244989891f47edc4f27bf8bf6557a6982e907f0874a62ad3480c9c333983'], + }), + ('ArchGDAL', '0.8.5', { + 'source_urls': ['https://github.com/yeesian/ArchGDAL.jl/archive/'], + 'checksums': ['e24ec57d88a3a07feac7db5b2501b8f06a1047c42a8eadcde9500e3601984065'], + }), + ('DelimitedFiles', '1.9.0', { + 'source_urls': ['https://github.com/JuliaData/DelimitedFiles.jl/archive/'], + 'checksums': ['6b6329fb32aa9c503434711f1f004309013bddbd20d4f95c25bf6446631ef80b'], + }), + (name, version, { + 'source_urls': ['https://github.com/Circuitscape/Circuitscape.jl/archive/'], + 'checksums': ['1eb5b6f5711865792204677359c1b9d9247ae3f34af42f58dfe2ec4ad3dd2177'], + }), +] + +sanity_check_commands = ["julia -e 'using Pkg;Pkg.test(\"Circuitscape\")'"] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/c/Clair3/Clair3-1.0.4-foss-2022a.eb b/easybuild/easyconfigs/c/Clair3/Clair3-1.0.4-foss-2022a.eb new file mode 100644 index 00000000000..caf0349270a --- /dev/null +++ b/easybuild/easyconfigs/c/Clair3/Clair3-1.0.4-foss-2022a.eb @@ -0,0 +1,63 @@ +easyblock = 'MakeCp' + +name = 'Clair3' +version = '1.0.4' + +homepage = 'https://github.com/HKU-BAL/Clair3' +description = """Clair3 is a germline small variant caller for long-reads. +Clair3 makes the best of two major method categories: pileup calling handles +most variant candidates with speed, and full-alignment tackles complicated candidates +to maximize precision and recall. Clair3 runs fast and has superior performance, +especially at lower coverage. Clair3 is simple and modular for easy deployment and +integration.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +github_account = 'HKU-BAL' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%(version)s.tar.gz'] +patches = ['Clair3-remove_htslib.patch'] +checksums = [ + {'v1.0.4.tar.gz': '56cc4cf43f1cc652958cc1aea95d87d0811531a924ca5c68dd564d41834654c0'}, + {'Clair3-remove_htslib.patch': 'f77c80755c848ec90f72efbba7b61e3cbc80421d216344e06f6b94e114887285'}, +] + +dependencies = [ + ('Python', '3.10.4'), + ('mpath', '1.1.3'), + ('TensorFlow', '2.11.0'), + ('PyTables', '3.8.0'), + ('pigz', '2.7'), + ('cffi', '1.15.1'), + ('parallel', '20220722'), + ('SAMtools', '1.16.1'), + ('WhatsHap', '1.7'), + ('zlib', '1.2.12'), + ('bzip2', '1.0.8'), + ('Automake', '1.16.5'), + ('cURL', '7.83.0'), + ('zstd', '1.5.2'), + ('HTSlib', '1.15.1'), + ('libdeflate', '1.10'), + ('PyPy', '7.3.12', '-3.10', SYSTEM), +] + +files_to_copy = [ + (['clair3', 'clair3.py', 'longphase', 'preprocess', 'run_clair3.sh', 'scripts', 'shared'], 'bin'), + (['libclair3.*'], 'lib'), +] + +sanity_check_paths = { + 'files': ['bin/run_clair3.sh', 'bin/clair3.py', 'bin/longphase', 'lib/libclair3.%s' % SHLIB_EXT], + 'dirs': ['bin/clair3', 'bin/preprocess', 'bin/scripts', 'bin/shared'], +} + +sanity_check_commands = [ + "longphase --help", + "run_clair3.sh --help", + "python -c 'import libclair3'", +] + +modextrapaths = {'PYTHONPATH': 'lib'} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/c/Clair3/Clair3-remove_htslib.patch b/easybuild/easyconfigs/c/Clair3/Clair3-remove_htslib.patch new file mode 100644 index 00000000000..c39f98ec30b --- /dev/null +++ b/easybuild/easyconfigs/c/Clair3/Clair3-remove_htslib.patch @@ -0,0 +1,88 @@ +Remove building of dependencies we provide via easybuild +Author: Denis Kristak (Inuits), Kenneth Hoste (HPC-UGent) +diff -ruN Clair3-1.0.4.orig/build.py Clair3-1.0.4/build.py +--- Clair3-1.0.4.orig/build.py 2023-07-16 14:39:15.000000000 +0200 ++++ Clair3-1.0.4/build.py 2023-09-20 16:57:43.713924133 +0200 +@@ -6,7 +6,7 @@ + + samver = "1.15.1" + file_directory = os.path.dirname(os.path.realpath(__file__)) +-htslib_dir = os.path.join(file_directory, 'samtools-{}'.format(samver), 'htslib-{}'.format(samver)) ++htslib_dir = os.path.join(os.getenv('EBROOTHTSLIB'), 'lib') + + libraries = ['m', 'z', 'lzma', 'bz2', 'pthread', 'curl', 'crypto'] + extra_link_args = [] +@@ -53,7 +53,7 @@ + 'clair3_full_alignment.c')], + extra_compile_args=extra_compile_args, + extra_link_args=extra_link_args, +- extra_objects=[os.path.join(htslib_dir, 'libhts.a')] ++ extra_objects=[os.path.join(htslib_dir, 'libhts.so')] + ) + + cdef = [ +diff -ruN Clair3-1.0.4_orig/Makefile Clair3-1.0.4/Makefile +--- Clair3-1.0.4_orig/Makefile 2023-09-07 14:28:29.842168186 +0100 ++++ Clair3-1.0.4/Makefile 2023-09-07 14:35:52.320773700 +0100 +@@ -3,8 +3,10 @@ + + PYTHON ?= python3 + +-all : libhts.a longphase libclair3.so +-clean : clean_htslib clean_longphase clean_libclair3 ++# all : libhts.a longphase libclair3.so ++# clean : clean_htslib clean_longphase clean_libclair3 ++all : longphase libclair3.so ++clean : clean_longphase clean_libclair3 + + SAMVER = 1.15.1 + LPVER = 1.3 +@@ -16,16 +18,16 @@ + CPPFLAGS = -std=c++11 -Wall -O3 -I ${PREFIX}/include -L ${PREFIX}/lib -Wl,-rpath=${PREFIX}/lib + LP_CPPFLAGS = -std=c++11 -Wall -g -O3 -I ${PREFIX}/include -L ${PREFIX}/lib -Wl,-rpath=${PREFIX}/lib + +-samtools-$(SAMVER)/Makefile: +- curl -L -o samtools-${SAMVER}.tar.bz2 https://github.com/samtools/samtools/releases/download/${SAMVER}/samtools-${SAMVER}.tar.bz2; \ +- tar -xjf samtools-${SAMVER}.tar.bz2; \ +- rm samtools-${SAMVER}.tar.bz2 +- +-libhts.a: samtools-$(SAMVER)/Makefile +- # this is required only to add in -fpic so we can build python module +- @echo "\x1b[1;33mMaking $(@F)\x1b[0m" +- cd samtools-${SAMVER}/htslib-${SAMVER}; CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" ./configure; make CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" +- cp samtools-${SAMVER}/htslib-${SAMVER}/$@ $@ ++# samtools-$(SAMVER)/Makefile: ++# curl -L -o samtools-${SAMVER}.tar.bz2 https://github.com/samtools/samtools/releases/download/${SAMVER}/samtools-${SAMVER}.tar.bz2; \ ++# tar -xjf samtools-${SAMVER}.tar.bz2; \ ++# rm samtools-${SAMVER}.tar.bz2 ++ ++# libhts.a: samtools-$(SAMVER)/Makefile ++# # this is required only to add in -fpic so we can build python module ++# @echo "\x1b[1;33mMaking $(@F)\x1b[0m" ++# cd samtools-${SAMVER}/htslib-${SAMVER}; CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" ./configure; make CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" ++# cp samtools-${SAMVER}/htslib-${SAMVER}/$@ $@ + + + longphase-$(LPVER)/Makefile: +@@ -39,15 +41,15 @@ + cp longphase-${LPVER}/$@ $@ + + +-libclair3.so: samtools-${SAMVER}/htslib-${SAMVER} ++libclair3.so: + ${PYTHON} build.py + + +-.PHONY: clean_htslib +-clean_htslib: +- cd samtools-${SAMVER} && make clean || exit 0 +- cd samtools-${SAMVER}/htslib-${SAMVER} && make clean || exit 0 +- rm libhts.a ++# .PHONY: clean_htslib ++# clean_htslib: ++# cd samtools-${SAMVER} && make clean || exit 0 ++# cd samtools-${SAMVER}/htslib-${SAMVER} && make clean || exit 0 ++# rm libhts.a + + .PHONY: clean_longphase + clean_longphase: diff --git a/easybuild/easyconfigs/c/CVS/CVS-1.11.23-getline.patch b/easybuild/easyconfigs/c/ConcurrentVersionsSystem/CVS-1.11.23-getline.patch similarity index 100% rename from easybuild/easyconfigs/c/CVS/CVS-1.11.23-getline.patch rename to easybuild/easyconfigs/c/ConcurrentVersionsSystem/CVS-1.11.23-getline.patch diff --git a/easybuild/easyconfigs/c/CVS/CVS-1.11.23-zlib-1.patch b/easybuild/easyconfigs/c/ConcurrentVersionsSystem/CVS-1.11.23-zlib-1.patch similarity index 100% rename from easybuild/easyconfigs/c/CVS/CVS-1.11.23-zlib-1.patch rename to easybuild/easyconfigs/c/ConcurrentVersionsSystem/CVS-1.11.23-zlib-1.patch diff --git a/easybuild/easyconfigs/c/CVS/CVS-1.11.23-GCC-4.8.2.eb b/easybuild/easyconfigs/c/ConcurrentVersionsSystem/ConcurrentVersionsSystem-1.11.23-GCC-4.8.2.eb similarity index 90% rename from easybuild/easyconfigs/c/CVS/CVS-1.11.23-GCC-4.8.2.eb rename to easybuild/easyconfigs/c/ConcurrentVersionsSystem/ConcurrentVersionsSystem-1.11.23-GCC-4.8.2.eb index d6aba60dab8..871628918c8 100644 --- a/easybuild/easyconfigs/c/CVS/CVS-1.11.23-GCC-4.8.2.eb +++ b/easybuild/easyconfigs/c/ConcurrentVersionsSystem/ConcurrentVersionsSystem-1.11.23-GCC-4.8.2.eb @@ -5,7 +5,7 @@ easyblock = 'ConfigureMake' -name = 'CVS' +name = 'ConcurrentVersionsSystem' version = '1.11.23' homepage = 'https://savannah.nongnu.org/projects/cvs' @@ -15,7 +15,7 @@ description = """CVS is a version control system, an important component of toolchain = {'name': 'GCC', 'version': '4.8.2'} source_urls = [' http://ftp.gnu.org/non-gnu/cvs/source/stable/%(version)s/'] -sources = [SOURCELOWER_TAR_BZ2] +sources = ['cvs-%(version)s.tar.bz2'] patches = ['CVS-1.11.23-zlib-1.patch', 'CVS-1.11.23-getline.patch'] diff --git a/easybuild/easyconfigs/c/CVS/CVS-1.11.23-GCCcore-11.2.0.eb b/easybuild/easyconfigs/c/ConcurrentVersionsSystem/ConcurrentVersionsSystem-1.11.23-GCCcore-11.2.0.eb similarity index 93% rename from easybuild/easyconfigs/c/CVS/CVS-1.11.23-GCCcore-11.2.0.eb rename to easybuild/easyconfigs/c/ConcurrentVersionsSystem/ConcurrentVersionsSystem-1.11.23-GCCcore-11.2.0.eb index 2f480e47a5b..6275858037f 100644 --- a/easybuild/easyconfigs/c/CVS/CVS-1.11.23-GCCcore-11.2.0.eb +++ b/easybuild/easyconfigs/c/ConcurrentVersionsSystem/ConcurrentVersionsSystem-1.11.23-GCCcore-11.2.0.eb @@ -5,7 +5,7 @@ easyblock = 'ConfigureMake' -name = 'CVS' +name = 'ConcurrentVersionsSystem' version = '1.11.23' homepage = 'https://savannah.nongnu.org/projects/cvs' @@ -16,7 +16,7 @@ Source Configuration Management (SCM). toolchain = {'name': 'GCCcore', 'version': '11.2.0'} source_urls = [' https://ftp.gnu.org/non-gnu/cvs/source/stable/%(version)s/'] -sources = [SOURCELOWER_TAR_BZ2] +sources = ['cvs-%(version)s.tar.bz2'] patches = [ 'CVS-1.11.23-zlib-1.patch', 'CVS-1.11.23-getline.patch', diff --git a/easybuild/easyconfigs/c/CVS/CVS-1.11.23-GCCcore-4.9.3.eb b/easybuild/easyconfigs/c/ConcurrentVersionsSystem/ConcurrentVersionsSystem-1.11.23-GCCcore-4.9.3.eb similarity index 90% rename from easybuild/easyconfigs/c/CVS/CVS-1.11.23-GCCcore-4.9.3.eb rename to easybuild/easyconfigs/c/ConcurrentVersionsSystem/ConcurrentVersionsSystem-1.11.23-GCCcore-4.9.3.eb index b4f49365df8..3d594d8f915 100644 --- a/easybuild/easyconfigs/c/CVS/CVS-1.11.23-GCCcore-4.9.3.eb +++ b/easybuild/easyconfigs/c/ConcurrentVersionsSystem/ConcurrentVersionsSystem-1.11.23-GCCcore-4.9.3.eb @@ -5,7 +5,7 @@ easyblock = 'ConfigureMake' -name = 'CVS' +name = 'ConcurrentVersionsSystem' version = '1.11.23' homepage = 'https://savannah.nongnu.org/projects/cvs' @@ -15,7 +15,7 @@ description = """CVS is a version control system, an important component of toolchain = {'name': 'GCCcore', 'version': '4.9.3'} source_urls = [' http://ftp.gnu.org/non-gnu/cvs/source/stable/%(version)s/'] -sources = [SOURCELOWER_TAR_BZ2] +sources = ['cvs-%(version)s.tar.bz2'] patches = ['CVS-1.11.23-zlib-1.patch', 'CVS-1.11.23-getline.patch'] diff --git a/easybuild/easyconfigs/c/CVS/CVS-1.11.23-GCCcore-6.4.0.eb b/easybuild/easyconfigs/c/ConcurrentVersionsSystem/ConcurrentVersionsSystem-1.11.23-GCCcore-6.4.0.eb similarity index 93% rename from easybuild/easyconfigs/c/CVS/CVS-1.11.23-GCCcore-6.4.0.eb rename to easybuild/easyconfigs/c/ConcurrentVersionsSystem/ConcurrentVersionsSystem-1.11.23-GCCcore-6.4.0.eb index b4435cfaa54..196d0c4fc1d 100644 --- a/easybuild/easyconfigs/c/CVS/CVS-1.11.23-GCCcore-6.4.0.eb +++ b/easybuild/easyconfigs/c/ConcurrentVersionsSystem/ConcurrentVersionsSystem-1.11.23-GCCcore-6.4.0.eb @@ -5,7 +5,7 @@ easyblock = 'ConfigureMake' -name = 'CVS' +name = 'ConcurrentVersionsSystem' version = '1.11.23' homepage = 'https://savannah.nongnu.org/projects/cvs' @@ -15,7 +15,7 @@ description = """CVS is a version control system, an important component of toolchain = {'name': 'GCCcore', 'version': '6.4.0'} source_urls = [' http://ftp.gnu.org/non-gnu/cvs/source/stable/%(version)s/'] -sources = [SOURCELOWER_TAR_BZ2] +sources = ['cvs-%(version)s.tar.bz2'] patches = [ 'CVS-1.11.23-zlib-1.patch', 'CVS-1.11.23-getline.patch', diff --git a/easybuild/easyconfigs/c/Coot/Coot-0.9.8.92-binary-Linux-x86_64-scientific-linux-7.6-python-gtk2.eb b/easybuild/easyconfigs/c/Coot/Coot-0.9.8.92-binary-Linux-x86_64-scientific-linux-7.6-python-gtk2.eb new file mode 100644 index 00000000000..6d09c67ecfa --- /dev/null +++ b/easybuild/easyconfigs/c/Coot/Coot-0.9.8.92-binary-Linux-x86_64-scientific-linux-7.6-python-gtk2.eb @@ -0,0 +1,28 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Adam Mazur +# Research IT +# Biozentrum - University of Basel +# 0.9.8.92 update by Adam Huffman, University of Oxford + +easyblock = "Tarball" + +name = 'Coot' +version = '0.9.8.92' +versionsuffix = '-binary-Linux-x86_64-scientific-linux-7.6-python-gtk2' + +homepage = 'http://www2.mrc-lmb.cam.ac.uk/Personal/pemsley/coot' +description = """Coot is for macromolecular model building, model completion +and validation, particularly suitable for protein modelling using X-ray data.""" + +toolchain = SYSTEM + +source_urls = ['http://www2.mrc-lmb.cam.ac.uk/Personal/pemsley/coot/binaries/release'] +sources = ['%(namelower)s-%(version)s%(versionsuffix)s.tar.gz'] +checksums = ['3babef48f5cea17c702347e41c51e7492192c685ef1c7d8b796569eb9f80d8d9'] + +sanity_check_paths = { + 'files': ["bin/coot"], + 'dirs': ["lib"] +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/c/CopyKAT/CopyKAT-1.1.0-foss-2022b-R-4.2.2.eb b/easybuild/easyconfigs/c/CopyKAT/CopyKAT-1.1.0-foss-2022b-R-4.2.2.eb new file mode 100644 index 00000000000..26a7de55e4b --- /dev/null +++ b/easybuild/easyconfigs/c/CopyKAT/CopyKAT-1.1.0-foss-2022b-R-4.2.2.eb @@ -0,0 +1,29 @@ +easyblock = 'RPackage' + +name = 'CopyKAT' +local_commit = 'b795ff7' +version = '1.1.0' +versionsuffix = '-R-%(rver)s' + +homepage = 'https://github.com/navinlabcode/copykat' +description = """CopyKAT: Inference of genomic copy number and subclonal structure of human tumors from + high-throughput single cell RNAseq data""" + +toolchain = {'name': 'foss', 'version': '2022b'} + +source_urls = ['https://github.com/navinlabcode/copykat/archive'] +sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}] +checksums = ['8b4e39591ad81d146873694b8311607bfec88ad57df8daa9244b2e31904193b5'] + +dependencies = [ + ('R', '4.2.2'), +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['%(namelower)s'], +} + +options = {'modulename': '%(namelower)s'} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/c/CuPy/CuPy-12.1.0-foss-2022b-CUDA-12.0.0.eb b/easybuild/easyconfigs/c/CuPy/CuPy-12.1.0-foss-2022b-CUDA-12.0.0.eb new file mode 100644 index 00000000000..fe28564b8e2 --- /dev/null +++ b/easybuild/easyconfigs/c/CuPy/CuPy-12.1.0-foss-2022b-CUDA-12.0.0.eb @@ -0,0 +1,70 @@ +easyblock = 'PythonBundle' + +name = 'CuPy' +version = '12.1.0' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://cupy.dev' +description = "CuPy is an open-source array library accelerated with NVIDIA CUDA." + +toolchain = {'name': 'foss', 'version': '2022b'} + +builddependencies = [ + ('hypothesis', '6.68.2'), +] + +dependencies = [ + ('Python', '3.10.8'), + ('SciPy-bundle', '2023.02'), + ('CUDA', '12.0.0', '', SYSTEM), + ('cuDNN', '8.8.0.121', versionsuffix, SYSTEM), + ('NCCL', '2.16.2', versionsuffix), + ('cuTENSOR', '1.7.0.1', versionsuffix, SYSTEM), + # Adding cuSPARSELt currently makes the build fail. Keeping it around for later versions to pick up. + # ('cuSPARSELt', '0.3.0.3', versionsuffix, SYSTEM), +] + +use_pip = True + +exts_default_options = {'source_urls': [PYPI_LOWER_SOURCE]} + +# A bunch of the tests are failing or are just having problems. +_skip_tests = [ + 'tests/cupyx_tests/scipy_tests', + 'tests/cupyx_tests/distributed_tests', + 'tests/cupyx_tests/tools_tests', + 'tests/example_tests', + 'tests/cupy_tests/testing_tests/test_parameterized.py', + 'tests/cupy_tests/fft_tests/test_fft.py', +] +_ignore_list = ' --ignore='.join(_skip_tests) + +_deselect_tests = [ + 'tests/cupy_tests/core_tests/test_carray.py::TestCArray32BitBoundary_param_', + # float16 has too low precision for these tests as they are written + # See https://github.com/easybuilders/easybuild-easyconfigs/pull/17526#issuecomment-1470843170 for details. + 'tests/cupy_tests/linalg_tests/test_product.py::TestProduct', +] +_deselect_list = ' --deselect='.join(_deselect_tests) + +exts_list = [ + ('fastrlock', '0.8.1', { + 'checksums': ['8a5f2f00021c4ac72e4dab910dc1863c0e008a2e7fb5c843933ae9bcfc3d0802'], + }), + ('cupy', version, { + # Must run tests here since the required version of pytest is a builddep + # Note! test_cudnn and some others will likely fail on T4 GPUs due to out of memory. + 'runtest': 'export CUPY_TEST_GPU_LIMIT=1 CUPY_CACHE_DIR="%%(builddir)s" && ' + 'pytest --ignore=%s --deselect=%s tests' % (_ignore_list, _deselect_list), + 'testinstall': True, + 'checksums': ['f6d31989cdb2d96581da12822e28b102f29e254427195c2017eac327869b7320'], + }), +] + +sanity_check_commands = [ + "python -c 'import cupy'", +] + +sanity_pip_check = True + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/c/Cufflinks/Cufflinks-20190706-GCC-11.2.0.eb b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-20190706-GCC-11.2.0.eb index 403c88a5dca..98ab2c0bfa1 100644 --- a/easybuild/easyconfigs/c/Cufflinks/Cufflinks-20190706-GCC-11.2.0.eb +++ b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-20190706-GCC-11.2.0.eb @@ -19,10 +19,10 @@ builddependencies = [ ('Eigen', '3.3.9'), ('Autotools', '20210726'), ('SAMtools', '1.14'), + ('Boost', '1.75.0'), ] dependencies = [ - ('Boost', '1.75.0'), ('zlib', '1.2.11'), ('HTSlib', '1.14'), ] @@ -30,9 +30,16 @@ dependencies = [ preconfigopts = 'autoreconf -i && export LIBS="${LIBS} -lhts" && export CFLAGS="$CFLAGS -fcommon" && ' configopts = '--with-boost=${EBROOTBOOST} --with-bam=${EBROOTSAMTOOLS}' +buildopts = "BOOST_FILESYSTEM_LIB=$EBROOTBOOST/lib/libboost_filesystem.a " +buildopts += "BOOST_SERIALIZATION_LIB=$EBROOTBOOST/lib/libboost_serialization.a " +buildopts += "BOOST_SYSTEM_LIB=$EBROOTBOOST/lib/libboost_system.a " +buildopts += "BOOST_THREAD_LIB=$EBROOTBOOST/lib/libboost_thread.a " + sanity_check_paths = { - 'files': ['bin/%(namelower)s'], + 'files': ['bin/cufflinks'], 'dirs': [] } +sanity_check_commands = ["cufflinks 2>&1 | grep 'Usage:.* cufflinks'"] + moduleclass = 'bio' diff --git a/easybuild/easyconfigs/c/cURL/cURL-8.3.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/cURL/cURL-8.3.0-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..4b937590771 --- /dev/null +++ b/easybuild/easyconfigs/c/cURL/cURL-8.3.0-GCCcore-13.2.0.eb @@ -0,0 +1,43 @@ +easyblock = 'ConfigureMake' + +name = 'cURL' +version = '8.3.0' + +homepage = 'https://curl.haxx.se' + +description = """ + libcurl is a free and easy-to-use client-side URL transfer library, + supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, + LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. + libcurl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP + form based upload, proxies, cookies, user+password authentication (Basic, + Digest, NTLM, Negotiate, Kerberos), file transfer resume, http proxy tunneling + and more. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://curl.haxx.se/download/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['d3a19aeea301085a56c32bc0f7d924a818a7893af253e41505d1e26d7db8e95a'] + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('zlib', '1.2.13'), + ('OpenSSL', '1.1', '', SYSTEM), +] + +configopts = '--with-zlib ' +configopts += '--with-ssl=$EBROOTOPENSSL ' + +modextravars = {'CURL_INCLUDES': '%(installdir)s/include'} + +sanity_check_paths = { + 'files': ['bin/curl', 'lib/libcurl.a', 'lib/libcurl.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig', 'include/curl'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/c/casacore/casacore-3.4.0-foss-2021b.eb b/easybuild/easyconfigs/c/casacore/casacore-3.4.0-foss-2021b.eb index aab5e755fdf..ad0813959d7 100644 --- a/easybuild/easyconfigs/c/casacore/casacore-3.4.0-foss-2021b.eb +++ b/easybuild/easyconfigs/c/casacore/casacore-3.4.0-foss-2021b.eb @@ -31,6 +31,7 @@ dependencies = [ ('CFITSIO', '3.49'), ('WCSLIB', '7.11'), ('HDF5', '1.12.1'), + ('GSL', '2.7'), ('SciPy-bundle', '2021.10'), ('Boost.Python', '1.77.0'), ('ncurses', '6.2'), diff --git a/easybuild/easyconfigs/c/casacore/casacore-3.5.0-foss-2022a.eb b/easybuild/easyconfigs/c/casacore/casacore-3.5.0-foss-2022a.eb new file mode 100644 index 00000000000..9c359a65e60 --- /dev/null +++ b/easybuild/easyconfigs/c/casacore/casacore-3.5.0-foss-2022a.eb @@ -0,0 +1,55 @@ +easyblock = 'CMakeMake' + +name = 'casacore' +version = '3.5.0' + +homepage = 'https://github.com/casacore/casacore' +description = """A suite of C++ libraries for radio astronomy data processing. +The ephemerides data needs to be in DATA_DIR and the location must be specified at runtime. +Thus user's can update them. +""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +source_urls = ['https://github.com/casacore/casacore/archive'] +sources = ['v%(version)s.tar.gz'] +checksums = [ + '63f1c8eff932b0fcbd38c598a5811e6e5397b72835b637d6f426105a183b3f91', # v3.5.0.tar.gz +] + +# Install casacore data +postinstallcmds = [ + 'wget --retry-connrefused ftp://anonymous@ftp.astron.nl/outgoing/Measures/WSRT_Measures.ztar' + + ' -O /tmp/WSRT_Measures.ztar' + + ' && tar xfvz /tmp/WSRT_Measures.ztar --one-top-level=%(installdir)s/data' +] + +builddependencies = [ + ('CMake', '3.24.3'), + ('flex', '2.6.4'), + ('Bison', '3.8.2'), + ('wget', '1.21.3'), +] + +dependencies = [ + ('CFITSIO', '4.2.0'), + ('WCSLIB', '7.11'), + ('HDF5', '1.12.2'), + ('GSL', '2.7'), + ('Boost.Python', '1.79.0'), + ('SciPy-bundle', '2022.05'), + ('ncurses', '6.3'), +] + +configopts = '-DBUILD_PYTHON=NO -DBUILD_PYTHON3=YES -Wno-dev -DCXX11="ON" -DDATA_DIR=%(installdir)s/data ' +configopts += '-DUSE_OPENMP=ON -DUSE_HDF5=ON -DUSE_MPI=ON' + +sanity_check_paths = { + 'files': ['lib/libcasa_casa.%s' % SHLIB_EXT, 'lib/libcasa_mirlib.%s' % SHLIB_EXT, + 'lib/libcasa_ms.%s' % SHLIB_EXT], + 'dirs': ['bin', 'include/casacore'], +} + +sanity_check_commands = [('measuresdata', '')] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/c/cffi/cffi-1.15.1-GCCcore-11.3.0.eb b/easybuild/easyconfigs/c/cffi/cffi-1.15.1-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..56cee831b54 --- /dev/null +++ b/easybuild/easyconfigs/c/cffi/cffi-1.15.1-GCCcore-11.3.0.eb @@ -0,0 +1,38 @@ +easyblock = "PythonBundle" + +name = 'cffi' +version = '1.15.1' + +homepage = 'https://cffi.readthedocs.io/en/latest/' +description = """C Foreign Function Interface for Python. Interact with almost any C code from +Python, based on C-like declarations that you can often copy-paste from header +files or documentation. +""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +builddependencies = [ + ('binutils', '2.38'), +] + +dependencies = [ + ('Python', '3.10.4'), +] + +exts_default_options = { + 'download_dep_fail': True, + 'sanity_pip_check': True, + 'use_pip': True, +} + +exts_list = [ + ('pycparser', '2.21', { + 'checksums': ['e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206'], + }), + (name, version, { + 'checksums': ['d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9'], + }), +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/c/cffi/cffi-1.15.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/cffi/cffi-1.15.1-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..049e6ed5a68 --- /dev/null +++ b/easybuild/easyconfigs/c/cffi/cffi-1.15.1-GCCcore-13.2.0.eb @@ -0,0 +1,38 @@ +easyblock = "PythonBundle" + +name = 'cffi' +version = '1.15.1' + +homepage = 'https://cffi.readthedocs.io/en/latest/' +description = """C Foreign Function Interface for Python. Interact with almost any C code from +Python, based on C-like declarations that you can often copy-paste from header +files or documentation. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('Python', '3.11.5'), +] + +exts_default_options = { + 'download_dep_fail': True, + 'sanity_pip_check': True, + 'use_pip': True, +} + +exts_list = [ + ('pycparser', '2.21', { + 'checksums': ['e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206'], + }), + (name, version, { + 'checksums': ['d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9'], + }), +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/c/cimfomfa/cimfomfa-22.273-GCCcore-12.3.0.eb b/easybuild/easyconfigs/c/cimfomfa/cimfomfa-22.273-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..54c69ee2996 --- /dev/null +++ b/easybuild/easyconfigs/c/cimfomfa/cimfomfa-22.273-GCCcore-12.3.0.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'cimfomfa' +version = '22.273' + +homepage = 'https://github.com/micans/cimfomfa' +description = """This library supports both MCL, a cluster algorithm for graphs, and zoem, a +macro/DSL language. It supplies abstractions for memory management, I/O, +associative arrays, strings, heaps, and a few other things. The string library +has had heavy testing as part of zoem. Both understandably and regrettably I +chose long ago to make it C-string-compatible, hence nul bytes may not be part +of a string. At some point I hope to rectify this, perhaps unrealistically.""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +# The Github repo only has earlier tags +source_urls = ['https://micans.org/mcl/src/'] +sources = ['%(namelower)s-%(version_major)s-%(version_minor)s.tar.gz'] +checksums = ['b0f0549fda1d288ddd22a2675581636a6f4bde0f01e956fcf452d0f815b4964f'] + +builddependencies = [ + ('binutils', '2.40'), + ('Autotools', '20220317'), +] + +preconfigopts = 'autoreconf -i -f &&' + +sanity_check_paths = { + 'files': ['lib/libtingea.%s' % x for x in ('a', SHLIB_EXT)], + 'dirs': ['include/tingea'] +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/c/code-server/code-server-4.16.1.eb b/easybuild/easyconfigs/c/code-server/code-server-4.16.1.eb new file mode 100644 index 00000000000..6f0b3e039d9 --- /dev/null +++ b/easybuild/easyconfigs/c/code-server/code-server-4.16.1.eb @@ -0,0 +1,20 @@ +name = 'code-server' +version = '4.16.1' + +homepage = 'https://github.com/cdr/code-server' +description = """Run VS Code on any machine anywhere and access it in the browser.""" + +toolchain = SYSTEM + +source_urls = ['https://github.com/cdr/code-server/releases/download/v%(version)s/'] +sources = ['code-server-%(version)s-linux-%(mapped_arch)s.tar.gz'] +checksums = [ + { + 'code-server-%(version)s-linux-amd64.tar.gz': + 'e10bc642be9fe8a802f556737b1bbb910ef818979a35034b092c85e62a42d1a7', + 'code-server-%(version)s-linux-arm64.tar.gz': + 'a256429887531d855baaa6b14b25906f69fa4b4a977b1ae0def001016fb37b81', + } +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/c/cpio/cpio-2.14-GCCcore-11.3.0.eb b/easybuild/easyconfigs/c/cpio/cpio-2.14-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..42a7a98c148 --- /dev/null +++ b/easybuild/easyconfigs/c/cpio/cpio-2.14-GCCcore-11.3.0.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' +name = 'cpio' +version = '2.14' + +homepage = "https://savannah.gnu.org/projects/cpio/" +description = """The cpio package contains tools for archiving.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['https://ftp.gnu.org/gnu/cpio/'] +sources = ['cpio-%(version)s.tar.bz2'] +checksums = ['fcdc15d60f7267a6fc7efcd6b9db7b6c8966c4f2fbbb964c24d41336fd3f2c12'] + +builddependencies = [ + ('binutils', '2.38'), + ('makeinfo', '6.8'), +] + +postinstallcmds = ['makeinfo --plaintext -o %(installdir)s/doc/cpio.txt doc/cpio.texi'] + +sanity_check_paths = { + 'files': ['bin/cpio'], + 'dirs': [] +} + +sanity_check_commands = ['cpio --help'] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/c/crossguid/crossguid-20190529-GCCcore-11.2.0.eb b/easybuild/easyconfigs/c/crossguid/crossguid-20190529-GCCcore-11.2.0.eb new file mode 100644 index 00000000000..09d586708fb --- /dev/null +++ b/easybuild/easyconfigs/c/crossguid/crossguid-20190529-GCCcore-11.2.0.eb @@ -0,0 +1,55 @@ +# Contribution from Imperial College London, UK +# uploaded by J. Sassmannshausen + +easyblock = 'CMakeMake' + +name = 'crossguid' +local_commit = 'ca1bf4b' +version = '20190529' + +homepage = 'https://github.com/graeme-hill/crossguid' +description = """ +CrossGuid is a minimal, cross platform, C++ GUID library. +It uses the best native GUID/UUID generator on the given platform and has a +generic class for parsing, stringifying, and comparing IDs. +The guid generation technique is determined by your platform:""" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/graeme-hill/crossguid/archive/%s' % local_commit] +sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}] +patches = ['crossguid-20190529_fix_libuuid.patch'] + +checksums = [ + '6be27e0b3a4907f0cd3cfadec255ee1b925569e1bd06e67a4d2f4267299b69c4', # crossguid-20190529.tar.gz + '9ee0f76e18b465ec93364d44d2adb7643081a5b5eee4524a14544472581d7782', # crossguid-20190529_fix_libuuid.patch +] + +builddependencies = [ + ('binutils', '2.37'), + ('CMake', '3.22.1'), +] + +dependencies = [ + ('util-linux', '2.37'), +] + +# build demo +# build static and shared libraries +configopts = ["-DCROSSGUID_TESTS=ON -DBUILD_SHARED_LIBS=%s" % local_shared for local_shared in ('OFF', 'ON')] + +# we want to have the crossguid-test +postinstallcmds = [ + 'mkdir -p %(installdir)s/bin/', + 'cp -a crossguid-test %(installdir)s/bin/', +] + +sanity_check_paths = { + 'files': ['lib/libcrossguid.a', 'bin/crossguid-test'], + 'dirs': ['include'], +} + +sanity_check_commands = ["crossguid-test"] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/c/ctffind/ctffind-4.1.14-foss-2023a.eb b/easybuild/easyconfigs/c/ctffind/ctffind-4.1.14-foss-2023a.eb new file mode 100644 index 00000000000..38f4a58c5d5 --- /dev/null +++ b/easybuild/easyconfigs/c/ctffind/ctffind-4.1.14-foss-2023a.eb @@ -0,0 +1,50 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics +# +# Author: Ake Sandgren, HPC2N, Umea University +# +# Author: Thomas Hoffmann, EMBL Heidelberg + +easyblock = 'ConfigureMake' + +name = 'ctffind' +version = '4.1.14' + +homepage = 'https://grigoriefflab.umassmed.edu/ctffind4' +description = """Program for finding CTFs of electron micrographs.""" + +toolchain = {'name': 'foss', 'version': '2023a'} +toolchainopts = {'openmp': True} + +source_urls = ['https://grigoriefflab.umassmed.edu/sites/default/files/'] +sources = [SOURCELOWER_TAR_GZ] +patches = [ + '%(name)s-%(version)s_asm-fix.patch', + '%(name)s-%(version)s_void-functions.patch' +] +checksums = [ + 'db17b2ebeb3c3b2b3764e42b820cd50d19ccccf6956c64257bfe5d5ba6b40cb5', # ctffind-4.1.14.tar.gz + 'e6d468b3f1569e2d42e077573529dbc3035a03715c436d2349ccaaab63b64f28', # ctffind-4.1.14_asm-fix.patch + '0a578328062881d86b10585f1b0efa81b7a1826baf3e7bcc5c749bba73e96d10', # ctffind-4.1.14_void-functions.patch +] + +dependencies = [ + ('zlib', '1.2.13'), + ('libjpeg-turbo', '2.1.5.1'), + ('LibTIFF', '4.5.0'), + ('GSL', '2.7',), + ('wxWidgets', '3.2.2.1'), +] + +configopts = '--enable-openmp ' + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/ctffind'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/c/cuDNN/cuDNN-8.9.2.26-CUDA-12.2.0.eb b/easybuild/easyconfigs/c/cuDNN/cuDNN-8.9.2.26-CUDA-12.2.0.eb new file mode 100644 index 00000000000..de4fa6034d9 --- /dev/null +++ b/easybuild/easyconfigs/c/cuDNN/cuDNN-8.9.2.26-CUDA-12.2.0.eb @@ -0,0 +1,40 @@ +name = 'cuDNN' +version = '8.9.2.26' +versionsuffix = '-CUDA-%(cudaver)s' +homepage = 'https://developer.nvidia.com/cudnn' +description = """The NVIDIA CUDA Deep Neural Network library (cuDNN) is +a GPU-accelerated library of primitives for deep neural networks.""" + +toolchain = SYSTEM + +# note: cuDNN is tied to specific to CUDA versions, +# see also https://docs.nvidia.com/deeplearning/cudnn/support-matrix/index.html#cudnn-cuda-hardware-versions +local_short_ver = '.'.join(version.split('.')[:3]) +local_cuda_major = '12' + +source_urls = [ + 'https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-%(cudnnarch)s/' +] +sources = ['%%(namelower)s-linux-%%(cudnnarch)s-%%(version)s_cuda%s-archive.tar.xz' % local_cuda_major] +checksums = [{ + '%%(namelower)s-linux-ppc64le-%%(version)s_cuda%s-archive.tar.xz' % local_cuda_major: + '4f5e5bd01570c4805b93fb199f8bb6f8475d016948c55abf48fed9ffe89d13e5', + '%%(namelower)s-linux-sbsa-%%(version)s_cuda%s-archive.tar.xz' % local_cuda_major: + '898d00c82f9ad8797bd6f6c639327b320a38fa4aeebfb2b3fbb2db0d38f7e1b0', + '%%(namelower)s-linux-x86_64-%%(version)s_cuda%s-archive.tar.xz' % local_cuda_major: + 'ccafd7d15c2bf26187d52d79d9ccf95104f4199980f5075a7c1ee3347948ce32', +}] + +dependencies = [('CUDA', '12.2.0')] + +sanity_check_paths = { + 'files': [ + 'include/cudnn.h', 'lib64/libcudnn_adv_infer_static.a', 'lib64/libcudnn_adv_train_static.a', + 'lib64/libcudnn_cnn_infer_static.a', 'lib64/libcudnn_cnn_train_static.a', + 'lib64/libcudnn_ops_infer_static.a', 'lib64/libcudnn_ops_train_static.a', + 'lib64/libcudnn.%s' % SHLIB_EXT + ], + 'dirs': ['include', 'lib64'], +} + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/d/DIAMOND/DIAMOND-2.1.8-GCC-12.3.0.eb b/easybuild/easyconfigs/d/DIAMOND/DIAMOND-2.1.8-GCC-12.3.0.eb new file mode 100644 index 00000000000..6d2a83ec881 --- /dev/null +++ b/easybuild/easyconfigs/d/DIAMOND/DIAMOND-2.1.8-GCC-12.3.0.eb @@ -0,0 +1,30 @@ +easyblock = 'CMakeMake' + +name = 'DIAMOND' +version = '2.1.8' + +homepage = 'https://github.com/bbuchfink/diamond' +description = "Accelerated BLAST compatible local sequence aligner" + +toolchain = {'name': 'GCC', 'version': '12.3.0'} + +github_account = 'bbuchfink' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['b6088259f2bc92d1f9dc4add44590cff68321bcbf91eefbc295a3525118b9415'] + +builddependencies = [ + ('CMake', '3.26.3'), +] + +dependencies = [ + ('zlib', '1.2.13'), +] + +sanity_check_paths = { + 'files': ['bin/%(namelower)s'], + 'dirs': [], +} +sanity_check_commands = ["%(namelower)s help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/d/DIRAC/DIRAC-23.0-foss-2023a.eb b/easybuild/easyconfigs/d/DIRAC/DIRAC-23.0-foss-2023a.eb new file mode 100644 index 00000000000..b2e2220079f --- /dev/null +++ b/easybuild/easyconfigs/d/DIRAC/DIRAC-23.0-foss-2023a.eb @@ -0,0 +1,43 @@ +easyblock = 'CMakeMake' + +name = 'DIRAC' +version = '23.0' + +homepage = 'http://www.diracprogram.org' +description = "DIRAC: Program for Atomic and Molecular Direct Iterative Relativistic All-electron Calculations" + +toolchain = {'name': 'foss', 'version': '2023a'} +toolchainopts = {'usempi': True} + +source_urls = ['https://zenodo.org/record/7670749/files/'] +sources = ['DIRAC-%(version)s-Source.tgz'] +checksums = ['a0a6b6318b3cd2e3c6042221de720bb1e87eb758999e2108a48dedb9c564e1f8'] + +builddependencies = [('CMake', '3.26.3')] + +dependencies = [ + ('Python', '3.11.3'), + ('HDF5', '1.14.0'), + ('SciPy-bundle', '2023.07'), + ('h5py', '3.9.0') +] + +configopts = '-DMKL_FLAG=off ' +configopts += '-DMATH_LIBS="$LIBLAPACK" ' +configopts += '-DENABLE_MPI=True ' +configopts += '-DENABLE_EXATENSOR=off ' +configopts += '-DENABLE_PCMSOLVER=off ' + +pretestopts = 'export DIRAC_TMPDIR=%(builddir)s/scratch && ' +pretestopts += 'export DIRAC_MPI_COMMAND="%(mpi_cmd_prefix)s " && ' + +runtest = 'test ARGS="-R pam_test" ' + +sanity_check_paths = { + 'files': ['bin/pam-dirac', 'share/dirac/dirac.x'], + 'dirs': ['share/dirac/basis'], +} + +sanity_check_commands = ["pam-dirac --help"] + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/d/DIRAC/DIRAC-23.0-intel-2023a-int64.eb b/easybuild/easyconfigs/d/DIRAC/DIRAC-23.0-intel-2023a-int64.eb new file mode 100644 index 00000000000..8a06671ca31 --- /dev/null +++ b/easybuild/easyconfigs/d/DIRAC/DIRAC-23.0-intel-2023a-int64.eb @@ -0,0 +1,42 @@ +easyblock = 'CMakeMake' + +name = 'DIRAC' +version = '23.0' +versionsuffix = '-int64' + +homepage = 'http://www.diracprogram.org' +description = "DIRAC: Program for Atomic and Molecular Direct Iterative Relativistic All-electron Calculations" + +toolchain = {'name': 'intel', 'version': '2023a'} +toolchainopts = {'usempi': True, 'i8': True, 'oneapi': False} + +source_urls = ['https://zenodo.org/record/7670749/files/'] +sources = ['DIRAC-%(version)s-Source.tgz'] +checksums = ['a0a6b6318b3cd2e3c6042221de720bb1e87eb758999e2108a48dedb9c564e1f8'] + +builddependencies = [('CMake', '3.26.3')] + +dependencies = [ + ('Python', '3.11.3'), + ('HDF5', '1.14.0') +] + +configopts = '-DMKL_FLAG=sequential ' +configopts += '-DENABLE_MPI=True ' +configopts += '-DENABLE_64BIT_INTEGERS=True ' +configopts += '-DENABLE_EXATENSOR=off ' +configopts += '-DENABLE_PCMSOLVER=off ' + +pretestopts = 'export DIRAC_TMPDIR=%(builddir)s/scratch && ' +pretestopts += 'export DIRAC_MPI_COMMAND="%(mpi_cmd_prefix)s " && ' + +runtest = 'test ARGS="-R symmetry_scf_energy" ' + +sanity_check_paths = { + 'files': ['bin/pam-dirac', 'share/dirac/dirac.x'], + 'dirs': ['share/dirac/basis'], +} + +sanity_check_commands = ["pam-dirac --help"] + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/d/DIRAC/DIRAC-23.0-intel-2023a.eb b/easybuild/easyconfigs/d/DIRAC/DIRAC-23.0-intel-2023a.eb new file mode 100644 index 00000000000..5366c453837 --- /dev/null +++ b/easybuild/easyconfigs/d/DIRAC/DIRAC-23.0-intel-2023a.eb @@ -0,0 +1,40 @@ +easyblock = 'CMakeMake' + +name = 'DIRAC' +version = '23.0' + +homepage = 'http://www.diracprogram.org' +description = "DIRAC: Program for Atomic and Molecular Direct Iterative Relativistic All-electron Calculations" + +toolchain = {'name': 'intel', 'version': '2023a'} +toolchainopts = {'usempi': True, 'oneapi': False} + +source_urls = ['https://zenodo.org/record/7670749/files/'] +sources = ['DIRAC-%(version)s-Source.tgz'] +checksums = ['a0a6b6318b3cd2e3c6042221de720bb1e87eb758999e2108a48dedb9c564e1f8'] + +builddependencies = [('CMake', '3.26.3')] + +dependencies = [ + ('Python', '3.11.3'), + ('HDF5', '1.14.0') +] + +configopts = '-DMKL_FLAG=sequential ' +configopts += '-DENABLE_MPI=True ' +configopts += '-DENABLE_EXATENSOR=off ' +configopts += '-DENABLE_PCMSOLVER=off ' + +pretestopts = 'export DIRAC_TMPDIR=%(builddir)s/scratch && ' +pretestopts += 'export DIRAC_MPI_COMMAND="%(mpi_cmd_prefix)s " && ' + +runtest = 'test ARGS="-R pam_test" ' + +sanity_check_paths = { + 'files': ['bin/pam-dirac', 'share/dirac/dirac.x'], + 'dirs': ['share/dirac/basis'], +} + +sanity_check_commands = ["pam-dirac --help"] + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/d/DL_POLY_4/DL_POLY_4-5.1.0-foss-2022b.eb b/easybuild/easyconfigs/d/DL_POLY_4/DL_POLY_4-5.1.0-foss-2022b.eb new file mode 100644 index 00000000000..9651ab16abc --- /dev/null +++ b/easybuild/easyconfigs/d/DL_POLY_4/DL_POLY_4-5.1.0-foss-2022b.eb @@ -0,0 +1,20 @@ +easyblock = 'CMakeMake' +name = "DL_POLY_4" +version = "5.1.0" +homepage = "https://www.scd.stfc.ac.uk/Pages/DL_POLY.aspx" +description = "DL_POLY is a general purpose classical molecular dynamics (MD) simulation software" + +toolchain = {'name': 'foss', 'version': '2022b'} + +source_urls = ['https://gitlab.com/ccp5/dl-poly/-/archive/%(version)s/'] +sources = ['dl_poly_%(version)s.tar.bz2'] +checksums = ['da5364986cd71e047e080753f6ca75135bf19bd5607770b839dea3734c2fdfaa'] + +builddependencies = [('CMake', '3.24.3')] + +sanity_check_paths = { + 'files': ['bin/DLPOLY.Z'], + 'dirs': [] +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/d/DL_POLY_4/DL_POLY_4-5.1.0-intel-2022b.eb b/easybuild/easyconfigs/d/DL_POLY_4/DL_POLY_4-5.1.0-intel-2022b.eb new file mode 100644 index 00000000000..b48df994884 --- /dev/null +++ b/easybuild/easyconfigs/d/DL_POLY_4/DL_POLY_4-5.1.0-intel-2022b.eb @@ -0,0 +1,20 @@ +easyblock = 'CMakeMake' +name = "DL_POLY_4" +version = "5.1.0" +homepage = "https://www.scd.stfc.ac.uk/Pages/DL_POLY.aspx" +description = "DL_POLY is a general purpose classical molecular dynamics (MD) simulation software" + +toolchain = {'name': 'intel', 'version': '2022b'} + +source_urls = ['https://gitlab.com/ccp5/dl-poly/-/archive/%(version)s/'] +sources = ['dl_poly_%(version)s.tar.bz2'] +checksums = ['da5364986cd71e047e080753f6ca75135bf19bd5607770b839dea3734c2fdfaa'] + +builddependencies = [('CMake', '3.24.3')] + +sanity_check_paths = { + 'files': ['bin/DLPOLY.Z'], + 'dirs': [] +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/d/DP3/DP3-6.0-foss-2022a.eb b/easybuild/easyconfigs/d/DP3/DP3-6.0-foss-2022a.eb new file mode 100644 index 00000000000..41dbbeb6af1 --- /dev/null +++ b/easybuild/easyconfigs/d/DP3/DP3-6.0-foss-2022a.eb @@ -0,0 +1,46 @@ +easyblock = 'CMakeMake' + +name = 'DP3' +version = '6.0' +homepage = 'https://dp3.readthedocs.io/' +description = """DP3: streaming processing pipeline for radio interferometric data.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +sources = [{ + 'filename': '%(name)s-v%(version)s.tar.gz', + 'git_config': { + 'url': 'https://git.astron.nl/RD', + 'repo_name': '%(name)s', + 'tag': 'v%(version)s', + 'clone_into': '%(name)s', + 'recursive': True, + }, +}] +checksums = [None] + +builddependencies = [ + ('CMake', '3.24.3'), +] + +dependencies = [ + ('casacore', '3.5.0'), + ('Boost', '1.79.0'), + ('CFITSIO', '4.2.0'), + ('WCSLIB', '7.11'), + ('GSL', '2.7'), + ('HDF5', '1.12.2'), + ('Python', '3.10.4'), + ('EveryBeam', '0.5.2'), + ('Armadillo', '11.4.3'), + ('AOFlagger', '3.4.0') +] + +sanity_check_paths = { + 'files': ['include/include/dp3/base/DP3.h', 'bin/DP3'], + 'dirs': ['bin'], +} + +sanity_check_commands = [('DP3', '--version')] + +moduleclass = 'astro' diff --git a/easybuild/easyconfigs/d/DoubletFinder/DoubletFinder-2.0.3-20230819-foss-2022b-R-4.2.2.eb b/easybuild/easyconfigs/d/DoubletFinder/DoubletFinder-2.0.3-20230819-foss-2022b-R-4.2.2.eb new file mode 100644 index 00000000000..fcc4a735bbc --- /dev/null +++ b/easybuild/easyconfigs/d/DoubletFinder/DoubletFinder-2.0.3-20230819-foss-2022b-R-4.2.2.eb @@ -0,0 +1,29 @@ +easyblock = 'RPackage' + +name = 'DoubletFinder' +local_commit = '1b1d4e2' +# see DESCRIPTION to determine version, +# but add date stamp of commit since version is not always bumped +version = '2.0.3-20230819' +versionsuffix = '-R-%(rver)s' + +homepage = 'https://github.com/chris-mcginnis-ucsf/DoubletFinder' +description = "R package for detecting doublets in single-cell RNA sequencing data" + +toolchain = {'name': 'foss', 'version': '2022b'} + +source_urls = ['https://github.com/chris-mcginnis-ucsf/DoubletFinder/archive/'] +sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}] +checksums = ['dbba44cf9c20306e444e41df26d7eeb3f0687a2cd0b677b7afc87cd7ad28f268'] + +dependencies = [ + ('R', '4.2.2'), + ('R-bundle-Bioconductor', '3.16', versionsuffix), +] + +sanity_check_paths = { + 'files': [], + 'dirs': [name], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.8-GCCcore-13.2.0.eb b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.8-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..e6c21e1dd18 --- /dev/null +++ b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.8-GCCcore-13.2.0.eb @@ -0,0 +1,31 @@ +name = 'Doxygen' +version = '1.9.8' + +homepage = 'https://www.doxygen.org' +description = """ + Doxygen is a documentation system for C++, C, Java, Objective-C, Python, + IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some + extent D. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%(namelower)s-%(version)s.src.tar.gz'] +checksums = ['05e3d228e8384b5f3af9c8fd6246d22804acb731a3a24ce285c8986ed7e14f62'] + +builddependencies = [ + ('binutils', '2.40'), + ('Bison', '3.8.2'), + ('CMake', '3.27.6'), + ('flex', '2.6.4'), + ('pkgconf', '2.0.3'), +] + +dependencies = [ + ('libiconv', '1.17'), +] + +configopts = "-DICONV_DIR=$EBROOTLIBICONV -DICONV_IN_GLIBC=OFF" + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/d/dask/dask-2023.9.2-foss-2023a.eb b/easybuild/easyconfigs/d/dask/dask-2023.9.2-foss-2023a.eb new file mode 100644 index 00000000000..cc2bda1e1ee --- /dev/null +++ b/easybuild/easyconfigs/d/dask/dask-2023.9.2-foss-2023a.eb @@ -0,0 +1,67 @@ +easyblock = 'PythonBundle' + +name = 'dask' +version = '2023.9.2' + +homepage = 'https://dask.org/' +description = """Dask natively scales Python. Dask provides advanced parallelism for analytics, enabling performance + at scale for the tools you love.""" + +toolchain = {'name': 'foss', 'version': '2023a'} + +dependencies = [ + ('Python', '3.11.3'), + ('Python-bundle-PyPI', '2023.06'), + ('PyYAML', '6.0'), + ('SciPy-bundle', '2023.07'), + ('bokeh', '3.2.2'), +] + +use_pip = True + +exts_list = [ + ('toolz', '0.12.0', { + 'checksums': ['88c570861c440ee3f2f6037c4654613228ff40c93a6c25e0eba70d17282c6194'], + }), + ('locket', '1.0.0', { + 'checksums': ['5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632'], + }), + ('partd', '1.4.0', { + 'checksums': ['aa0ff35dbbcc807ae374db56332f4c1b39b46f67bf2975f5151e0b4186aed0d5'], + }), + ('HeapDict', '1.0.1', { + 'checksums': ['8495f57b3e03d8e46d5f1b2cc62ca881aca392fd5cc048dc0aa2e1a6d23ecdb6'], + }), + ('zict', '3.0.0', { + 'checksums': ['e321e263b6a97aafc0790c3cfb3c04656b7066e6738c37fffcca95d803c9fba5'], + }), + ('tblib', '2.0.0', { + 'checksums': ['a6df30f272c08bf8be66e0775fad862005d950a6b8449b94f7c788731d70ecd7'], + }), + (name, version, { + 'checksums': ['34e04ed79870cd01119217562f417c6ce575b10fb8fdcd866e9c5cd10c088944'], + }), + ('distributed', version, { + 'checksums': ['b76b43be6a297c6cc6dc4eac7f5a05a8c6834aaf025ed37395d1d830448d540e'], + }), + ('dask-mpi', '2022.4.0', { + 'checksums': ['0a04f1d7d35a06cdff506593330d4414ea242c9172498ce191f5742eac499e17'], + }), + ('docrep', '0.3.2', { + 'checksums': ['ed8a17e201abd829ef8da78a0b6f4d51fb99a4cbd0554adbed3309297f964314'], + }), + ('dask-jobqueue', '0.8.2', { + 'checksums': ['d35407a05a0534347c5d958ae749b9f8535bec529857d013b6e5649cde43914a'], + }), +] + +sanity_check_paths = { + 'files': ['bin/dask-%s' % x for x in ['mpi', 'scheduler', 'ssh', 'worker']], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["dask-scheduler --help"] + +sanity_pip_check = True + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/d/dtcmp/dtcmp-1.1.4-gompi-2023a.eb b/easybuild/easyconfigs/d/dtcmp/dtcmp-1.1.4-gompi-2023a.eb new file mode 100644 index 00000000000..e6596fd46cd --- /dev/null +++ b/easybuild/easyconfigs/d/dtcmp/dtcmp-1.1.4-gompi-2023a.eb @@ -0,0 +1,39 @@ +# +# Author: Robert Mijakovic +# +easyblock = 'ConfigureMake' + +name = 'dtcmp' +version = '1.1.4' + +homepage = 'https://github.com/LLNL/dtcmp' +description = """The Datatype Comparison (DTCMP) Library provides pre-defined and user-defined +comparison operations to compare the values of two items which can be arbitrary MPI datatypes. +Using these comparison operations, the library provides various routines for manipulating data, +which may be distributed over the processes of an MPI communicator.""" + +toolchain = {'name': 'gompi', 'version': '2023a'} + +github_account = 'LLNL' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['5015b7b330b35e1871a6b5e53cf7045cfb0a29e61f9a678d1919f3bf14a85437'] + +builddependencies = [ + ('Autotools', '20220317'), + ('pkgconf', '1.9.5'), +] + +dependencies = [ + ('lwgrp', '1.0.5'), +] + +preconfigopts = './autogen.sh && ' +configopts = '--with-lwgrp=$EBROOTLWGRP' + +sanity_check_paths = { + 'files': ['include/%(name)s.h', 'lib/lib%%(name)s.%s' % SHLIB_EXT, 'share/%(name)s/README.md'], + 'dirs': [] +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/d/dxpy/dxpy-0.345.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/d/dxpy/dxpy-0.345.0-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..7090297dbe6 --- /dev/null +++ b/easybuild/easyconfigs/d/dxpy/dxpy-0.345.0-GCCcore-12.2.0.eb @@ -0,0 +1,67 @@ +# Updated to latest version +# Author: J. Sassmannshausen (Imperial College London/UK) + +easyblock = 'PythonBundle' + +name = 'dxpy' +version = '0.345.0' + +homepage = 'http://autodoc.dnanexus.com/' +description = "DNAnexus Platform API bindings for Python" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +builddependencies = [ + ('binutils', '2.39'), +] + +dependencies = [ + ('Python', '3.10.8'), + ('FUSE', '3.14.1'), + ('BeautifulSoup', '4.11.1'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('argcomplete', '3.0.5', { + 'checksums': ['fe3ce77125f434a0dd1bffe5f4643e64126d5731ce8d173d36f62fa43d6eb6f7'], + }), + ('xattr', '0.10.1', { + 'checksums': ['c12e7d81ffaa0605b3ac8c22c2994a8e18a9cf1c59287a1b7722a2289c952ec5'], + }), + ('fusepy', '3.0.1', { + 'modulename': 'fuse', + 'patches': ['fusepy-3.0.1_fix-libfuse.patch'], + 'checksums': [ + '72ff783ec2f43de3ab394e3f7457605bf04c8cf288a2f4068b4cde141d4ee6bd', # fusepy-3.0.1.tar.gz + '7650c5f922c24b820f2b33e0b5b1af8923c1a5c4ff397701cd970ea33c757fbe', # fusepy-3.0.1_fix-libfuse.patch + ], + }), + ('backports.ssl_match_hostname', '3.7.0.1', { + 'checksums': ['bb82e60f9fbf4c080eabd957c39f0641f0fc247d9a16e31e26d594d8f42b9fd2'], + }), + ('python-magic', '0.4.27', { + 'modulename': 'magic', + 'checksums': ['c1ba14b08e4a5f5c31a302b7721239695b2f0f058d125bd5ce1ee36b9d9d3c3b'], + }), + ('websocket_client', '0.54.0', { + 'modulename': 'websocket', + 'checksums': ['e51562c91ddb8148e791f0155fdb01325d99bb52c4cdbb291aee7a3563fd0849'], + }), + (name, version, { + 'checksums': ['cf5b47e83866a9c87a4fc59262eac500e860f6a890e6a897a577eff68e28cff2'], + # strip away too strict version requirements for requests dependency + 'preinstallopts': "sed -i 's/requests.*/requests/g' requirements.txt && ", + }), +] + +sanity_check_paths = { + 'files': ['bin/dx'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["dx --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/d/dxpy/fusepy-3.0.1_fix-libfuse.patch b/easybuild/easyconfigs/d/dxpy/fusepy-3.0.1_fix-libfuse.patch new file mode 100644 index 00000000000..52eb7ae9be9 --- /dev/null +++ b/easybuild/easyconfigs/d/dxpy/fusepy-3.0.1_fix-libfuse.patch @@ -0,0 +1,17 @@ +fix name of FUSE library to search for (libfuse3.so for FUSE 3.x) +author: Kenneth Hoste (HPC-UGent) +updated to 3.0.1 +author: J. Sassmannshausen (Imperial College London/UK) +diff --git a/fusepy-3.0.1.orig/fuse.py b/fusepy-3.0.1/fuse.py +index 7c2ddc4..f95730f 100644 +--- a/fusepy-3.0.1.orig/fuse.py ++++ b/fusepy-3.0.1/fuse.py +@@ -109,7 +109,7 @@ if not _libfuse_path: + if _libfuse_path: + _libfuse_path += r"bin\winfsp-%s.dll" % ("x64" if sys.maxsize > 0xffffffff else "x86") + else: +- _libfuse_path = find_library('fuse') ++ _libfuse_path = find_library('fuse3') + + if not _libfuse_path: + raise EnvironmentError('Unable to find libfuse') diff --git a/easybuild/easyconfigs/e/EDirect/EDirect-20.5.20231006-GCCcore-12.3.0.eb b/easybuild/easyconfigs/e/EDirect/EDirect-20.5.20231006-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..6d7b7e3bb2e --- /dev/null +++ b/easybuild/easyconfigs/e/EDirect/EDirect-20.5.20231006-GCCcore-12.3.0.eb @@ -0,0 +1,57 @@ +## +# This is a contribution from SIB Swiss Institute of Bioinformatics +# Homepage: https://www.sib.swiss/research-infrastructure/competence-centers/vital-it +# +# Authors:: Sebastien Moretti +# +## +easyblock = 'Binary' + +name = 'EDirect' +version = '20.5.20231006' + +homepage = 'https://www.ncbi.nlm.nih.gov/books/NBK25501/' +# See also https://dataguide.nlm.nih.gov/edirect/install.html +description = """Entrez Direct (EDirect) provides access to the NCBI's suite of +interconnected databases from a Unix terminal window. Search terms are entered +as command-line arguments. Individual operations are connected with Unix pipes +to construct multi-step queries. Selected records can then be retrieved in a +variety of formats.""" +# software_license = 'Public Domain' + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +source_urls = ['https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['abb7a7c2d7dd4bf80b5f951211d20bf432fe9b787f6ad093feba2f5cb46d62dd'] + +builddependencies = [ + ('Go', '1.21.2', '', SYSTEM), +] + +dependencies = [ + ('Python', '3.11.3'), + ('Perl', '5.36.1'), +] + +extract_sources = True + +postinstallcmds = [ + "cd cmd/ && " + "sed -i 's@target=\"\\$HOME/Misc/scripts/\"@target=\"%(installdir)s/\"@' build.sh && " + "./build.sh install && cd %(installdir)s/ && rm -rf cmd/ eutils/" +] + +sanity_check_paths = { + 'files': ['einfo', 'README'], + 'dirs': ['help'], +} + +sanity_check_commands = [ + "esearch -version && " + "xtract -version && " + "esearch -db pubmed -query 'Babalobi OO[au] AND 2008[pdat]' | efetch -format xml | " + "xtract -pattern Author -if Affiliation -contains Medicine -element Initials" +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/e/ELPA/ELPA-2023.05.001-intel-2023a.eb b/easybuild/easyconfigs/e/ELPA/ELPA-2023.05.001-intel-2023a.eb new file mode 100644 index 00000000000..ec3779ae7ee --- /dev/null +++ b/easybuild/easyconfigs/e/ELPA/ELPA-2023.05.001-intel-2023a.eb @@ -0,0 +1,53 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Authors:: Inge Gutheil , Alan O'Cais +# License:: MIT/GPL +# +## + +name = 'ELPA' +version = '2023.05.001' + +homepage = 'https://elpa.mpcdf.mpg.de/' +description = """Eigenvalue SoLvers for Petaflop-Applications.""" + +toolchain = {'name': 'intel', 'version': '2023a'} +toolchainopts = {'openmp': True, 'usempi': True} + +source_urls = ['https://gitlab.mpcdf.mpg.de/elpa/elpa/-/archive/new_release_%(version)s/'] +sources = ['elpa-new_release_%(version)s.tar.gz'] +patches = [ + '%(name)s-%(version)s_fix_hardcoded_perl_path.patch', + '%(name)s-%(version)s_fix_AVX512_support.patch', +] +checksums = [ + {'%(namelower)s-new_release_%(version)s.tar.gz': + '7e07ca287ab07c0a73d97df71d5a5431c847b8e4d5c759aae99e12672e6decf3'}, + {'%(name)s-%(version)s_fix_hardcoded_perl_path.patch': + '0548105065777a2ed07dde306636251c4f96e555a801647564de37d1ddd7b0b5'}, + {'%(name)s-%(version)s_fix_AVX512_support.patch': + 'ecf08b64fe1da432a218040fa45d4ecfbb3269d58cb018b12da5a2d854bf96be'}, +] + +builddependencies = [ + ('Autotools', '20220317'), + # remove_xcompiler script requires 'python' command, + ('Python', '3.11.3'), + ('Perl', '5.36.1'), +] + +preconfigopts = './autogen.sh && ' +preconfigopts += 'export LDFLAGS="-lm $LDFLAGS" && ' +preconfigopts += 'autoreconf && ' +# If the build is running in a batch job, make sure Intel libmpi does +# not try to use Slurm to run the MPI_THREAD test code that ELPA's +# configure is running without "mpirun". +preconfigopts += 'unset SLURM_JOBID && unset SLURM_NODELIST && unset I_MPI_PMI_LIBRARY && ' + +# When building in parallel, the file test_setup_mpi.mod is sometimes +# used before it is built, leading to an error. This must be a bug in +# the makefile affecting parallel builds. +maxparallel = 1 + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.1-foss-2021a-CUDA-11.3.1.eb b/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.1-foss-2021a-CUDA-11.3.1.eb index 9690edeb0ea..4808bb96632 100644 --- a/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.1-foss-2021a-CUDA-11.3.1.eb +++ b/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.1-foss-2021a-CUDA-11.3.1.eb @@ -29,6 +29,8 @@ dependencies = [ ] configopts = ' -DCMAKE_SKIP_RPATH=OFF -DWITH_TESTS=ON -DWITH_CUDA=ON' +# make sure the right Python is used (note: -DPython3_EXECUTABLE or -DPython_EXECUTABLE does not work!) +configopts += ' -DPYTHON_EXECUTABLE=$EBROOTPYTHON/bin/python ' runtest = 'check_unit_tests && make check_python' diff --git a/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.1-foss-2021a.eb b/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.1-foss-2021a.eb index b18d54ed895..edaea20c78c 100644 --- a/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.1-foss-2021a.eb +++ b/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.1-foss-2021a.eb @@ -27,6 +27,8 @@ dependencies = [ ] configopts = ' -DCMAKE_SKIP_RPATH=OFF -DWITH_TESTS=ON -DWITH_CUDA=OFF' +# make sure the right Python is used (note: -DPython3_EXECUTABLE or -DPython_EXECUTABLE does not work!) +configopts += ' -DPYTHON_EXECUTABLE=$EBROOTPYTHON/bin/python ' runtest = 'check_unit_tests && make check_python' diff --git a/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.1-foss-2022a-CUDA-11.8.0.eb b/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.1-foss-2022a-CUDA-11.8.0.eb index 907da191566..c524dee3c8c 100644 --- a/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.1-foss-2022a-CUDA-11.8.0.eb +++ b/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.1-foss-2022a-CUDA-11.8.0.eb @@ -29,6 +29,8 @@ dependencies = [ ] configopts = ' -DCMAKE_SKIP_RPATH=OFF -DWITH_TESTS=ON -DWITH_CUDA=ON' +# make sure the right Python is used (note: -DPython3_EXECUTABLE or -DPython_EXECUTABLE does not work!) +configopts += ' -DPYTHON_EXECUTABLE=$EBROOTPYTHON/bin/python ' runtest = 'check_unit_tests && make check_python' diff --git a/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.1-foss-2022a.eb b/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.1-foss-2022a.eb index 032b259661d..e5bd5a63f74 100644 --- a/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.1-foss-2022a.eb +++ b/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.1-foss-2022a.eb @@ -27,6 +27,8 @@ dependencies = [ ] configopts = ' -DCMAKE_SKIP_RPATH=OFF -DWITH_TESTS=ON -DWITH_CUDA=OFF' +# make sure the right Python is used (note: -DPython3_EXECUTABLE or -DPython_EXECUTABLE does not work!) +configopts += ' -DPYTHON_EXECUTABLE=$EBROOTPYTHON/bin/python ' runtest = 'check_unit_tests && make check_python' diff --git a/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.8.1.eb b/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.8.1.eb new file mode 100644 index 00000000000..ce5994d0950 --- /dev/null +++ b/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.8.1.eb @@ -0,0 +1,44 @@ +easyblock = 'EB_EasyBuildMeta' + +name = 'EasyBuild' +version = '4.8.1' + +homepage = 'https://easybuilders.github.io/easybuild' +description = """EasyBuild is a software build and installation framework + written in Python that allows you to install software in a structured, + repeatable and robust way.""" + +toolchain = SYSTEM + +source_urls = [ + # easybuild-framework + 'https://files.pythonhosted.org/packages/48/81/ba869b5b0a35256776050d68832cd2deef907bd49ed9ad37af987292f7b4/', + # easybuild-easyblocks + 'https://files.pythonhosted.org/packages/a2/d8/49510a1a42bff15321209cc5b97c4fbb9f875a5b5444ceb5c1aa99555574/', + # easybuild-easyconfigs + 'https://files.pythonhosted.org/packages/8e/fb/ae4772bc01a0e9b64fe6c632a6fc83031f224553c835e6597df0dfd08178/', +] +sources = [ + 'easybuild-framework-%(version)s.tar.gz', + 'easybuild-easyblocks-%(version)s.tar.gz', + 'easybuild-easyconfigs-%(version)s.tar.gz', +] +checksums = [ + {'easybuild-framework-4.8.1.tar.gz': '5e5a98b6dde42172a373b62710f7a62fb6ffea1a0bcdb587a662a14b984aa4d2'}, + {'easybuild-easyblocks-4.8.1.tar.gz': '8d51be0811a727c4bad166d3b03aa2dabf8e17ff26b8d48be8cf8970081e673a'}, + {'easybuild-easyconfigs-4.8.1.tar.gz': '880747d8c9ff0d621eff1b66a81c65a2c9a80488b9161f119557150934a22812'}, +] + +# order matters a lot, to avoid having dependencies auto-resolved (--no-deps easy_install option doesn't work?) +# EasyBuild is a (set of) Python packages, so it depends on Python +# usually, we want to use the system Python, so no actual Python dependency is listed +allow_system_deps = [('Python', SYS_PYTHON_VERSION)] + +local_pyshortver = '.'.join(SYS_PYTHON_VERSION.split('.')[:2]) + +sanity_check_paths = { + 'files': ['bin/eb'], + 'dirs': ['lib/python%s/site-packages' % local_pyshortver], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/e/Eigen/Eigen-3.4.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/e/Eigen/Eigen-3.4.0-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..be01a493ef6 --- /dev/null +++ b/easybuild/easyconfigs/e/Eigen/Eigen-3.4.0-GCCcore-13.2.0.eb @@ -0,0 +1,21 @@ +name = 'Eigen' +version = '3.4.0' + +homepage = 'https://eigen.tuxfamily.org' +description = """Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, + and related algorithms.""" + +# only includes header files, but requires CMake so using non-system toolchain +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://gitlab.com/libeigen/eigen/-/archive/%(version)s'] +sources = [SOURCELOWER_TAR_BZ2] +checksums = ['b4c198460eba6f28d34894e3a5710998818515104d6e74e5cc331ce31e46e626'] + +# using CMake built with GCCcore to avoid relying on the system compiler to build it +builddependencies = [ + ('binutils', '2.40'), # to make CMake compiler health check pass on old systems + ('CMake', '3.27.6'), +] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/e/EveryBeam/EveryBeam-0.5.2-foss-2022a.eb b/easybuild/easyconfigs/e/EveryBeam/EveryBeam-0.5.2-foss-2022a.eb new file mode 100644 index 00000000000..43f393b0dc7 --- /dev/null +++ b/easybuild/easyconfigs/e/EveryBeam/EveryBeam-0.5.2-foss-2022a.eb @@ -0,0 +1,44 @@ +easyblock = 'CMakeMake' + +name = 'EveryBeam' +version = '0.5.2' +homepage = 'https://everybeam.readthedocs.io/' +description = """Library that provides the antenna response pattern for several instruments, +such as LOFAR (and LOBES), SKA (OSKAR), MWA, JVLA, etc.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +sources = [{ + 'filename': '%(name)s-v%(version)s.tar.gz', + 'git_config': { + 'url': 'https://git.astron.nl/RD', + 'repo_name': '%(name)s', + 'tag': 'v%(version)s', + 'clone_into': '%(name)s', + 'recursive': True, + }, +}] +checksums = [None] + +builddependencies = [ + ('CMake', '3.24.3'), + ('wget', '1.21.3'), +] + +dependencies = [ + ('casacore', '3.5.0'), + ('Boost', '1.79.0'), + ('CFITSIO', '4.2.0'), + ('WCSLIB', '7.11'), + ('GSL', '2.7'), + ('HDF5', '1.12.2'), + ('Python', '3.10.4'), + ('libxml2', '2.9.13'), +] + +sanity_check_paths = { + 'files': ['include/EveryBeam/beamformer.h', 'lib/libeverybeam.so'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/e/emcee/emcee-3.1.4-foss-2022a.eb b/easybuild/easyconfigs/e/emcee/emcee-3.1.4-foss-2022a.eb new file mode 100644 index 00000000000..2aa3fa0cb9d --- /dev/null +++ b/easybuild/easyconfigs/e/emcee/emcee-3.1.4-foss-2022a.eb @@ -0,0 +1,32 @@ +easyblock = 'PythonPackage' + +name = 'emcee' +version = '3.1.4' + +homepage = 'https://emcee.readthedocs.io/' +description = """Emcee is an extensible, pure-Python implementation of +Goodman & Weare's Affine Invariant Markov chain Monte Carlo (MCMC) Ensemble sampler. +It's designed for Bayesian parameter estimation and it's really sweet! """ + +toolchain = {'name': 'foss', 'version': '2022a'} + +sources = [SOURCE_TAR_GZ] +checksums = ['8e0e19dc8bcef9c6d02f860bef8ddc6c876b8878a6ce666943e2c5cfd9317fed'] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/emcee'], +} + +sanity_check_commands = [('pytest')] + +moduleclass = 'astro' diff --git a/easybuild/easyconfigs/e/expat/expat-2.5.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/e/expat/expat-2.5.0-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..f99eeb2426b --- /dev/null +++ b/easybuild/easyconfigs/e/expat/expat-2.5.0-GCCcore-13.2.0.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'expat' +version = '2.5.0' + +homepage = 'https://libexpat.github.io' + +description = """Expat is an XML parser library written in C. It is a stream-oriented parser +in which an application registers handlers for things the parser might find +in the XML document (like start tags).""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/libexpat/libexpat/releases/download/R_%s/' % version.replace('.', '_')] +sources = [SOURCE_TAR_BZ2] +checksums = ['6f0e6e01f7b30025fa05c85fdad1e5d0ec7fd35d9f61b22f34998de11969ff67'] + +builddependencies = [('binutils', '2.40')] + +# Since expat 2.2.6, docbook2X is needed to produce manpage of xmlwf. +# Docbook2X needs XML-Parser and XML-Parser needs expat. +# -> circular dependency. "--without-docbook" breaks this circle. +configopts = ['--without-docbook'] + +sanity_check_paths = { + 'files': ['include/expat.h', 'lib/libexpat.a', 'lib/libexpat.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-gompi-2023.09.eb b/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-gompi-2023.09.eb new file mode 100644 index 00000000000..4e136d40c73 --- /dev/null +++ b/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-gompi-2023.09.eb @@ -0,0 +1,19 @@ +name = 'FFTW.MPI' +version = '3.3.10' + +homepage = 'https://www.fftw.org' +description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) +in one or more dimensions, of arbitrary input size, and of both real and complex data.""" + +toolchain = {'name': 'gompi', 'version': '2023.09'} +toolchainopts = {'pic': True} + +source_urls = [homepage] +sources = ['fftw-%(version)s.tar.gz'] +checksums = ['56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467'] + +dependencies = [('FFTW', '3.3.10')] + +runtest = 'check' + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-GCC-13.2.0.eb b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-GCC-13.2.0.eb new file mode 100644 index 00000000000..32652387f8e --- /dev/null +++ b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-GCC-13.2.0.eb @@ -0,0 +1,17 @@ +name = 'FFTW' +version = '3.3.10' + +homepage = 'https://www.fftw.org' +description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) +in one or more dimensions, of arbitrary input size, and of both real and complex data.""" + +toolchain = {'name': 'GCC', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = [homepage] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467'] + +runtest = 'check' + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/f/FastANI/FastANI-1.34-GCC-12.3.0.eb b/easybuild/easyconfigs/f/FastANI/FastANI-1.34-GCC-12.3.0.eb new file mode 100644 index 00000000000..53a457447e3 --- /dev/null +++ b/easybuild/easyconfigs/f/FastANI/FastANI-1.34-GCC-12.3.0.eb @@ -0,0 +1,45 @@ +# easybuild easyconfig +# +# John Dey jfdey@fredhutch.org +# +# Updated: Pavel Grochal (INUITS) + +easyblock = 'ConfigureMake' + +name = 'FastANI' +version = '1.34' + +homepage = "https://github.com/ParBLiSS/FastANI" +description = """FastANI is developed for fast alignment-free computation of + whole-genome Average Nucleotide Identity (ANI). ANI is defined as mean + nucleotide identity of orthologous gene pairs shared between two microbial + genomes. FastANI supports pairwise comparison of both complete and draft + genome assemblies.""" + +toolchain = {'name': 'GCC', 'version': '12.3.0'} + +source_urls = ['https://github.com/ParBLiSS/FastANI/archive'] +sources = ['v%(version)s.zip'] +patches = ['FastANI-1.2-memcpy.patch'] +checksums = [ + {'v1.34.zip': 'cb15540634c725cb46dded7becaff38b27a7f709c0a8589db986674effcc6180'}, + {'FastANI-1.2-memcpy.patch': 'eebcf0b64c31ee360ca79136f644157064ac69747ed13cff70f5c9932c6bb0d5'}, +] + +builddependencies = [('Autotools', '20220317')] + +dependencies = [ + ('GSL', '2.7'), + ('zlib', '1.2.13'), +] + +preconfigopts = 'autoconf && ' + +sanity_check_paths = { + 'files': ['bin/fastANI'], + 'dirs': [] +} + +sanity_check_commands = ["fastANI --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/f/FastME/FastME-2.1.6.3-GCC-12.3.0.eb b/easybuild/easyconfigs/f/FastME/FastME-2.1.6.3-GCC-12.3.0.eb new file mode 100644 index 00000000000..03f7b77ed2c --- /dev/null +++ b/easybuild/easyconfigs/f/FastME/FastME-2.1.6.3-GCC-12.3.0.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'FastME' +version = '2.1.6.3' + +homepage = 'http://www.atgc-montpellier.fr/fastme/' +description = "FastME: a comprehensive, accurate and fast distance-based phylogeny inference program." + +toolchain = {'name': 'GCC', 'version': '12.3.0'} + +source_urls = ['https://gite.lirmm.fr/atgc/FastME/-/archive/v%(version)s/'] +sources = ['FastME-v%(version)s.tar.gz'] +checksums = ['d49ff78cca7b76eadf8443efb33f071a7e8a152618ffa3d8e790f167d0a0b176'] + +builddependencies = [ + ('Autotools', '20220317'), +] + +preconfigopts = "autoreconf -if && " + +sanity_check_paths = { + 'files': ['bin/fastme'], + 'dirs': [] +} + +sanity_check_commands = ["fastme --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/f/Flask/Flask-2.3.3-GCCcore-12.3.0.eb b/easybuild/easyconfigs/f/Flask/Flask-2.3.3-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..b45a8f33f43 --- /dev/null +++ b/easybuild/easyconfigs/f/Flask/Flask-2.3.3-GCCcore-12.3.0.eb @@ -0,0 +1,44 @@ +easyblock = 'PythonBundle' + +name = 'Flask' +version = '2.3.3' + +homepage = 'https://www.palletsprojects.com/p/flask/' +description = """ +Flask is a lightweight WSGI web application framework. It is designed to make +getting started quick and easy, with the ability to scale up to complex +applications. +This module includes the Flask extensions: Flask-Cors""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +builddependencies = [ + ('binutils', '2.40'), +] +dependencies = [ + ('Python', '3.11.3'), + ('Python-bundle-PyPI', '2023.06'), +] + +sanity_pip_check = True +use_pip = True + +exts_list = [ + ('itsdangerous', '2.1.2', {'checksums': ['5dbbc68b317e5e42f327f9021763545dc3fc3bfe22e6deb96aaf1fc38874156a']}), + ('werkzeug', '2.3.7', {'checksums': ['2b8c0e447b4b9dbcc85dd97b6eeb4dcbaf6c8b6c3be0bd654e25553e0a2157d8']}), + ('asgiref', '3.7.2', {'checksums': ['9e0ce3aa93a819ba5b45120216b23878cf6e8525eb3848653452b4192b92afed']}), + ('blinker', '1.6.2', {'checksums': ['4afd3de66ef3a9f8067559fb7a1cbe555c17dcbe15971b05d1b625c3e7abe213']}), + ('flask', version, {'checksums': ['09c347a92aa7ff4a8e7f3206795f30d826654baf38b873d0744cd571ca609efc']}), + ('Flask-Cors', '4.0.0', {'checksums': ['f268522fcb2f73e2ecdde1ef45e2fd5c71cc48fe03cffb4b441c6d1b40684eb0']}), + ('cachelib', '0.10.2', {'checksums': ['593faeee62a7c037d50fc835617a01b887503f972fb52b188ae7e50e9cb69740']}), + ('Flask-Session', '0.5.0', {'checksums': ['190875e6aebf2953c6803d42379ef3b934bc209ef8ef006f97aecb08f5aaeb86']}), +] + +sanity_check_paths = { + 'files': ['bin/%(namelower)s'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ['%(namelower)s --version'] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/f/FlexiBLAS/FlexiBLAS-3.3.1-GCC-13.2.0.eb b/easybuild/easyconfigs/f/FlexiBLAS/FlexiBLAS-3.3.1-GCC-13.2.0.eb new file mode 100644 index 00000000000..4c6e509040b --- /dev/null +++ b/easybuild/easyconfigs/f/FlexiBLAS/FlexiBLAS-3.3.1-GCC-13.2.0.eb @@ -0,0 +1,59 @@ +easyblock = 'Bundle' + +name = 'FlexiBLAS' +version = '3.3.1' + +homepage = 'https://gitlab.mpi-magdeburg.mpg.de/software/flexiblas-release' +description = """FlexiBLAS is a wrapper library that enables the exchange of the BLAS and LAPACK implementation +used by a program without recompiling or relinking it.""" + +toolchain = {'name': 'GCC', 'version': '13.2.0'} +local_extra_flags = "-fstack-protector-strong -fstack-clash-protection" +toolchainopts = {'pic': True, 'extra_cflags': local_extra_flags, 'extra_fflags': local_extra_flags} + +builddependencies = [ + ('CMake', '3.27.6'), + ('Python', '3.11.5'), # required for running the tests + ('BLIS', '0.9.0'), +] + +dependencies = [ + ('OpenBLAS', '0.3.24'), +] + +# note: first listed backend will be used as default by FlexiBLAS, +# unless otherwise specified via easyconfig parameter flexiblas_default +local_backends = ['OpenBLAS', 'BLIS'] + +# imkl supplies its backend via the imkl module, not as a dependency +if ARCH == 'x86_64': + local_backends.append('imkl') + +default_component_specs = {'start_dir': '%(namelower)s-%(version)s'} +sanity_check_all_components = True + +# Also build and install LAPACKE, which FlexiBLAS does not support yet +components = [ + (name, version, { + 'source_urls': + ['https://gitlab.mpi-magdeburg.mpg.de/api/v4/projects/386/packages/generic/flexiblas-source/v3.3.1/'], + 'sources': [SOURCELOWER_TAR_GZ], + 'checksums': ['bbeebf5e5a006924558fec43f49affbe1aaa4cbacfc472a9ff6066ffda142e18'], + 'backends': local_backends, + }), + ('LAPACK', '3.11.0', { + 'easyblock': 'CMakeMake', + 'source_urls': ['https://github.com/Reference-LAPACK/lapack/archive/'], + 'sources': ['v%(version)s.tar.gz'], + 'checksums': ['4b9ba79bfd4921ca820e83979db76ab3363155709444a787979e81c22285ffa9'], + 'configopts': ('-DBUILD_SHARED_LIBS=ON -DUSE_OPTIMIZED_BLAS=ON -DLAPACKE=ON ' + '-DUSE_OPTIMIZED_LAPACK=ON -DBUILD_DEPRECATED=ON ' + '-DCMAKE_INSTALL_INCLUDEDIR=%(installdir)s/include/flexiblas'), + 'sanity_check_paths': { + 'files': ['lib/liblapacke.%s' % SHLIB_EXT, 'include/flexiblas/lapacke.h'], + 'dirs': [], + }, + }), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/f/Flye/Flye-2.9.2-GCC-11.3.0.eb b/easybuild/easyconfigs/f/Flye/Flye-2.9.2-GCC-11.3.0.eb new file mode 100644 index 00000000000..88d323f84e9 --- /dev/null +++ b/easybuild/easyconfigs/f/Flye/Flye-2.9.2-GCC-11.3.0.eb @@ -0,0 +1,33 @@ +easyblock = 'PythonPackage' + +name = 'Flye' +version = '2.9.2' + +homepage = 'https://github.com/fenderglass/Flye' +description = """Flye is a de novo assembler for long and noisy reads, such as those produced by PacBio + and Oxford Nanopore Technologies.""" + +toolchain = {'name': 'GCC', 'version': '11.3.0'} + +source_urls = ['https://github.com/fenderglass/Flye/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = ['4b9534b912c805d44b83d497b40102bed807678b82be62667129bf1641676402'] + +dependencies = [('Python', '3.10.4')] + +download_dep_fail = True +use_pip = True + +if ARCH == "aarch64": + preinstallopts = 'export arm_neon=1 && export aarch64=1 && ' + +sanity_check_paths = { + 'files': ['bin/flye'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ['%(namelower)s --help'] + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/f/fasta-reader/fasta-reader-3.0.2-GCC-12.3.0.eb b/easybuild/easyconfigs/f/fasta-reader/fasta-reader-3.0.2-GCC-12.3.0.eb new file mode 100644 index 00000000000..59c31e5cfe8 --- /dev/null +++ b/easybuild/easyconfigs/f/fasta-reader/fasta-reader-3.0.2-GCC-12.3.0.eb @@ -0,0 +1,31 @@ +easyblock = 'PythonBundle' + +name = 'fasta-reader' +version = '3.0.2' + +homepage = 'https://github.com/EBI-Metagenomics/fasta-reader-py' +description = "FASTA file reader" + +toolchain = {'name': 'GCC', 'version': '12.3.0'} + +builddependencies = [ + ('poetry', '1.5.1'), +] + +dependencies = [ + ('Python', '3.11.3'), + ('Python-bundle-PyPI', '2023.06'), # for fsspec +] + +use_pip = True + +exts_list = [ + (name, version, { + 'sources': ['fasta_reader-%(version)s.tar.gz'], + 'checksums': ['71493559a791f355def4918612a3bbd44992f7e1227a61a7d815018aefde4d79'], + }), +] + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/f/fmt/fmt-10.1.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/f/fmt/fmt-10.1.0-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..6866b4ac550 --- /dev/null +++ b/easybuild/easyconfigs/f/fmt/fmt-10.1.0-GCCcore-12.3.0.eb @@ -0,0 +1,26 @@ +easyblock = 'CMakeMake' + +name = 'fmt' +version = '10.1.0' + +homepage = 'http://fmtlib.net/' +description = "fmt (formerly cppformat) is an open-source formatting library." + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/fmtlib/fmt/releases/download/%(version)s/'] +sources = ['fmt-%(version)s.zip'] +checksums = ['d725fa83a8b57a3cedf238828fa6b167f963041e8f9f7327649bddc68ae316f4'] + +builddependencies = [ + ('binutils', '2.40'), + ('CMake', '3.26.3'), +] + +sanity_check_paths = { + 'files': ['lib/libfmt.a'], + 'dirs': ['include/fmt', 'lib/cmake'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/f/fmt/fmt-8.1.1-GCCcore-11.2.0.eb b/easybuild/easyconfigs/f/fmt/fmt-8.1.1-GCCcore-11.2.0.eb new file mode 100644 index 00000000000..23b7cc2ad3e --- /dev/null +++ b/easybuild/easyconfigs/f/fmt/fmt-8.1.1-GCCcore-11.2.0.eb @@ -0,0 +1,28 @@ +easyblock = 'CMakeMake' + +name = 'fmt' +version = '8.1.1' + +homepage = 'http://fmtlib.net/' +description = "fmt (formerly cppformat) is an open-source formatting library." + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} + +source_urls = ['https://github.com/fmtlib/fmt/releases/download/%(version)s/'] +sources = ['fmt-%(version)s.zip'] +checksums = ['23778bad8edba12d76e4075da06db591f3b0e3c6c04928ced4a7282ca3400e5d'] + +builddependencies = [ + ('CMake', '3.22.1'), + ('binutils', '2.37') +] + +# build static and shared libraries +configopts = ["-DCMAKE_POSTITION_INDEPENDENT_CODE=TRUE", "-DBUILD_SHARED_LIBS=TRUE"] + +sanity_check_paths = { + 'files': ['lib/libfmt.%s' % x for x in ['a', SHLIB_EXT]], + 'dirs': ['include/fmt', 'lib/cmake'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/f/fontconfig/fontconfig-2.14.2-GCCcore-13.2.0.eb b/easybuild/easyconfigs/f/fontconfig/fontconfig-2.14.2-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..e1b60608681 --- /dev/null +++ b/easybuild/easyconfigs/f/fontconfig/fontconfig-2.14.2-GCCcore-13.2.0.eb @@ -0,0 +1,40 @@ +easyblock = 'ConfigureMake' + +name = 'fontconfig' +version = '2.14.2' + +homepage = 'https://www.freedesktop.org/wiki/Software/fontconfig/' + +description = """ + Fontconfig is a library designed to provide system-wide font configuration, + customization and application access. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://www.freedesktop.org/software/fontconfig/release/'] +sources = [SOURCE_TAR_GZ] +checksums = ['3ba2dd92158718acec5caaf1a716043b5aa055c27b081d914af3ccb40dce8a55'] + +builddependencies = [ + ('binutils', '2.40'), + ('gperf', '3.1'), + ('pkgconf', '2.0.3'), + ('Python', '3.11.5'), +] + +dependencies = [ + ('expat', '2.5.0'), + ('freetype', '2.13.2'), + ('util-linux', '2.39'), +] + +configopts = '--disable-docs ' + +sanity_check_paths = { + 'files': ['include/fontconfig/fontconfig.h', 'lib/libfontconfig.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/f/foss/foss-2023.09.eb b/easybuild/easyconfigs/f/foss/foss-2023.09.eb new file mode 100644 index 00000000000..a02c284e598 --- /dev/null +++ b/easybuild/easyconfigs/f/foss/foss-2023.09.eb @@ -0,0 +1,28 @@ +easyblock = 'Toolchain' + +name = 'foss' +version = '2023.09' + +homepage = 'https://easybuild.readthedocs.io/en/master/Common-toolchains.html#foss-toolchain' +description = """GNU Compiler Collection (GCC) based compiler toolchain, including + OpenMPI for MPI support, OpenBLAS (BLAS and LAPACK support), FFTW and ScaLAPACK.""" + +toolchain = SYSTEM + +local_gccver = '13.2.0' + +# toolchain used to build foss dependencies +local_comp_mpi_tc = ('gompi', version) + +# we need GCC and OpenMPI as explicit dependencies instead of gompi toolchain +# because of toolchain preparation functions +dependencies = [ + ('GCC', local_gccver), + ('OpenMPI', '4.1.6', '', ('GCC', local_gccver)), + ('FlexiBLAS', '3.3.1', '', ('GCC', local_gccver)), + ('FFTW', '3.3.10', '', ('GCC', local_gccver)), + ('FFTW.MPI', '3.3.10', '', local_comp_mpi_tc), + ('ScaLAPACK', '2.2.0', '-fb', local_comp_mpi_tc), +] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/f/freetype/freetype-2.13.2-GCCcore-13.2.0.eb b/easybuild/easyconfigs/f/freetype/freetype-2.13.2-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..8a4076fe6a1 --- /dev/null +++ b/easybuild/easyconfigs/f/freetype/freetype-2.13.2-GCCcore-13.2.0.eb @@ -0,0 +1,43 @@ +name = 'freetype' +version = '2.13.2' + +homepage = 'https://www.freetype.org' + +description = """ + FreeType 2 is a software font engine that is designed to be small, efficient, + highly customizable, and portable while capable of producing high-quality + output (glyph images). It can be used in graphics libraries, display servers, + font conversion tools, text image generation tools, and many other products + as well. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = [ + GNU_SAVANNAH_SOURCE, + SOURCEFORGE_SOURCE, +] +sources = [SOURCE_TAR_GZ] +checksums = ['1ac27e16c134a7f2ccea177faba19801131116fd682efc1f5737037c5db224b5'] + +builddependencies = [('binutils', '2.40')] + +dependencies = [ + ('bzip2', '1.0.8'), + ('libpng', '1.6.40'), + ('zlib', '1.2.13'), + ('Brotli', '1.1.0'), +] + +configopts = '--enable-freetype-config --with-harfbuzz=no' + +sanity_check_paths = { + 'files': ['bin/freetype-config', 'lib/libfreetype.a', + 'lib/libfreetype.%s' % SHLIB_EXT, 'lib/pkgconfig/freetype2.pc'], + 'dirs': ['include/freetype2'], +} + +sanity_check_commands = ["freetype-config --help"] + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/GATK/GATK-4.2.6.1-GCCcore-10.3.0-Java-11.eb b/easybuild/easyconfigs/g/GATK/GATK-4.2.6.1-GCCcore-10.3.0-Java-11.eb new file mode 100644 index 00000000000..c89b60d9311 --- /dev/null +++ b/easybuild/easyconfigs/g/GATK/GATK-4.2.6.1-GCCcore-10.3.0-Java-11.eb @@ -0,0 +1,54 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2012-2013 Cyprus Institute / CaSToRC, University of Luxembourg / LCSB +# Authors:: George Tsouloupas , Fotis Georgatos , +# Kenneth Hoste (UGent) +# 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-94.html +# Modified by: Adam Huffman, Jonas Demeulemeester +# The Francis Crick Institute +# Modified for version 4.0.5.1 by: Ruben van Dijk, University of Groningen +## + +easyblock = 'Tarball' + +name = 'GATK' +version = '4.2.6.1' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'https://www.broadinstitute.org/gatk/' +description = """The Genome Analysis Toolkit or GATK is a software package developed at the Broad Institute + to analyse next-generation resequencing data. The toolkit offers a wide variety of tools, + with a primary focus on variant discovery and genotyping as well as strong emphasis on + data quality assurance. Its robust architecture, powerful processing engine and + high-performance computing features make it capable of taking on projects of any size.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://github.com/broadinstitute/gatk/releases/download/%(version)s/'] +sources = ['gatk-%(version)s.zip'] +checksums = ['1125cfc862301d437310506c8774d36c3a90d00d52c7b5d6b59dac7241203628'] + +dependencies = [ + ('Java', '11', '', SYSTEM), + ('Python', '3.9.5'), +] + +modextrapaths = {'PATH': ''} + +sanity_check_paths = { + 'files': ['gatk'], + 'dirs': [], +} +sanity_check_commands = [ + "gatk --help", + "gatk --list", +] + +modloadmsg = "WARNING: GATK v%(version)s support for Java 11 is in beta state. Use at your own risk.\n" + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GATK/GATK-4.4.0.0-GCCcore-12.3.0-Java-17.eb b/easybuild/easyconfigs/g/GATK/GATK-4.4.0.0-GCCcore-12.3.0-Java-17.eb new file mode 100644 index 00000000000..24c6db0fec5 --- /dev/null +++ b/easybuild/easyconfigs/g/GATK/GATK-4.4.0.0-GCCcore-12.3.0-Java-17.eb @@ -0,0 +1,55 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2012-2013 Cyprus Institute / CaSToRC, University of Luxembourg / LCSB +# Authors:: George Tsouloupas , Fotis Georgatos , +# Kenneth Hoste (UGent) +# 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-94.html +# Modified by: Adam Huffman, Jonas Demeulemeester +# The Francis Crick Institute +# Modified for version 4.0.5.1 by: Ruben van Dijk, University of Groningen +# Modified for version 4.2.3.0 by: J. Sassmannshausen / GSTT +# Modified for version 4.4.0.0 by: Thomas Eylenbosch / Gluo NV +## + +easyblock = 'Tarball' + +name = 'GATK' +version = '4.4.0.0' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'https://www.broadinstitute.org/gatk/' +description = """The Genome Analysis Toolkit or GATK is a software package developed at the Broad Institute + to analyse next-generation resequencing data. The toolkit offers a wide variety of tools, + with a primary focus on variant discovery and genotyping as well as strong emphasis on + data quality assurance. Its robust architecture, powerful processing engine and + high-performance computing features make it capable of taking on projects of any size.""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +source_urls = ['https://github.com/broadinstitute/gatk/releases/download/%(version)s/'] +sources = ['gatk-%(version)s.zip'] +checksums = ['444600f7b38b46ad0b3606b7d40ce921e0ff1910a50165872f1c73c7c4a1a390'] + +dependencies = [ + ('Java', '17', '', SYSTEM), + ('Python', '3.11.3'), +] + +modextrapaths = {'PATH': ''} + +sanity_check_paths = { + 'files': ['gatk'], + 'dirs': [], +} + +sanity_check_commands = [ + "gatk --help", + "gatk --list", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GCCcore/GCCcore-12.2.0.eb b/easybuild/easyconfigs/g/GCCcore/GCCcore-12.2.0.eb index 9a758565b1f..aa2a7e328a2 100644 --- a/easybuild/easyconfigs/g/GCCcore/GCCcore-12.2.0.eb +++ b/easybuild/easyconfigs/g/GCCcore/GCCcore-12.2.0.eb @@ -36,6 +36,7 @@ patches = [ 'GCCcore-12.1.0_allow-pragma-wself-init.patch', 'GCCcore-12.1.0_fix-Wuninitialized-in-AVX-headers.patch', 'GCCcore-12.2.0_fix-vectorizer.patch', + 'GCCcore-12.2.0_improve-cuda-compatibility.patch', ] checksums = [ {'gcc-12.2.0.tar.gz': 'ac6b317eb4d25444d87cf29c0d141dedc1323a1833ec9995211b13e1a851261c'}, @@ -52,6 +53,8 @@ checksums = [ {'GCCcore-12.1.0_fix-Wuninitialized-in-AVX-headers.patch': '0ea675960795e238a43ae7d685a0082b21f0b63cf2fe499f6d55e89e0aaee392'}, {'GCCcore-12.2.0_fix-vectorizer.patch': '0b76fc379308fd189ee39c4a3a49facacf8ede08dbec4280f289341083f1632b'}, + {'GCCcore-12.2.0_improve-cuda-compatibility.patch': + '91d00122554b56381592229398540e63baa26d03633292a7fdf338407a4a62d5'}, ] builddependencies = [ diff --git a/easybuild/easyconfigs/g/GCCcore/GCCcore-12.2.0_improve-cuda-compatibility.patch b/easybuild/easyconfigs/g/GCCcore/GCCcore-12.2.0_improve-cuda-compatibility.patch new file mode 100644 index 00000000000..c1538d09041 --- /dev/null +++ b/easybuild/easyconfigs/g/GCCcore/GCCcore-12.2.0_improve-cuda-compatibility.patch @@ -0,0 +1,20 @@ +The GCC stdlib uses a GCC feature not supported by nvcc until CUDA 12. +I.e. CUDA 12 does not support GCC 12 (only GCC <= 11) erroring at +> if ((void*)(this->*(&time_get::do_get)) == (void*)(&time_get::do_get)) + +As the same isn't supported by clang use the same fix. +See https://gcc.gnu.org/bugzilla//show_bug.cgi?id=104990 + +Author: Alexander Grund (TU Dresden) + +--- gcc-12.2.0-orig/libstdc++-v3/include/bits/locale_facets_nonio.tcc ++++ gcc-12.2.0/libstdc++-v3/include/bits/locale_facets_nonio.tcc +@@ -1465,7 +1465,7 @@ + ctype<_CharT> const& __ctype = use_facet >(__loc); + __err = ios_base::goodbit; + bool __use_state = false; +-#if __GNUC__ >= 5 && !defined(__clang__) ++#if __GNUC__ >= 5 && !defined(__clang__) && (!defined(__CUDACC__) || (__CUDACC_VER_MAJOR__ >= 12)) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpmf-conversions" + // Nasty hack. The C++ standard mandates that get invokes the do_get diff --git a/easybuild/easyconfigs/g/GCCcore/GCCcore-12.3.0.eb b/easybuild/easyconfigs/g/GCCcore/GCCcore-12.3.0.eb index 45270c7b7f8..c9fe0e62a87 100644 --- a/easybuild/easyconfigs/g/GCCcore/GCCcore-12.3.0.eb +++ b/easybuild/easyconfigs/g/GCCcore/GCCcore-12.3.0.eb @@ -33,6 +33,7 @@ sources = [ patches = [ 'GCCcore-6.2.0-fix-find-isl.patch', 'GCCcore-9.3.0_gmp-c99.patch', + 'GCCcore-12.2.0_improve-cuda-compatibility.patch', ] checksums = [ {'gcc-12.3.0.tar.gz': '11275aa7bb34cd8ab101d01b341015499f8d9466342a2574ece93f954d92273b'}, @@ -44,6 +45,8 @@ checksums = [ {'nvptx-tools-20230122.tar.gz': 'af05fac26e9a83d337758a5495dc35f7a7bbfd90cd09f4a5d3242d059f235e08'}, {'GCCcore-6.2.0-fix-find-isl.patch': '5ad909606d17d851c6ad629b4fddb6c1621844218b8d139fed18c502a7696c68'}, {'GCCcore-9.3.0_gmp-c99.patch': '0e135e1cc7cec701beea9d7d17a61bab34cfd496b4b555930016b98db99f922e'}, + {'GCCcore-12.2.0_improve-cuda-compatibility.patch': + '91d00122554b56381592229398540e63baa26d03633292a7fdf338407a4a62d5'}, ] builddependencies = [ diff --git a/easybuild/easyconfigs/g/GDAL/GDAL-3.7.1-foss-2023a.eb b/easybuild/easyconfigs/g/GDAL/GDAL-3.7.1-foss-2023a.eb new file mode 100644 index 00000000000..721bd3a5e34 --- /dev/null +++ b/easybuild/easyconfigs/g/GDAL/GDAL-3.7.1-foss-2023a.eb @@ -0,0 +1,83 @@ +easyblock = 'CMakeMake' + +name = 'GDAL' +version = '3.7.1' + +homepage = 'https://www.gdal.org' +description = """GDAL is a translator library for raster geospatial data formats that is released under an X/MIT style + Open Source license by the Open Source Geospatial Foundation. As a library, it presents a single abstract data model + to the calling application for all supported formats. It also comes with a variety of useful commandline utilities for + data translation and processing.""" + +toolchain = {'name': 'foss', 'version': '2023a'} +toolchainopts = {'usempi': True} + +source_urls = ['https://download.osgeo.org/%(namelower)s/%(version)s/'] +sources = [SOURCELOWER_TAR_XZ] +patches = ['%(name)s-3.6.2_fix-python-CC-CXX.patch'] + +checksums = [ + {'gdal-3.7.1.tar.xz': '9297948f0a8ba9e6369cd50e87c7e2442eda95336b94d2b92ef1829d260b9a06'}, + {'GDAL-3.6.2_fix-python-CC-CXX.patch': '859b874b0c8ff7626a76d51f008bf05b7f89a35b325bdd1d126d2364154acc63'}, +] + +builddependencies = [ + ('CMake', '3.26.3'), + ('pkgconf', '1.9.5'), + ('Bison', '3.8.2'), +] +dependencies = [ + ('Python', '3.11.3'), + ('netCDF', '4.9.2'), + ('expat', '2.5.0'), + ('GEOS', '3.12.0'), + ('SQLite', '3.42.0'), + ('libarchive', '3.6.2'), + ('libxml2', '2.11.4'), + ('libpng', '1.6.39'), + ('libjpeg-turbo', '2.1.5.1'), + ('JasPer', '4.0.0'), + ('LibTIFF', '4.5.0'), + ('zlib', '1.2.13'), + ('cURL', '8.0.1'), + ('PCRE', '8.45'), + ('PROJ', '9.2.0'), + ('libgeotiff', '1.7.1'), + ('SciPy-bundle', '2023.07'), + ('HDF5', '1.14.0'), + ('HDF', '4.2.16-2'), + ('Armadillo', '12.6.2'), + ('CFITSIO', '4.3.0'), + ('zstd', '1.5.5'), + ('giflib', '5.2.1'), + ('json-c', '0.16'), + ('Xerces-C++', '3.2.4'), + ('PCRE2', '10.42'), + ('OpenEXR', '3.1.7'), + ('Brunsli', '0.1'), + ('Qhull', '2020.2'), + ('LERC', '4.0.0'), + ('OpenJPEG', '2.5.0'), + ('SWIG', '4.1.1'), +] + +# iterative build for both static and shared libraries +local_configopts_common = "-DGDAL_USE_INTERNAL_LIBS=OFF -DArrow_DIR=$EBROOTARROW " +local_configopts_common += "-DGEOTIFF_INCLUDE_DIR=$EBROOTLIBGEOTIFF/include -DPython_ROOT=$EBROOTPYTHON " + +configopts = [ + local_configopts_common + "-DBUILD_SHARED_LIBS=OFF", + local_configopts_common +] + + +sanity_check_paths = { + 'files': ['lib/libgdal.a', 'lib/libgdal.%s' % SHLIB_EXT], + 'dirs': ['bin', 'include', 'lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["python -c 'import osgeo.%(namelower)s'"] + +modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'} + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/g/GDB/GDB-13.2-GCCcore-12.2.0.eb b/easybuild/easyconfigs/g/GDB/GDB-13.2-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..089bb508103 --- /dev/null +++ b/easybuild/easyconfigs/g/GDB/GDB-13.2-GCCcore-12.2.0.eb @@ -0,0 +1,49 @@ +easyblock = 'ConfigureMake' + +name = 'GDB' +version = '13.2' + +homepage = 'https://www.gnu.org/software/gdb/gdb.html' +description = "The GNU Project Debugger" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_XZ] +checksums = ['fd5bebb7be1833abdb6e023c2f498a354498281df9d05523d8915babeb893f0a'] + +builddependencies = [ + ('binutils', '2.39'), + ('makeinfo', '7.0.3'), +] + +dependencies = [ + ('zlib', '1.2.12'), + ('libreadline', '8.2'), + ('ncurses', '6.3'), + ('expat', '2.4.9'), + ('Python', '3.10.8'), + ('ISL', '0.26'), + ('MPC', '1.3.1'), +] + +preconfigopts = "mkdir obj && cd obj && " +configure_cmd_prefix = '../' +prebuildopts = "cd obj && " +preinstallopts = prebuildopts + +configopts = '--with-system-zlib --with-system-readline --with-expat=$EBROOTEXPAT ' +configopts += '--with-python=$EBROOTPYTHON/bin/python --with-isl=$EBROOTISL --with-mpc=$EBROOTMPC ' +configopts += '--enable-tui --enable-plugins --disable-install-libbfd ' + +sanity_check_paths = { + 'files': ['bin/gdb', 'bin/gdbserver'], + 'dirs': [], +} + +sanity_check_commands = [ + 'gdb --help', + 'gdbserver --help', +] + +moduleclass = 'debugger' diff --git a/easybuild/easyconfigs/g/GDB/GDB-13.2-GCCcore-13.2.0.eb b/easybuild/easyconfigs/g/GDB/GDB-13.2-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..574aef91ec3 --- /dev/null +++ b/easybuild/easyconfigs/g/GDB/GDB-13.2-GCCcore-13.2.0.eb @@ -0,0 +1,44 @@ +easyblock = 'ConfigureMake' + +name = 'GDB' +version = '13.2' + +homepage = 'https://www.gnu.org/software/gdb/gdb.html' +description = "The GNU Project Debugger" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_XZ] +checksums = ['fd5bebb7be1833abdb6e023c2f498a354498281df9d05523d8915babeb893f0a'] + +builddependencies = [ + ('binutils', '2.40'), + ('makeinfo', '7.1'), +] + +dependencies = [ + ('zlib', '1.2.13'), + ('libreadline', '8.2'), + ('ncurses', '6.4'), + ('expat', '2.5.0'), + ('Python', '3.11.5'), + ('ISL', '0.26'), + ('MPC', '1.3.1'), +] + +preconfigopts = "mkdir obj && cd obj && " +configure_cmd_prefix = '../' +prebuildopts = "cd obj && " +preinstallopts = prebuildopts + +configopts = '--with-system-zlib --with-system-readline --with-expat=$EBROOTEXPAT ' +configopts += '--with-python=$EBROOTPYTHON/bin/python --with-isl=$EBROOTISL --with-mpc=$EBROOTMPC ' +configopts += '--enable-tui --enable-plugins --disable-install-libbfd ' + +sanity_check_paths = { + 'files': ['bin/gdb', 'bin/gdbserver'], + 'dirs': [], +} + +moduleclass = 'debugger' diff --git a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.4-GCCcore-13.2.0.eb b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.4-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..d871eaf60d3 --- /dev/null +++ b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.4-GCCcore-13.2.0.eb @@ -0,0 +1,52 @@ +easyblock = 'ConfigureMake' + +name = 'GDRCopy' +version = '2.4' + +homepage = 'https://github.com/NVIDIA/gdrcopy' +description = "A low-latency GPU memory copy library based on NVIDIA GPUDirect RDMA technology." + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +github_account = 'NVIDIA' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['39e74d505ca16160567f109cc23478580d157da897f134989df1d563e55f7a5b'] + +builddependencies = [ + ('binutils', '2.40'), + ('Autotools', '20220317'), + ('pkgconf', '2.0.3'), +] + +# This easyconfig only installs the library of GDRCopy. Please keep in mind +# that GDRCopy also needs the following kernel modules at runtime: +# +# 1. Kernel module for GDRCopy: improves Host to GPU communication +# https://github.com/NVIDIA/gdrcopy +# RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms' +# Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0 +# +# 2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication +# https://github.com/Mellanox/nv_peer_memory +# RPM: 'nvidia_peer_memory' +# Requirements: Mellanox HCA with MLNX_OFED 2.1 +# +# These kernel modules are not listed as system dependencies to lower the system +# requirements to build this easyconfig, as they are not needed for the build. + +skipsteps = ['configure'] + +local_envopts = "prefix=%(installdir)s" +prebuildopts = "PATH=$PATH:/sbin " # ensures that ldconfig is found +buildopts = "config lib %s" % local_envopts +install_cmd = "make lib_install" +installopts = local_envopts + +sanity_check_paths = { + 'files': ['lib/libgdrapi.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/g/GEMMA/GEMMA-0.98.5-foss-2020a.eb b/easybuild/easyconfigs/g/GEMMA/GEMMA-0.98.5-foss-2020a.eb new file mode 100644 index 00000000000..0209363b19e --- /dev/null +++ b/easybuild/easyconfigs/g/GEMMA/GEMMA-0.98.5-foss-2020a.eb @@ -0,0 +1,42 @@ +# This file is an EasyBuild reciPY as per https://easybuilders.github.io/easybuild/ +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = 'GEMMA' +version = '0.98.5' + +homepage = 'https://github.com/genetics-statistics/GEMMA' +description = "Genome-wide Efficient Mixed Model Association" + +toolchain = {'name': 'foss', 'version': '2020a'} + +source_urls = ['https://github.com/genetics-statistics/GEMMA/archive/refs/tags'] +sources = ['v%(version)s.tar.gz'] +checksums = ['3ed336deee29e370f96ec8f1a240f7b62550e57dcd1694245ce7ec8f42241677'] + +builddependencies = [ + ('Eigen', '3.3.7'), + ('Perl', '5.30.2'), + ('Ruby', '2.7.2'), +] + +dependencies = [ + ('GSL', '2.6'), + ('zlib', '1.2.11') +] + +files_to_copy = ["bin", "doc", "example", "LICENSE", "README.md", "RELEASE-NOTES.md", "scripts", "VERSION"] + +runtest = 'check' + +sanity_check_commands = ["gemma -h", "gemma -license"] + +sanity_check_paths = { + 'files': ["bin/gemma"], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GLIMPSE/GLIMPSE-2.0.0-GCC-11.3.0.eb b/easybuild/easyconfigs/g/GLIMPSE/GLIMPSE-2.0.0-GCC-11.3.0.eb index dffbd942f4f..64c4f92026e 100644 --- a/easybuild/easyconfigs/g/GLIMPSE/GLIMPSE-2.0.0-GCC-11.3.0.eb +++ b/easybuild/easyconfigs/g/GLIMPSE/GLIMPSE-2.0.0-GCC-11.3.0.eb @@ -7,7 +7,6 @@ homepage = 'https://github.com/odelaneau/GLIMPSE' description = "GLIMPSE2 is a set of tools for phasing and imputation for low-coverage sequencing datasets" toolchain = {'name': 'GCC', 'version': '11.3.0'} -toolchainopts = {'cstd': 'c++17'} source_urls = ['https://github.com/odelaneau/GLIMPSE/archive/'] sources = [{ diff --git a/easybuild/easyconfigs/g/GLIMPSE/GLIMPSE-2.0.0-GCC-12.2.0.eb b/easybuild/easyconfigs/g/GLIMPSE/GLIMPSE-2.0.0-GCC-12.2.0.eb index 57eca82043d..ec062251633 100644 --- a/easybuild/easyconfigs/g/GLIMPSE/GLIMPSE-2.0.0-GCC-12.2.0.eb +++ b/easybuild/easyconfigs/g/GLIMPSE/GLIMPSE-2.0.0-GCC-12.2.0.eb @@ -7,7 +7,6 @@ homepage = 'https://github.com/odelaneau/GLIMPSE' description = "GLIMPSE2 is a set of tools for phasing and imputation for low-coverage sequencing datasets" toolchain = {'name': 'GCC', 'version': '12.2.0'} -toolchainopts = {'cstd': 'c++17'} source_urls = ['https://github.com/odelaneau/GLIMPSE/archive/'] sources = [{ diff --git a/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2023-04-20-GCC-10.3.0.eb b/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2023-04-20-GCC-10.3.0.eb new file mode 100644 index 00000000000..855eec4f731 --- /dev/null +++ b/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2023-04-20-GCC-10.3.0.eb @@ -0,0 +1,55 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# 2016-11-07 modified by: +# Adam Huffman +# The Francis Crick Institute + +easyblock = 'ConfigureMake' + +name = 'GMAP-GSNAP' +version = '2023-04-20' + +homepage = 'http://research-pub.gene.com/gmap/' +description = """GMAP: A Genomic Mapping and Alignment Program for mRNA and EST Sequences + GSNAP: Genomic Short-read Nucleotide Alignment Program""" + +toolchain = {'name': 'GCC', 'version': '10.3.0'} + +source_urls = ['http://research-pub.gene.com/gmap/src/'] +sources = [SOURCELOWER_TAR_GZ] +patches = [ + 'GMAP-GSNAP-2023-02-17_cleanup-headers.patch', + 'GMAP-GSNAP-2023-02-17_fix-typecast.patch', +] +checksums = [ + {'gmap-gsnap-2023-04-20.tar.gz': 'f858bc699cbcc9b3f06751ace55c86bfc21e4ca821a90b10681feac2172b725e'}, + {'GMAP-GSNAP-2023-02-17_cleanup-headers.patch': '7d17d4cbc717556e3a64475eb931b692e9d564b486acf6c9dbf4c2bf29853832'}, + {'GMAP-GSNAP-2023-02-17_fix-typecast.patch': 'eafe728cf00cf52320bbf4b710ef76b662df92533d22fa67dc273855c180296f'}, +] + +# with these deps you can use standard compressed files +# details in http://research-pub.gene.com/gmap/src/README +dependencies = [ + ('bzip2', '1.0.8'), + ('zlib', '1.2.11'), +] + +# GSNAP uses MAX_STACK_READLENGTH to control the use of stack or heap memory depending on the read length +# details in http://research-pub.gene.com/gmap/src/README +# configopts = 'MAX_STACK_READLENGTH=300' + +runtest = 'check' + +sanity_check_paths = { + 'files': ['bin/gmap', 'bin/gsnap'], + 'dirs': [], +} + +sanity_check_commands = [ + "gmap --help", + "gsnap --help", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GMP/GMP-6.3.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/g/GMP/GMP-6.3.0-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..1be7b653e2c --- /dev/null +++ b/easybuild/easyconfigs/g/GMP/GMP-6.3.0-GCCcore-13.2.0.eb @@ -0,0 +1,40 @@ +easyblock = 'ConfigureMake' + +name = 'GMP' +version = '6.3.0' + +homepage = 'https://gmplib.org/' +description = """ + GMP is a free library for arbitrary precision arithmetic, operating on signed + integers, rational numbers, and floating point numbers. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'precise': True, 'pic': True} + +source_urls = ['https://ftp.gnu.org/gnu/%(namelower)s'] +sources = [SOURCELOWER_TAR_BZ2] +checksums = ['ac28211a7cfb609bae2e2c8d6058d66c8fe96434f740cf6fe2e47b000d1c20cb'] + +builddependencies = [ + ('Autotools', '20220317'), + ('binutils', '2.40'), +] + +# enable C++ interface +configopts = '--enable-cxx' + +# copy libgmp.so* to /lib to make sure that it is picked up by tests +# when EasyBuild is configured with --rpath, and clean up afterwards (let 'make install' do its job) +pretestopts = "mkdir -p %%(installdir)s/lib && cp -a .libs/libgmp.%s* %%(installdir)s/lib && " % SHLIB_EXT +testopts = " && rm -r %(installdir)s/lib" + +runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/lib%s.%s' % (l, e) for l in ['gmp', 'gmpxx'] for e in [SHLIB_EXT, 'a']] + + ['include/gmp.h', 'include/gmpxx.h'], + 'dirs': ['share'], +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/g/GPAW/GPAW-23.9.1-foss-2022a.eb b/easybuild/easyconfigs/g/GPAW/GPAW-23.9.1-foss-2022a.eb new file mode 100644 index 00000000000..3b483fafeee --- /dev/null +++ b/easybuild/easyconfigs/g/GPAW/GPAW-23.9.1-foss-2022a.eb @@ -0,0 +1,49 @@ +easyblock = "PythonPackage" + +name = 'GPAW' +version = '23.9.1' + +homepage = 'https://wiki.fysik.dtu.dk/gpaw/' +description = """GPAW is a density-functional theory (DFT) Python code based on the projector-augmented wave (PAW) + method and the atomic simulation environment (ASE). It uses real-space uniform grids and multigrid methods or + atom-centered basis-functions.""" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'usempi': True, 'openmp': False} + +source_urls = [PYPI_LOWER_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +patches = [ + ('GPAW-20.1.0-Add-Easybuild-configuration-files.patch', 1), +] +checksums = [ + {'gpaw-23.9.1.tar.gz': '19a24840b876003528864b7a0b38fc0d456800b83b8666b1f724273660745b47'}, + {'GPAW-20.1.0-Add-Easybuild-configuration-files.patch': + '2b337399479bf018a86156ed073dd7a78ec8c0df1f28b015f9284c6bf9fa5f15'}, +] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('ASE', '3.22.1'), + ('libxc', '5.2.3'), + ('libvdwxc', '0.4.0'), + ('ELPA', '2021.11.001'), + ('PyYAML', '6.0'), + ('GPAW-setups', '0.9.20000', '', SYSTEM), +] + +prebuildopts = 'GPAW_CONFIG=doc/platforms/Linux/EasyBuild/config_foss.py' +preinstallopts = prebuildopts + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +sanity_check_paths = { + 'files': ['bin/gpaw%s' % x for x in ['', '-analyse-basis', '-basis', '-plot-parallel-timings', + '-runscript', '-setup', '-upfplot']], + 'dirs': ['lib/python%(pyshortver)s/site-packages'] +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/g/GPAW/GPAW-23.9.1-foss-2023a.eb b/easybuild/easyconfigs/g/GPAW/GPAW-23.9.1-foss-2023a.eb new file mode 100644 index 00000000000..25eca6c86b9 --- /dev/null +++ b/easybuild/easyconfigs/g/GPAW/GPAW-23.9.1-foss-2023a.eb @@ -0,0 +1,50 @@ +easyblock = "PythonPackage" + +name = 'GPAW' +version = '23.9.1' + +homepage = 'https://wiki.fysik.dtu.dk/gpaw/' +description = """GPAW is a density-functional theory (DFT) Python code based on the projector-augmented wave (PAW) + method and the atomic simulation environment (ASE). It uses real-space uniform grids and multigrid methods or + atom-centered basis-functions.""" + +toolchain = {'name': 'foss', 'version': '2023a'} +toolchainopts = {'usempi': True, 'openmp': False} + +source_urls = [PYPI_LOWER_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +patches = [ + ('GPAW-20.1.0-Add-Easybuild-configuration-files.patch', 1), +] +checksums = [ + {'gpaw-23.9.1.tar.gz': '19a24840b876003528864b7a0b38fc0d456800b83b8666b1f724273660745b47'}, + {'GPAW-20.1.0-Add-Easybuild-configuration-files.patch': + '2b337399479bf018a86156ed073dd7a78ec8c0df1f28b015f9284c6bf9fa5f15'}, +] + +dependencies = [ + ('Python', '3.11.3'), + ('Python-bundle-PyPI', '2023.06'), + ('SciPy-bundle', '2023.07'), + ('ASE', '3.22.1'), + ('libxc', '6.2.2'), + ('libvdwxc', '0.4.0'), + ('ELPA', '2023.05.001'), + ('PyYAML', '6.0'), + ('GPAW-setups', '0.9.20000', '', SYSTEM), +] + +prebuildopts = 'GPAW_CONFIG=doc/platforms/Linux/EasyBuild/config_foss.py' +preinstallopts = prebuildopts + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +sanity_check_paths = { + 'files': ['bin/gpaw%s' % x for x in ['', '-analyse-basis', '-basis', '-plot-parallel-timings', + '-runscript', '-setup', '-upfplot']], + 'dirs': ['lib/python%(pyshortver)s/site-packages'] +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/g/GPAW/GPAW-23.9.1-intel-2022a.eb b/easybuild/easyconfigs/g/GPAW/GPAW-23.9.1-intel-2022a.eb new file mode 100644 index 00000000000..65e38c0e70b --- /dev/null +++ b/easybuild/easyconfigs/g/GPAW/GPAW-23.9.1-intel-2022a.eb @@ -0,0 +1,48 @@ +easyblock = "PythonPackage" + +name = 'GPAW' +version = '23.9.1' + +homepage = 'https://wiki.fysik.dtu.dk/gpaw/' +description = """GPAW is a density-functional theory (DFT) Python code based on the projector-augmented wave (PAW) + method and the atomic simulation environment (ASE). It uses real-space uniform grids and multigrid methods or + atom-centered basis-functions.""" + +toolchain = {'name': 'intel', 'version': '2022a'} +toolchainopts = {'usempi': True, 'openmp': False} + +source_urls = [PYPI_LOWER_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +patches = [ + ('GPAW-20.1.0-Add-Easybuild-configuration-files.patch', 1), +] +checksums = [ + {'gpaw-23.9.1.tar.gz': '19a24840b876003528864b7a0b38fc0d456800b83b8666b1f724273660745b47'}, + {'GPAW-20.1.0-Add-Easybuild-configuration-files.patch': + '2b337399479bf018a86156ed073dd7a78ec8c0df1f28b015f9284c6bf9fa5f15'}, +] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('ASE', '3.22.1'), + ('libxc', '5.2.3'), + ('ELPA', '2021.11.001'), + ('PyYAML', '6.0'), + ('GPAW-setups', '0.9.20000', '', SYSTEM), +] + +prebuildopts = 'GPAW_CONFIG=doc/platforms/Linux/EasyBuild/config_intel.py' +preinstallopts = prebuildopts + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +sanity_check_paths = { + 'files': ['bin/gpaw%s' % x for x in ['', '-analyse-basis', '-basis', '-plot-parallel-timings', + '-runscript', '-setup', '-upfplot']], + 'dirs': ['lib/python%(pyshortver)s/site-packages'] +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/g/GSD/GSD-3.2.0-foss-2022a.eb b/easybuild/easyconfigs/g/GSD/GSD-3.2.0-foss-2022a.eb new file mode 100644 index 00000000000..8623f4ba1b4 --- /dev/null +++ b/easybuild/easyconfigs/g/GSD/GSD-3.2.0-foss-2022a.eb @@ -0,0 +1,36 @@ +easyblock = 'PythonPackage' + +name = 'GSD' +version = '3.2.0' + +homepage = 'https://gsd.readthedocs.io' +description = """The GSD file format is the native file format for +HOOMD-blue. GSD files store trajectories of the HOOMD-blue system state +in a binary file with efficient random access to frames. GSD allows all +particle and topology properties to vary from one frame to the next. Use +the GSD Python API to specify the initial condition for a HOOMD-blue +simulation or analyze trajectory output with a script. Read a GSD +trajectory with a visualization tool to explore the behavior of the +simulation.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +github_account = 'glotzerlab' +source_urls = [GITHUB_LOWER_RELEASE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['6fc7a9293d379032fc7d207884c0a50fe686b02ee5b8ebf3433989e2086f47c2'] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +sanity_check_commands = [ + 'python -c "import gsd.hoomd"', +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/g/GST-plugins-bad/GST-plugins-bad-1.22.5-GCC-12.3.0.eb b/easybuild/easyconfigs/g/GST-plugins-bad/GST-plugins-bad-1.22.5-GCC-12.3.0.eb new file mode 100644 index 00000000000..9814e447313 --- /dev/null +++ b/easybuild/easyconfigs/g/GST-plugins-bad/GST-plugins-bad-1.22.5-GCC-12.3.0.eb @@ -0,0 +1,44 @@ +easyblock = 'MesonNinja' + +name = 'GST-plugins-bad' +version = '1.22.5' + +homepage = 'https://gstreamer.freedesktop.org/' +description = """GStreamer is a library for constructing graphs of media-handling + components. The applications it supports range from simple + Ogg/Vorbis playback, audio/video streaming to complex audio + (mixing) and video (non-linear editing) processing.""" + +toolchain = {'name': 'GCC', 'version': '12.3.0'} + +source_urls = ['https://gstreamer.freedesktop.org/src/gst-plugins-bad'] +sources = [SOURCELOWER_TAR_XZ] +checksums = ['e64e75cdafd7ff2fc7fc34e855b06b1e3ed227cc06fa378d17bbcd76780c338c'] + +builddependencies = [ + ('Meson', '1.1.1'), + ('Ninja', '1.11.1'), + ('GObject-Introspection', '1.76.1'), + ('gettext', '0.21.1'), + ('pkgconf', '1.9.5'), + ('Bison', '3.8.2'), +] + +dependencies = [ + ('zlib', '1.2.13'), + ('GLib', '2.77.1'), + ('GStreamer', '1.22.5'), + ('Gdk-Pixbuf', '2.42.10'), + ('X11', '20230603'), + ('Mesa', '23.1.4'), + ('Graphene', '1.10.8'), + ('GST-plugins-base', '1.22.5'), +] + +sanity_check_paths = { + 'files': ['bin/gst-transcoder-1.0', 'bin/playout'] + + ['lib/libgst%s-1.0.%s' % (x, SHLIB_EXT) for x in ['adaptivedemux', 'badaudio', 'codecs', 'player']], + 'dirs': ['include', 'share'] +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/GTDB-Tk/GTDB-Tk-2.3.2-foss-2022a.eb b/easybuild/easyconfigs/g/GTDB-Tk/GTDB-Tk-2.3.2-foss-2022a.eb new file mode 100644 index 00000000000..70a975a9f1e --- /dev/null +++ b/easybuild/easyconfigs/g/GTDB-Tk/GTDB-Tk-2.3.2-foss-2022a.eb @@ -0,0 +1,46 @@ +# Updated from previous config +# Author: Pavel Grochal (INUITS) +# License: GPLv2 + +easyblock = 'PythonBundle' + +name = 'GTDB-Tk' +version = '2.3.2' + +homepage = 'https://github.com/Ecogenomics/GTDBTk' +description = "A toolkit for assigning objective taxonomic classifications to bacterial and archaeal genomes." + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('DendroPy', '4.5.2'), + ('matplotlib', '3.5.2'), + ('prodigal', '2.6.3'), + ('HMMER', '3.3.2'), + ('pplacer', '1.1.alpha19', '', SYSTEM), + ('FastANI', '1.33'), + ('FastTree', '2.1.11'), + ('Mash', '2.3'), + ('tqdm', '4.64.0'), + ('pydantic', '1.10.4'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + (name, version, { + 'modulename': 'gtdbtk', + 'source_tmpl': 'gtdbtk-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/g/gtdbtk'], + 'checksums': ['80efd31e10007d835f56a3d6fdf039a59db3b6ba4be26b234692da5e688aa99f'], + }), +] + +sanity_check_paths = { + 'files': ['bin/gtdbtk'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GTK4/GTK4-4.13.1-GCC-12.3.0.eb b/easybuild/easyconfigs/g/GTK4/GTK4-4.13.1-GCC-12.3.0.eb new file mode 100644 index 00000000000..5ac3810bfa1 --- /dev/null +++ b/easybuild/easyconfigs/g/GTK4/GTK4-4.13.1-GCC-12.3.0.eb @@ -0,0 +1,81 @@ +easyblock = 'Bundle' + +name = 'GTK4' +version = '4.13.1' + +homepage = 'https://docs.gtk.org/gtk4/' +description = """GTK+ is the primary library used to construct user interfaces in GNOME. It + provides all the user interface controls, or widgets, used in a common + graphical application. Its object-oriented API allows you to construct + user interfaces without dealing with the low-level details of drawing and + device interaction. +""" + +toolchain = {'name': 'GCC', 'version': '12.3.0'} + +builddependencies = [ + ('binutils', '2.40'), + ('Autotools', '20220317'), + ('GObject-Introspection', '1.76.1'), + ('gettext', '0.21.1'), + ('pkgconf', '1.9.5'), + ('cairo', '1.17.8'), + ('Perl', '5.36.1'), + ('Meson', '1.1.1'), + ('Ninja', '1.11.1'), +] +dependencies = [ + ('ATK', '2.38.0'), + ('at-spi2-atk', '2.38.0'), + ('Gdk-Pixbuf', '2.42.10'), + ('Pango', '1.50.14'), + ('libepoxy', '1.5.10'), + ('X11', '20230603'), + ('FriBidi', '1.0.12'), + ('GST-plugins-bad', '1.22.5'), + ('Wayland', '1.22.0'), + ('PyGObject', '3.46.0'), +] + +default_easyblock = 'ConfigureMake' + +default_component_specs = { + 'sources': [SOURCELOWER_TAR_XZ], + 'start_dir': '%(namelower)s-%(version)s', +} + +components = [ + ('GTK', version, { + 'easyblock': 'MesonNinja', + 'source_urls': [FTPGNOME_SOURCE], + 'configopts': "-Dintrospection=enabled -Dgtk_doc=false", + 'checksums': [ + '53d832a37653fb4672ad7b3d3be656082eeee402177d971fdf8e0cba9a55b9a1', + ], + }), + ('hicolor-icon-theme', '0.17', { + 'source_urls': ['https://icon-theme.freedesktop.org/releases/'], + 'checksums': ['317484352271d18cbbcfac3868eab798d67fff1b8402e740baa6ff41d588a9d8'], + }), + ('adwaita-icon-theme', '45.0', { + 'easyblock': 'MesonNinja', + 'source_urls': ['https://ftp.gnome.org/pub/GNOME/sources/%(namelower)s/%(version_major)s'], + 'checksums': [ + '2442bfb06f4e6cc95bf6e2682fdff98fa5eddc688751b9d6215c623cb4e42ff1', + ], + }), +] + +postinstallcmds = ['gtk4-update-icon-cache'] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['gtk4-demo', 'gtk4-demo-application', 'gtk4-icon-browser', 'gtk4-widget-factory', + 'gtk4-builder-tool', 'gtk4-launch', 'gtk4-query-settings', + 'gtk4-update-icon-cache', 'gtk4-widget-factory']] + + ['lib/libgtk-4.%s' % SHLIB_EXT], + 'dirs': ['include/%s-%%(version_major)s.0/%s' % ('gtk', x) for x in ['gdk', 'gsk', 'gtk']] + + ['share/icons/hicolor', 'share/icons/Adwaita'], +} + + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/GlobalArrays/GlobalArrays-5.8.2-intel-2023a.eb b/easybuild/easyconfigs/g/GlobalArrays/GlobalArrays-5.8.2-intel-2023a.eb new file mode 100644 index 00000000000..04f7174a29a --- /dev/null +++ b/easybuild/easyconfigs/g/GlobalArrays/GlobalArrays-5.8.2-intel-2023a.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'GlobalArrays' +version = '5.8.2' + +homepage = 'https://hpc.pnl.gov/globalarrays' +description = "Global Arrays (GA) is a Partitioned Global Address Space (PGAS) programming model" + +toolchain = {'name': 'intel', 'version': '2023a'} +toolchainopts = {'usempi': True} + +source_urls = ['https://github.com/GlobalArrays/ga/releases/download/'] +sources = ['v%(version)s/ga-%(version)s.tar.gz'] +checksums = ['51599e4abfe36f05cecfaffa33be19efbe9e9fa42d035fd3f866469b663c22a2'] + +configopts = ' --with-mpi --enable-i8' +configopts += ' --with-blas8="-L$MLROOT/lib/intel64 -lmkl_sequential -lmkl_intel_ilp64"' +configopts += ' --with-scalapack8="L$MKLROOT/lib/intel64 -lmkl_scalapack_ilp64 -lmkl_intel_ilp64 ' +configopts += '-lmkl_sequential -lmkl_core -lmkl_blacs_intelmpi_ilp64 -lpthread -lm -ldl"' + +# select armci network as (Comex) MPI-1 two-sided +configopts += ' --with-mpi-ts' + +sanity_check_paths = { + 'files': ['bin/adjust.x', 'bin/collisions.x', 'bin/ga-config', 'lib/libarmci.a', + 'lib/libcomex.a', 'lib/libga.a'], + 'dirs': ['include'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/g/Go/Go-1.21.1.eb b/easybuild/easyconfigs/g/Go/Go-1.21.1.eb new file mode 100644 index 00000000000..8772f597710 --- /dev/null +++ b/easybuild/easyconfigs/g/Go/Go-1.21.1.eb @@ -0,0 +1,29 @@ +easyblock = 'Tarball' + +name = 'Go' +version = "1.21.1" + +homepage = 'https://www.golang.org' +description = """Go is an open source programming language that makes it easy to build + simple, reliable, and efficient software.""" + +toolchain = SYSTEM + +source_urls = ['https://storage.googleapis.com/golang/'] +local_archs = {'aarch64': 'arm64', 'x86_64': 'amd64'} +sources = ['go%%(version)s.linux-%s.tar.gz' % local_archs[ARCH]] +checksums = [{ + 'go%(version)s.linux-amd64.tar.gz': 'b3075ae1ce5dab85f89bc7905d1632de23ca196bd8336afd93fa97434cfa55ae', + 'go%(version)s.linux-arm64.tar.gz': '7da1a3936a928fd0b2602ed4f3ef535b8cd1990f1503b8d3e1acc0fa0759c967', +}] + +sanity_check_paths = { + 'files': ['bin/go', 'bin/gofmt'], + 'dirs': ['api', 'doc', 'lib', 'pkg'], +} + +sanity_check_commands = ["go help"] + +modextravars = {'GOROOT': '%(installdir)s'} + +moduleclass = 'compiler' diff --git a/easybuild/easyconfigs/g/Go/Go-1.21.2.eb b/easybuild/easyconfigs/g/Go/Go-1.21.2.eb new file mode 100644 index 00000000000..f7d40229738 --- /dev/null +++ b/easybuild/easyconfigs/g/Go/Go-1.21.2.eb @@ -0,0 +1,29 @@ +easyblock = 'Tarball' + +name = 'Go' +version = '1.21.2' + +homepage = 'https://www.golang.org' +description = """Go is an open source programming language that makes it easy to build + simple, reliable, and efficient software.""" + +toolchain = SYSTEM + +source_urls = ['https://storage.googleapis.com/golang/'] +local_archs = {'aarch64': 'arm64', 'x86_64': 'amd64'} +sources = ['go%%(version)s.linux-%s.tar.gz' % local_archs[ARCH]] +checksums = [{ + 'go%(version)s.linux-amd64.tar.gz': 'f5414a770e5e11c6e9674d4cd4dd1f4f630e176d1828d3427ea8ca4211eee90d', + 'go%(version)s.linux-arm64.tar.gz': '23e208ca44a3cb46cd4308e48a27c714ddde9c8c34f2e4211dbca95b6d456554', +}] + +sanity_check_paths = { + 'files': ['bin/go', 'bin/gofmt'], + 'dirs': ['api', 'doc', 'lib', 'pkg'], +} + +sanity_check_commands = ["go help"] + +modextravars = {'GOROOT': '%(installdir)s'} + +moduleclass = 'compiler' diff --git a/easybuild/easyconfigs/g/gfbf/gfbf-2023.09.eb b/easybuild/easyconfigs/g/gfbf/gfbf-2023.09.eb new file mode 100644 index 00000000000..d464a726be8 --- /dev/null +++ b/easybuild/easyconfigs/g/gfbf/gfbf-2023.09.eb @@ -0,0 +1,20 @@ +easyblock = 'Toolchain' + +name = 'gfbf' +version = '2023.09' + +homepage = '(none)' +description = """GNU Compiler Collection (GCC) based compiler toolchain, including + FlexiBLAS (BLAS and LAPACK support) and (serial) FFTW.""" + +toolchain = SYSTEM + +local_gccver = '13.2.0' + +dependencies = [ + ('GCC', local_gccver), + ('FlexiBLAS', '3.3.1', '', ('GCC', local_gccver)), + ('FFTW', '3.3.10', '', ('GCC', local_gccver)), +] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/g/giflib/giflib-5.2.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/g/giflib/giflib-5.2.1-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..aa13dd4df30 --- /dev/null +++ b/easybuild/easyconfigs/g/giflib/giflib-5.2.1-GCCcore-13.2.0.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'giflib' +version = '5.2.1' + +homepage = 'http://giflib.sourceforge.net/' +description = """giflib is a library for reading and writing gif images. +It is API and ABI compatible with libungif which was in wide use while +the LZW compression algorithm was patented.""" + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['31da5562f44c5f15d63340a09a4fd62b48c45620cd302f77a6d9acf0077879bd'] + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +builddependencies = [('binutils', '2.40')] + +skipsteps = ['configure'] + +installopts = 'PREFIX=%(installdir)s' + +sanity_check_paths = { + 'files': ['bin/giftool'], + 'dirs': [] +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/g/git-annex/git-annex-10.20230802-GCCcore-12.2.0.eb b/easybuild/easyconfigs/g/git-annex/git-annex-10.20230802-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..e5c29a0e6bb --- /dev/null +++ b/easybuild/easyconfigs/g/git-annex/git-annex-10.20230802-GCCcore-12.2.0.eb @@ -0,0 +1,45 @@ +easyblock = 'MakeCp' + +name = 'git-annex' +version = '10.20230802' + +homepage = 'https://git-annex.branchable.com' +description = """git-annex allows managing large files with git, without storing the file contents in git. It can sync, +backup, and archive your data, offline and online. Checksums and encryption keep your data safe and secure. Bring the +power and distributed nature of git to bear on your large files with git-annex.""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +dependencies = [ + ('GHC', '9.2.2', '-x86_64', SYSTEM), + ('GCC', '12.2.0', '', SYSTEM), + ('Stack', '2.11.1', '-x86_64', SYSTEM), + ('git', '2.38.1', '-nodocs'), +] + +sources = [{ + 'git_config': {'url': 'git://git-annex.branchable.com', + 'repo_name': '%(name)s', + 'tag': '%(version)s', + 'clone_into': '%(name)s-%(version)s', + }, + 'filename': '%(name)s-%(version)s.tar.gz', +}] + +checksums = [None] + +prebuildopts = "stack setup && stack build && " +buildopts = "install-bins BUILDER=stack PREFIX=%(builddir)s" + +files_to_copy = [ + (['git-annex', 'git-annex-shell'], 'bin'), +] + +sanity_check_paths = { + 'files': ['bin/git-annex', 'bin/git-annex-shell'], + 'dirs': [], +} + +sanity_check_commands = ['git-annex version'] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/g/git/git-2.42.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/g/git/git-2.42.0-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..05e36521107 --- /dev/null +++ b/easybuild/easyconfigs/g/git/git-2.42.0-GCCcore-13.2.0.eb @@ -0,0 +1,42 @@ +easyblock = 'ConfigureMake' + +name = 'git' +version = '2.42.0' + +homepage = 'https://git-scm.com' +description = """Git is a free and open source distributed version control system designed +to handle everything from small to very large projects with speed and efficiency.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://github.com/git/git/archive'] +sources = ['v%(version)s.tar.gz'] +checksums = ['60c06eb7ce840903169ed4872224b2409dd8d8a518e9df847c6dc0ef10d35d99'] + +builddependencies = [ + ('binutils', '2.40'), + ('Autotools', '20220317'), +] + +dependencies = [ + ('cURL', '8.3.0'), + ('expat', '2.5.0'), + ('gettext', '0.22'), + ('Perl', '5.38.0'), + ('OpenSSL', '1.1', '', SYSTEM), +] + +preconfigopts = 'make configure && ' + +# Work around git build system bug. If LIBS contains -lpthread, then configure +# will not append -lpthread to LDFLAGS, but Makefile ignores LIBS. +configopts = "--with-perl=${EBROOTPERL}/bin/perl --enable-pthreads='-lpthread'" + +postinstallcmds = ['cd contrib/subtree; make install'] + +sanity_check_paths = { + 'files': ['bin/git'], + 'dirs': ['libexec/git-core', 'share'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/g/gmpy2/gmpy2-2.1.5-GCC-12.2.0.eb b/easybuild/easyconfigs/g/gmpy2/gmpy2-2.1.5-GCC-12.2.0.eb new file mode 100644 index 00000000000..ee56d5dc87c --- /dev/null +++ b/easybuild/easyconfigs/g/gmpy2/gmpy2-2.1.5-GCC-12.2.0.eb @@ -0,0 +1,25 @@ +easyblock = 'PythonPackage' + +name = 'gmpy2' +version = '2.1.5' + +homepage = 'https://github.com/aleaxit/gmpy' +description = "GMP/MPIR, MPFR, and MPC interface to Python 2.6+ and 3.x" + +toolchain = {'name': 'GCC', 'version': '12.2.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['bc297f1fd8c377ae67a4f493fc0f926e5d1b157e5c342e30a4d84dc7b9f95d96'] + +dependencies = [ + ('Python', '3.10.8'), + ('GMP', '6.2.1'), + ('MPFR', '4.2.0'), + ('MPC', '1.3.1'), +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/g/gompi/gompi-2023.09.eb b/easybuild/easyconfigs/g/gompi/gompi-2023.09.eb new file mode 100644 index 00000000000..3d093c34535 --- /dev/null +++ b/easybuild/easyconfigs/g/gompi/gompi-2023.09.eb @@ -0,0 +1,20 @@ +easyblock = 'Toolchain' + +name = 'gompi' +version = '2023.09' + +homepage = '(none)' +description = """GNU Compiler Collection (GCC) based compiler toolchain, + including OpenMPI for MPI support.""" + +toolchain = SYSTEM + +local_gccver = '13.2.0' + +# compiler toolchain dependencies +dependencies = [ + ('GCC', local_gccver), # includes both GCC and binutils + ('OpenMPI', '4.1.6', '', ('GCC', local_gccver)), +] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/g/googletest/googletest-1.14.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/g/googletest/googletest-1.14.0-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..c098771dd9e --- /dev/null +++ b/easybuild/easyconfigs/g/googletest/googletest-1.14.0-GCCcore-13.2.0.eb @@ -0,0 +1,28 @@ +easyblock = 'CMakeMake' + +name = 'googletest' +version = '1.14.0' + +homepage = 'https://github.com/google/googletest' +description = "Google's framework for writing C++ tests on a variety of platforms" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://github.com/google/googletest/archive/refs/tags/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['8ad598c73ad796e0d8280b082cebd82a630d73e73cd3c70057938a6501bba5d7'] + +builddependencies = [ + ('binutils', '2.40'), + ('CMake', '3.27.6'), +] +# build twice, once for static, once for shared libraries +configopts = ['', ' -DBUILD_SHARED_LIBS=ON '] + +sanity_check_paths = { + 'files': ['lib/lib%s.%s' % (local_lib, local_ext) for local_lib in ['gmock', 'gmock_main', 'gtest', 'gtest_main'] + for local_ext in ['a', SHLIB_EXT]], + 'dirs': ['include/gmock', 'include/gtest'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/g/gperf/gperf-3.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/g/gperf/gperf-3.1-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..87e489a7978 --- /dev/null +++ b/easybuild/easyconfigs/g/gperf/gperf-3.1-GCCcore-13.2.0.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'gperf' +version = '3.1' + +homepage = 'https://www.gnu.org/software/gperf/' +description = """ + GNU gperf is a perfect hash function generator. For a given list of strings, + it produces a hash function and hash table, in form of C or C++ code, for + looking up a value depending on the input string. The hash function is + perfect, which means that the hash table has no collisions, and the hash + table lookup needs a single string comparison only. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['588546b945bba4b70b6a3a616e80b4ab466e3f33024a352fc2198112cdbb3ae2'] + +builddependencies = [ + ('binutils', '2.40'), +] + +sanity_check_paths = { + 'files': ['bin/gperf'], + 'dirs': [], +} + +sanity_check_commands = ["gperf --help"] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/g/groff/groff-1.23.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/g/groff/groff-1.23.0-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..f280bc24144 --- /dev/null +++ b/easybuild/easyconfigs/g/groff/groff-1.23.0-GCCcore-13.2.0.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'groff' +version = '1.23.0' + +homepage = 'https://www.gnu.org/software/groff' +description = """Groff (GNU troff) is a typesetting system that reads plain text mixed with formatting commands + and produces formatted output.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://ftp.gnu.org/gnu/groff'] +sources = [SOURCE_TAR_GZ] +checksums = ['6b9757f592b7518b4902eb6af7e54570bdccba37a871fddb2d30ae3863511c13'] + +builddependencies = [ + ('binutils', '2.40'), + ('M4', '1.4.19'), +] + +configopts = '--with-doc=no' + +sanity_check_paths = { + 'files': ['bin/groff', 'bin/nroff', 'bin/troff'], + 'dirs': ['lib/groff', 'share'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/g/gzip/gzip-1.13-GCCcore-13.2.0.eb b/easybuild/easyconfigs/g/gzip/gzip-1.13-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..c11c6bf95f0 --- /dev/null +++ b/easybuild/easyconfigs/g/gzip/gzip-1.13-GCCcore-13.2.0.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'gzip' +version = '1.13' + +homepage = 'https://www.gnu.org/software/gzip/' +description = "gzip (GNU zip) is a popular data compression program as a replacement for compress" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['20fc818aeebae87cdbf209d35141ad9d3cf312b35a5e6be61bfcfbf9eddd212a'] + +builddependencies = [('binutils', '2.40')] + +sanity_check_paths = { + 'files': ["bin/gunzip", "bin/gzip", "bin/uncompress"], + 'dirs': [], +} + +sanity_check_commands = [True, ('gzip', '--version')] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/HDF/HDF-4.2.16-2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/h/HDF/HDF-4.2.16-2-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..453ca292d42 --- /dev/null +++ b/easybuild/easyconfigs/h/HDF/HDF-4.2.16-2-GCCcore-12.3.0.eb @@ -0,0 +1,60 @@ +easyblock = 'ConfigureMake' + +name = 'HDF' +version = '4.2.16-2' + +homepage = 'https://www.hdfgroup.org/products/hdf4/' +description = """ + HDF (also known as HDF4) is a library and multi-object file format for + storing and managing data between machines. +""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['http://www.hdfgroup.org/ftp/%(name)s/releases/%(name)s%(version)s/src/'] +sources = [SOURCELOWER_TAR_GZ] + +checksums = [ + 'a24b18312d421686031c2d66635f7d5abb2fe879f8a182b7e02797b0da8d1f6c', # %(namelower)s-%(version)s.tar.gz +] + +builddependencies = [ + ('binutils', '2.40'), + ('Bison', '3.8.2'), + ('flex', '2.6.4'), +] +dependencies = [ + ('libjpeg-turbo', '2.1.5.1'), + ('Szip', '2.1.1'), + ('zlib', '1.2.13'), + ('libtirpc', '1.3.3'), +] + +preconfigopts = "LIBS='-ltirpc' " + +local_common_configopts = '--with-szlib=$EBROOTSZIP CFLAGS="$CFLAGS -I$EBROOTLIBTIRPC/include/tirpc" ' +local_common_configopts += '--includedir=%(installdir)s/include/%(namelower)s ' + +configopts = [ + local_common_configopts, + # Cannot build shared libraries and Fortran... + # https://trac.osgeo.org/gdal/wiki/HDF#IncompatibilitywithNetCDFLibraries + # netcdf must be disabled to allow HDF to be used by GDAL + local_common_configopts + "--enable-shared --disable-fortran --disable-netcdf", +] + + +sanity_check_paths = { + 'files': ['bin/h4cc', 'bin/ncdump', 'lib/libdf.a', 'lib/libhdf4.settings', 'lib/libmfhdf.a', 'lib/libmfhdf.so'], + 'dirs': ['include/%(namelower)s'], +} + +sanity_check_commands = [ + "h4cc --help", + "ncdump -V", +] + +modextrapaths = {'CPATH': 'include/%(namelower)s'} + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/h/HDF/HDF-4.2.16-GCCcore-12.3.0.eb b/easybuild/easyconfigs/h/HDF/HDF-4.2.16-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..d24dbfac77e --- /dev/null +++ b/easybuild/easyconfigs/h/HDF/HDF-4.2.16-GCCcore-12.3.0.eb @@ -0,0 +1,55 @@ +easyblock = 'ConfigureMake' + +name = 'HDF' +version = '4.2.16' + +homepage = 'https://www.hdfgroup.org/products/hdf4/' + +description = """ + HDF (also known as HDF4) is a library and multi-object file format for + storing and managing data between machines. +""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['http://www.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['2bd48dcefb5ab4829fba27dca6fad20b842d495dfd64944b2412b2b0968bf167'] + +builddependencies = [ + ('binutils', '2.40'), + ('Bison', '3.8.2'), + ('flex', '2.6.4'), +] + +dependencies = [ + ('libjpeg-turbo', '2.1.5.1'), + ('Szip', '2.1.1'), + ('zlib', '1.2.13'), + ('libtirpc', '1.3.3'), +] + +preconfigopts = "LIBS='-ltirpc' " +local_common_configopts = '--with-szlib=$EBROOTSZIP CFLAGS="$CFLAGS -I$EBROOTLIBTIRPC/include/tirpc" ' +local_common_configopts += '--includedir=%(installdir)s/include/%(namelower)s ' +configopts = [ + local_common_configopts, + # netcdf must be disabled to allow HDF to be used by GDAL + local_common_configopts + "--enable-shared --disable-netcdf", +] + +modextrapaths = {'CPATH': 'include/hdf'} + +sanity_check_paths = { + 'files': ['bin/h4cc', 'bin/ncdump', 'lib/libdf.a', 'lib/libhdf4.settings', 'lib/libmfhdf.a', + 'lib/libmfhdf.%s' % SHLIB_EXT], + 'dirs': ['include/hdf'], +} + +sanity_check_commands = [ + "h4cc --help", + "ncdump -V", +] + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/h/HISAT2/HISAT2-2.2.1-gompi-2021a.eb b/easybuild/easyconfigs/h/HISAT2/HISAT2-2.2.1-gompi-2021a.eb new file mode 100644 index 00000000000..59e1d8054bd --- /dev/null +++ b/easybuild/easyconfigs/h/HISAT2/HISAT2-2.2.1-gompi-2021a.eb @@ -0,0 +1,59 @@ +## +# This is a contribution from DeepThought HPC Service, Flinders University, Adelaide, Australia +# Homepage: https://staff.flinders.edu.au/research/deep-thought +# +# Authors:: Robert Qiao +# License:: GPLv3.0 +# +# Notes:: +# 2.2.1 - changes from Adam Huffman +# Bumped to foss-2021b +# J. Sassmannshausen + +easyblock = 'MakeCp' + +name = 'HISAT2' +version = '2.2.1' + +homepage = 'https://daehwankimlab.github.io/hisat2' +description = """HISAT2 is a fast and sensitive alignment program for mapping next-generation sequencing reads + (both DNA and RNA) against the general human population (as well as against a single reference genome).""" + +toolchain = {'name': 'gompi', 'version': '2021a'} + +sources = [{ + 'source_urls': ['https://cloud.biohpc.swmed.edu/index.php/s/fE9QCsX3NH4QwBi'], + 'download_filename': 'download', + 'filename': '%(namelower)s-%(version)s-source.zip', +}] +patches = [ + 'hisat2-libname-fix.patch', +] +checksums = [ + '48e933330d4d8470d2b3dfe7ec3918f2e98a75f7381891e23b7df1fb4f135eb1', + '8aa91d1dd6455b96c10ce48827f8313b006241d815fbe6382422dbae3b610726', # hisat2-libname-fix.patch +] + +dependencies = [ + ('NGS', '2.10.9'), + ('ncbi-vdb', '2.10.9'), +] + +buildopts = 'CC="$CC" CPP="$CXX" RELEASE_FLAGS="$CFLAGS" ' +buildopts += "USE_SRA=1 NCBI_NGS_DIR=$EBROOTNGS NCBI_VDB_DIR=$EBROOTNCBIMINVDB" + +local_executables = ['hisat2', 'hisat2-align-l', 'hisat2-align-s', 'hisat2-build', 'hisat2-build-l', 'hisat2-build-s', + 'hisat2-inspect', 'hisat2-inspect-s', 'hisat2-inspect-l', 'hisat2-repeat', 'extract_exons.py', + 'extract_splice_sites.py', 'hisat2_extract_exons.py', 'hisat2_extract_snps_haplotypes_UCSC.py', + 'hisat2_extract_snps_haplotypes_VCF.py', 'hisat2_extract_splice_sites.py', + 'hisat2_read_statistics.py', 'hisat2_simulate_reads.py'] +files_to_copy = [(local_executables, 'bin'), 'scripts', 'example'] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in local_executables], + 'dirs': ['scripts', 'example'], +} + +sanity_check_commands = ["hisat2 --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/h/HMMER/HMMER-3.4-gompi-2023a.eb b/easybuild/easyconfigs/h/HMMER/HMMER-3.4-gompi-2023a.eb new file mode 100644 index 00000000000..99f585d998b --- /dev/null +++ b/easybuild/easyconfigs/h/HMMER/HMMER-3.4-gompi-2023a.eb @@ -0,0 +1,78 @@ +## +# EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Nils Christian , +# Fotis Georgatos +# Updated by: Filip Kružík (INUITS) +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a +# component of the policy: +# https://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-94.html +## + +easyblock = 'ConfigureMake' + +name = 'HMMER' +version = '3.4' + +homepage = 'http://hmmer.org/' +description = """HMMER is used for searching sequence databases for homologs + of protein sequences, and for making protein sequence alignments. It + implements methods using probabilistic models called profile hidden Markov + models (profile HMMs). Compared to BLAST, FASTA, and other sequence + alignment and database search tools based on older scoring methodology, + HMMER aims to be significantly more accurate and more able to detect remote + homologs because of the strength of its underlying mathematical models. In the + past, this strength came at significant computational expense, but in the new + HMMER3 project, HMMER is now essentially as fast as BLAST.""" + +toolchain = {'name': 'gompi', 'version': '2023a'} + +source_urls = [ + 'http://eddylab.org/software/hmmer/', + 'http://eddylab.org/software/hmmer%(version_major)s/%(version)s/', +] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['ca70d94fd0cf271bd7063423aabb116d42de533117343a9b27a65c17ff06fbf3'] + +builddependencies = [ + ('Python', '3.11.3'), + ('Perl', '5.36.1'), +] + +# replace hardcoded /usr/bin/perl shebang lines with '/usr/bin/env perl' across all files +preconfigopts = "grep '/usr/bin/perl' . | cut -f1 -d: | xargs echo sed -i 's@/usr/bin/perl@/usr/bin/env perl@g' && " + +configopts = '--enable-mpi' + +buildopts = ' V=1 ' + +testopts = buildopts +runtest = 'check' + +installopts = ' && cd easel && make install' + +local_bin_files = ['alimask', 'esl-afetch', 'esl-alimanip', 'esl-alimap', 'esl-alimask', + 'esl-alimerge', 'esl-alipid', 'esl-alirev', 'esl-alistat', 'esl-compalign', + 'esl-compstruct', 'esl-construct', 'esl-histplot', 'esl-mask', 'esl-reformat', + 'esl-selectn', 'esl-seqrange', 'esl-seqstat', 'esl-sfetch', 'esl-shuffle', + 'esl-ssdraw', 'esl-translate', 'esl-weight', 'hmmalign', 'hmmbuild', + 'hmmconvert', 'hmmemit', 'hmmfetch', 'hmmlogo', 'hmmpgmd', 'hmmpress', + 'hmmscan', 'hmmsearch', 'hmmsim', 'hmmstat', 'jackhmmer', 'makehmmerdb', + 'nhmmer', 'nhmmscan', 'phmmer'] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in local_bin_files], + 'dirs': ['bin', 'share'], +} + +sanity_check_commands = [ + "esl-construct -h", + "hmmsearch -h", + "nhmmer -h", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/h/HPCG/HPCG-3.1-foss-2022a.eb b/easybuild/easyconfigs/h/HPCG/HPCG-3.1-foss-2022a.eb new file mode 100644 index 00000000000..50f11033d46 --- /dev/null +++ b/easybuild/easyconfigs/h/HPCG/HPCG-3.1-foss-2022a.eb @@ -0,0 +1,24 @@ +name = 'HPCG' +version = '3.1' + +homepage = 'https://software.sandia.gov/hpcg' +description = """The HPCG Benchmark project is an effort to create a more relevant metric for ranking HPC systems than + the High Performance LINPACK (HPL) benchmark, that is currently used by the TOP500 benchmark.""" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'usempi': True, 'openmp': True} + +source_urls = ['http://www.hpcg-benchmark.org/downloads'] +sources = [SOURCELOWER_TAR_GZ] +# Newer compilers require loop's upper-bound variable to be +# explicitly designated as private/shared/firstprivate/lastprivate +patches = ['HPCG-3.1_fix-loop-upper-bound-variable-to-be-explicitly-designated-as-shared.patch'] +checksums = [ + '33a434e716b79e59e745f77ff72639c32623e7f928eeb7977655ffcaade0f4a4', # hpcg-3.1.tar.gz + # HPCG-3.1_fix-loop-upper-bound-variable-to-be-explicitly-designated-as-shared.patch + '23b9de83042eb7a8207fdddcfa79ae2cc1a17e8e623e2224c7751d7c328ee482', +] + +runtest = True + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/h/HPCG/HPCG-3.1-foss-2022b.eb b/easybuild/easyconfigs/h/HPCG/HPCG-3.1-foss-2022b.eb new file mode 100644 index 00000000000..0ec809f2922 --- /dev/null +++ b/easybuild/easyconfigs/h/HPCG/HPCG-3.1-foss-2022b.eb @@ -0,0 +1,24 @@ +name = 'HPCG' +version = '3.1' + +homepage = 'https://software.sandia.gov/hpcg' +description = """The HPCG Benchmark project is an effort to create a more relevant metric for ranking HPC systems than + the High Performance LINPACK (HPL) benchmark, that is currently used by the TOP500 benchmark.""" + +toolchain = {'name': 'foss', 'version': '2022b'} +toolchainopts = {'usempi': True, 'openmp': True} + +source_urls = ['http://www.hpcg-benchmark.org/downloads'] +sources = [SOURCELOWER_TAR_GZ] +# Newer compilers require loop's upper-bound variable to be +# explicitly designated as private/shared/firstprivate/lastprivate +patches = ['HPCG-3.1_fix-loop-upper-bound-variable-to-be-explicitly-designated-as-shared.patch'] +checksums = [ + '33a434e716b79e59e745f77ff72639c32623e7f928eeb7977655ffcaade0f4a4', # hpcg-3.1.tar.gz + # HPCG-3.1_fix-loop-upper-bound-variable-to-be-explicitly-designated-as-shared.patch + '23b9de83042eb7a8207fdddcfa79ae2cc1a17e8e623e2224c7751d7c328ee482', +] + +runtest = True + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/h/HPCG/HPCG-3.1-foss-2023a.eb b/easybuild/easyconfigs/h/HPCG/HPCG-3.1-foss-2023a.eb new file mode 100644 index 00000000000..7114062d22c --- /dev/null +++ b/easybuild/easyconfigs/h/HPCG/HPCG-3.1-foss-2023a.eb @@ -0,0 +1,24 @@ +name = 'HPCG' +version = '3.1' + +homepage = 'https://software.sandia.gov/hpcg' +description = """The HPCG Benchmark project is an effort to create a more relevant metric for ranking HPC systems than + the High Performance LINPACK (HPL) benchmark, that is currently used by the TOP500 benchmark.""" + +toolchain = {'name': 'foss', 'version': '2023a'} +toolchainopts = {'usempi': True, 'openmp': True} + +source_urls = ['http://www.hpcg-benchmark.org/downloads'] +sources = [SOURCELOWER_TAR_GZ] +# Newer compilers require loop's upper-bound variable to be +# explicitly designated as private/shared/firstprivate/lastprivate +patches = ['HPCG-3.1_fix-loop-upper-bound-variable-to-be-explicitly-designated-as-shared.patch'] +checksums = [ + '33a434e716b79e59e745f77ff72639c32623e7f928eeb7977655ffcaade0f4a4', # hpcg-3.1.tar.gz + # HPCG-3.1_fix-loop-upper-bound-variable-to-be-explicitly-designated-as-shared.patch + '23b9de83042eb7a8207fdddcfa79ae2cc1a17e8e623e2224c7751d7c328ee482', +] + +runtest = True + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/h/HPCG/HPCG-3.1-intel-2022a.eb b/easybuild/easyconfigs/h/HPCG/HPCG-3.1-intel-2022a.eb new file mode 100644 index 00000000000..81cbc0c02a1 --- /dev/null +++ b/easybuild/easyconfigs/h/HPCG/HPCG-3.1-intel-2022a.eb @@ -0,0 +1,24 @@ +name = 'HPCG' +version = '3.1' + +homepage = 'https://software.sandia.gov/hpcg' +description = """The HPCG Benchmark project is an effort to create a more relevant metric for ranking HPC systems than + the High Performance LINPACK (HPL) benchmark, that is currently used by the TOP500 benchmark.""" + +toolchain = {'name': 'intel', 'version': '2022a'} +toolchainopts = {'usempi': True, 'openmp': True} + +source_urls = ['http://www.hpcg-benchmark.org/downloads'] +sources = [SOURCELOWER_TAR_GZ] +# Newer compilers require loop's upper-bound variable to be +# explicitly designated as private/shared/firstprivate/lastprivate +patches = ['HPCG-3.1_fix-loop-upper-bound-variable-to-be-explicitly-designated-as-shared.patch'] +checksums = [ + '33a434e716b79e59e745f77ff72639c32623e7f928eeb7977655ffcaade0f4a4', # hpcg-3.1.tar.gz + # HPCG-3.1_fix-loop-upper-bound-variable-to-be-explicitly-designated-as-shared.patch + '23b9de83042eb7a8207fdddcfa79ae2cc1a17e8e623e2224c7751d7c328ee482', +] + +runtest = True + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/h/HPCG/HPCG-3.1-intel-2022b.eb b/easybuild/easyconfigs/h/HPCG/HPCG-3.1-intel-2022b.eb new file mode 100644 index 00000000000..e6958a4ad27 --- /dev/null +++ b/easybuild/easyconfigs/h/HPCG/HPCG-3.1-intel-2022b.eb @@ -0,0 +1,24 @@ +name = 'HPCG' +version = '3.1' + +homepage = 'https://software.sandia.gov/hpcg' +description = """The HPCG Benchmark project is an effort to create a more relevant metric for ranking HPC systems than + the High Performance LINPACK (HPL) benchmark, that is currently used by the TOP500 benchmark.""" + +toolchain = {'name': 'intel', 'version': '2022b'} +toolchainopts = {'usempi': True, 'openmp': True} + +source_urls = ['http://www.hpcg-benchmark.org/downloads'] +sources = [SOURCELOWER_TAR_GZ] +# Newer compilers require loop's upper-bound variable to be +# explicitly designated as private/shared/firstprivate/lastprivate +patches = ['HPCG-3.1_fix-loop-upper-bound-variable-to-be-explicitly-designated-as-shared.patch'] +checksums = [ + '33a434e716b79e59e745f77ff72639c32623e7f928eeb7977655ffcaade0f4a4', # hpcg-3.1.tar.gz + # HPCG-3.1_fix-loop-upper-bound-variable-to-be-explicitly-designated-as-shared.patch + '23b9de83042eb7a8207fdddcfa79ae2cc1a17e8e623e2224c7751d7c328ee482', +] + +runtest = True + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/h/HPCG/HPCG-3.1-intel-2023a.eb b/easybuild/easyconfigs/h/HPCG/HPCG-3.1-intel-2023a.eb new file mode 100644 index 00000000000..771c57d4d87 --- /dev/null +++ b/easybuild/easyconfigs/h/HPCG/HPCG-3.1-intel-2023a.eb @@ -0,0 +1,24 @@ +name = 'HPCG' +version = '3.1' + +homepage = 'https://software.sandia.gov/hpcg' +description = """The HPCG Benchmark project is an effort to create a more relevant metric for ranking HPC systems than + the High Performance LINPACK (HPL) benchmark, that is currently used by the TOP500 benchmark.""" + +toolchain = {'name': 'intel', 'version': '2023a'} +toolchainopts = {'usempi': True, 'openmp': True} + +source_urls = ['http://www.hpcg-benchmark.org/downloads'] +sources = [SOURCELOWER_TAR_GZ] +# Newer compilers require loop's upper-bound variable to be +# explicitly designated as private/shared/firstprivate/lastprivate +patches = ['HPCG-3.1_fix-loop-upper-bound-variable-to-be-explicitly-designated-as-shared.patch'] +checksums = [ + '33a434e716b79e59e745f77ff72639c32623e7f928eeb7977655ffcaade0f4a4', # hpcg-3.1.tar.gz + # HPCG-3.1_fix-loop-upper-bound-variable-to-be-explicitly-designated-as-shared.patch + '23b9de83042eb7a8207fdddcfa79ae2cc1a17e8e623e2224c7751d7c328ee482', +] + +runtest = True + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.0.15-intel-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/h/HPL/HPL-2.0.15-intel-2022a-CUDA-11.7.0.eb new file mode 100644 index 00000000000..6b6030dc02b --- /dev/null +++ b/easybuild/easyconfigs/h/HPL/HPL-2.0.15-intel-2022a-CUDA-11.7.0.eb @@ -0,0 +1,42 @@ +easyblock = 'MakeCp' + +name = 'HPL' +local_patch_version = '15' +version = '2.0.%s' % local_patch_version +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://www.netlib.org/benchmark/hpl/' +description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits) + arithmetic on distributed-memory computers. It can thus be regarded as a portable as well as freely available + implementation of the High Performance Computing Linpack Benchmark.""" + +toolchain = {'name': 'intel', 'version': '2022a'} +toolchainopts = {'usempi': True} + +download_instructions = """Download CUDA Accelerated Linpack from +https://developer.nvidia.com/computeworks-developer-exclusive-downloads""" +sources = ['hpl-%%(version_major_minor)s_FERMI_v%s.tgz' % local_patch_version] +# fix Make dependencies, so parallel build also works +patches = ['HPL_parallel-make.patch'] +checksums = [ + {'hpl-2.0_FERMI_v15.tgz': '16dd21af22fced613923a6cb09805d63952fc9c9f278cb7582061a43fe39a408'}, + {'HPL_parallel-make.patch': '2a5bf9c4f328049828ddecec7ba3f05a9e25d236f4212747c53bd22fea80c5e6'}, +] + +dependencies = [ + ('CUDA', '11.7.0', '', SYSTEM), +] + +buildopts = "TOPdir=${PWD}" + +files_to_copy = [ + (['bin/CUDA/HPL.dat', 'bin/CUDA/xhpl'], 'bin'), + (['src/cuda/libdgemm.so*'], 'lib'), +] + +sanity_check_paths = { + 'files': ['bin/HPL.dat', 'bin/xhpl', 'lib/libdgemm.so'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.3-foss-2023.09.eb b/easybuild/easyconfigs/h/HPL/HPL-2.3-foss-2023.09.eb new file mode 100644 index 00000000000..9818105d1ba --- /dev/null +++ b/easybuild/easyconfigs/h/HPL/HPL-2.3-foss-2023.09.eb @@ -0,0 +1,21 @@ +name = 'HPL' +version = '2.3' + +homepage = 'https://www.netlib.org/benchmark/hpl/' +description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits) + arithmetic on distributed-memory computers. It can thus be regarded as a portable as well as freely available + implementation of the High Performance Computing Linpack Benchmark.""" + +toolchain = {'name': 'foss', 'version': '2023.09'} +toolchainopts = {'usempi': True} + +source_urls = ['https://www.netlib.org/benchmark/%(namelower)s'] +sources = [SOURCELOWER_TAR_GZ] +# fix Make dependencies, so parallel build also works +patches = ['HPL_parallel-make.patch'] +checksums = [ + '32c5c17d22330e6f2337b681aded51637fb6008d3f0eb7c277b163fadd612830', # hpl-2.3.tar.gz + '2a5bf9c4f328049828ddecec7ba3f05a9e25d236f4212747c53bd22fea80c5e6', # HPL_parallel-make.patch +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.3-intel-2023.07.eb b/easybuild/easyconfigs/h/HPL/HPL-2.3-intel-2023.07.eb new file mode 100644 index 00000000000..287a40fcf40 --- /dev/null +++ b/easybuild/easyconfigs/h/HPL/HPL-2.3-intel-2023.07.eb @@ -0,0 +1,21 @@ +name = 'HPL' +version = '2.3' + +homepage = 'https://www.netlib.org/benchmark/hpl/' +description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits) + arithmetic on distributed-memory computers. It can thus be regarded as a portable as well as freely available + implementation of the High Performance Computing Linpack Benchmark.""" + +toolchain = {'name': 'intel', 'version': '2023.07'} +toolchainopts = {'usempi': True} + +source_urls = ['https://www.netlib.org/benchmark/%(namelower)s'] +sources = [SOURCELOWER_TAR_GZ] +# fix Make dependencies, so parallel build also works +patches = ['HPL_parallel-make.patch'] +checksums = [ + '32c5c17d22330e6f2337b681aded51637fb6008d3f0eb7c277b163fadd612830', # hpl-2.3.tar.gz + '2a5bf9c4f328049828ddecec7ba3f05a9e25d236f4212747c53bd22fea80c5e6', # HPL_parallel-make.patch +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/HighFive/HighFive-2.7.1-gompi-2023a.eb b/easybuild/easyconfigs/h/HighFive/HighFive-2.7.1-gompi-2023a.eb new file mode 100644 index 00000000000..e17e6e8507b --- /dev/null +++ b/easybuild/easyconfigs/h/HighFive/HighFive-2.7.1-gompi-2023a.eb @@ -0,0 +1,34 @@ +easyblock = 'CMakeMake' + +name = 'HighFive' +version = '2.7.1' + +homepage = 'https://github.com/BlueBrain/HighFive' +description = """HighFive is a modern header-only C++11 friendly interface for libhdf5.""" + +toolchain = {'name': 'gompi', 'version': '2023a'} + +github_account = 'BlueBrain' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['25b4c51a94d1e670dc93b9b73f51e79b65d8ff49bcd6e5d5582d5ecd2789a249'] + +builddependencies = [ + ('CMake', '3.26.3'), + ('binutils', '2.40') +] + +dependencies = [ + ('HDF5', '1.14.0'), + ('Boost', '1.82.0'), + ('Eigen', '3.4.0'), +] + +sanity_check_paths = { + 'files': ['include/highfive/H5File.hpp'], + 'dirs': [], +} + +configopts = '-DHIGHFIVE_USE_EIGEN=ON -DHIGHFIVE_PARALLEL_HDF5=ON' + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/h/Highway/Highway-1.0.7-GCCcore-13.2.0.eb b/easybuild/easyconfigs/h/Highway/Highway-1.0.7-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..b737b106291 --- /dev/null +++ b/easybuild/easyconfigs/h/Highway/Highway-1.0.7-GCCcore-13.2.0.eb @@ -0,0 +1,32 @@ +easyblock = 'CMakeMake' + +name = 'Highway' +version = '1.0.7' + +homepage = 'https://github.com/google/highway' + +description = """Highway is a C++ library for SIMD (Single Instruction, Multiple Data), i.e. applying the same +operation to 'lanes'.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://github.com/google/highway/archive/refs/tags/'] +sources = ['%(version)s.tar.gz'] +checksums = ['5434488108186c170a5e2fca5e3c9b6ef59a1caa4d520b008a9b8be6b8abe6c5'] + +builddependencies = [ + ('binutils', '2.40'), + ('CMake', '3.27.6'), + ('googletest', '1.14.0'), +] + +configopts = "-DHWY_SYSTEM_GTEST=ON" + +runtest = "test" + +sanity_check_paths = { + 'files': ['lib/libhwy.a'], + 'dirs': ['include/hwy'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/h/Horovod/Horovod-0.28.1-foss-2022a-CUDA-11.7.0-PyTorch-1.13.1.eb b/easybuild/easyconfigs/h/Horovod/Horovod-0.28.1-foss-2022a-CUDA-11.7.0-PyTorch-1.13.1.eb new file mode 100644 index 00000000000..4473bc2e53c --- /dev/null +++ b/easybuild/easyconfigs/h/Horovod/Horovod-0.28.1-foss-2022a-CUDA-11.7.0-PyTorch-1.13.1.eb @@ -0,0 +1,48 @@ +easyblock = 'PythonBundle' + +name = 'Horovod' +version = '0.28.1' +local_pt_version = '1.13.1' +local_cuda_suffix = '-CUDA-%(cudaver)s' +versionsuffix = local_cuda_suffix + '-PyTorch-%s' % local_pt_version + +homepage = 'https://github.com/uber/horovod' +description = """Horovod is a distributed training framework for TensorFlow, PyTorch and MXnet. +This build only has PyTorch enabled.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +builddependencies = [ + ('CMake', '3.23.1'), +] +dependencies = [ + ('Python', '3.10.4'), + ('PyYAML', '6.0'), + ('CUDA', '11.7.0', '', SYSTEM), + ('NCCL', '2.12.12', local_cuda_suffix), + ('PyTorch', local_pt_version, local_cuda_suffix), +] + +use_pip = True +sanity_pip_check = True + +preinstallopts = 'HOROVOD_WITH_MPI=1 HOROVOD_GPU_ALLREDUCE=NCCL HOROVOD_GPU_BROADCAST=NCCL ' +preinstallopts += 'HOROVOD_WITHOUT_TENSORFLOW=1 HOROVOD_WITH_PYTORCH=1 HOROVOD_WITHOUT_MXNET=1 ' + +exts_list = [ + ('cloudpickle', '2.2.1', { + 'checksums': ['d89684b8de9e34a2a43b3460fbca07d09d6e25ce858df4d5a44240403b6178f5'], + }), + ('horovod', version, { + 'checksums': ['92a43f5a94c43907a56805bad15f19700c62ffc83b7ca483f9e104e229f67ef0'], + }), +] + +sanity_check_paths = { + 'files': ['bin/horovodrun'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["horovodrun --help"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/h5netcdf/h5netcdf-1.2.0-foss-2023a.eb b/easybuild/easyconfigs/h/h5netcdf/h5netcdf-1.2.0-foss-2023a.eb new file mode 100644 index 00000000000..311855957b7 --- /dev/null +++ b/easybuild/easyconfigs/h/h5netcdf/h5netcdf-1.2.0-foss-2023a.eb @@ -0,0 +1,28 @@ +easyblock = 'PythonBundle' + +name = 'h5netcdf' +version = '1.2.0' + +homepage = 'https://h5netcdf.org/' +description = """A Python interface for the netCDF4 file-format that reads and writes local or +remote HDF5 files directly via h5py or h5pyd, without relying on the Unidata +netCDF library.""" + +toolchain = {'name': 'foss', 'version': '2023a'} + +dependencies = [ + ('Python', '3.11.3'), + ('h5py', '3.9.0'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + (name, version, { + 'checksums': ['7f6b2733bde06ea2575b79a6450d9bd5c38918ff4cb2a355bf22bbe8c86c6bcf'], + 'preinstallopts': """sed -i 's/^dynamic = .*/version = "%(version)s"/g' pyproject.toml && """, + }), +] + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/h/harmony/harmony-0.1.0-20210528-foss-2020b-R-4.0.3.eb b/easybuild/easyconfigs/h/harmony/harmony-0.1.0-20210528-foss-2020b-R-4.0.3.eb new file mode 100644 index 00000000000..4bb25703763 --- /dev/null +++ b/easybuild/easyconfigs/h/harmony/harmony-0.1.0-20210528-foss-2020b-R-4.0.3.eb @@ -0,0 +1,29 @@ +easyblock = 'RPackage' + +name = 'harmony' +local_commit = '2586afd' +# see DESCRIPTION to determine version, +# but also take date of last commit into account (since version isn't always bumped) +version = '0.1.0-20210528' +versionsuffix = '-R-%(rver)s' + +homepage = 'https://portals.broadinstitute.org/harmony' +description = "Harmony is a general-purpose R package with an efficient algorithm for integrating multiple data sets." + +toolchain = {'name': 'foss', 'version': '2020b'} + +source_urls = ['https://github.com/immunogenomics/harmony/archive/'] +sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}] +checksums = ['55c4aaa3cef0c06216a2a51946fb4ed7b189967e34c88bb0dfa53c4d52135d2f'] + +dependencies = [ + ('R', '4.0.3'), + ('R-bundle-Bioconductor', '3.12', versionsuffix), +] + +sanity_check_paths = { + 'files': [], + 'dirs': [name], +} + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/h/hmmlearn/hmmlearn-0.3.0-foss-2022b.eb b/easybuild/easyconfigs/h/hmmlearn/hmmlearn-0.3.0-foss-2022b.eb new file mode 100644 index 00000000000..ce3407ae7b0 --- /dev/null +++ b/easybuild/easyconfigs/h/hmmlearn/hmmlearn-0.3.0-foss-2022b.eb @@ -0,0 +1,24 @@ +easyblock = 'PythonPackage' + +name = 'hmmlearn' +version = '0.3.0' + +homepage = 'https://github.com/hmmlearn/hmmlearn' +description = "hmmlearn is a set of algorithms for unsupervised learning and inference of Hidden Markov Models" + +toolchain = {'name': 'foss', 'version': '2022b'} + +sources = [SOURCE_TAR_GZ] +checksums = ['d13a91ea3695df881465e3d36132d7eef4e84d483f4ba538a4b46e24b5ea100f'] + +dependencies = [ + ('Python', '3.10.8'), + ('scikit-learn', '1.2.1'), +] + +download_dep_fail = True +use_pip = True + +sanity_pip_check = True + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/i/ISL/ISL-0.26-GCCcore-12.2.0.eb b/easybuild/easyconfigs/i/ISL/ISL-0.26-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..2d70b546fc5 --- /dev/null +++ b/easybuild/easyconfigs/i/ISL/ISL-0.26-GCCcore-12.2.0.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'ISL' +version = '0.26' + +homepage = 'https://libisl.sourceforge.io' +description = "isl is a library for manipulating sets and relations of integer points bounded by linear constraints." + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +source_urls = ['https://libisl.sourceforge.io'] +sources = [SOURCELOWER_TAR_BZ2] +checksums = ['5eac8664e9d67be6bd0bee5085d6840b8baf738c06814df47eaf4166d9776436'] + +builddependencies = [('binutils', '2.39')] +dependencies = [('GMP', '6.2.1')] + +sanity_check_paths = { + 'files': ['lib/libisl.%s' % SHLIB_EXT, 'lib/libisl.a'], + 'dirs': ['include/isl'] +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/i/ISL/ISL-0.26-GCCcore-13.2.0.eb b/easybuild/easyconfigs/i/ISL/ISL-0.26-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..0454bbaa21d --- /dev/null +++ b/easybuild/easyconfigs/i/ISL/ISL-0.26-GCCcore-13.2.0.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'ISL' +version = '0.26' + +homepage = 'https://libisl.sourceforge.io' +description = "isl is a library for manipulating sets and relations of integer points bounded by linear constraints." + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://libisl.sourceforge.io'] +sources = [SOURCELOWER_TAR_BZ2] +checksums = ['5eac8664e9d67be6bd0bee5085d6840b8baf738c06814df47eaf4166d9776436'] + +builddependencies = [('binutils', '2.40')] +dependencies = [('GMP', '6.3.0')] + +sanity_check_paths = { + 'files': ['lib/libisl.%s' % SHLIB_EXT, 'lib/libisl.a'], + 'dirs': ['include/isl'] +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/i/ITK/ITK-5.2.1-foss-2022a.eb b/easybuild/easyconfigs/i/ITK/ITK-5.2.1-foss-2022a.eb index 83ecef81cdc..f862a7a5b45 100644 --- a/easybuild/easyconfigs/i/ITK/ITK-5.2.1-foss-2022a.eb +++ b/easybuild/easyconfigs/i/ITK/ITK-5.2.1-foss-2022a.eb @@ -34,6 +34,7 @@ dependencies = [ ('LibTIFF', '4.3.0'), ('VTK', '9.2.2'), ('zlib', '1.2.12'), + ('Python', '3.10.4'), ] local_sys_deps = ['EIGEN', 'EXPAT', 'HDF5', 'JPEG', 'PNG', 'TIFF', 'ZLIB'] @@ -41,7 +42,7 @@ local_sys_cmake = ['-DITK_USE_SYSTEM_%s=ON' % d for d in local_sys_deps] configopts = '-DBUILD_SHARED_LIBS=ON -DBUILD_TESTING=OFF ' configopts += '-DModule_ITKReview=ON -DModule_ITKVtkGlue=ON -DModule_SimpleITKFilters=ON ' -configopts += '-DITK_WRAP_PYTHON:BOOL=OFF ' +configopts += '-DITK_WRAP_PYTHON:BOOL=ON -DPython3_EXECUTABLE=$EBROOTPYTHON/bin/python ' configopts += '-DITK_LEGACY_REMOVE:BOOL=OFF ' # needed by SimpleITK configopts += ' '.join(local_sys_cmake) @@ -53,7 +54,11 @@ local_lib_names = ['ITKCommon', 'ITKIOHDF5', 'ITKIOJPEG', 'ITKIOPNG', 'ITKIOTIFF sanity_check_paths = { 'files': ['bin/itkTestDriver'] + ['lib/lib%s-%%(version_major)s.%%(version_minor)s.%s' % (l, SHLIB_EXT) for l in local_lib_names], - 'dirs': ['include/ITK-%(version_major)s.%(version_minor)s', 'share'], + 'dirs': ['include/ITK-%(version_major)s.%(version_minor)s', 'lib/python%(pyshortver)s/site-packages', 'share'], } +sanity_check_commands = ["python -c 'import itk'"] + +modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'} + moduleclass = 'data' diff --git a/easybuild/easyconfigs/i/Imath/Imath-3.1.9-GCCcore-13.2.0.eb b/easybuild/easyconfigs/i/Imath/Imath-3.1.9-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..f12adef66b3 --- /dev/null +++ b/easybuild/easyconfigs/i/Imath/Imath-3.1.9-GCCcore-13.2.0.eb @@ -0,0 +1,28 @@ +easyblock = 'CMakeMake' + +name = 'Imath' +version = '3.1.9' + +homepage = 'https://imath.readthedocs.io/en/latest/' +description = """ +Imath is a C++ and python library of 2D and 3D vector, matrix, and math operations for computer graphics +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/AcademySoftwareFoundation/%(namelower)s/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['f1d8aacd46afed958babfced3190d2d3c8209b66da451f556abd6da94c165cf3'] + +builddependencies = [ + ('binutils', '2.40'), + ('CMake', '3.27.6'), +] + +sanity_check_paths = { + 'files': ['lib/libImath.%s' % SHLIB_EXT], + 'dirs': ['include/Imath'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/i/Inspector/Inspector-2023.2.0.eb b/easybuild/easyconfigs/i/Inspector/Inspector-2023.2.0.eb new file mode 100644 index 00000000000..dba0ea08d61 --- /dev/null +++ b/easybuild/easyconfigs/i/Inspector/Inspector-2023.2.0.eb @@ -0,0 +1,19 @@ + +name = 'Inspector' +version = '2023.2.0' + +homepage = 'https://software.intel.com/en-us/inspector' +description = """Intel Inspector is a dynamic memory and threading error + checking tool for users developing serial and parallel applications""" + +toolchain = SYSTEM + +source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/2a99eafd-5109-41a1-9762-aee0c7ecbeb7/'] +sources = ['l_inspector_oneapi_p_%(version)s.49304_offline.sh'] +checksums = ['36b2ca94e5a69b68cbf9cbfde0a8e1aa58d02fb03f4d81db69769c96c20d4130'] + +dontcreateinstalldir = True + +requires_runtime_license = False + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/i/IsoSeq/IsoSeq-3.8.2-linux-x86_64.eb b/easybuild/easyconfigs/i/IsoSeq/IsoSeq-3.8.2-linux-x86_64.eb index 5e8f0c47b88..7640ceca208 100644 --- a/easybuild/easyconfigs/i/IsoSeq/IsoSeq-3.8.2-linux-x86_64.eb +++ b/easybuild/easyconfigs/i/IsoSeq/IsoSeq-3.8.2-linux-x86_64.eb @@ -1,40 +1,36 @@ -easyblock = "Binary" +easyblock = 'Binary' -name = "IsoSeq" -version = "3.8.2" -versionsuffix = "-linux-x86_64" +name = 'IsoSeq' +version = '3.8.2' +versionsuffix = '-linux-x86_64' -homepage = "https://github.com/PacificBiosciences/ioseq3" +homepage = 'https://github.com/PacificBiosciences/ioseq3' description = """IsoSeq v3 contains the newest tools to identify transcripts - in PacBio single-molecule sequencing data. Starting in SMRT - Link v6.0.0, those tools power the IsoSeq GUI-based analysis - application. A composable workflow of existing tools and - algorithms, combined with a new clustering technique, allows - to process the ever-increasing yield of PacBio machines with - similar performance to IsoSeq versions 1 and 2. Starting with - version 3.4, support for UMI and cell barcode based - deduplication has been added. - """ + in PacBio single-molecule sequencing data. Starting in SMRT + Link v6.0.0, those tools power the IsoSeq GUI-based analysis + application. A composable workflow of existing tools and + algorithms, combined with a new clustering technique, allows + to process the ever-increasing yield of PacBio machines with + similar performance to IsoSeq versions 1 and 2. Starting with + version 3.4, support for UMI and cell barcode based + deduplication has been added. +""" toolchain = SYSTEM -source_urls = ["https://github.com/PacificBiosciences/%(namelower)s"] -sources = ["releases/download/v%(version)s/%(namelower)s3"] +source_urls = ['https://github.com/PacificBiosciences/%(namelower)s/releases/download/v%(version)s'] +sources = [{'download_filename': 'isoseq3', 'filename': 'isoseq3-%(version)s'}] checksums = ["3d012810dc4cb54f89a7c80b26fc5f27da26c11f7ad6062cab462a6c691678f7"] extract_sources = False -postinstallcmds = [ - "cp %(builddir)s/releases/download/v%(version)s/%(namelower)s* %(installdir)s" -] +install_cmd = "cp isoseq3-%(version)s %(installdir)s/isoseq3 && chmod a+rx %(installdir)s/isoseq3" sanity_check_paths = { - "files": [ - "isoseq3", - ], - "dirs": [""], + 'files': ['isoseq3'], + 'dirs': [], } -sanity_check_commands = ['isoseq3 --version'] +sanity_check_commands = ["isoseq3 --version"] -moduleclass = "bio" +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/i/IsoSeq/IsoSeq-4.0.0-linux-x86_64.eb b/easybuild/easyconfigs/i/IsoSeq/IsoSeq-4.0.0-linux-x86_64.eb new file mode 100644 index 00000000000..5485419a346 --- /dev/null +++ b/easybuild/easyconfigs/i/IsoSeq/IsoSeq-4.0.0-linux-x86_64.eb @@ -0,0 +1,36 @@ +easyblock = 'Binary' + +name = 'IsoSeq' +version = '4.0.0' +versionsuffix = '-linux-x86_64' + +homepage = 'https://github.com/PacificBiosciences/ioseq3' +description = """IsoSeq v3 contains the newest tools to identify transcripts + in PacBio single-molecule sequencing data. Starting in SMRT + Link v6.0.0, those tools power the IsoSeq GUI-based analysis + application. A composable workflow of existing tools and + algorithms, combined with a new clustering technique, allows + to process the ever-increasing yield of PacBio machines with + similar performance to IsoSeq versions 1 and 2. Starting with + version 3.4, support for UMI and cell barcode based + deduplication has been added. +""" + +toolchain = SYSTEM + +source_urls = ['https://github.com/PacificBiosciences/%(namelower)s/releases/download/v%(version)s'] +sources = [{'download_filename': 'isoseq', 'filename': 'isoseq-%(version)s'}] +checksums = ['5766001507cf2a351b260cf38b717351dd676a7c87eb7c285c3c43a4a458f4b2'] + +extract_sources = False + +install_cmd = "cp isoseq-%(version)s %(installdir)s/isoseq && chmod a+rx %(installdir)s/isoseq" + +sanity_check_paths = { + 'files': ['isoseq'], + 'dirs': [], +} + +sanity_check_commands = ["isoseq --version"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/i/iimpi/iimpi-2023.07.eb b/easybuild/easyconfigs/i/iimpi/iimpi-2023.07.eb new file mode 100644 index 00000000000..7f614dd3c9e --- /dev/null +++ b/easybuild/easyconfigs/i/iimpi/iimpi-2023.07.eb @@ -0,0 +1,18 @@ +# This is an easyconfig file for EasyBuild, see http://easybuilders.github.io/easybuild +easyblock = 'Toolchain' + +name = 'iimpi' +version = '2023.07' + +homepage = 'https://software.intel.com/parallel-studio-xe' +description = """Intel C/C++ and Fortran compilers, alongside Intel MPI.""" + +toolchain = SYSTEM + +local_comp_ver = '2023.2.1' +dependencies = [ + ('intel-compilers', local_comp_ver), + ('impi', '2021.10.0', '', ('intel-compilers', local_comp_ver)), +] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/i/imkl-FFTW/imkl-FFTW-2023.2.0-iimpi-2023.07.eb b/easybuild/easyconfigs/i/imkl-FFTW/imkl-FFTW-2023.2.0-iimpi-2023.07.eb new file mode 100644 index 00000000000..4d6319fcee1 --- /dev/null +++ b/easybuild/easyconfigs/i/imkl-FFTW/imkl-FFTW-2023.2.0-iimpi-2023.07.eb @@ -0,0 +1,11 @@ +name = 'imkl-FFTW' +version = '2023.2.0' + +homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl.html' +description = "FFTW interfaces using Intel oneAPI Math Kernel Library" + +toolchain = {'name': 'iimpi', 'version': '2023.07'} + +dependencies = [('imkl', version, '', SYSTEM)] + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/i/imkl/imkl-2023.2.0.eb b/easybuild/easyconfigs/i/imkl/imkl-2023.2.0.eb new file mode 100644 index 00000000000..6768a2ccefd --- /dev/null +++ b/easybuild/easyconfigs/i/imkl/imkl-2023.2.0.eb @@ -0,0 +1,18 @@ +name = 'imkl' +version = '2023.2.0' + +homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl.html' +description = "Intel oneAPI Math Kernel Library" + +toolchain = SYSTEM + +# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html +source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/adb8a02c-4ee7-4882-97d6-a524150da358/'] +sources = ['l_onemkl_p_%(version)s.49497_offline.sh'] +checksums = ['4a0d93da85a94d92e0ad35dc0fc3b3ab7f040bd55ad374c4d5ec81a57a2b872b'] + +interfaces = False + +installopts = "--download-cache=%(builddir)s/cache --download-dir=%(builddir)s/download --log-dir=%(builddir)s/log" + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/i/impi/impi-2021.10.0-intel-compilers-2023.2.1.eb b/easybuild/easyconfigs/i/impi/impi-2021.10.0-intel-compilers-2023.2.1.eb new file mode 100644 index 00000000000..4a92f37d8fe --- /dev/null +++ b/easybuild/easyconfigs/i/impi/impi-2021.10.0-intel-compilers-2023.2.1.eb @@ -0,0 +1,16 @@ +name = 'impi' +version = '2021.10.0' + +homepage = 'https://software.intel.com/content/www/us/en/develop/tools/mpi-library.html' +description = "Intel MPI Library, compatible with MPICH ABI" + +toolchain = {'name': 'intel-compilers', 'version': '2023.2.1'} + +# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html +source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/4f5871da-0533-4f62-b563-905edfb2e9b7/'] +sources = ['l_mpi_oneapi_p_%(version)s.49374_offline.sh'] +checksums = ['ab2e97d87b139201a2e7dab9a61ac6e8927b7783b459358c4ad69a1b1c064f40'] + +dependencies = [('UCX', '1.15.0')] + +moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/i/imutils/imutils-0.5.4-fosscuda-2020b.eb b/easybuild/easyconfigs/i/imutils/imutils-0.5.4-fosscuda-2020b.eb new file mode 100644 index 00000000000..0c948731f6f --- /dev/null +++ b/easybuild/easyconfigs/i/imutils/imutils-0.5.4-fosscuda-2020b.eb @@ -0,0 +1,26 @@ +easyblock = 'PythonPackage' + +name = 'imutils' +version = '0.5.4' + +homepage = 'https://github.com/jrosebr1/imutils' +description = """A series of convenience functions to make basic image processing operations such as translation, +rotation, resizing, skeletonization, and displaying Matplotlib images easier with OpenCV and Python.""" + +toolchain = {'name': 'fosscuda', 'version': '2020b'} + +sources = [SOURCE_TAR_GZ] +checksums = ['03827a9fca8b5c540305c0844a62591cf35a0caec199cb0f2f0a4a0fb15d8f24'] + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), + ('OpenCV', '4.5.1', '-contrib'), +] + +download_dep_fail = True +use_pip = True + +sanity_pip_check = True + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/i/indicators/indicators-2.2-GCCcore-11.2.0.eb b/easybuild/easyconfigs/i/indicators/indicators-2.2-GCCcore-11.2.0.eb new file mode 100644 index 00000000000..9b76a995eb8 --- /dev/null +++ b/easybuild/easyconfigs/i/indicators/indicators-2.2-GCCcore-11.2.0.eb @@ -0,0 +1,43 @@ +# Contribution from Imperial College London/UK +# uploaded: J. Sassmannshausen + +easyblock = 'CMakeMake' + +name = 'indicators' +version = '2.2' + +homepage = 'https://github.com/p-ranav/indicators' +description = """ +- Thread-safe progress bars and spinners +- Header-only library. Grab a copy of include/indicators. +- Single-header version in single_include/indicators. +""" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} + +source_urls = ['https://github.com/p-ranav/indicators/archive'] +sources = ['v%(version)s.tar.gz'] +checksums = ['b768f1b7ca64a413503f72d5460cc617c1458c17fb7a8c0ee503d753e1f20d03'] + +builddependencies = [ + ('CMake', '3.22.1'), + ('binutils', '2.37') +] + +# build demo and sample program +configopts = ["-DINDICATORS_SAMPLES=ON -DINDICATORS_DEMO=ON -DINDICATORS_BUILD_TESTS=ON"] + +install_cmd = "make install && " +install_cmd += "mkdir %(installdir)s/bin/ && " +install_cmd += "cp demo/demo %(installdir)s/bin/ && " +install_cmd += "cp samples/*bar* samples/dynamic* %(installdir)s/bin/ && " +install_cmd += "cp samples/progress_spinner samples/time_meter samples/max_progress %(installdir)s/bin/" + +sanity_check_paths = { + 'files': ['bin/demo', 'bin/time_meter'], + 'dirs': ['include', 'lib'], +} + +sanity_check_commands = [('demo')] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2023.2.1.eb b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2023.2.1.eb new file mode 100644 index 00000000000..ee6cfeb0026 --- /dev/null +++ b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2023.2.1.eb @@ -0,0 +1,37 @@ +name = 'intel-compilers' +version = '2023.2.1' + +homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/hpc-toolkit.html' +description = "Intel C, C++ & Fortran compilers (classic and oneAPI)" + +toolchain = SYSTEM + +# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html +sources = [ + { + 'source_urls': [ + 'https://registrationcenter-download.intel.com/akdlm/IRC_NAS/ebf5d9aa-17a7-46a4-b5df-ace004227c0e/', + ], + 'filename': 'l_dpcpp-cpp-compiler_p_%(version)s.8_offline.sh', + }, + { + 'source_urls': [ + 'https://registrationcenter-download.intel.com/akdlm/IRC_NAS/0d65c8d4-f245-4756-80c4-6712b43cf835/', + ], + 'filename': 'l_fortran-compiler_p_%(version)s.8_offline.sh', + }, +] +checksums = [ + {'l_dpcpp-cpp-compiler_p_2023.2.1.8_offline.sh': + 'f5656b2f5bb5d904639e6ef1f90a2d2e760d2906e82ebc0dd387709738ca714b'}, + {'l_fortran-compiler_p_2023.2.1.8_offline.sh': + 'd4e36abc014c184698fec318a127f15a696b5333b3b0282aba1968b351207185'}, +] + +local_gccver = '13.2.0' +dependencies = [ + ('GCCcore', local_gccver), + ('binutils', '2.40', '', ('GCCcore', local_gccver)), +] + +moduleclass = 'compiler' diff --git a/easybuild/easyconfigs/i/intel/intel-2023.07.eb b/easybuild/easyconfigs/i/intel/intel-2023.07.eb new file mode 100644 index 00000000000..fbb6901e524 --- /dev/null +++ b/easybuild/easyconfigs/i/intel/intel-2023.07.eb @@ -0,0 +1,22 @@ +easyblock = 'Toolchain' + +name = 'intel' +version = '2023.07' + +homepage = 'https://easybuild.readthedocs.io/en/master/Common-toolchains.html#intel-toolchain' +description = "Compiler toolchain including Intel compilers, Intel MPI and Intel Math Kernel Library (MKL)." + +toolchain = SYSTEM + +local_comp_ver = '2023.2.1' +local_gccver = '13.2.0' +dependencies = [ + ('GCCcore', local_gccver), + ('binutils', '2.40', '', ('GCCcore', local_gccver)), + ('intel-compilers', local_comp_ver), + ('impi', '2021.10.0', '', ('intel-compilers', local_comp_ver)), + ('imkl', '2023.2.0', '', SYSTEM), + ('imkl-FFTW', '2023.2.0', '', ('iimpi', version)), +] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/i/intltool/intltool-0.51.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/i/intltool/intltool-0.51.0-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..f8c69c422a2 --- /dev/null +++ b/easybuild/easyconfigs/i/intltool/intltool-0.51.0-GCCcore-13.2.0.eb @@ -0,0 +1,37 @@ +easyblock = 'ConfigureMake' + +name = 'intltool' +version = '0.51.0' + +homepage = 'https://freedesktop.org/wiki/Software/intltool/' +description = """intltool is a set of tools to centralize translation of + many different file formats using GNU gettext-compatible PO files.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://launchpad.net/intltool/trunk/%(version)s/+download/'] +sources = [SOURCE_TAR_GZ] +patches = ['intltool-%(version)s_fix-Perl-compat.patch'] +checksums = [ + '67c74d94196b153b774ab9f89b2fa6c6ba79352407037c8c14d5aeb334e959cd', # intltool-0.51.0.tar.gz + 'e839f7228b2b92301831bca88ed0bc7bce5dbf862568f1644642988204903db6', # intltool-0.51.0_fix-Perl-compat.patch +] + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('Perl-bundle-CPAN', '5.38.0'), +] + +fix_perl_shebang_for = ['bin/intltool-*'] + +sanity_check_paths = { + 'files': ['bin/intltool%s' % x for x in ['-extract', '-merge', '-prepare', '-update', 'ize']], + 'dirs': [] +} + +sanity_check_commands = ["intltool-merge --help"] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/i/itac/itac-2021.10.0.eb b/easybuild/easyconfigs/i/itac/itac-2021.10.0.eb new file mode 100644 index 00000000000..ebcda8277d3 --- /dev/null +++ b/easybuild/easyconfigs/i/itac/itac-2021.10.0.eb @@ -0,0 +1,20 @@ + +name = 'itac' +version = '2021.10.0' + +homepage = 'https://software.intel.com/en-us/intel-trace-analyzer/' +description = """The Intel Trace Collector is a low-overhead tracing library that performs + event-based tracing in applications. The Intel Trace Analyzer provides a convenient way to monitor application + activities gathered by the Intel Trace Collector through graphical displays. """ + +toolchain = SYSTEM + +source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/226adf12-b7f6-407e-95a9-8e9ab76d7631/'] +sources = ['l_itac_oneapi_p_%(version)s.14_offline.sh'] +checksums = ['cfff2ee19c793b64074b5490a16acbe8c9767f41d391d7c71c0004fdcec501c7'] + +dontcreateinstalldir = True + +preferredmpi = 'impi5' + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/j/Jblob/Jblob-3.0.eb b/easybuild/easyconfigs/j/Jblob/Jblob-3.0.eb new file mode 100644 index 00000000000..2e6802c4bb7 --- /dev/null +++ b/easybuild/easyconfigs/j/Jblob/Jblob-3.0.eb @@ -0,0 +1,33 @@ +# This easyconfig was created by the BEAR Software team at the University of Birmingham. +easyblock = 'Tarball' + +name = 'Jblob' +version = '3.0' + +homepage = "https://www.wdc-climate.de/ui/info?site=jblob" +description = """Jblob - WDC Climate dataset download""" + +toolchain = SYSTEM + +source_urls = ['http://www.wdc-climate.de/jblob/'] +sources = [SOURCELOWER_ZIP] +checksums = ['576b5956358386a8832c6d1d13c410705e54888354a10cfd4f094513458067e4'] + +dependencies = [('Java', '11')] + +# remove hardcoded JBLOB_HOME from launch script +preinstallopts = "sed -i '/^JBLOB_HOME/d' jblob" + +sanity_check_paths = { + 'files': ['jblob'], + 'dirs': [], +} + +modextrapaths = { + 'PATH': '', + 'JBLOB_HOME': '', +} + +sanity_check_commands = ["jblob --help"] + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/j/Jmol/Jmol-16.1.41-Java-11.eb b/easybuild/easyconfigs/j/Jmol/Jmol-16.1.41-Java-11.eb new file mode 100644 index 00000000000..4cf536b39bf --- /dev/null +++ b/easybuild/easyconfigs/j/Jmol/Jmol-16.1.41-Java-11.eb @@ -0,0 +1,27 @@ +easyblock = 'PackedBinary' + +name = 'Jmol' +version = '16.1.41' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'http://jmol.sourceforge.net/' +description = """Jmol: an open-source Java viewer for chemical structures in 3D""" + +toolchain = SYSTEM + +source_urls = ['https://sourceforge.net/projects/jmol/files/Jmol/Version%2016.1/Jmol%2016.1.41/'] +sources = ['%(name)s-%(version)s-binary.tar.gz'] +checksums = ['f75bcf8a94b9153a8297b0544aee3b680a487ead9ef1d0f5496fcb1064165a2a'] + +dependencies = [('Java', '11')] + +sanity_check_paths = { + 'files': ['jmol', 'Jmol.jar'], + 'dirs': [], +} + +modextrapaths = { + 'JMOL_HOME': '' +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/j/JupyterNotebook/JupyterNotebook-7.0.3-GCCcore-12.2.0.eb b/easybuild/easyconfigs/j/JupyterNotebook/JupyterNotebook-7.0.3-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..2202fae1e72 --- /dev/null +++ b/easybuild/easyconfigs/j/JupyterNotebook/JupyterNotebook-7.0.3-GCCcore-12.2.0.eb @@ -0,0 +1,44 @@ +easyblock = 'PythonPackage' + +name = 'JupyterNotebook' +version = '7.0.3' + +homepage = 'https://jupyter.org/' +description = """The Jupyter Notebook is the original web application for creating and + sharing computational documents. It offers a simple, streamlined, document-centric experience.""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +source_urls = ['https://pypi.python.org/packages/source/n/notebook'] +sources = ['notebook-%(version)s.tar.gz'] +checksums = ['07f3c5062fd0e6e69864437a0347abc485d991aae87a92c47d659699f571b729'] + +builddependencies = [ + ('binutils', '2.39'), +] +dependencies = [ + ('Python', '3.10.8'), + ('IPython', '8.14.0'), + ('jupyter-server', '2.7.0'), + ('JupyterLab', '4.0.3'), +] + +download_dep_fail = True +sanity_pip_check = True +use_pip = True + +options = {'modulename': 'notebook'} + +sanity_check_paths = { + 'files': ['bin/jupyter-notebook'], + 'dirs': ['etc/jupyter', 'share/jupyter'], +} + +sanity_check_commands = ['jupyter notebook --help'] + +modextrapaths = { + 'JUPYTER_CONFIG_PATH': 'etc/jupyter', + 'JUPYTER_PATH': 'share/jupyter', +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/j/jbigkit/jbigkit-2.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/j/jbigkit/jbigkit-2.1-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..8c90f029573 --- /dev/null +++ b/easybuild/easyconfigs/j/jbigkit/jbigkit-2.1-GCCcore-13.2.0.eb @@ -0,0 +1,45 @@ +easyblock = 'MakeCp' + +name = 'jbigkit' +version = '2.1' + +homepage = 'https://www.cl.cam.ac.uk/~mgk25/jbigkit/' +description = """JBIG-KIT is a software implementation of the JBIG1 data + compression standard (ITU-T T.82), which was designed for bi-level image + data, such as scanned documents.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://www.cl.cam.ac.uk/~mgk25/jbigkit/download'] +sources = [SOURCE_TAR_GZ] +patches = [ + '%(name)s-%(version)s_libpath.patch', + '%(name)s-%(version)s_shlib.patch', +] +checksums = [ + {'jbigkit-2.1.tar.gz': 'de7106b6bfaf495d6865c7dd7ac6ca1381bd12e0d81405ea81e7f2167263d932'}, + {'jbigkit-2.1_libpath.patch': '97c88956090097b484fcdb90e12eab82212e67ddc862f035d7c6446a696786ce'}, + {'jbigkit-2.1_shlib.patch': '54ae429e8ec949eceee0f902b676f572f1cdfbff46f77c7222acdeafb643a696'}, +] + +builddependencies = [ + ('binutils', '2.40'), + ('pkgconf', '2.0.3'), +] + +files_to_copy = [ + (['libjbig/libjbig%s.%s' % (x, y) for x in ['85', ''] for y in ['a', SHLIB_EXT, SHLIB_EXT + '.0']], 'lib'), + (['libjbig/jbig85.h', 'libjbig/jbig.h', 'libjbig/jbig_ar.h'], 'include'), + (['pbmtools/pbmtojbg', 'pbmtools/jbgtopbm'], 'bin'), +] + +sanity_check_paths = { + 'files': ['lib/libjbig85.a', 'lib/libjbig.a', + 'bin/pbmtojbg', 'bin/jbgtopbm', + 'include/jbig.h', 'include/jbig_ar.h', + ], + 'dirs': ['bin', 'include', 'lib'] +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/j/jhbuild/jhbuild-3.15.92-GCCcore-4.9.3.eb b/easybuild/easyconfigs/j/jhbuild/jhbuild-3.15.92-GCCcore-4.9.3.eb index 39190893ab0..6525e8ac55c 100644 --- a/easybuild/easyconfigs/j/jhbuild/jhbuild-3.15.92-GCCcore-4.9.3.eb +++ b/easybuild/easyconfigs/j/jhbuild/jhbuild-3.15.92-GCCcore-4.9.3.eb @@ -12,6 +12,7 @@ toolchain = {'name': 'GCCcore', 'version': '4.9.3'} sources = ['%(version)s.tar.gz'] source_urls = [('https://github.com/GNOME/jhbuild/archive/')] +checksums = [None] # jhbuild is python so it has a python dependency, but we want to give people freedom to use whatever python they # chose during a build process @@ -28,7 +29,7 @@ dependencies = [ ('flex', '2.6.0'), ('Bison', '3.0.4'), ('M4', '1.4.17'), - ('CVS', '1.11.23'), + ('ConcurrentVersionsSystem', '1.11.23'), ] # We use the simple install method as per: diff --git a/easybuild/easyconfigs/k/Kaleido/Kaleido-0.2.1-GCCcore-12.2.0.eb b/easybuild/easyconfigs/k/Kaleido/Kaleido-0.2.1-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..9858859ed7a --- /dev/null +++ b/easybuild/easyconfigs/k/Kaleido/Kaleido-0.2.1-GCCcore-12.2.0.eb @@ -0,0 +1,24 @@ +easyblock = 'PythonPackage' + +name = 'Kaleido' +version = '0.2.1' + +homepage = 'https://github.com/plotly/Kaleido' +description = "Fast static image export for web-based visualization libraries with zero dependencies" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +sources = ['kaleido-%(version)s-py2.py3-none-manylinux1_%(arch)s.whl'] +checksums = ['aa21cf1bf1c78f8fa50a9f7d45e1003c387bd3d6fe0a767cfbbf344b95bdc3a8'] + +builddependencies = [ + ('binutils', '2.39'), +] + +dependencies = [('Python', '3.10.8')] + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/k/kallisto/kallisto-0.48.0-gompi-2021a.eb b/easybuild/easyconfigs/k/kallisto/kallisto-0.48.0-gompi-2021a.eb new file mode 100644 index 00000000000..3f83a6f896b --- /dev/null +++ b/easybuild/easyconfigs/k/kallisto/kallisto-0.48.0-gompi-2021a.eb @@ -0,0 +1,40 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild + +easyblock = 'CMakeMake' + +name = 'kallisto' +version = '0.48.0' + +homepage = 'https://pachterlab.github.io/kallisto/' +description = """kallisto is a program for quantifying abundances of transcripts from RNA-Seq data, or more generally + of target sequences using high-throughput sequencing reads.""" + +toolchain = {'name': 'gompi', 'version': '2021a'} +toolchainopts = {'pic': True, 'usempi': True} + +github_account = 'pachterlab' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['1797ac4d1f0771e3f1f25dd7972bded735fcb43f853cf52184d3d9353a6269b0'] + +builddependencies = [ + ('Autotools', '20210128'), + ('CMake', '3.20.1'), + ('zlib', '1.2.11'), +] + +dependencies = [('HDF5', '1.10.7')] + +preconfigopts = "cd ../%(name)s-%(version)s/ext/htslib/ && " +preconfigopts += "sed -i '/AC_PROG_CC/a AC_CANONICAL_HOST' configure.ac && " +preconfigopts += "autoreconf -i && cd - && " +configopts = '-DUSE_HDF5=ON' + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/%(name)s'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/k/kim-api/kim-api-2.3.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/k/kim-api/kim-api-2.3.0-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..5e606297fc0 --- /dev/null +++ b/easybuild/easyconfigs/k/kim-api/kim-api-2.3.0-GCCcore-12.3.0.eb @@ -0,0 +1,45 @@ +easyblock = 'CMakeMake' + +name = 'kim-api' +version = '2.3.0' + +homepage = 'https://openkim.org/' +description = """Open Knowledgebase of Interatomic Models. + +KIM is an API and OpenKIM is a collection of interatomic models (potentials) for +atomistic simulations. This is a library that can be used by simulation programs +to get access to the models in the OpenKIM database. + +This EasyBuild only installs the API, the models can be installed with the +package openkim-models, or the user can install them manually by running + kim-api-collections-management install user MODELNAME +or + kim-api-collections-management install user OpenKIM +to install them all. + """ + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +source_urls = ['https://s3.openkim.org/kim-api/'] +sources = ['%(name)s-%(version)s.txz'] +checksums = ['93673bb8fbc0625791f2ee67915d1672793366d10cabc63e373196862c14f991'] + +builddependencies = [('binutils', '2.40')] + +dependencies = [ + ('CMake', '3.26.3'), # Also needed to install models, thus not just a builddependency. +] + +parallel = 1 +separate_build_dir = True + +modextravars = { + 'KIM_API_CMAKE_PREFIX_DIR': '%(installdir)s/lib64' +} + +sanity_check_paths = { + 'files': ['bin/kim-api-collections-management', 'lib64/libkim-api.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/k/kneaddata/kneaddata-0.12.0-foss-2022a.eb b/easybuild/easyconfigs/k/kneaddata/kneaddata-0.12.0-foss-2022a.eb new file mode 100644 index 00000000000..0a640c31fb6 --- /dev/null +++ b/easybuild/easyconfigs/k/kneaddata/kneaddata-0.12.0-foss-2022a.eb @@ -0,0 +1,30 @@ +easyblock = 'PythonBundle' + +name = 'kneaddata' +version = '0.12.0' + +homepage = 'http://huttenhower.sph.harvard.edu/kneaddata' +description = """KneadData is a tool designed to perform quality control on metagenomic and +metatranscriptomic sequencing data, especially data from microbiome experiments.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('Trimmomatic', '0.39', '-Java-%(javaver)s', SYSTEM), + ('Bowtie2', '2.4.5'), + ('Java', '11', '', SYSTEM), + ('TRF', '4.09.1'), + ('FastQC', '0.11.9', '-Java-%(javaver)s', SYSTEM), +] + +exts_list = [ + (name, version, { + 'checksums': ['b211bf973ea50cc89dd5935761ca3b101d422cfb62b215aae08f5ed92a624a58'], + }), +] + +use_pip = True +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/l/LAMMPS/LAMMPS-23Jun2022-foss-2021a-kokkos.eb b/easybuild/easyconfigs/l/LAMMPS/LAMMPS-23Jun2022-foss-2021a-kokkos.eb index 97db9f89110..ccd13ed25c0 100644 --- a/easybuild/easyconfigs/l/LAMMPS/LAMMPS-23Jun2022-foss-2021a-kokkos.eb +++ b/easybuild/easyconfigs/l/LAMMPS/LAMMPS-23Jun2022-foss-2021a-kokkos.eb @@ -40,7 +40,6 @@ dependencies = [ ('gzip', '1.10'), ('cURL', '7.76.0'), ('HDF5', '1.10.7'), - ('tbb', '2020.3'), ('PCRE', '8.44'), ('libxml2', '2.9.10'), ('FFmpeg', '4.3.2'), @@ -53,6 +52,9 @@ dependencies = [ # VTK package is auto-disabled if this dep is not available # ('VTK', '9.0.1'), ] +if ARCH == 'x86_64': + # TBB is an optional dependency when building on Intel arch + dependencies += [('tbb', '2020.3'), ] # To use additional custom configuration options, use the 'configopts' easyconfig parameter # See docs and lammps easyblock for more information. diff --git a/easybuild/easyconfigs/l/LAMMPS/LAMMPS-23Jun2022-foss-2021b-kokkos.eb b/easybuild/easyconfigs/l/LAMMPS/LAMMPS-23Jun2022-foss-2021b-kokkos.eb index d96efa6f439..e464d600e94 100644 --- a/easybuild/easyconfigs/l/LAMMPS/LAMMPS-23Jun2022-foss-2021b-kokkos.eb +++ b/easybuild/easyconfigs/l/LAMMPS/LAMMPS-23Jun2022-foss-2021b-kokkos.eb @@ -37,7 +37,6 @@ dependencies = [ ('gzip', '1.10'), ('cURL', '7.78.0'), ('HDF5', '1.12.1'), - ('tbb', '2020.3'), ('PCRE', '8.45'), ('libxml2', '2.9.10'), ('FFmpeg', '4.3.2'), @@ -50,6 +49,9 @@ dependencies = [ # VTK package is auto-disabled if this dep is not available ('VTK', '9.1.0'), ] +if ARCH == 'x86_64': + # TBB is an optional dependency when building on Intel arch + dependencies += [('tbb', '2020.3'), ] # To use additional custom configuration options, use the 'configopts' easyconfig parameter # See docs and lammps easyblock for more information. diff --git a/easybuild/easyconfigs/l/LAMMPS/LAMMPS-23Jun2022-foss-2022a-kokkos.eb b/easybuild/easyconfigs/l/LAMMPS/LAMMPS-23Jun2022-foss-2022a-kokkos.eb index 74e899cdc1e..afb1af60e3a 100644 --- a/easybuild/easyconfigs/l/LAMMPS/LAMMPS-23Jun2022-foss-2022a-kokkos.eb +++ b/easybuild/easyconfigs/l/LAMMPS/LAMMPS-23Jun2022-foss-2022a-kokkos.eb @@ -37,7 +37,6 @@ dependencies = [ ('gzip', '1.12'), ('cURL', '7.83.0'), ('HDF5', '1.12.2'), - ('tbb', '2021.5.0'), ('PCRE', '8.45'), ('libxml2', '2.9.13'), ('FFmpeg', '4.4.2'), @@ -50,6 +49,9 @@ dependencies = [ # VTK package is auto-disabled if this dep is not available ('VTK', '9.2.2'), ] +if ARCH == 'x86_64': + # TBB is an optional dependency when building on Intel arch + dependencies += [('tbb', '2021.5.0'), ] # To use additional custom configuration options, use the 'configopts' easyconfig parameter # See docs and lammps easyblock for more information. diff --git a/easybuild/easyconfigs/l/LLVM/LLVM-16.0.6-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/LLVM/LLVM-16.0.6-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..3cbf84f26fe --- /dev/null +++ b/easybuild/easyconfigs/l/LLVM/LLVM-16.0.6-GCCcore-13.2.0.eb @@ -0,0 +1,48 @@ +name = 'LLVM' +version = '16.0.6' + +homepage = "https://llvm.org/" +description = """The LLVM Core libraries provide a modern source- and target-independent + optimizer, along with code generation support for many popular CPUs + (as well as some less common ones!) These libraries are built around a well + specified code representation known as the LLVM intermediate representation + ("LLVM IR"). The LLVM Core libraries are well documented, and it is + particularly easy to invent your own language (or port an existing compiler) + to use LLVM as an optimizer and code generator.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'cstd': 'gnu++11', 'pic': True} + +source_urls = ['https://github.com/llvm/llvm-project/releases/download/llvmorg-%(version)s/'] +sources = [ + 'llvm-%(version)s.src.tar.xz', + 'cmake-%(version)s.src.tar.xz', + 'third-party-%(version)s.src.tar.xz', +] +checksums = [ + {'llvm-16.0.6.src.tar.xz': 'e91db44d1b3bb1c33fcea9a7d1f2423b883eaa9163d3d56ca2aa6d2f0711bc29'}, + {'cmake-16.0.6.src.tar.xz': '39d342a4161095d2f28fb1253e4585978ac50521117da666e2b1f6f28b62f514'}, + {'third-party-16.0.6.src.tar.xz': '15f5b9aeeba938530af977d5f9205612737a091a7f0f6c8075df8723b7713f70'}, +] + +builddependencies = [ + ('binutils', '2.40'), + ('CMake', '3.27.6'), + ('Python', '3.11.5'), +] + +dependencies = [ + ('ncurses', '6.4'), + ('zlib', '1.2.13'), +] + +build_shared_libs = True + +sanity_check_paths = { + 'files': ['bin/llvm-ar', 'bin/FileCheck'], + 'dirs': ['include/llvm', 'include/llvm-c'], +} + +sanity_check_commands = ["llvm-ar --help"] + +moduleclass = 'compiler' diff --git a/easybuild/easyconfigs/l/LMDB/LMDB-0.9.31-GCCcore-12.3.0.eb b/easybuild/easyconfigs/l/LMDB/LMDB-0.9.31-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..52b24212404 --- /dev/null +++ b/easybuild/easyconfigs/l/LMDB/LMDB-0.9.31-GCCcore-12.3.0.eb @@ -0,0 +1,38 @@ +easyblock = 'MakeCp' + +name = 'LMDB' +version = '0.9.31' + +homepage = 'https://symas.com/lmdb' +description = """LMDB is a fast, memory-efficient database. With memory-mapped files, it has the read performance + of a pure in-memory database while retaining the persistence of standard disk-based databases.""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +source_urls = ['https://github.com/LMDB/lmdb/archive/'] +sources = ['%(name)s_%(version)s.tar.gz'] +checksums = ['dd70a8c67807b3b8532b3e987b0a4e998962ecc28643e1af5ec77696b081c9b0'] + +builddependencies = [('binutils', '2.40')] + +buildopts = 'CC="$CC" OPT="$CFLAGS"' + +runtest = 'test' + +local_binaries = ['mdb_copy', 'mdb_dump', 'mdb_load', 'mdb_stat'] + +files_to_copy = [ + (['lmdb.h', 'midl.h'], 'include'), + (local_binaries, 'bin'), + (['liblmdb.a', 'liblmdb.%s' % SHLIB_EXT], 'lib'), +] + +sanity_check_paths = { + 'files': ['bin/mdb_copy', 'bin/mdb_dump', 'bin/mdb_load', 'bin/mdb_stat', 'include/lmdb.h', + 'include/midl.h', 'lib/liblmdb.a', 'lib/liblmdb.%s' % SHLIB_EXT], + 'dirs': [], +} + +sanity_check_commands = ["%s -V" % x for x in local_binaries] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/LZO/LZO-2.10-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/LZO/LZO-2.10-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..3b46b64940c --- /dev/null +++ b/easybuild/easyconfigs/l/LZO/LZO-2.10-GCCcore-13.2.0.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'LZO' +version = '2.10' + +homepage = 'https://www.oberhumer.com/opensource/lzo/' +description = "Portable lossless data compression library" + +source_urls = [homepage + 'download/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['c0f892943208266f9b6543b3ae308fab6284c5c90e627931446fb49b4221a072'] + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +builddependencies = [('binutils', '2.40')] + +configopts = '--enable-shared' + +runtest = 'test' + +sanity_check_paths = { + 'files': ['lib/liblzo2.a', 'lib/liblzo2.%s' % SHLIB_EXT], + 'dirs': ['include'] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/l/LevelDB/LevelDB-1.22-GCCcore-11.3.0.eb b/easybuild/easyconfigs/l/LevelDB/LevelDB-1.22-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..35889241c08 --- /dev/null +++ b/easybuild/easyconfigs/l/LevelDB/LevelDB-1.22-GCCcore-11.3.0.eb @@ -0,0 +1,52 @@ +easyblock = 'CMakeMake' + +name = 'LevelDB' +version = '1.22' + +homepage = 'https://github.com/google/leveldb' +description = """LevelDB is a fast key-value storage library written at Google that provides an +ordered mapping from string keys to string values.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['https://github.com/google/leveldb/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = ['55423cac9e3306f4a9502c738a001e4a339d1a38ffbee7572d4a07d5d63949b2'] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1'), +] + +dependencies = [ + ('Python', '3.10.4'), +] + +configopts = "-DBUILD_SHARED_LIBS=ON -DLEVELDB_BUILD_BENCHMARKS=OFF " + +exts_defaultclass = 'PythonPackage' +exts_default_options = { + 'source_urls': [PYPI_SOURCE], + 'download_dep_fail': True, + 'use_pip': True, +} + +exts_list = [ + ('leveldb', '0.201', { + 'checksums': ['1cffe776842917e09f073bd6ea5856c64136aebddbe51bd17ea29913472fecbf'], + }), +] + +modextrapaths = { + 'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages'] +} + +sanity_check_paths = { + 'files': ['include/leveldb/cache.h', 'include/leveldb/table.h', + 'lib/libleveldb.%s' % SHLIB_EXT], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["pip check"] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.6.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.6.0-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..a4fde1fe8b6 --- /dev/null +++ b/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.6.0-GCCcore-13.2.0.eb @@ -0,0 +1,38 @@ +easyblock = 'ConfigureMake' + +name = 'LibTIFF' +version = '4.6.0' + +homepage = 'https://libtiff.gitlab.io/libtiff/' +description = "tiff: Library and tools for reading and writing TIFF data files" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://download.osgeo.org/libtiff/'] +sources = ['tiff-%(version)s.tar.gz'] +checksums = ['88b3979e6d5c7e32b50d7ec72fb15af724f6ab2cbf7e10880c360a77e4b5d99a'] + +builddependencies = [('binutils', '2.40')] + +dependencies = [ + ('zlib', '1.2.13'), + ('libjpeg-turbo', '3.0.1'), + ('XZ', '5.4.4'), + ('jbigkit', '2.1'), + ('zstd', '1.5.5'), + ('libdeflate', '1.19'), +] + +configopts = "--enable-ld-version-script " +configopts += "--disable-webp --disable-sphinx " + +sanity_check_paths = { + 'files': ['bin/tiffdump', 'bin/tiffinfo', 'include/tiff.h', 'lib/libtiff.a', 'lib/libtiff.%s' % SHLIB_EXT, + 'lib/libtiffxx.a', 'lib/libtiffxx.%s' % SHLIB_EXT, 'lib/pkgconfig/libtiff-4.pc'], + 'dirs': [], +} + +sanity_check_commands = ["tiffinfo -h"] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libGLU/libGLU-9.0.3-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libGLU/libGLU-9.0.3-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..6de3d5baea2 --- /dev/null +++ b/easybuild/easyconfigs/l/libGLU/libGLU-9.0.3-GCCcore-13.2.0.eb @@ -0,0 +1,27 @@ +easyblock = 'MesonNinja' + +name = 'libGLU' +version = '9.0.3' + +homepage = 'https://mesa.freedesktop.org/archive/glu/' +description = """The OpenGL Utility Library (GLU) is a computer graphics library for OpenGL. """ + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://mesa.freedesktop.org/archive/glu/'] +sources = ['glu-%(version)s.tar.xz'] +checksums = ['bd43fe12f374b1192eb15fe20e45ff456b9bc26ab57f0eee919f96ca0f8a330f'] + +builddependencies = [('binutils', '2.40'), + ('Ninja', '1.11.1'), + ('Meson', '1.2.3')] + +dependencies = [('Mesa', '23.1.9')] + +sanity_check_paths = { + 'files': ['lib/libGLU.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libarchive/libarchive-3.7.2-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libarchive/libarchive-3.7.2-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..c31b668a246 --- /dev/null +++ b/easybuild/easyconfigs/l/libarchive/libarchive-3.7.2-GCCcore-13.2.0.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'libarchive' +version = '3.7.2' + +homepage = 'https://www.libarchive.org/' + +description = """ + Multi-format archive and compression library +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://www.libarchive.org/downloads/'] +sources = [SOURCE_TAR_GZ] +checksums = ['df404eb7222cf30b4f8f93828677890a2986b66ff8bf39dac32a804e96ddf104'] + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('zlib', '1.2.13'), + ('XZ', '5.4.4'), + ('OpenSSL', '1.1', '', SYSTEM), +] + +sanity_check_paths = { + 'files': ['include/archive.h', 'lib/libarchive.%s' % SHLIB_EXT], + 'dirs': ['bin', 'share/man/man3'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/l/libbaseencode/libbaseencode-1.0.11-GCCcore-10.2.0.eb b/easybuild/easyconfigs/l/libbaseencode/libbaseencode-1.0.11-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..2823fc58971 --- /dev/null +++ b/easybuild/easyconfigs/l/libbaseencode/libbaseencode-1.0.11-GCCcore-10.2.0.eb @@ -0,0 +1,35 @@ +# Contribution from the NIHR Biomedical Research Centre +# Guy's and St Thomas' NHS Foundation Trust and King's College London +# uploaded by J. Sassmannshausen + +easyblock = 'CMakeMake' + +name = 'libbaseencode' +version = '1.0.11' + +homepage = 'https://github.com/paolostivanin/libbaseencode' +description = """Library written in C for encoding and decoding +data using base32 or base64 according to RFC-4648""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['https://github.com/paolostivanin/libbaseencode/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['645329236992ee85f05569475da2af0f0d81aaccd4aebc8d0b8603e54a320935'] # v1.0.11.tar.gz + +builddependencies = [ + ('CMake', '3.18.4'), + ('pkg-config', '0.29.2'), + ('binutils', '2.35'), +] + +parallel = 1 + +separate_build_dir = True + +sanity_check_paths = { + 'files': ['lib/libbaseencode.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libcint/libcint-5.4.0-gfbf-2023a.eb b/easybuild/easyconfigs/l/libcint/libcint-5.4.0-gfbf-2023a.eb new file mode 100644 index 00000000000..06ff0619f1e --- /dev/null +++ b/easybuild/easyconfigs/l/libcint/libcint-5.4.0-gfbf-2023a.eb @@ -0,0 +1,37 @@ +easyblock = 'CMakeMake' + +name = 'libcint' +version = '5.4.0' + +homepage = 'https://github.com/sunqm/libcint' +description = "libcint is an open source library for analytical Gaussian integrals." + +toolchain = {'name': 'gfbf', 'version': '2023a'} + +source_urls = ['https://github.com/sunqm/%(name)s/archive/'] +sources = ['v%(version)s.tar.gz'] +patches = ['%(name)s-4.4.0_remove_pyscftest.patch'] +checksums = [ + '42a8f2e9244e4575437e426e32cd1e60ef9559971c42a41f860c870efc745d99', # v5.4.0.tar.gz + '6449297a6aee30fef3d6a268aa892dea8dd5c3ca9669a50ae694ab9bcf17842d', # libcint-4.4.0_remove_pyscftest.patch +] + +builddependencies = [ + ('CMake', '3.26.3'), + ('Python', '3.11.3'), + ('SciPy-bundle', '2023.07'), +] + +configopts = "-DWITH_RANGE_COULOMB=on -DWITH_COULOMB_ERF=on -DWITH_F12=on -DENABLE_TEST=on" + +buildopts = 'VERBOSE=1' + +runtest = "test " +separate_build_dir = False # Must use the same directory for tests + +sanity_check_paths = { + 'files': ['include/cint.h', 'lib/%(name)s.so'], + 'dirs': [], +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/libcircle/libcircle-0.3-gompi-2023a.eb b/easybuild/easyconfigs/l/libcircle/libcircle-0.3-gompi-2023a.eb new file mode 100644 index 00000000000..516d2ceb729 --- /dev/null +++ b/easybuild/easyconfigs/l/libcircle/libcircle-0.3-gompi-2023a.eb @@ -0,0 +1,38 @@ +## +# Authors: +# * Petar Forai +# * Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'libcircle' +version = '0.3' + +homepage = 'https://github.com/hpc/libcircle/' + +description = """ + An API to provide an efficient distributed queue on a cluster. libcircle is an + API for distributing embarrassingly parallel workloads using self-stabilization. +""" + +toolchain = {'name': 'gompi', 'version': '2023a'} +toolchainopts = {'usempi': True, 'pic': True} + +github_account = 'hpc' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['fd8bc6e4dcc6fdec9d2a3d1c78a4060948ae4f11f0b278792610d6c05d53e14c'] + +builddependencies = [ + ('Autotools', '20220317'), + ('pkgconf', '1.9.5'), +] + +preconfigopts = './autogen.sh && ' + +sanity_check_paths = { + 'files': ['include/%(name)s.h', 'lib/%(name)s.a', 'lib/%%(name)s.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libcotp/libcotp-1.2.3-GCCcore-10.2.0.eb b/easybuild/easyconfigs/l/libcotp/libcotp-1.2.3-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..c2da1b819dd --- /dev/null +++ b/easybuild/easyconfigs/l/libcotp/libcotp-1.2.3-GCCcore-10.2.0.eb @@ -0,0 +1,39 @@ +# Contribution from the NIHR Biomedical Research Centre +# Guy's and St Thomas' NHS Foundation Trust and King's College London +# uploaded by J. Sassmannshausen + +easyblock = 'CMakeMake' + +name = 'libcotp' +version = '1.2.3' + +homepage = 'https://github.com/paolostivanin/libcotp' +description = """C library that generates TOTP and HOTP according to RFC-6238""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['https://github.com/paolostivanin/libcotp/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['f122aea37337cdfcdaa1ce979ecfb5177ad7dcb273caf2d6056820f1dbf92e93'] # v1.2.3.tar.gz + +builddependencies = [ + ('CMake', '3.18.4'), + ('pkg-config', '0.29.2'), + ('binutils', '2.35'), +] + +dependencies = [ + ('libgcrypt', '1.9.2'), + ('libbaseencode', '1.0.11'), +] + +parallel = 1 + +separate_build_dir = True + +sanity_check_paths = { + 'files': ['lib/libcotp.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libdeflate/libdeflate-1.19-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libdeflate/libdeflate-1.19-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..11849b74c7e --- /dev/null +++ b/easybuild/easyconfigs/l/libdeflate/libdeflate-1.19-GCCcore-13.2.0.eb @@ -0,0 +1,37 @@ +# Author: Pavel Grochal (INUITS) +# License: GPLv2 + +easyblock = 'CMakeMake' + +name = 'libdeflate' +version = '1.19' + +homepage = 'https://github.com/ebiggers/libdeflate' +description = """Heavily optimized library for DEFLATE/zlib/gzip compression and decompression.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +github_account = 'ebiggers' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['27bf62d71cd64728ff43a9feb92f2ac2f2bf748986d856133cc1e51992428c25'] + +builddependencies = [ + ('binutils', '2.40'), + ('CMake', '3.27.6'), +] + +sanity_check_paths = { + 'files': [ + 'bin/%(name)s-gunzip', 'bin/%(name)s-gzip', + 'lib/%(name)s.a', 'lib/%%(name)s.%s' % SHLIB_EXT, + 'include/%(name)s.h', + ], + 'dirs': [], +} +sanity_check_commands = [ + '%(name)s-gzip -h', + '%(name)s-gunzip -h', +] + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/l/libdrm/libdrm-2.4.117-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libdrm/libdrm-2.4.117-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..b426bc248de --- /dev/null +++ b/easybuild/easyconfigs/l/libdrm/libdrm-2.4.117-GCCcore-13.2.0.eb @@ -0,0 +1,32 @@ +easyblock = 'MesonNinja' + +name = 'libdrm' +version = '2.4.117' + +homepage = 'https://dri.freedesktop.org' +description = """Direct Rendering Manager runtime library.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://dri.freedesktop.org/libdrm/'] +sources = [SOURCELOWER_TAR_XZ] +checksums = ['a2888d69e3eb1c8a77adc08a75a60fbae01f0d208d26f034d1a12e362361242b'] + +builddependencies = [ + ('binutils', '2.40'), + ('pkgconf', '2.0.3'), + ('Meson', '1.2.3'), + ('Ninja', '1.11.1'), +] +dependencies = [('X11', '20231019')] + +# installing manpages requires an extra build dependency (docbook xsl) +configopts = '-Dman-pages=disabled' + +sanity_check_paths = { + 'files': ['lib/libdrm.%s' % SHLIB_EXT, 'include/libdrm/drm.h'], + 'dirs': ['include', 'lib'], +} + + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libedit/libedit-20210910-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libedit/libedit-20210910-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..42ee25b2a47 --- /dev/null +++ b/easybuild/easyconfigs/l/libedit/libedit-20210910-GCCcore-10.3.0.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'libedit' +version = '20210910' + +homepage = 'https://thrysoee.dk/editline/' +description = """ +This BSD-style licensed command line editor library provides generic line editing, +history, and tokenization functions, similar to those found in GNU Readline. +""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://thrysoee.dk/editline/'] +sources = ['%(namelower)s-%(version)s-3.1.tar.gz'] +checksums = ['6792a6a992050762edcca28ff3318cdb7de37dccf7bc30db59fcd7017eed13c5'] + +builddependencies = [('binutils', '2.36.1')] + +dependencies = [('ncurses', '6.2')] + +sanity_check_paths = { + 'files': ['include/editline/readline.h', 'lib/libedit.%s' % SHLIB_EXT, 'lib/libedit.a'], + 'dirs': [] +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libffi/libffi-3.4.4-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libffi/libffi-3.4.4-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..220c7453d65 --- /dev/null +++ b/easybuild/easyconfigs/l/libffi/libffi-3.4.4-GCCcore-13.2.0.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libffi' +version = '3.4.4' + +homepage = 'https://sourceware.org/libffi/' +description = """The libffi library provides a portable, high level programming interface to + various calling conventions. This allows a programmer to call any function + specified by a call interface description at run-time.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/libffi/libffi/releases/download/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['d66c56ad259a82cf2a9dfc408b32bf5da52371500b84745f7fb8b645712df676'] + +builddependencies = [ + ('binutils', '2.40'), +] + +configopts = '--disable-exec-static-tramp ' + +sanity_check_paths = { + 'files': ['lib/libffi.a', 'lib/libffi.%s' % SHLIB_EXT], + 'dirs': ['include', 'share'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libglvnd/libglvnd-1.7.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libglvnd/libglvnd-1.7.0-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..cd5ce89a5cb --- /dev/null +++ b/easybuild/easyconfigs/l/libglvnd/libglvnd-1.7.0-GCCcore-13.2.0.eb @@ -0,0 +1,33 @@ +easyblock = 'MesonNinja' + +name = 'libglvnd' +version = '1.7.0' + +homepage = 'https://gitlab.freedesktop.org/glvnd/libglvnd' +description = "libglvnd is a vendor-neutral dispatch layer for arbitrating OpenGL API calls between multiple vendors." + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://gitlab.freedesktop.org/glvnd/libglvnd/-/archive/v%(version)s/'] +sources = ['libglvnd-v%(version)s.tar.gz'] +checksums = ['2b6e15b06aafb4c0b6e2348124808cbd9b291c647299eaaba2e3202f51ff2f3d'] + +builddependencies = [ + ('binutils', '2.40'), + ('pkgconf', '2.0.3'), + ('Meson', '1.2.3'), + ('Ninja', '1.11.1'), +] + +dependencies = [('X11', '20231019')] + +# Let EGL find system-installed vendor files in /etc/glvnd/egl_vendor.d etc. +allow_prepend_abs_path = True +modextrapaths = {"__EGL_VENDOR_LIBRARY_DIRS": "/etc/glvnd/egl_vendor.d:/usr/share/glvnd/egl_vendor.d"} + +sanity_check_paths = { + 'files': ['lib/lib%s.%s' % (x, SHLIB_EXT) for x in ['EGL', 'GL', 'GLX', 'OpenGL']], + 'dirs': ['include/%s' % x for x in ['EGL', 'GL', 'GLES', 'GLES2', 'GLES3', 'glvnd', 'KHR']] + ['lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libiconv/libiconv-1.17-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libiconv/libiconv-1.17-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..f8c4e3ab254 --- /dev/null +++ b/easybuild/easyconfigs/l/libiconv/libiconv-1.17-GCCcore-13.2.0.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'libiconv' +version = '1.17' + +homepage = 'https://www.gnu.org/software/libiconv' +description = "Libiconv converts from one character encoding to another through Unicode conversion" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['8f74213b56238c85a50a5329f77e06198771e70dd9a739779f4c02f65d971313'] + +builddependencies = [('binutils', '2.40')] + +sanity_check_paths = { + 'files': ['bin/iconv', 'include/iconv.h', 'include/libcharset.h', 'include/localcharset.h', + 'lib/libcharset.a', 'lib/libcharset.%s' % SHLIB_EXT, 'lib/libiconv.%s' % SHLIB_EXT], + 'dirs': ['share'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libjpeg-turbo/libjpeg-turbo-3.0.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libjpeg-turbo/libjpeg-turbo-3.0.1-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..680c3f1f34d --- /dev/null +++ b/easybuild/easyconfigs/l/libjpeg-turbo/libjpeg-turbo-3.0.1-GCCcore-13.2.0.eb @@ -0,0 +1,42 @@ +easyblock = 'CMakeMake' + +name = 'libjpeg-turbo' +version = '3.0.1' + +homepage = 'https://sourceforge.net/projects/libjpeg-turbo/' + +description = """ + libjpeg-turbo is a fork of the original IJG libjpeg which uses SIMD to + accelerate baseline JPEG compression and decompression. libjpeg is a library + that implements JPEG image encoding, decoding and transcoding. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['22429507714ae147b3acacd299e82099fce5d9f456882fc28e252e4579ba2a75'] + +builddependencies = [ + ('CMake', '3.27.6'), + ('binutils', '2.40'), +] + +dependencies = [ + ('NASM', '2.16.01'), +] + +configopts = ' -G"Unix Makefiles" -DWITH_JPEG8=1' + +runtest = "test" + +sanity_check_paths = { + 'files': ['bin/cjpeg', 'bin/djpeg', 'bin/jpegtran', 'bin/rdjpgcom', + 'bin/tjbench', 'bin/wrjpgcom', 'lib/libjpeg.a', + 'lib/libjpeg.%s' % SHLIB_EXT, 'lib/libturbojpeg.a', + 'lib/libturbojpeg.%s' % SHLIB_EXT], + 'dirs': ['include', 'share'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libmaus2/libmaus2-2.0.813-GCC-12.3.0.eb b/easybuild/easyconfigs/l/libmaus2/libmaus2-2.0.813-GCC-12.3.0.eb new file mode 100644 index 00000000000..95e24c04848 --- /dev/null +++ b/easybuild/easyconfigs/l/libmaus2/libmaus2-2.0.813-GCC-12.3.0.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'libmaus2' +version = '2.0.813' +local_release = '20221210220409' + +homepage = 'https://github.com/gt1/libmaus2' +description = "libmaus2 is a collection of data structures and algorithms." + +toolchain = {'name': 'GCC', 'version': '12.3.0'} + +source_urls = ['https://gitlab.com/german.tischler/libmaus2/-/archive/%%(version)s-release-%s/' % local_release] +sources = ['libmaus2-%%(version)s-release-%s.tar.gz' % local_release] +checksums = ['4125f8daefd6900185675026498369457088e25e81029597659249be49cd5261'] + +dependencies = [('Boost', '1.82.0')] + +sanity_check_paths = { + 'files': ['lib/libmaus2.a', 'lib/libmaus2.%s' % SHLIB_EXT, + 'lib/libmaus2_simd_align_128.a', 'lib/libmaus2_simd_align_128.%s' % SHLIB_EXT, + 'lib/libmaus2_simd_align_256.a', 'lib/libmaus2_simd_align_256.%s' % SHLIB_EXT], + 'dirs': ['include/libmaus2'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libpng/libpng-1.6.40-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libpng/libpng-1.6.40-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..7dedaf0bdb2 --- /dev/null +++ b/easybuild/easyconfigs/l/libpng/libpng-1.6.40-GCCcore-13.2.0.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'libpng' +version = '1.6.40' + +homepage = 'http://www.libpng.org/pub/png/libpng.html' + +description = "libpng is the official PNG reference library" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['8f720b363aa08683c9bf2a563236f45313af2c55d542b5481ae17dd8d183bb42'] + +builddependencies = [('binutils', '2.40')] + +dependencies = [('zlib', '1.2.13')] + +local_majminver = '%(version_major)s%(version_minor)s' + +sanity_check_paths = { + 'files': ['include/pngconf.h', 'include/png.h', 'include/pnglibconf.h', + 'lib/libpng.a', 'lib/libpng.%s' % SHLIB_EXT, + 'lib/libpng%s.a' % local_majminver, + 'lib/libpng%s.%s' % (local_majminver, SHLIB_EXT)], + 'dirs': ['bin', 'include/libpng%s' % local_majminver, 'share/man'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-8.2-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libreadline/libreadline-8.2-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..81be0d3a261 --- /dev/null +++ b/easybuild/easyconfigs/l/libreadline/libreadline-8.2-GCCcore-13.2.0.eb @@ -0,0 +1,41 @@ +easyblock = 'ConfigureMake' + +name = 'libreadline' +version = '8.2' + +homepage = 'https://tiswww.case.edu/php/chet/readline/rltop.html' +description = """ + The GNU Readline library provides a set of functions for use by applications + that allow users to edit command lines as they are typed in. Both Emacs and + vi editing modes are available. The Readline library includes additional + functions to maintain a list of previously-entered command lines, to recall + and perhaps reedit those lines, and perform csh-like history expansion on + previous commands. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://ftp.gnu.org/gnu/readline'] +sources = ['readline-%(version)s.tar.gz'] +checksums = ['3feb7171f16a84ee82ca18a36d7b9be109a52c04f492a053331d7d1095007c35'] + +builddependencies = [ + ('binutils', '2.40'), +] +dependencies = [ + ('ncurses', '6.4'), +] + +# for the termcap symbols, use EB ncurses +buildopts = "SHLIB_LIBS='-lncurses'" + +sanity_check_paths = { + 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + + ['include/readline/%s' % x + for x in ['chardefs.h', 'history.h', 'keymaps.h', 'readline.h', + 'rlconf.h', 'rlstdc.h', 'rltypedefs.h', 'tilde.h']], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libsigc++/libsigc++-2.12.1-GCCcore-11.3.0.eb b/easybuild/easyconfigs/l/libsigc++/libsigc++-2.12.1-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..adcdcd6e01e --- /dev/null +++ b/easybuild/easyconfigs/l/libsigc++/libsigc++-2.12.1-GCCcore-11.3.0.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'libsigc++' +version = '2.12.1' + +homepage = 'https://libsigcplusplus.github.io/libsigcplusplus/' +description = """The libsigc++ package implements a typesafe callback system for standard C++.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +source_urls = [FTPGNOME_SOURCE] +sources = [SOURCELOWER_TAR_XZ] +checksums = ['a9dbee323351d109b7aee074a9cb89ca3e7bcf8ad8edef1851f4cf359bd50843'] + +builddependencies = [ + ('binutils', '2.38'), + ('Autotools', '20220317'), + ('Doxygen', '1.9.4'), + ('Graphviz', '5.0.0'), + ('libxslt', '1.1.34'), + ('mm-common', '1.0.5'), +] + +preconfigopts = "./autogen.sh && " +configopts = "--disable-documentation" + +sanity_check_paths = { + 'files': ['lib/libsigc-%%(version_major)s.0.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/l/libsodium/libsodium-1.0.19-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libsodium/libsodium-1.0.19-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..6511aea996f --- /dev/null +++ b/easybuild/easyconfigs/l/libsodium/libsodium-1.0.19-GCCcore-13.2.0.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'libsodium' +version = '1.0.19' + +homepage = 'https://doc.libsodium.org/' +description = """ + Sodium is a modern, easy-to-use software library for encryption, decryption, + signatures, password hashing and more. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = [ + 'https://download.%(name)s.org/%(name)s/releases/', + 'https://download.%(name)s.org/%(name)s/releases/old/', + 'https://download.%(name)s.org/%(name)s/releases/old/unsupported/', +] +sources = [SOURCE_TAR_GZ] +checksums = ['018d79fe0a045cca07331d37bd0cb57b2e838c51bc48fd837a1472e50068bbea'] + +builddependencies = [ + ('binutils', '2.40'), +] + + +sanity_check_paths = { + 'files': ['include/sodium.h', 'lib/%%(name)s.%s' % SHLIB_EXT, 'lib/%(name)s.a'], + 'dirs': ['include/sodium', 'lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libunwind/libunwind-1.6.2-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libunwind/libunwind-1.6.2-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..031cb3115ea --- /dev/null +++ b/easybuild/easyconfigs/l/libunwind/libunwind-1.6.2-GCCcore-13.2.0.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libunwind' +version = '1.6.2' + +homepage = 'https://www.nongnu.org/libunwind/' +description = """The primary goal of libunwind is to define a portable and efficient C programming interface + (API) to determine the call-chain of a program. The API additionally provides the means to manipulate the + preserved (callee-saved) state of each call-frame and to resume execution at any point in the call-chain + (non-local goto). The API supports both local (same-process) and remote (across-process) operation. + As such, the API is useful in a number of applications""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = [GNU_SAVANNAH_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['4a6aec666991fb45d0889c44aede8ad6eb108071c3554fcdff671f9c94794976'] + +builddependencies = [('binutils', '2.40')] + +dependencies = [ + ('XZ', '5.4.4'), +] + +preconfigopts = 'export LIBS="$LIBS -llzma" && export CFLAGS="$CFLAGS -fno-common" && ' + +sanity_check_paths = { + 'files': ['include/libunwind.h', 'lib/libunwind.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2023a.eb b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2023a.eb new file mode 100644 index 00000000000..9cf45cc3abe --- /dev/null +++ b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2023a.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'libvdwxc' +version = '0.4.0' + +homepage = 'https://libvdwxc.org' +description = """libvdwxc is a general library for evaluating energy and potential for +exchange-correlation (XC) functionals from the vdW-DF family that can be used with various +of density functional theory (DFT) codes.""" + +toolchain = {'name': 'foss', 'version': '2023a'} + +source_urls = ['https://launchpad.net/libvdwxc/stable/%(version)s/+download/'] +sources = [SOURCE_TAR_GZ] +checksums = ['3524feb5bb2be86b4688f71653502146b181e66f3f75b8bdaf23dd1ae4a56b33'] + +preconfigopts = 'unset CC && unset FC && ' + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['libvdwxc_fdtest', 'libvdwxc_maintest', + 'libvdwxc_q0test', 'libvdwxc_q0test2']] + + ['lib/lib%s.%s' % (x, y) for x in ['vdwxc', 'vdwxcfort'] + for y in ['a', SHLIB_EXT]], + 'dirs': ['include'], +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/libwebp/libwebp-1.3.2-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libwebp/libwebp-1.3.2-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..760365c2bc9 --- /dev/null +++ b/easybuild/easyconfigs/l/libwebp/libwebp-1.3.2-GCCcore-13.2.0.eb @@ -0,0 +1,45 @@ +easyblock = 'ConfigureMake' + +name = 'libwebp' +version = '1.3.2' + +homepage = 'https://developers.google.com/speed/webp/' +description = """WebP is a modern image format that provides superior +lossless and lossy compression for images on the web. Using WebP, +webmasters and web developers can create smaller, richer images that +make the web faster.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://storage.googleapis.com/downloads.webmproject.org/releases/webp'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['2a499607df669e40258e53d0ade8035ba4ec0175244869d1025d460562aa09b4'] + +builddependencies = [ + ('binutils', '2.40'), +] +dependencies = [ + ('libjpeg-turbo', '3.0.1'), + ('libpng', '1.6.40'), + ('LibTIFF', '4.6.0'), + ('giflib', '5.2.1'), +] + +configopts = '--enable-libwebpmux' + +local_headers, local_libs = ( + ['decode.h', 'demux.h', 'encode.h', 'mux.h', 'mux_types.h', 'types.h'], + ['webp', 'webpdemux', 'webpmux'] +) + +sanity_check_paths = { + 'files': ( + ['include/webp/%s' % h for h in local_headers] + + ['lib/lib%s.a' % s for s in local_libs] + + ['lib/lib%s.%s' % (s, SHLIB_EXT) for s in local_libs] + ), + 'dirs': ['lib/'] +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libxc/libxc-6.1.0-GCC-12.2.0.eb b/easybuild/easyconfigs/l/libxc/libxc-6.1.0-GCC-12.2.0.eb index 4549d2c41b2..7dc5e000dd6 100644 --- a/easybuild/easyconfigs/l/libxc/libxc-6.1.0-GCC-12.2.0.eb +++ b/easybuild/easyconfigs/l/libxc/libxc-6.1.0-GCC-12.2.0.eb @@ -18,7 +18,12 @@ builddependencies = [ ('Perl', '5.36.0'), ] -local_common_configopts = "-DENABLE_FORTRAN=ON -DENABLE_FORTRAN03=ON -DENABLE_XHOST=OFF" +local_common_configopts = "-DENABLE_FORTRAN=ON -DENABLE_XHOST=OFF " + +# don't disable building of third and fourth derivates, since it's required by some software that depends on libxc +# (like ABINIT, which requires "3rd derivatives of energy") +# see also https://github.com/pyscf/pyscf/issues/1103 +local_common_configopts += "-DDISABLE_KXC=OFF -DDISABLE_LXC=OFF" # perform iterative build to get both static and shared libraries configopts = [ @@ -26,8 +31,6 @@ configopts = [ local_common_configopts + ' -DBUILD_SHARED_LIBS=ON', ] -parallel = 1 - # make sure that built libraries (libxc*.so*) in build directory are picked when running tests # this is required when RPATH linking is used pretestopts = "export LD_LIBRARY_PATH=%(builddir)s/easybuild_obj:$LD_LIBRARY_PATH && " diff --git a/easybuild/easyconfigs/l/libxc/libxc-6.1.0-intel-compilers-2022.2.1.eb b/easybuild/easyconfigs/l/libxc/libxc-6.1.0-intel-compilers-2022.2.1.eb index 8973869bc36..4e4f288ba98 100644 --- a/easybuild/easyconfigs/l/libxc/libxc-6.1.0-intel-compilers-2022.2.1.eb +++ b/easybuild/easyconfigs/l/libxc/libxc-6.1.0-intel-compilers-2022.2.1.eb @@ -18,7 +18,12 @@ builddependencies = [ ('Perl', '5.36.0'), ] -local_common_configopts = "-DENABLE_FORTRAN=ON -DENABLE_FORTRAN03=ON -DENABLE_XHOST=OFF" +local_common_configopts = "-DENABLE_FORTRAN=ON -DENABLE_XHOST=OFF " + +# don't disable building of third and fourth derivates, since it's required by some software that depends on libxc +# (like ABINIT, which requires "3rd derivatives of energy") +# see also https://github.com/pyscf/pyscf/issues/1103 +local_common_configopts += "-DDISABLE_KXC=OFF -DDISABLE_LXC=OFF" # perform iterative build to get both static and shared libraries configopts = [ @@ -26,8 +31,6 @@ configopts = [ local_common_configopts + ' -DBUILD_SHARED_LIBS=ON', ] -parallel = 1 - # make sure that built libraries (libxc*.so*) in build directory are picked when running tests # this is required when RPATH linking is used pretestopts = "export LD_LIBRARY_PATH=%(builddir)s/easybuild_obj:$LD_LIBRARY_PATH && " diff --git a/easybuild/easyconfigs/l/libxc/libxc-6.2.2-GCC-12.3.0.eb b/easybuild/easyconfigs/l/libxc/libxc-6.2.2-GCC-12.3.0.eb new file mode 100644 index 00000000000..81956f38a47 --- /dev/null +++ b/easybuild/easyconfigs/l/libxc/libxc-6.2.2-GCC-12.3.0.eb @@ -0,0 +1,48 @@ +easyblock = 'CMakeMake' + +name = 'libxc' +version = '6.2.2' + +homepage = 'https://www.tddft.org/programs/libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +toolchain = {'name': 'GCC', 'version': '12.3.0'} + +source_urls = ['https://www.tddft.org/programs/libxc/down.php?file=%(version)s/'] +sources = [SOURCE_TAR_GZ] +checksums = ['a0f6f1bba7ba5c0c85b2bfe65aca1591025f509a7f11471b4cd651a79491b045'] + +builddependencies = [ + ('CMake', '3.26.3'), + ('Perl', '5.36.1'), +] + +local_common_configopts = "-DENABLE_FORTRAN=ON -DENABLE_XHOST=OFF " + +# don't disable building of third and fourth derivates, since it's required by some software that depends on libxc +# (like ABINIT, which requires "3rd derivatives of energy") +# see also https://github.com/pyscf/pyscf/issues/1103 +local_common_configopts += "-DDISABLE_KXC=OFF -DDISABLE_LXC=OFF" + +# perform iterative build to get both static and shared libraries +configopts = [ + local_common_configopts + ' -DBUILD_SHARED_LIBS=OFF', + local_common_configopts + ' -DBUILD_SHARED_LIBS=ON', +] + +# make sure that built libraries (libxc*.so*) in build directory are picked when running tests +# this is required when RPATH linking is used +pretestopts = "export LD_LIBRARY_PATH=%(builddir)s/easybuild_obj:$LD_LIBRARY_PATH && " + +runtest = 'test' + +sanity_check_paths = { + 'files': ['bin/xc-info'] + + ['lib/libxc%s.%s' % (x, y) for x in ['', 'f03', 'f90'] for y in ['a', SHLIB_EXT]], + 'dirs': ['include', 'lib/pkgconfig', 'lib/cmake/Libxc'], +} + +sanity_check_commands = ['xc-info 1'] + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/libxc/libxc-6.2.2-intel-compilers-2023.1.0.eb b/easybuild/easyconfigs/l/libxc/libxc-6.2.2-intel-compilers-2023.1.0.eb new file mode 100644 index 00000000000..af5917b73f5 --- /dev/null +++ b/easybuild/easyconfigs/l/libxc/libxc-6.2.2-intel-compilers-2023.1.0.eb @@ -0,0 +1,48 @@ +easyblock = 'CMakeMake' + +name = 'libxc' +version = '6.2.2' + +homepage = 'https://www.tddft.org/programs/libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +toolchain = {'name': 'intel-compilers', 'version': '2023.1.0'} + +source_urls = ['https://www.tddft.org/programs/libxc/down.php?file=%(version)s/'] +sources = [SOURCE_TAR_GZ] +checksums = ['a0f6f1bba7ba5c0c85b2bfe65aca1591025f509a7f11471b4cd651a79491b045'] + +builddependencies = [ + ('CMake', '3.26.3'), + ('Perl', '5.36.1'), +] + +local_common_configopts = "-DENABLE_FORTRAN=ON -DENABLE_XHOST=OFF " + +# don't disable building of third and fourth derivates, since it's required by some software that depends on libxc +# (like ABINIT, which requires "3rd derivatives of energy") +# see also https://github.com/pyscf/pyscf/issues/1103 +local_common_configopts += "-DDISABLE_KXC=OFF -DDISABLE_LXC=OFF" + +# perform iterative build to get both static and shared libraries +configopts = [ + local_common_configopts + ' -DBUILD_SHARED_LIBS=OFF', + local_common_configopts + ' -DBUILD_SHARED_LIBS=ON', +] + +# make sure that built libraries (libxc*.so*) in build directory are picked when running tests +# this is required when RPATH linking is used +pretestopts = "export LD_LIBRARY_PATH=%(builddir)s/easybuild_obj:$LD_LIBRARY_PATH && " + +runtest = 'test' + +sanity_check_paths = { + 'files': ['bin/xc-info'] + + ['lib/libxc%s.%s' % (x, y) for x in ['', 'f03', 'f90'] for y in ['a', SHLIB_EXT]], + 'dirs': ['include', 'lib/pkgconfig', 'lib/cmake/Libxc'], +} + +sanity_check_commands = ['xc-info 1'] + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/libyaml/libyaml-0.2.5-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libyaml/libyaml-0.2.5-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..c5be2ac7c7b --- /dev/null +++ b/easybuild/easyconfigs/l/libyaml/libyaml-0.2.5-GCCcore-13.2.0.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'libyaml' +version = '0.2.5' + +homepage = 'https://pyyaml.org/wiki/LibYAML' +description = "LibYAML is a YAML parser and emitter written in C." + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://pyyaml.org/download/%(name)s/'] +sources = ['yaml-%(version)s.tar.gz'] +checksums = ['c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4'] + +builddependencies = [ + ('binutils', '2.40'), +] + + +sanity_check_paths = { + 'files': ['include/yaml.h', 'lib/libyaml.a', 'lib/libyaml.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/line_profiler/line_profiler-4.1.1-GCCcore-12.2.0.eb b/easybuild/easyconfigs/l/line_profiler/line_profiler-4.1.1-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..72ba302b5e7 --- /dev/null +++ b/easybuild/easyconfigs/l/line_profiler/line_profiler-4.1.1-GCCcore-12.2.0.eb @@ -0,0 +1,41 @@ +easyblock = 'PythonPackage' + +name = 'line_profiler' +version = '4.1.1' + +homepage = 'https://github.com/pyutils/line_profiler' +description = """line_profiler is a module for doing line-by-line profiling +of functions. kernprof is a convenient script for running either +line_profiler or the Python standard library's cProfile or profile modules, +depending on what is available.""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +github_account = 'pyutils' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['71c150bf06dd964fc0e5fbc3a5eb31bbee03c535d31c9548999c3e0302dcbb27'] + +builddependencies = [ + ('binutils', '2.39'), + ('scikit-build', '0.17.2'), + ('CMake', '3.24.3'), + ('Ninja', '1.11.1'), +] +dependencies = [ + ('Python', '3.10.8'), + ('IPython', '8.14.0'), +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +sanity_check_paths = { + 'files': ['bin/kernprof'], + 'dirs': [], +} + +sanity_check_commands = ['kernprof --help'] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/l/loomR/loomR-0.2.0-20180425-foss-2022b-R-4.2.2.eb b/easybuild/easyconfigs/l/loomR/loomR-0.2.0-20180425-foss-2022b-R-4.2.2.eb new file mode 100644 index 00000000000..b7edbb8f8a1 --- /dev/null +++ b/easybuild/easyconfigs/l/loomR/loomR-0.2.0-20180425-foss-2022b-R-4.2.2.eb @@ -0,0 +1,29 @@ +easyblock = 'RPackage' + +name = 'loomR' +local_commit = 'df0144b' +# see DESCRIPTION to determine version, +# but add date stamp of commit since version is not always bumped +version = '0.2.0-20180425' +versionsuffix = '-R-%(rver)s' + +homepage = 'https://github.com/mojaveazure/loomR' +description = "An R interface for loom files" + +toolchain = {'name': 'foss', 'version': '2022b'} + +source_urls = ['https://github.com/mojaveazure/loomR/archive/'] +sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}] +checksums = ['6264448baf4fd9a569eb5a832598c4a224382ef26c0a7fbd061a8c901672f0ac'] + +dependencies = [ + ('R', '4.2.2'), + ('R-bundle-Bioconductor', '3.16', versionsuffix), +] + +sanity_check_paths = { + 'files': [], + 'dirs': [name], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/l/lwgrp/lwgrp-1.0.5-gompi-2023a.eb b/easybuild/easyconfigs/l/lwgrp/lwgrp-1.0.5-gompi-2023a.eb new file mode 100644 index 00000000000..43fd08756cc --- /dev/null +++ b/easybuild/easyconfigs/l/lwgrp/lwgrp-1.0.5-gompi-2023a.eb @@ -0,0 +1,36 @@ +# +# Author: Robert Mijakovic +# +easyblock = 'ConfigureMake' + +name = 'lwgrp' +version = '1.0.5' + +homepage = 'https://github.com/LLNL/lwgrp' +description = """The light-weight group library defines data structures and collective operations to +group MPI processes as an ordered set. Such groups are useful as substitutes for MPI communicators +when the overhead of communicator creation is too costly. For example, certain sorting algorithms +recursively divide processes into subgroups as the sort algorithm progresses. These groups may be +different with each invocation, so that it is inefficient to create and destroy communicators during +the sort routine.""" + +toolchain = {'name': 'gompi', 'version': '2023a'} + +github_account = 'LLNL' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['1fac5fad3aed9f0a83026c19f438a33f9807d69990284e452b646b44a95fe72b'] + +builddependencies = [ + ('Autotools', '20220317'), + ('pkgconf', '1.9.5'), +] + +preconfigopts = './autogen.sh && ' + +sanity_check_paths = { + 'files': ['include/%(name)s.h', 'lib/lib%%(name)s.%s' % SHLIB_EXT], + 'dirs': ['share/%(name)s'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/lz4/lz4-1.9.4-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/lz4/lz4-1.9.4-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..c3420393635 --- /dev/null +++ b/easybuild/easyconfigs/l/lz4/lz4-1.9.4-GCCcore-13.2.0.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'lz4' +version = '1.9.4' + +homepage = 'https://lz4.github.io/lz4/' +description = """LZ4 is lossless compression algorithm, providing compression speed at 400 MB/s per core. + It features an extremely fast decoder, with speed in multiple GB/s per core.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +github_account = '%(name)s' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['0b0e3aa07c8c063ddf40b082bdf7e37a1562bda40a0ff5272957f3e987e0e54b'] + +builddependencies = [('binutils', '2.40')] + +skipsteps = ['configure'] + +installopts = "PREFIX=%(installdir)s" + +runtest = 'check' + +sanity_check_paths = { + 'files': ["bin/lz4", "lib/liblz4.%s" % SHLIB_EXT, "include/lz4.h"], + 'dirs': ["lib/pkgconfig"] +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/m/MACS2/MACS2-2.2.7.1-foss-2021a.eb b/easybuild/easyconfigs/m/MACS2/MACS2-2.2.7.1-foss-2021a.eb new file mode 100644 index 00000000000..726420a15cc --- /dev/null +++ b/easybuild/easyconfigs/m/MACS2/MACS2-2.2.7.1-foss-2021a.eb @@ -0,0 +1,35 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild + +easyblock = 'PythonPackage' + +name = 'MACS2' +version = '2.2.7.1' + +homepage = 'https://github.com/taoliu/MACS' +description = "Model Based Analysis for ChIP-Seq data" + +toolchain = {'name': 'foss', 'version': '2021a'} + +sources = [SOURCE_TAR_GZ] +checksums = ['ad2ca69bdd02a8942a68aae23133289b5c16ba382bcbe20c39fabf3948929de5'] + +dependencies = [ + ('Python', '3.9.5'), + ('SciPy-bundle', '2021.05'), +] + +use_pip = True +download_dep_fail = True + +sanity_check_paths = { + 'files': ['bin/macs2'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [('%(namelower)s --version')] + +options = {'modulename': name} + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/MACS3/MACS3-3.0.0b2-foss-2022b.eb b/easybuild/easyconfigs/m/MACS3/MACS3-3.0.0b2-foss-2022b.eb new file mode 100644 index 00000000000..16e37a09720 --- /dev/null +++ b/easybuild/easyconfigs/m/MACS3/MACS3-3.0.0b2-foss-2022b.eb @@ -0,0 +1,37 @@ +easyblock = 'PythonBundle' + +name = 'MACS3' +version = '3.0.0b2' + +homepage = 'https://macs3-project.github.io/MACS/' +description = """Model Based Analysis for ChIP-Seq data""" + +toolchain = {'name': 'foss', 'version': '2022b'} + +builddependencies = [ + ('pybind11', '2.10.3'), +] + +dependencies = [ + ('Python', '3.10.8'), + ('SciPy-bundle', '2023.02'), + ('matplotlib', '3.7.0'), + ('hmmlearn', '0.3.0'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('cykhash', '2.0.1', { + 'checksums': ['b4794bc9f549114d8cf1d856d9f64e08ff5f246bf043cf369fdb414e9ceb97f7'], + }), + (name, version, { + 'modulename': 'MACS3', + 'checksums': ['9b13fed49b93623ddde4b2d5106fc92a796111fa92148cafe7d8bd9a2e8aa43f'], + }), +] + +sanity_check_commands = ["macs3 --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/MAFFT/MAFFT-7.520-GCC-12.3.0-with-extensions.eb b/easybuild/easyconfigs/m/MAFFT/MAFFT-7.520-GCC-12.3.0-with-extensions.eb new file mode 100644 index 00000000000..d49ae38d3b5 --- /dev/null +++ b/easybuild/easyconfigs/m/MAFFT/MAFFT-7.520-GCC-12.3.0-with-extensions.eb @@ -0,0 +1,50 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Pablo Escobar Lopez (Swiss Institute of Bioinformatics, Biozentrum - University of Basel) +# 7.305 modified by: +# Adam Huffman (The Francis Crick Institute) +# 7.453 switch to Bundle by: +# Alex Domingo (Vrije Universiteit Brussel) +# Thomas Eylenbosch (Gluo NV) + +easyblock = 'Bundle' + +name = 'MAFFT' +version = '7.520' +versionsuffix = '-with-extensions' +local_commit = '52b59f064c600da59bca8233736418fb8bb35d5e' + +homepage = 'https://mafft.cbrc.jp/alignment/software/source.html' +description = """MAFFT is a multiple sequence alignment program for unix-like operating systems. +It offers a range of multiple alignment methods, L-INS-i (accurate; for alignment +of <∼200 sequences), FFT-NS-2 (fast; for alignment of <∼30,000 sequences), etc.""" + +toolchain = {'name': 'GCC', 'version': '12.3.0'} + +default_easyblock = 'ConfigureMake' +default_component_specs = { + 'source_urls': ['https://gitlab.com/sysimm/mafft/-/archive/v%(version)s/'], + 'sources': ['mafft-%(version)s.tar.gz'], + 'checksums': ['4a35a2a34e05313a85a4327d048704ae3ba7805ba85cae929e4978e10ad16cf8'], + 'skipsteps': ['configure'], + 'installopts': 'PREFIX=%(installdir)s', +} + +components = [ + (name, version, { + 'start_dir': 'mafft-v%%(version)s-%s/core' % local_commit, + }), + ('%s Extensions' % name, version, { + 'start_dir': 'mafft-v%%(version)s-%s/extensions' % local_commit, + }), +] + +sanity_check_paths = { + 'files': ['bin/mafft', 'libexec/mafft/mxscarnamod'], # mxscarnamod installed by MAFFT Extensions + 'dirs': ['libexec/mafft'], +} + +sanity_check_commands = ['mafft --version'] + +modextrapaths = {'MAFFT_BINARIES': 'libexec/mafft'} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/MATLAB/MATLAB-2023b.eb b/easybuild/easyconfigs/m/MATLAB/MATLAB-2023b.eb new file mode 100644 index 00000000000..f0bb088e901 --- /dev/null +++ b/easybuild/easyconfigs/m/MATLAB/MATLAB-2023b.eb @@ -0,0 +1,27 @@ +name = 'MATLAB' +version = '2023b' + +homepage = 'https://www.mathworks.com/products/matlab' +description = """MATLAB is a high-level language and interactive environment + that enables you to perform computationally intensive tasks faster than with + traditional programming languages such as C, C++, and Fortran.""" + +toolchain = SYSTEM + +sources = ['R%s_Linux.iso' % (version)] +checksums = ['f1cc4ae1a2e42a1d22745884aa80bf0d5d8676939ad21741ccff15fade06a881'] +download_instructions = 'Download %s from mathworks.com' % sources[0] + +java_options = '-Xmx2048m' + +osdependencies = [('p7zip-plugins', 'p7zip-full')] # for extracting iso-files + +# Use EB_MATLAB_KEY environment variable or uncomment and modify license key +# key = '00000-00000-00000-00000-00000-00000-00000-00000-00000-00000-00000-00000' + +# Use EB_MATLAB_LICENSE_SERVER and EB_MATLAB_LICENSE_SERVER_PORT environment variables or +# uncomment and modify the following variables for installation with floating license server +# license_file = 'my-license-file' +# license_server_port = 'XXXXX' + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/m/MCL/MCL-22.282-GCCcore-12.3.0.eb b/easybuild/easyconfigs/m/MCL/MCL-22.282-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..bdf91fee809 --- /dev/null +++ b/easybuild/easyconfigs/m/MCL/MCL-22.282-GCCcore-12.3.0.eb @@ -0,0 +1,38 @@ +easyblock = 'ConfigureMake' + +name = 'MCL' +version = '22.282' + +homepage = 'https://micans.org/mcl/' +description = """The MCL algorithm is short for the Markov Cluster Algorithm, a fast +and scalable unsupervised cluster algorithm for graphs (also known as networks) based +on simulation of (stochastic) flow in graphs. """ + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +source_urls = ['http://micans.org/%(namelower)s/src/'] +sources = ['%(namelower)s-%(version_major)s-%(version_minor)s.tar.gz'] +checksums = ['291f35837b6e852743bd87e499c5a46936125dcdf334f7747af92e88ac902183'] + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('Perl', '5.36.1'), + ('cimfomfa', '22.273'), +] + +configopts = '--enable-rcl ' + +fix_perl_shebang_for = ['bin/*.pl'] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['clm', 'clxdo', 'mcl', 'mcx', 'mcxarray', 'mcxdump', 'mcxi', + 'mcxload', 'mcxmap', 'mcxsubs', 'rcl', 'rcl-qc']], + 'dirs': ['share'] +} + +sanity_check_commands = ["mcl --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/MEGAN/MEGAN-6.25.3-Java-17.eb b/easybuild/easyconfigs/m/MEGAN/MEGAN-6.25.3-Java-17.eb new file mode 100644 index 00000000000..6d8ff7d7664 --- /dev/null +++ b/easybuild/easyconfigs/m/MEGAN/MEGAN-6.25.3-Java-17.eb @@ -0,0 +1,35 @@ +easyblock = 'Binary' + +name = 'MEGAN' +version = '6.25.3' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'http://megan.informatik.uni-tuebingen.de/' +description = "MEGAN is a comprehensive toolbox for interactively analyzing microbiome data" + +toolchain = SYSTEM + +local_installer = '%%(name)s_Community_unix_%s.sh' % version.replace('.', '_') + +source_urls = ['https://software-ab.cs.uni-tuebingen.de/download/megan%(version_major)s/'] +sources = [local_installer] +checksums = ['0dcb317250f12e8a193442d9710f3bce2a9bbce79e509dd1d2f54d337c988e62'] + +dependencies = [('Java', '17')] + +install_cmd = 'chmod +x %s && ./%s -q -dir %%(installdir)s' % (local_installer, local_installer) + +postinstallcmds = ["rm %(installdir)s/uninstall"] + +sanity_check_paths = { + 'files': ['MEGAN'], + 'dirs': ['jars', 'jars2', 'tools'], +} + +sanity_check_commands = ["megan-server --help"] + +modextrapaths = { + 'PATH': ['tools', 'tools/utils'], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/MMseqs2/MMseqs2-14-7e284-gompi-2023a.eb b/easybuild/easyconfigs/m/MMseqs2/MMseqs2-14-7e284-gompi-2023a.eb new file mode 100644 index 00000000000..8cf62d2fc23 --- /dev/null +++ b/easybuild/easyconfigs/m/MMseqs2/MMseqs2-14-7e284-gompi-2023a.eb @@ -0,0 +1,27 @@ +easyblock = 'CMakeMake' + +name = 'MMseqs2' +version = '14-7e284' + +homepage = 'https://mmseqs.com' +description = "MMseqs2: ultra fast and sensitive search and clustering suite" + +toolchain = {'name': 'gompi', 'version': '2023a'} + +github_account = 'soedinglab' +source_urls = [GITHUB_SOURCE] +sources = ['%(version)s.tar.gz'] +checksums = ['a15fd59b121073fdcc8b259fc703e5ce4c671d2c56eb5c027749f4bd4c28dfe1'] + +builddependencies = [('CMake', '3.26.3')] + +dependencies = [('bzip2', '1.0.8')] + +sanity_check_paths = { + 'files': ['bin/mmseqs'], + 'dirs': [], +} + +sanity_check_commands = ["mmseqs --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/MONAI/MONAI-1.0.1-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/m/MONAI/MONAI-1.0.1-foss-2022a-CUDA-11.7.0.eb index 134fe42c205..23b259a17e0 100644 --- a/easybuild/easyconfigs/m/MONAI/MONAI-1.0.1-foss-2022a-CUDA-11.7.0.eb +++ b/easybuild/easyconfigs/m/MONAI/MONAI-1.0.1-foss-2022a-CUDA-11.7.0.eb @@ -18,6 +18,7 @@ dependencies = [ ('CUDA', '11.7.0', '', SYSTEM), ('Python', '3.10.4'), ('PyTorch', '1.12.0', versionsuffix), + ('PyTorch-Ignite', '0.4.12', versionsuffix), ('einops', '0.4.1'), ('ITK', '5.2.1'), ('NiBabel', '4.0.2'), @@ -25,15 +26,46 @@ dependencies = [ ('tensorboard', '2.10.0'), ('torchvision', '0.13.1', versionsuffix), ('tqdm', '4.64.0'), + ('Pillow', '9.1.1'), + ('openslide-python', '1.2.0'), + ('BeautifulSoup', '4.10.0'), ] +# install MONAI with list of 'extras', which require additional dependencies +local_pip_extras = "nibabel,skimage,pillow,tensorboard,gdown,ignite,torchvision,itk,tqdm,lmdb,psutil,openslide,fire" + +# avoid using hatchling as build backend (since installing it for this old Python version is a nightmare) +local_preinstallopts_termcolor = ' '.join([ + r"""sed -i -e 's/^build-backend = .*/build-backend = "setuptools.build_meta"/g' """, + r"""-e 's/^requires = \[/requires = \["setuptools"/g' """, + r"""-e '/"hatch/d' """, + # replace dynamic version with hardcoded version + r"""-e '/"version"/d' """, + r"""-e 's/^readme = .*/version = "%(version)s"/g' """, + r"pyproject.toml && ", +]) + exts_list = [ + ('gdown', '4.7.1', { + 'checksums': ['347f23769679aaf7efa73e5655270fcda8ca56be65eb84a4a21d143989541045'], + }), + ('lmdb', '1.4.1', { + 'checksums': ['1f4c76af24e907593487c904ef5eba1993beb38ed385af82adb25a858f2d658d'], + }), + ('termcolor', '2.3.0', { + 'checksums': ['b5b08f68937f138fe92f6c089b99f1e2da0ae56c52b78bf7075fd95420fd9a5a'], + 'preinstallopts': local_preinstallopts_termcolor, + }), + ('fire', '0.5.0', { + 'checksums': ['a6b0d49e98c8963910021f92bba66f65ab440da2982b78eb1bbf95a0a34aacc6'], + }), (name, version, { - 'preinstallopts': 'BUILD_MONAI=1', - 'source_tmpl': '%(version)s.tar.gz', 'source_urls': ['https://github.com/%(github_account)s/%(name)s/archive'], + 'sources': ['%(version)s.tar.gz'], 'checksums': [('dc961e0adbe1b0c87b85f69377267d60c835f24eb03c8982a21b23a93c6ec36b', 'bb1a84ea3c4cd2c3756f72359a891843e0efa02da17537fb158b28c4e0b2d243')], + 'preinstallopts': "BUILD_MONAI=1", + 'use_pip_extras': local_pip_extras, }), ] @@ -41,7 +73,13 @@ use_pip = True sanity_pip_check = True -sanity_check_commands = ["python -c 'import monai; monai.config.print_config()'"] +# 'pip check' does not verify whether all optional dependencies required to support 'extras' +# are actually available, so we do it here via an import check; +# Pillow is a special case, since there we need to use 'import PIL' +sanity_check_commands = [ + "python -c 'import monai; monai.config.print_config()'", + "python -c 'import PIL'", # for Pillow required dependency +] + ["python -c 'import %s'" % x for x in local_pip_extras.split(',') if x != 'pillow'] sanity_check_paths = { 'files': ['lib/python%%(pyshortver)s/site-packages/%%(namelower)s/_C.%s' % SHLIB_EXT], diff --git a/easybuild/easyconfigs/m/MONAI/MONAI-1.0.1-foss-2022a.eb b/easybuild/easyconfigs/m/MONAI/MONAI-1.0.1-foss-2022a.eb index 04560e4c6fd..d40fe8f2614 100644 --- a/easybuild/easyconfigs/m/MONAI/MONAI-1.0.1-foss-2022a.eb +++ b/easybuild/easyconfigs/m/MONAI/MONAI-1.0.1-foss-2022a.eb @@ -16,6 +16,7 @@ github_account = 'Project-MONAI' dependencies = [ ('Python', '3.10.4'), ('PyTorch', '1.12.0'), + ('PyTorch-Ignite', '0.4.12'), ('einops', '0.4.1'), ('ITK', '5.2.1'), ('NiBabel', '4.0.2'), @@ -23,15 +24,46 @@ dependencies = [ ('tensorboard', '2.10.0'), ('torchvision', '0.13.1'), ('tqdm', '4.64.0'), + ('Pillow', '9.1.1'), + ('openslide-python', '1.2.0'), + ('BeautifulSoup', '4.10.0'), ] +# install MONAI with list of 'extras', which require additional dependencies +local_pip_extras = "nibabel,skimage,pillow,tensorboard,gdown,ignite,torchvision,itk,tqdm,lmdb,psutil,openslide,fire" + +# avoid using hatchling as build backend (since installing it for this old Python version is a nightmare) +local_preinstallopts_termcolor = ' '.join([ + r"""sed -i -e 's/^build-backend = .*/build-backend = "setuptools.build_meta"/g' """, + r"""-e 's/^requires = \[/requires = \["setuptools"/g' """, + r"""-e '/"hatch/d' """, + # replace dynamic version with hardcoded version + r"""-e '/"version"/d' """, + r"""-e 's/^readme = .*/version = "%(version)s"/g' """, + r"pyproject.toml && ", +]) + exts_list = [ + ('gdown', '4.7.1', { + 'checksums': ['347f23769679aaf7efa73e5655270fcda8ca56be65eb84a4a21d143989541045'], + }), + ('lmdb', '1.4.1', { + 'checksums': ['1f4c76af24e907593487c904ef5eba1993beb38ed385af82adb25a858f2d658d'], + }), + ('termcolor', '2.3.0', { + 'checksums': ['b5b08f68937f138fe92f6c089b99f1e2da0ae56c52b78bf7075fd95420fd9a5a'], + 'preinstallopts': local_preinstallopts_termcolor, + }), + ('fire', '0.5.0', { + 'checksums': ['a6b0d49e98c8963910021f92bba66f65ab440da2982b78eb1bbf95a0a34aacc6'], + }), (name, version, { - 'preinstallopts': 'BUILD_MONAI=1', - 'source_tmpl': '%(version)s.tar.gz', 'source_urls': ['https://github.com/%(github_account)s/%(name)s/archive'], + 'sources': ['%(version)s.tar.gz'], 'checksums': [('dc961e0adbe1b0c87b85f69377267d60c835f24eb03c8982a21b23a93c6ec36b', 'bb1a84ea3c4cd2c3756f72359a891843e0efa02da17537fb158b28c4e0b2d243')], + 'preinstallopts': "BUILD_MONAI=1", + 'use_pip_extras': local_pip_extras, }), ] @@ -39,7 +71,13 @@ use_pip = True sanity_pip_check = True -sanity_check_commands = ["python -c 'import monai; monai.config.print_config()'"] +# 'pip check' does not verify whether all optional dependencies required to support 'extras' +# are actually available, so we do it here via an import check; +# Pillow is a special case, since there we need to use 'import PIL' +sanity_check_commands = [ + "python -c 'import monai; monai.config.print_config()'", + "python -c 'import PIL'", # for Pillow required dependency +] + ["python -c 'import %s'" % x for x in local_pip_extras.split(',') if x != 'pillow'] sanity_check_paths = { 'files': ['lib/python%%(pyshortver)s/site-packages/%%(namelower)s/_C.%s' % SHLIB_EXT], diff --git a/easybuild/easyconfigs/m/MPC/MPC-1.3.1-GCCcore-12.2.0.eb b/easybuild/easyconfigs/m/MPC/MPC-1.3.1-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..dfb7008a060 --- /dev/null +++ b/easybuild/easyconfigs/m/MPC/MPC-1.3.1-GCCcore-12.2.0.eb @@ -0,0 +1,35 @@ +easyblock = 'ConfigureMake' + +name = 'MPC' +version = '1.3.1' + +homepage = 'http://www.multiprecision.org/' +description = """Gnu Mpc is a C library for the arithmetic of + complex numbers with arbitrarily high precision and correct + rounding of the result. It extends the principles of the IEEE-754 + standard for fixed precision real floating point numbers to + complex numbers, providing well-defined semantics for every + operation. At the same time, speed of operation at high precision + is a major design goal.""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +source_urls = ['https://ftpmirror.gnu.org/gnu/mpc/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['ab642492f5cf882b74aa0cb730cd410a81edcdbec895183ce930e706c1c759b8'] + +builddependencies = [('binutils', '2.39')] + +dependencies = [ + ('GMP', '6.2.1'), + ('MPFR', '4.2.0'), +] + +runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libmpc.%s' % SHLIB_EXT, 'include/mpc.h'], + 'dirs': [] +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/m/MPC/MPC-1.3.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/m/MPC/MPC-1.3.1-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..e4b06ad227b --- /dev/null +++ b/easybuild/easyconfigs/m/MPC/MPC-1.3.1-GCCcore-13.2.0.eb @@ -0,0 +1,35 @@ +easyblock = 'ConfigureMake' + +name = 'MPC' +version = '1.3.1' + +homepage = 'http://www.multiprecision.org/' +description = """Gnu Mpc is a C library for the arithmetic of + complex numbers with arbitrarily high precision and correct + rounding of the result. It extends the principles of the IEEE-754 + standard for fixed precision real floating point numbers to + complex numbers, providing well-defined semantics for every + operation. At the same time, speed of operation at high precision + is a major design goal.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://ftpmirror.gnu.org/gnu/mpc/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['ab642492f5cf882b74aa0cb730cd410a81edcdbec895183ce930e706c1c759b8'] + +builddependencies = [('binutils', '2.40')] + +dependencies = [ + ('GMP', '6.3.0'), + ('MPFR', '4.2.1'), +] + +runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libmpc.%s' % SHLIB_EXT, 'include/mpc.h'], + 'dirs': [] +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/m/MPFR/MPFR-4.2.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/m/MPFR/MPFR-4.2.1-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..ee90c2c294b --- /dev/null +++ b/easybuild/easyconfigs/m/MPFR/MPFR-4.2.1-GCCcore-13.2.0.eb @@ -0,0 +1,39 @@ +easyblock = 'ConfigureMake' + +name = 'MPFR' +version = '4.2.1' + +homepage = 'https://www.mpfr.org' + +description = """ + The MPFR library is a C library for multiple-precision floating-point + computations with correct rounding. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://www.mpfr.org/mpfr-%(version)s/'] +sources = [SOURCELOWER_TAR_BZ2] +checksums = ['b9df93635b20e4089c29623b19420c4ac848a1b29df1cfd59f26cab0d2666aa0'] + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('GMP', '6.3.0'), +] + +runtest = 'check' + +# copy libmpfr.so* to /lib to make sure that it is picked up by tests +# when EasyBuild is configured with --rpath, and clean up afterwards (let 'make install' do its job) +pretestopts = "mkdir -p %%(installdir)s/lib && cp -a src/.libs/libmpfr.%s* %%(installdir)s/lib && " % SHLIB_EXT +testopts = " && rm -r %(installdir)s/lib" + +sanity_check_paths = { + 'files': ['lib/libmpfr.%s' % SHLIB_EXT, 'include/mpfr.h'], + 'dirs': [], +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/m/MUSCLE3/MUSCLE3-0.7.0-foss-2022b.eb b/easybuild/easyconfigs/m/MUSCLE3/MUSCLE3-0.7.0-foss-2022b.eb new file mode 100644 index 00000000000..f0db20b1b69 --- /dev/null +++ b/easybuild/easyconfigs/m/MUSCLE3/MUSCLE3-0.7.0-foss-2022b.eb @@ -0,0 +1,97 @@ +easyblock = 'ConfigureMakePythonPackage' + +name = 'MUSCLE3' +version = '0.7.0' + +homepage = 'https://muscle3.readthedocs.io/en/latest/index.html' + +description = """MUSCLE3 allows connecting multiple simulation models + together into a multiscale simulation. Simulation models can be as + simple as a single Python file, or as complex as a combination of + multiple separate simulation codes written in C++ or Fortran, and + running on an HPC machine.""" + +toolchain = {'name': 'foss', 'version': '2022b'} + +source_urls = ['https://github.com/multiscale/%(namelower)s/archive/refs/tags/'] +sources = ['%(version)s.tar.gz'] +checksums = ['e2ab6f0d219845c7bcdf9ebade9572b647d5dc464179b4714211db68fd9cb062'] + +builddependencies = [ + ('CMake', '3.24.3'), + ('googletest', '1.12.1'), +] + +dependencies = [ + ('msgpack-c', '6.0.0'), + ('zlib', '1.2.12'), + ('Python', '3.10.8'), + ('SciPy-bundle', '2023.02'), + ('QCG-PilotJob', '0.13.1'), + ('ruamel.yaml', '0.17.21'), + ('matplotlib', '3.7.0'), +] + +skipsteps = ['configure'] + +prebuildopts = 'msgpack_ROOT=$EBROOTMSGPACKMINC ' +preinstallopts = 'PREFIX=%(installdir)s ' +testopts = 'googletest_ROOT=$EBROOTGOOGLETEST' + +exts_defaultclass = 'PythonPackage' + +exts_default_options = { + 'source_urls': [PYPI_SOURCE], + 'use_pip': True, + 'download_dep_fail': True, + 'sanity_pip_check': True, +} + +exts_list = [ + ('typing_extensions', '4.7.1', { + 'checksums': ['b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2'], + }), + ('msgpack', '1.0.5', { + 'checksums': ['c075544284eadc5cddc70f4757331d99dcbc16b2bbd4849d15f8aae4cf36d31c'], + }), + ('click', '8.1.4', { + 'checksums': ['b97d0c74955da062a7d4ef92fadb583806a585b2ea81958a81bd72726cbb8e37'], + }), + ('yatiml', '0.10.0', { + 'checksums': ['4d23bfd7bbf45ae603c08fcb70d0c86404934a0cef24fb77b532705ff195fc92'], + }), + ('ymmsl', '0.13.0', { + 'checksums': ['861c8b728d2808b8e8eb31592af42c5c4317b441fbd83d050ccf91fa24a9212e'], + }), + ('netifaces', '0.11.0', { + 'checksums': ['043a79146eb2907edf439899f262b3dfe41717d34124298ed281139a8b93ca32'], + }), + ('muscle3', version, { + 'source_tmpl': '%(version)s.tar.gz', + 'source_urls': ['https://github.com/multiscale/muscle3/archive/refs/tags/'], + 'checksums': ['e2ab6f0d219845c7bcdf9ebade9572b647d5dc464179b4714211db68fd9cb062'], + }), +] + +modextrapaths = { + 'MUSCLE3_HOME': '', +} + +sanity_check_paths = { + 'files': ['bin/muscle3', 'bin/muscle3.env', 'bin/muscle_manager', + 'include/libmuscle.f90', 'include/libmuscle.mod', 'include/libmuscle/libmuscle.hpp', + 'include/ymmsl/ymmsl.hpp', 'lib/libmuscle.a', 'lib/libmuscle.%s' % SHLIB_EXT, + 'lib/libmuscle_fortran.a', 'lib/libmuscle_fortran.%s' % SHLIB_EXT, + 'lib/libymmsl.a', 'lib/libymmsl.%s' % SHLIB_EXT, + 'lib/libymmsl_fortran.a', 'lib/libymmsl_fortran.%s' % SHLIB_EXT, + 'lib/pkgconfig/libmuscle.pc', 'lib/pkgconfig/libmuscle_fortran.pc', + 'lib/pkgconfig/ymmsl.pc', 'lib/pkgconfig/ymmsl_fortran.pc'], + 'dirs': [], +} + +sanity_check_commands = [ + "muscle3 --help", + "muscle_manager --help", +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/m/Mako/Mako-1.2.4-GCCcore-13.2.0.eb b/easybuild/easyconfigs/m/Mako/Mako-1.2.4-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..5453be92e4d --- /dev/null +++ b/easybuild/easyconfigs/m/Mako/Mako-1.2.4-GCCcore-13.2.0.eb @@ -0,0 +1,35 @@ +easyblock = 'PythonBundle' + +name = 'Mako' +version = '1.2.4' + +homepage = 'https://www.makotemplates.org' +description = """A super-fast templating language that borrows the best ideas from the existing templating languages""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +builddependencies = [('binutils', '2.40')] + +dependencies = [('Python', '3.11.5')] + +use_pip = True + +exts_list = [ + ('MarkupSafe', '2.1.3', { + 'checksums': ['af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad'], + }), + (name, version, { + 'checksums': ['d60a3903dc3bb01a18ad6a89cdbe2e4eadc69c0bc8ef1e3773ba53d44c3f7a34'], + }), +] + +sanity_pip_check = True + +sanity_check_paths = { + 'files': ['bin/mako-render'], + 'dirs': ['lib/python%(pyshortver)s/site-packages/%(namelower)s'], +} + +sanity_check_commands = ["mako-render --help"] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/m/Mash/Mash-2.3-GCC-11.2.0.eb b/easybuild/easyconfigs/m/Mash/Mash-2.3-GCC-11.2.0.eb index 7d12008cb15..04d5033cf83 100644 --- a/easybuild/easyconfigs/m/Mash/Mash-2.3-GCC-11.2.0.eb +++ b/easybuild/easyconfigs/m/Mash/Mash-2.3-GCC-11.2.0.eb @@ -12,7 +12,6 @@ homepage = 'http://mash.readthedocs.org' description = "Fast genome and metagenome distance estimation using MinHash" toolchain = {'name': 'GCC', 'version': '11.2.0'} -toolchainopts = {'cstd': 'c++17'} source_urls = ['https://github.com/marbl/Mash/archive/'] sources = ['v%(version)s.tar.gz'] diff --git a/easybuild/easyconfigs/m/Mash/Mash-2.3-GCC-11.3.0.eb b/easybuild/easyconfigs/m/Mash/Mash-2.3-GCC-11.3.0.eb index 157dc810cfd..cf5c886d18f 100644 --- a/easybuild/easyconfigs/m/Mash/Mash-2.3-GCC-11.3.0.eb +++ b/easybuild/easyconfigs/m/Mash/Mash-2.3-GCC-11.3.0.eb @@ -12,7 +12,6 @@ homepage = 'http://mash.readthedocs.org' description = "Fast genome and metagenome distance estimation using MinHash" toolchain = {'name': 'GCC', 'version': '11.3.0'} -toolchainopts = {'cstd': 'c++17'} source_urls = ['https://github.com/marbl/Mash/archive/'] sources = ['v%(version)s.tar.gz'] diff --git a/easybuild/easyconfigs/m/Mash/Mash-2.3-GCC-12.2.0.eb b/easybuild/easyconfigs/m/Mash/Mash-2.3-GCC-12.2.0.eb new file mode 100644 index 00000000000..e8e396f1ca2 --- /dev/null +++ b/easybuild/easyconfigs/m/Mash/Mash-2.3-GCC-12.2.0.eb @@ -0,0 +1,47 @@ +# Contribution by +# DeepThought, Flinders University +# Updated to v2.2 +# R.QIAO + +easyblock = 'ConfigureMake' + +name = 'Mash' +version = '2.3' + +homepage = 'http://mash.readthedocs.org' +description = "Fast genome and metagenome distance estimation using MinHash" + +toolchain = {'name': 'GCC', 'version': '12.2.0'} + +source_urls = ['https://github.com/marbl/Mash/archive/'] +sources = ['v%(version)s.tar.gz'] +patches = [ + 'Mash-2.2_fix-hardcoding.patch', + 'Mash-2.1_disable-memcpy-wrap.patch', + 'Mash-2.3_fix-GCC-11.patch', +] +checksums = [ + 'f96cf7305e010012c3debed966ac83ceecac0351dbbfeaa6cd7ad7f068d87fe1', # v2.3.tar.gz + '0c7315af727a06f408ab3ca69da0860fc671aa870b448a41a509b1e6d7027db5', # Mash-2.2_fix-hardcoding.patch + '40990cf3d192b533736374bc67a54dbd839d90b0310a0a66f994891da1f85b6e', # Mash-2.1_disable-memcpy-wrap.patch + '47a55459d4e8c57949648e0f33f3ffc3529563db0efe60f495fdec046f48d94e', # Mash-2.3_fix-GCC-11.patch +] + +builddependencies = [('Autotools', '20220317')] +dependencies = [ + ('CapnProto', '0.10.3'), + ('GSL', '2.7'), + ('zlib', '1.2.12'), +] + +preconfigopts = "./bootstrap.sh && " +configopts = "--with-capnp=$EBROOTCAPNPROTO --with-gsl=$EBROOTGSL" + +sanity_check_paths = { + 'files': ['bin/mash', 'lib/libmash.a'], + 'dirs': ['include/mash'], +} + +sanity_check_commands = ['mash --version'] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/Mash/Mash-2.3-GCC-12.3.0.eb b/easybuild/easyconfigs/m/Mash/Mash-2.3-GCC-12.3.0.eb new file mode 100644 index 00000000000..c7591fbc91d --- /dev/null +++ b/easybuild/easyconfigs/m/Mash/Mash-2.3-GCC-12.3.0.eb @@ -0,0 +1,47 @@ +# Contribution by +# DeepThought, Flinders University +# Updated to v2.2 +# R.QIAO + +easyblock = 'ConfigureMake' + +name = 'Mash' +version = '2.3' + +homepage = 'http://mash.readthedocs.org' +description = "Fast genome and metagenome distance estimation using MinHash" + +toolchain = {'name': 'GCC', 'version': '12.3.0'} + +source_urls = ['https://github.com/marbl/Mash/archive/'] +sources = ['v%(version)s.tar.gz'] +patches = [ + 'Mash-2.2_fix-hardcoding.patch', + 'Mash-2.1_disable-memcpy-wrap.patch', + 'Mash-2.3_fix-GCC-11.patch', +] +checksums = [ + 'f96cf7305e010012c3debed966ac83ceecac0351dbbfeaa6cd7ad7f068d87fe1', # v2.3.tar.gz + '0c7315af727a06f408ab3ca69da0860fc671aa870b448a41a509b1e6d7027db5', # Mash-2.2_fix-hardcoding.patch + '40990cf3d192b533736374bc67a54dbd839d90b0310a0a66f994891da1f85b6e', # Mash-2.1_disable-memcpy-wrap.patch + '47a55459d4e8c57949648e0f33f3ffc3529563db0efe60f495fdec046f48d94e', # Mash-2.3_fix-GCC-11.patch +] + +builddependencies = [('Autotools', '20220317')] +dependencies = [ + ('CapnProto', '1.0.1'), + ('GSL', '2.7'), + ('zlib', '1.2.13'), +] + +preconfigopts = "./bootstrap.sh && " +configopts = "--with-capnp=$EBROOTCAPNPROTO --with-gsl=$EBROOTGSL" + +sanity_check_paths = { + 'files': ['bin/mash', 'lib/libmash.a'], + 'dirs': ['include/mash'], +} + +sanity_check_commands = ['mash --version'] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/Mashtree/Mashtree-1.4.6-GCC-12.2.0.eb b/easybuild/easyconfigs/m/Mashtree/Mashtree-1.4.6-GCC-12.2.0.eb new file mode 100644 index 00000000000..0b08019f1de --- /dev/null +++ b/easybuild/easyconfigs/m/Mashtree/Mashtree-1.4.6-GCC-12.2.0.eb @@ -0,0 +1,62 @@ +easyblock = 'Bundle' + +name = 'Mashtree' +version = '1.4.6' + +description = "Create a tree using Mash distances." + +homepage = 'https://github.com/lskatz/mashtree' + +toolchain = {'name': 'GCC', 'version': '12.2.0'} + +builddependencies = [ + ('pkgconf', '1.9.3'), +] + +dependencies = [ + ('Perl', '5.36.0'), + ('BioPerl', '1.7.8'), + ('Mash', '2.3'), + ('QuickTree', '2.5'), +] + +# this is a bundle of Perl modules +exts_defaultclass = 'PerlModule' +exts_filter = ("perl -e 'require %(ext_name)s'", '') + +exts_list = [ + ('Class::Interface', '1.01', { + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SI/SINISTER/'], + 'sources': ['Class-Interface-1.01.tar.gz'], + 'checksums': ['9fba15cda745ad37f451a0b9e698da3dfc12c2e8589016416a1e3ad77e444b7b'], + }), + ('Bio::Sketch', '0.3', { + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LS/LSKATZ/'], + 'sources': ['Bio-Sketch-0.3.tar.gz'], + 'checksums': ['7ac38552c80ae38e0c72ba3cfa4ecf667aca8b4080616415027bcba1420c8ae2'], + }), + ('Bio::Sketch::Mash', '0.9', { + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LS/LSKATZ/'], + 'sources': ['Bio-Sketch-Mash-0.9.tar.gz'], + 'checksums': ['ea15858bc75674e22bb26d570d5f94c1b4eb5476bbc7bbabdf07359ebd041280'], + }), + (name, version, { + 'source_urls': ['https://github.com/lskatz/mashtree/archive/refs/tags/'], + 'sources': ['v%(version)s.tar.gz'], + 'checksums': ['1bd427aba025886d9df99c95f685e06dc2226bca080a64a9cb9d341b5a3d6dac'], + }), +] + +sanity_check_paths = { + 'files': ['bin/mashtree'], + 'dirs': [] +} + +modextrapaths = {'PERL5LIB': [ + 'lib/perl5/site_perl/%(perlver)s', + 'lib/perl5/site_perl/%(perlver)s/x86_64-linux-thread-multi', +]} + +sanity_check_commands = ["mashtree -h"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-23.1.9-GCCcore-13.2.0.eb b/easybuild/easyconfigs/m/Mesa/Mesa-23.1.9-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..906c5eb2634 --- /dev/null +++ b/easybuild/easyconfigs/m/Mesa/Mesa-23.1.9-GCCcore-13.2.0.eb @@ -0,0 +1,66 @@ +# This is a Mesa using software rendering via Gallium-DRI and libglvnd +# - libglvnd can dynamically choose between system-installed NVidia +# libGLX/libEGL or the software renderers provided by this Mesa +# - EGL is available +# +# Software renderers enabled (swr deprecated as of v22): +# - llvmpipe: uses LLVM for JIT code generation (multi-threaded) +# - softpipe: a reference Gallium driver +# Default renderer is llvmpipe. To use softpipe, set the environment +# variable GALLIUM_DRIVER=softpipe + +name = 'Mesa' +version = '23.1.9' + +homepage = 'https://www.mesa3d.org/' +description = """Mesa is an open-source implementation of the OpenGL specification - + a system for rendering interactive 3D graphics.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = [ + 'https://mesa.freedesktop.org/archive/', + 'https://mesa.freedesktop.org/archive/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x', +] +sources = [SOURCELOWER_TAR_XZ] +checksums = ['295ba27c28146ed09214e8ce79afa1659edf9d142decc3c91f804552d64f7510'] + +builddependencies = [ + ('binutils', '2.40'), + ('Meson', '1.2.3'), + ('Ninja', '1.11.1'), + ('flex', '2.6.4'), + ('Bison', '3.8.2'), + ('pkgconf', '2.0.3'), + ('Mako', '1.2.4'), + ('libxml2', '2.11.5'), + ('expat', '2.5.0'), + ('gettext', '0.22'), +] + +dependencies = [ + ('zlib', '1.2.13'), + ('zstd', '1.5.5'), + ('libdrm', '2.4.117'), + ('libglvnd', '1.7.0'), + ('libunwind', '1.6.2'), + ('LLVM', '16.0.6'), + ('X11', '20231019'), +] + +configopts = "-Dplatforms=x11 -Dosmesa=true -Dvulkan-drivers='' " +configopts += "-Dllvm=enabled -Dshared-llvm=enabled -Dlibunwind=enabled -Dglvnd=true" + +# Easybuild will automatically add appropriate Gallium drivers for the processor architecture of the host +# If you need a different configuration, it possible to override those values by setting your own configopts +# configopts += " -Dgallium-drivers=swrast" + +# symlink indirect to mesa GLX, similar to Debian, see +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=881789 +# This helps in certain X forwarding situations (e.g. XQuartz) +postinstallcmds = ["ln -s libGLX_mesa.so.0 %(installdir)s/lib/libGLX_indirect.so.0"] + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/m/Meson/Meson-1.2.3-GCCcore-13.2.0.eb b/easybuild/easyconfigs/m/Meson/Meson-1.2.3-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..2b678aa7152 --- /dev/null +++ b/easybuild/easyconfigs/m/Meson/Meson-1.2.3-GCCcore-13.2.0.eb @@ -0,0 +1,36 @@ +easyblock = 'PythonPackage' + +name = 'Meson' +version = '1.2.3' + +homepage = 'https://mesonbuild.com' +description = "Meson is a cross-platform build system designed to be both as fast and as user friendly as possible." + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +sources = [SOURCELOWER_TAR_GZ] +checksums = ['4533a43c34548edd1f63a276a42690fce15bde9409bcf20c4b8fa3d7e4d7cac1'] + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('Python', '3.11.5'), # includes required 'wheel' package + ('Ninja', '1.11.1'), +] + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +options = {'modulename': 'mesonbuild'} + +sanity_check_paths = { + 'files': ['bin/meson'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["meson --help"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/m/Monocle3/Monocle3-1.3.1-foss-2022b-R-4.2.2.eb b/easybuild/easyconfigs/m/Monocle3/Monocle3-1.3.1-foss-2022b-R-4.2.2.eb new file mode 100644 index 00000000000..c19d8aff457 --- /dev/null +++ b/easybuild/easyconfigs/m/Monocle3/Monocle3-1.3.1-foss-2022b-R-4.2.2.eb @@ -0,0 +1,79 @@ +easyblock = 'Bundle' + +name = 'Monocle3' +version = '1.3.1' +versionsuffix = '-R-%(rver)s' + +homepage = 'https://cole-trapnell-lab.github.io/monocle3/' +description = """ An analysis toolkit for single-cell RNA-seq. """ + +toolchain = {'name': 'foss', 'version': '2022b'} + +builddependencies = [('pkgconf', '1.9.3')] # for textshaping + +dependencies = [ + ('R', '4.2.2'), + ('Python', '3.10.8'), + ('R-bundle-Bioconductor', '3.16', versionsuffix), + ('GDAL', '3.6.2'), + ('HarfBuzz', '5.3.1'), # for textshaping + ('FriBidi', '1.0.12'), # for textshaping +] + +github_account = 'cole-trapnell-lab' +exts_defaultclass = 'RPackage' +exts_default_options = { + 'source_urls': [ + 'https://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'https://cran.r-project.org/src/contrib/', # current version of packages + 'https://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], + 'source_tmpl': '%(name)s_%(version)s.tar.gz', +} + +exts_list = [ + ('grr', '0.9.5', { + 'checksums': ['292606de2983ac5840c90d3e0977441b482c9e73c1674b662f8b4fb8f3632b2b'], + }), + ('Matrix.utils', '0.9.8', { + 'checksums': ['ebc59d3ef751775515586ff1f2396e429a1e9d91a10099d804134fcf74c0ae28'], + }), + ('pbmcapply', '1.5.1', { + 'checksums': ['7ffc2854a384962f0dd523aa9ef33ce8fc290997206b71b840a49049d87112dd'], + }), + ('furrr', '0.3.1', { + 'checksums': ['0d91735e2e9be759b1ab148d115c2c7429b79740514778828e5dab631dc0e48b'], + }), + ('RhpcBLASctl', '0.21-247.1', { + 'checksums': ['5be55fd5ddd8173167a48b9f072835a34062ad0268308f2b3fbd1781a5c99769'], + }), + ('spdep', '1.2-7', { + 'checksums': ['9dac594825bf2d0aa31e845bfec05d8ce206327840fe455391741dbbdf9c9eea'], + }), + ('biglm', '0.9-2.1', { + 'checksums': ['6dcf3c9e7c3f56cdaac94cc0c427f606880467e1e753fe7ea45c10bc44eec947'], + }), + ('speedglm', '0.3-5', { + 'checksums': ['f8663677c10ff324c5639402060ddd2b1a1e917445cb0f8f84e146b85e82bb4b'], + }), + ('leidenbase', '0.1.9', { + 'source_urls': ['https://github.com/%(github_account)s/leidenbase/archive'], + 'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': 'leidenbase-%(version)s.tar.gz'}], + 'checksums': ['dd893b13b04d4b943243e7ac8d2ef1850b60d0437b2e4d36a9cff57cd4953f54'], + }), + (name, version, { + 'modulename': '%(namelower)s', + 'source_urls': ['https://github.com/%(github_account)s/monocle3/archive'], + 'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': 'Monocle3-%(version)s.tar.gz'}], + 'checksums': ['30e86d5323ea22b302614813ecf102f26774b42710589671a1f1d51ef9ad183d'], + }), +] + +modextrapaths = {'R_LIBS_SITE': ''} + +sanity_check_paths = { + 'files': [], + 'dirs': ['leidenbase', '%(namelower)s'], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/make/make-4.4.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/m/make/make-4.4.1-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..48803d5731a --- /dev/null +++ b/easybuild/easyconfigs/m/make/make-4.4.1-GCCcore-13.2.0.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'make' +version = '4.4.1' + +homepage = 'https://www.gnu.org/software/make/make.html' +description = "GNU version of make utility" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['dd16fb1d67bfab79a72f5e8390735c49e3e8e70b4945a15ab1f81ddb78658fb3'] + +builddependencies = [('binutils', '2.40')] + +postinstallcmds = ["cd %(installdir)s/bin && ln -s make gmake"] + +sanity_check_paths = { + 'files': ['bin/gmake', 'bin/make'], + 'dirs': [] +} + +sanity_check_commands = [ + "gmake --help", + "make --help", +] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.7-GCCcore-12.3.0.eb b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.7-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..6451e9a2465 --- /dev/null +++ b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.7-GCCcore-12.3.0.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'makedepend' +version = '1.0.7' + +homepage = 'https://linux.die.net/man/1/makedepend' +description = "The makedepend package contains a C-preprocessor like utility to determine build-time dependencies." + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +source_urls = [XORG_UTIL_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['17c1adf0284aaee473abfff0e8d3e754770615e1275f2a0043b9d97a00ed5cc9'] + +builddependencies = [ + ('binutils', '2.40'), + ('xproto', '7.0.31'), + ('xorg-macros', '1.20.0'), +] + +sanity_check_paths = { + 'files': ['bin/makedepend'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/m/makeinfo/makeinfo-7.0.3-GCCcore-12.2.0.eb b/easybuild/easyconfigs/m/makeinfo/makeinfo-7.0.3-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..2b0fda7ea30 --- /dev/null +++ b/easybuild/easyconfigs/m/makeinfo/makeinfo-7.0.3-GCCcore-12.2.0.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'makeinfo' +version = '7.0.3' + +homepage = 'https://www.gnu.org/software/texinfo/' +description = """makeinfo is part of the Texinfo project, the official documentation format of the GNU project.""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +source_urls = ['https://ftpmirror.gnu.org/gnu/texinfo'] +sources = ['texinfo-%(version)s.tar.xz'] +checksums = ['74b420d09d7f528e84f97aa330f0dd69a98a6053e7a4e01767eed115038807bf'] + +builddependencies = [('binutils', '2.39')] +dependencies = [('Perl', '5.36.0')] + +sanity_check_paths = { + 'files': ['bin/makeinfo'], + 'dirs': ['share'], +} + +sanity_check_commands = ["makeinfo --help"] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/m/makeinfo/makeinfo-7.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/m/makeinfo/makeinfo-7.1-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..78b42628b50 --- /dev/null +++ b/easybuild/easyconfigs/m/makeinfo/makeinfo-7.1-GCCcore-13.2.0.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'makeinfo' +version = '7.1' + +homepage = 'https://www.gnu.org/software/texinfo/' +description = """makeinfo is part of the Texinfo project, the official documentation format of the GNU project.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://ftpmirror.gnu.org/gnu/texinfo'] +sources = ['texinfo-%(version)s.tar.xz'] +checksums = ['deeec9f19f159e046fdf8ad22231981806dac332cc372f1c763504ad82b30953'] + +builddependencies = [('binutils', '2.40')] +dependencies = [('Perl', '5.38.0')] + +sanity_check_paths = { + 'files': ['bin/makeinfo'], + 'dirs': ['share'], +} + +sanity_check_commands = ["makeinfo --help"] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/m/mold/mold-2.3.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/m/mold/mold-2.3.1-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..d287e355968 --- /dev/null +++ b/easybuild/easyconfigs/m/mold/mold-2.3.1-GCCcore-13.2.0.eb @@ -0,0 +1,36 @@ +easyblock = 'CMakeMake' + +name = 'mold' +version = '2.3.1' + +homepage = 'https://github.com/rui314/mold' +description = "mold is a high-performance drop-in replacement for existing Unix linkers." + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://github.com/rui314/mold/archive/refs/tags/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['380f540114408c37bcdb7f3bda91a056448a93124ca6992a373ae2bda35e9af7'] + +builddependencies = [ + ('binutils', '2.40'), + ('CMake', '3.27.6'), +] +dependencies = [ + ('zlib', '1.2.13'), + ('OpenSSL', '1.1', '', SYSTEM), +] + +runtest = 'test' + +sanity_check_paths = { + 'files': ['bin/mold', 'lib/mold/mold-wrapper.%s' % SHLIB_EXT], + 'dirs': ['share/man'], +} + +sanity_check_commands = [ + "mold --help", + "mold --run gcc -v", +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/m/motif/motif-2.3.8-GCCcore-12.2.0.eb b/easybuild/easyconfigs/m/motif/motif-2.3.8-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..3fc49caf368 --- /dev/null +++ b/easybuild/easyconfigs/m/motif/motif-2.3.8-GCCcore-12.2.0.eb @@ -0,0 +1,41 @@ +easyblock = 'ConfigureMake' + +name = 'motif' +version = '2.3.8' + +homepage = 'https://motif.ics.com/' +description = """Motif refers to both a graphical user interface (GUI) specification and the widget toolkit for building + applications that follow that specification under the X Window System on Unix and other POSIX-compliant systems. + It was the standard toolkit for the Common Desktop Environment and thus for Unix.""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%(name)s-%(version)s.tar.gz'] +checksums = ['859b723666eeac7df018209d66045c9853b50b4218cecadb794e2359619ebce7'] + +builddependencies = [ + ('Autotools', '20220317'), + ('flex', '2.6.4'), + ('Bison', '3.8.2'), + ('binutils', '2.39'), + ('util-linux', '2.38.1'), +] + +dependencies = [ + ('X11', '20221110'), + ('libpng', '1.6.38'), + ('freetype', '2.12.1'), + ('libjpeg-turbo', '2.1.4'), + ('bzip2', '1.0.8'), +] + +# makefile is not parallel safe +parallel = 1 + +sanity_check_paths = { + 'files': ['lib/libMrm.a', 'lib/libUil.a', 'lib/libXm.a', 'bin/mwm', 'bin/uil', 'bin/xmbind'], + 'dirs': ['include/Mrm', 'include/uil', 'include/X11', 'include/Xm'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/m/mpath/mpath-1.1.3-GCCcore-11.3.0.eb b/easybuild/easyconfigs/m/mpath/mpath-1.1.3-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..1064e04fb50 --- /dev/null +++ b/easybuild/easyconfigs/m/mpath/mpath-1.1.3-GCCcore-11.3.0.eb @@ -0,0 +1,32 @@ +easyblock = 'PythonBundle' + +name = 'mpath' +version = '1.1.3' + +homepage = 'https://pypi.org/project/mpath/' +description = """For now it's quit simple and get_path_info() +method returns information about given path. It can be either +a directory or a file path.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +builddependencies = [ + ('binutils', '2.38'), +] +dependencies = [ + ('Python', '3.10.4'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('mclass', '1.3.4', { + 'checksums': ['414f786287b80a80261125fc9ed844dbf9093907e96999a2f0391a7b32a1cb60'], + }), + (name, version, { + 'checksums': ['f8ecaf91bded57e12676d0373bf27acc154dea56c386f6ad05b476bc2c6ddc4f'], + }), +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/mpifileutils/mpifileutils-0.11.1-gompi-2023a.eb b/easybuild/easyconfigs/m/mpifileutils/mpifileutils-0.11.1-gompi-2023a.eb new file mode 100644 index 00000000000..209d6128d81 --- /dev/null +++ b/easybuild/easyconfigs/m/mpifileutils/mpifileutils-0.11.1-gompi-2023a.eb @@ -0,0 +1,45 @@ +easyblock = 'CMakeMake' + +name = 'mpifileutils' +version = "0.11.1" + +homepage = 'https://hpc.github.io/mpifileutils/' + +description = """ + MPI-Based File Utilities For Distributed Systems +""" + +toolchain = {'name': 'gompi', 'version': '2023a'} + +github_account = 'hpc' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['e2cba53309b5b3ee581b6ff82e4e66f54628370cce694c34224ed947fece32d4'] + +builddependencies = [ + ('CMake', '3.26.3'), +] + +dependencies = [ + ('attr', '2.5.1'), + ('bzip2', '1.0.8'), + ('lwgrp', '1.0.5'), + ('dtcmp', '1.1.4'), + ('libarchive', '3.6.2'), + ('libcircle', '0.3'), +] + +_binaries = [ + 'dbcast', 'dbz2', 'dchmod', 'dcmp', 'dcp', 'ddup', 'dfind', + 'dreln', 'drm', 'dstripe', 'dsync', 'dtar', 'dwalk' +] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in _binaries] + + ['include/mfu.h', 'lib/libmfu.%s' % SHLIB_EXT], + 'dirs': [] +} + +sanity_check_commands = ['%s --help 2>&1 | grep Usage' % x for x in _binaries] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/m/msgpack-c/msgpack-c-6.0.0-GCC-12.2.0.eb b/easybuild/easyconfigs/m/msgpack-c/msgpack-c-6.0.0-GCC-12.2.0.eb new file mode 100644 index 00000000000..97901abf8d5 --- /dev/null +++ b/easybuild/easyconfigs/m/msgpack-c/msgpack-c-6.0.0-GCC-12.2.0.eb @@ -0,0 +1,37 @@ +# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2021/04 +easyblock = 'CMakeMake' + +name = 'msgpack-c' +version = '6.0.0' + +homepage = 'http://msgpack.org/' +description = """MessagePack is an efficient binary serialization format, which lets you exchange +data among multiple languages like JSON, except that it's faster and smaller. +Small integers are encoded into a single byte while typical short strings +require only one extra byte in addition to the strings themselves.""" + +toolchain = {'name': 'GCC', 'version': '12.2.0'} + +source_urls = ['https://github.com/msgpack/msgpack-c/releases/download/c-%(version)s'] +sources = ['msgpack-c-%(version)s.tar.gz'] +checksums = ['3654f5e2c652dc52e0a993e270bb57d5702b262703f03771c152bba51602aeba'] + +builddependencies = [ + ('CMake', '3.24.3'), + ('binutils', '2.39'), + ('googletest', '1.12.1'), +] + +dependencies = [ + ('Boost', '1.81.0'), +] + +sanity_check_paths = { + 'files': [ + ['lib/libmsgpack-c.%s' % x for x in ['a', '%s' % SHLIB_EXT]], + ['include/msgpack.%s' % x for x in ['h']] + ], + 'dirs': ['lib/pkgconfig', 'include/msgpack'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/m/muParser/muParser-2.3.4-GCCcore-12.2.0.eb b/easybuild/easyconfigs/m/muParser/muParser-2.3.4-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..e55a9dbe87a --- /dev/null +++ b/easybuild/easyconfigs/m/muParser/muParser-2.3.4-GCCcore-12.2.0.eb @@ -0,0 +1,33 @@ +easyblock = 'CMakeMake' + +name = 'muParser' +version = '2.3.4' + +homepage = 'https://beltoforion.de/article.php?a=muparser' +description = """ + muParser is an extensible high performance math expression parser library + written in C++. It works by transforming a mathematical expression into + bytecode and precalculating constant parts of the expression. +""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/beltoforion/%(namelower)s/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['0c3fa54a3ebf36dda0ed3e7cd5451c964afbb15102bdbcba08aafb359a290121'] + +builddependencies = [ + ('binutils', '2.39'), + ('CMake', '3.24.3'), +] + +configopts = "-DENABLE_SAMPLES=OFF -DBUILD_SHARED_LIBS=ON" + + +sanity_check_paths = { + 'files': ['include/%(name)s.h', 'lib/libmuparser.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/n/NASM/NASM-2.16.01-GCCcore-13.2.0.eb b/easybuild/easyconfigs/n/NASM/NASM-2.16.01-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..1c5164af198 --- /dev/null +++ b/easybuild/easyconfigs/n/NASM/NASM-2.16.01-GCCcore-13.2.0.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'NASM' +version = '2.16.01' + +homepage = 'https://www.nasm.us/' + +description = """NASM: General-purpose x86 assembler""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://www.nasm.us/pub/nasm/releasebuilds/%(version)s'] +sources = [SOURCELOWER_TAR_BZ2] +checksums = ['35b6ad2ee048d41c4779f073f3efca7762a822b7d2d4ef4e8df24cf65747bb2e'] + +builddependencies = [ + ('binutils', '2.40'), +] + +sanity_check_paths = { + 'files': ['bin/nasm'], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/n/NBO/NBO-7.0.10-GCC-10.2.0.eb b/easybuild/easyconfigs/n/NBO/NBO-7.0.10-GCC-10.2.0.eb new file mode 100644 index 00000000000..2ae4e5ed5c5 --- /dev/null +++ b/easybuild/easyconfigs/n/NBO/NBO-7.0.10-GCC-10.2.0.eb @@ -0,0 +1,55 @@ +# this recipe is configured for use with Gaussian G16, revision A03 or later + +easyblock = 'MakeCp' + +name = 'NBO' +version = '7.0.10' + +homepage = 'http://nbo.chem.wisc.edu/' +description = """ The Natural Bond Orbital (NBO) program is a discovery tool +for chemical insights from complex wavefunctions. """ + +toolchain = {'name': 'GCC', 'version': '10.2.0'} +toolchainopts = {'pic': True, 'i8': True} # remove 'i8' if Gaussian was compiled with 32-bit integers + +download_instructions = """ +NBO7 is proprietary software, order here: https://charge.wisc.edu/chemistry/order_nbo7.aspx +The dowloaded tarball does not contain the bug-fix version so rename to nbo7.0.10-src.tar.gz +""" +sources = ['nbo%(version)s-src.tar.gz'] +patches = [ + 'NBO-%(version)s_make.patch', +] +checksums = [ + {'nbo7.0.10-src.tar.gz': 'a60d1f4d4592ec386b5378841d9fba75918c48b50de08d8de0a50db42bc96da1'}, + {'NBO-7.0.10_make.patch': 'c37f5a9980c56198f9610611b0fbda8ad65c961ec19b163d602dc3330fced145'}, +] + +dependencies = [ + ('OpenBLAS', '0.3.12'), +] + +local_intlength = 'i8' # change to i4 if Gaussian was compiled with 32-bit integers + +buildopts = 'FC=$FC CC=$CC NBODIR="%(builddir)s/nbo7" STATIC="false" PROFILE="true" ' +buildopts += 'INT=%s ' % local_intlength + +parallel = 1 + +files_to_copy = ['bin', 'dox', 'man', 'tests'] + +postinstallcmds = [ + 'sed -i -e "s|setenv GAUNBO.*|setenv GAUNBO g16nbo|" %(installdir)s/bin/gaunbo{6,7}', + 'sed -i -e "s|setenv BINDIR.*|setenv BINDIR %(installdir)s/bin|" %(installdir)s/bin/gaunbo{6,7}', + 'sed -i -e "s|setenv INT.*|setenv INT %s|" %%(installdir)s/bin/gaunbo{6,7}' % local_intlength, + 'cp %(builddir)s/nbo7/gennbo %(builddir)s/nbo7/gennbo.sh %(installdir)s/bin', + 'sed -i -e "s|setenv NBOBIN ./bin|setenv NBOBIN %(installdir)s/bin|" %(installdir)s/bin/gennbo', + 'sed -i "s|setenv NBOBIN ./bin|setenv NBOBIN %(installdir)s/bin|" %(installdir)s/bin/gennbo.sh', +] + +sanity_check_paths = { + 'files': ['bin/%s.%s.exe' % (x, local_intlength) for x in ('gennbo', 'g09nbo', 'g16nbo', 'nbo7')], + 'dirs': [], +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/n/NBO/NBO-7.0.10-GCC-10.3.0.eb b/easybuild/easyconfigs/n/NBO/NBO-7.0.10-GCC-10.3.0.eb new file mode 100644 index 00000000000..94281fe00eb --- /dev/null +++ b/easybuild/easyconfigs/n/NBO/NBO-7.0.10-GCC-10.3.0.eb @@ -0,0 +1,56 @@ +# this recipe is configured for use with Gaussian G16, revision A03 or later + +easyblock = 'MakeCp' + +name = 'NBO' +version = '7.0.10' + +homepage = 'http://nbo.chem.wisc.edu/' +description = """ The Natural Bond Orbital (NBO) program is a discovery tool +for chemical insights from complex wavefunctions. """ + +toolchain = {'name': 'GCC', 'version': '10.3.0'} +toolchainopts = {'pic': True, 'i8': True} # remove 'i8' if Gaussian was compiled with 32-bit integers + +download_instructions = """ +NBO7 is proprietary software, order here: https://charge.wisc.edu/chemistry/order_nbo7.aspx +The dowloaded tarball does not contain the bug-fix version so rename to nbo7.0.10-src.tar.gz +""" +sources = ['nbo%(version)s-src.tar.gz'] +patches = [ + 'NBO-%(version)s_make.patch', +] +checksums = [ + {'nbo7.0.10-src.tar.gz': 'a60d1f4d4592ec386b5378841d9fba75918c48b50de08d8de0a50db42bc96da1'}, + {'NBO-7.0.10_make.patch': 'c37f5a9980c56198f9610611b0fbda8ad65c961ec19b163d602dc3330fced145'}, +] + +dependencies = [ + ('FlexiBLAS', '3.0.4'), +] + +local_intlength = 'i8' # change to i4 if Gaussian was compiled with 32-bit integers + +buildopts = 'FC=$FC CC=$CC NBODIR="%(builddir)s/nbo7" STATIC="false" PROFILE="true" ' +buildopts += 'BLASLIB="$LDFLAGS -lflexiblas" LAPACKLIB="$LDFLAGS -lflexiblas" ' +buildopts += 'INT=%s ' % local_intlength + +parallel = 1 + +files_to_copy = ['bin', 'dox', 'man', 'tests'] + +postinstallcmds = [ + 'sed -i -e "s|setenv GAUNBO.*|setenv GAUNBO g16nbo|" %(installdir)s/bin/gaunbo{6,7}', + 'sed -i -e "s|setenv BINDIR.*|setenv BINDIR %(installdir)s/bin|" %(installdir)s/bin/gaunbo{6,7}', + 'sed -i -e "s|setenv INT.*|setenv INT %s|" %%(installdir)s/bin/gaunbo{6,7}' % local_intlength, + 'cp %(builddir)s/nbo7/gennbo %(builddir)s/nbo7/gennbo.sh %(installdir)s/bin', + 'sed -i -e "s|setenv NBOBIN ./bin|setenv NBOBIN %(installdir)s/bin|" %(installdir)s/bin/gennbo', + 'sed -i "s|setenv NBOBIN ./bin|setenv NBOBIN %(installdir)s/bin|" %(installdir)s/bin/gennbo.sh', +] + +sanity_check_paths = { + 'files': ['bin/%s.%s.exe' % (x, local_intlength) for x in ('gennbo', 'g09nbo', 'g16nbo', 'nbo7')], + 'dirs': [], +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/n/NBO/NBO-7.0.10-GCC-11.2.0.eb b/easybuild/easyconfigs/n/NBO/NBO-7.0.10-GCC-11.2.0.eb new file mode 100644 index 00000000000..1a8a9c87595 --- /dev/null +++ b/easybuild/easyconfigs/n/NBO/NBO-7.0.10-GCC-11.2.0.eb @@ -0,0 +1,56 @@ +# this recipe is configured for use with Gaussian G16, revision A03 or later + +easyblock = 'MakeCp' + +name = 'NBO' +version = '7.0.10' + +homepage = 'http://nbo.chem.wisc.edu/' +description = """ The Natural Bond Orbital (NBO) program is a discovery tool +for chemical insights from complex wavefunctions. """ + +toolchain = {'name': 'GCC', 'version': '11.2.0'} +toolchainopts = {'pic': True, 'i8': True} # remove 'i8' if Gaussian was compiled with 32-bit integers + +download_instructions = """ +NBO7 is proprietary software, order here: https://charge.wisc.edu/chemistry/order_nbo7.aspx +The dowloaded tarball does not contain the bug-fix version so rename to nbo7.0.10-src.tar.gz +""" +sources = ['nbo%(version)s-src.tar.gz'] +patches = [ + 'NBO-%(version)s_make.patch', +] +checksums = [ + {'nbo7.0.10-src.tar.gz': 'a60d1f4d4592ec386b5378841d9fba75918c48b50de08d8de0a50db42bc96da1'}, + {'NBO-7.0.10_make.patch': 'c37f5a9980c56198f9610611b0fbda8ad65c961ec19b163d602dc3330fced145'}, +] + +dependencies = [ + ('FlexiBLAS', '3.0.4'), +] + +local_intlength = 'i8' # change to i4 if Gaussian was compiled with 32-bit integers + +buildopts = 'FC=$FC CC=$CC NBODIR="%(builddir)s/nbo7" STATIC="false" PROFILE="true" ' +buildopts += 'BLASLIB="$LDFLAGS -lflexiblas" LAPACKLIB="$LDFLAGS -lflexiblas" ' +buildopts += 'INT=%s ' % local_intlength + +parallel = 1 + +files_to_copy = ['bin', 'dox', 'man', 'tests'] + +postinstallcmds = [ + 'sed -i -e "s|setenv GAUNBO.*|setenv GAUNBO g16nbo|" %(installdir)s/bin/gaunbo{6,7}', + 'sed -i -e "s|setenv BINDIR.*|setenv BINDIR %(installdir)s/bin|" %(installdir)s/bin/gaunbo{6,7}', + 'sed -i -e "s|setenv INT.*|setenv INT %s|" %%(installdir)s/bin/gaunbo{6,7}' % local_intlength, + 'cp %(builddir)s/nbo7/gennbo %(builddir)s/nbo7/gennbo.sh %(installdir)s/bin', + 'sed -i -e "s|setenv NBOBIN ./bin|setenv NBOBIN %(installdir)s/bin|" %(installdir)s/bin/gennbo', + 'sed -i "s|setenv NBOBIN ./bin|setenv NBOBIN %(installdir)s/bin|" %(installdir)s/bin/gennbo.sh', +] + +sanity_check_paths = { + 'files': ['bin/%s.%s.exe' % (x, local_intlength) for x in ('gennbo', 'g09nbo', 'g16nbo', 'nbo7')], + 'dirs': [], +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/n/NBO/NBO-7.0.10-GCC-9.3.0.eb b/easybuild/easyconfigs/n/NBO/NBO-7.0.10-GCC-9.3.0.eb new file mode 100644 index 00000000000..1b9519bbbdd --- /dev/null +++ b/easybuild/easyconfigs/n/NBO/NBO-7.0.10-GCC-9.3.0.eb @@ -0,0 +1,55 @@ +# this recipe is configured for use with Gaussian G16, revision A03 or later + +easyblock = 'MakeCp' + +name = 'NBO' +version = '7.0.10' + +homepage = 'http://nbo.chem.wisc.edu/' +description = """ The Natural Bond Orbital (NBO) program is a discovery tool +for chemical insights from complex wavefunctions. """ + +toolchain = {'name': 'GCC', 'version': '9.3.0'} +toolchainopts = {'pic': True, 'i8': True} # remove 'i8' if Gaussian was compiled with 32-bit integers + +download_instructions = """ +NBO7 is proprietary software, order here: https://charge.wisc.edu/chemistry/order_nbo7.aspx +The dowloaded tarball does not contain the bug-fix version so rename to nbo7.0.10-src.tar.gz +""" +sources = ['nbo%(version)s-src.tar.gz'] +patches = [ + 'NBO-%(version)s_make.patch', +] +checksums = [ + {'nbo7.0.10-src.tar.gz': 'a60d1f4d4592ec386b5378841d9fba75918c48b50de08d8de0a50db42bc96da1'}, + {'NBO-7.0.10_make.patch': 'c37f5a9980c56198f9610611b0fbda8ad65c961ec19b163d602dc3330fced145'}, +] + +dependencies = [ + ('OpenBLAS', '0.3.9'), +] + +local_intlength = 'i8' # change to i4 if Gaussian was compiled with 32-bit integers + +buildopts = 'FC=$FC CC=$CC NBODIR="%(builddir)s/nbo7" STATIC="false" PROFILE="true" ' +buildopts += 'INT=%s ' % local_intlength + +parallel = 1 + +files_to_copy = ['bin', 'dox', 'man', 'tests'] + +postinstallcmds = [ + 'sed -i -e "s|setenv GAUNBO.*|setenv GAUNBO g16nbo|" %(installdir)s/bin/gaunbo{6,7}', + 'sed -i -e "s|setenv BINDIR.*|setenv BINDIR %(installdir)s/bin|" %(installdir)s/bin/gaunbo{6,7}', + 'sed -i -e "s|setenv INT.*|setenv INT %s|" %%(installdir)s/bin/gaunbo{6,7}' % local_intlength, + 'cp %(builddir)s/nbo7/gennbo %(builddir)s/nbo7/gennbo.sh %(installdir)s/bin', + 'sed -i -e "s|setenv NBOBIN ./bin|setenv NBOBIN %(installdir)s/bin|" %(installdir)s/bin/gennbo', + 'sed -i "s|setenv NBOBIN ./bin|setenv NBOBIN %(installdir)s/bin|" %(installdir)s/bin/gennbo.sh', +] + +sanity_check_paths = { + 'files': ['bin/%s.%s.exe' % (x, local_intlength) for x in ('gennbo', 'g09nbo', 'g16nbo', 'nbo7')], + 'dirs': [], +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/n/NBO/NBO-7.0.10-gfbf-2022a.eb b/easybuild/easyconfigs/n/NBO/NBO-7.0.10-gfbf-2022a.eb new file mode 100644 index 00000000000..10617ff3078 --- /dev/null +++ b/easybuild/easyconfigs/n/NBO/NBO-7.0.10-gfbf-2022a.eb @@ -0,0 +1,52 @@ +# this recipe is configured for use with Gaussian G16, revision A03 or later + +easyblock = 'MakeCp' + +name = 'NBO' +version = '7.0.10' + +homepage = 'http://nbo.chem.wisc.edu/' +description = """ The Natural Bond Orbital (NBO) program is a discovery tool +for chemical insights from complex wavefunctions. """ + +toolchain = {'name': 'gfbf', 'version': '2022a'} +toolchainopts = {'pic': True, 'i8': True} # remove 'i8' if Gaussian was compiled with 32-bit integers + +download_instructions = """ +NBO7 is proprietary software, order here: https://charge.wisc.edu/chemistry/order_nbo7.aspx +The dowloaded tarball does not contain the bug-fix version so rename to nbo7.0.10-src.tar.gz +""" +sources = ['nbo%(version)s-src.tar.gz'] +patches = [ + 'NBO-%(version)s_make.patch', +] +checksums = [ + {'nbo7.0.10-src.tar.gz': 'a60d1f4d4592ec386b5378841d9fba75918c48b50de08d8de0a50db42bc96da1'}, + {'NBO-7.0.10_make.patch': 'c37f5a9980c56198f9610611b0fbda8ad65c961ec19b163d602dc3330fced145'}, +] + +local_intlength = 'i8' # change to i4 if Gaussian was compiled with 32-bit integers + +buildopts = 'FC=$FC CC=$CC NBODIR="%(builddir)s/nbo7" STATIC="false" PROFILE="true" ' +buildopts += 'BLASLIB="$LDFLAGS -lflexiblas" LAPACKLIB="$LDFLAGS -lflexiblas" ' +buildopts += 'INT=%s ' % local_intlength + +parallel = 1 + +files_to_copy = ['bin', 'dox', 'man', 'tests'] + +postinstallcmds = [ + 'sed -i -e "s|setenv GAUNBO.*|setenv GAUNBO g16nbo|" %(installdir)s/bin/gaunbo{6,7}', + 'sed -i -e "s|setenv BINDIR.*|setenv BINDIR %(installdir)s/bin|" %(installdir)s/bin/gaunbo{6,7}', + 'sed -i -e "s|setenv INT.*|setenv INT %s|" %%(installdir)s/bin/gaunbo{6,7}' % local_intlength, + 'cp %(builddir)s/nbo7/gennbo %(builddir)s/nbo7/gennbo.sh %(installdir)s/bin', + 'sed -i -e "s|setenv NBOBIN ./bin|setenv NBOBIN %(installdir)s/bin|" %(installdir)s/bin/gennbo', + 'sed -i "s|setenv NBOBIN ./bin|setenv NBOBIN %(installdir)s/bin|" %(installdir)s/bin/gennbo.sh', +] + +sanity_check_paths = { + 'files': ['bin/%s.%s.exe' % (x, local_intlength) for x in ('gennbo', 'g09nbo', 'g16nbo', 'nbo7')], + 'dirs': [], +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/n/NBO/NBO-7.0.10-gfbf-2022b.eb b/easybuild/easyconfigs/n/NBO/NBO-7.0.10-gfbf-2022b.eb new file mode 100644 index 00000000000..0f47637675f --- /dev/null +++ b/easybuild/easyconfigs/n/NBO/NBO-7.0.10-gfbf-2022b.eb @@ -0,0 +1,52 @@ +# this recipe is configured for use with Gaussian G16, revision A03 or later + +easyblock = 'MakeCp' + +name = 'NBO' +version = '7.0.10' + +homepage = 'http://nbo.chem.wisc.edu/' +description = """ The Natural Bond Orbital (NBO) program is a discovery tool +for chemical insights from complex wavefunctions. """ + +toolchain = {'name': 'gfbf', 'version': '2022b'} +toolchainopts = {'pic': True, 'i8': True} # remove 'i8' if Gaussian was compiled with 32-bit integers + +download_instructions = """ +NBO7 is proprietary software, order here: https://charge.wisc.edu/chemistry/order_nbo7.aspx +The dowloaded tarball does not contain the bug-fix version so rename to nbo7.0.10-src.tar.gz +""" +sources = ['nbo%(version)s-src.tar.gz'] +patches = [ + 'NBO-%(version)s_make.patch', +] +checksums = [ + {'nbo7.0.10-src.tar.gz': 'a60d1f4d4592ec386b5378841d9fba75918c48b50de08d8de0a50db42bc96da1'}, + {'NBO-7.0.10_make.patch': 'c37f5a9980c56198f9610611b0fbda8ad65c961ec19b163d602dc3330fced145'}, +] + +local_intlength = 'i8' # change to i4 if Gaussian was compiled with 32-bit integers + +buildopts = 'FC=$FC CC=$CC NBODIR="%(builddir)s/nbo7" STATIC="false" PROFILE="true" ' +buildopts += 'BLASLIB="$LDFLAGS -lflexiblas" LAPACKLIB="$LDFLAGS -lflexiblas" ' +buildopts += 'INT=%s ' % local_intlength + +parallel = 1 + +files_to_copy = ['bin', 'dox', 'man', 'tests'] + +postinstallcmds = [ + 'sed -i -e "s|setenv GAUNBO.*|setenv GAUNBO g16nbo|" %(installdir)s/bin/gaunbo{6,7}', + 'sed -i -e "s|setenv BINDIR.*|setenv BINDIR %(installdir)s/bin|" %(installdir)s/bin/gaunbo{6,7}', + 'sed -i -e "s|setenv INT.*|setenv INT %s|" %%(installdir)s/bin/gaunbo{6,7}' % local_intlength, + 'cp %(builddir)s/nbo7/gennbo %(builddir)s/nbo7/gennbo.sh %(installdir)s/bin', + 'sed -i -e "s|setenv NBOBIN ./bin|setenv NBOBIN %(installdir)s/bin|" %(installdir)s/bin/gennbo', + 'sed -i "s|setenv NBOBIN ./bin|setenv NBOBIN %(installdir)s/bin|" %(installdir)s/bin/gennbo.sh', +] + +sanity_check_paths = { + 'files': ['bin/%s.%s.exe' % (x, local_intlength) for x in ('gennbo', 'g09nbo', 'g16nbo', 'nbo7')], + 'dirs': [], +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/n/NBO/NBO-7.0.10_make.patch b/easybuild/easyconfigs/n/NBO/NBO-7.0.10_make.patch new file mode 100644 index 00000000000..5db56cf13f7 --- /dev/null +++ b/easybuild/easyconfigs/n/NBO/NBO-7.0.10_make.patch @@ -0,0 +1,46 @@ +diff --git a/nbo7.orig/Make.config b/nbo7/Make.config +index d2f66ea..67ba367 100644 +--- a/nbo7.orig/Make.config ++++ b/nbo7/Make.config +@@ -9,7 +9,7 @@ FC = gfortran + # Fortran compiler version (required for gfortran only). Ignore the + # build number (e.g. specify 4.8, not 4.8.2). + +-FC_VERSION = 5.5 ++FC_VERSION = ${EBVERSIONGCC} + + # C compiler -- select from gcc (gnu), nvcc (nv), pgcc (pgi), and icl + # (intel). NBO has been most recently tested with gcc (4-10), nvcc +@@ -46,26 +46,26 @@ endif + + # NBO top-level directory (perhaps /opt/nbo7 or c:/nbo7). + +-NBODIR = ~/nbo7 ++NBODIR = ${PWD} + + # Use LAPACK routines for eigenvalue problems -- true or false. Note + # that LAPACK requires BLAS. + +-LAPACK = false ++LAPACK = true + + # LAPACK library -- ignored if LAPACK is false. + + #LAPACKLIB = -L/usr/lib/x86_64-linux-gnu -llapack +-LAPACKLIB = -L/apps/local/lapack/lib -llapack ++LAPACKLIB = -L${EBROOTOPENBLAS} -lopenblas + + # Use BLAS rather than native NBO linear algebra routines -- true or + # false. Note that LAPACK requires BLAS. + +-BLAS = false ++BLAS = true + + # BLAS libraries -- ignored if BLAS is false. + +-BLASLIB = -L/apps/local/OpenBLAS/lib -lopenblas ++BLASLIB = -L${EBROOTOPENBLAS} -lopenblas + #BLASLIB = -L/usr/local/OpenBLAS/lib -lopenblas + #BLASLIB = -L/usr/lib/x86_64-linux-gnu -lblas + #BLASLIB = -L/apps/pgi/linux86-64/2019/lib -lblas + diff --git a/easybuild/easyconfigs/n/NCCL/NCCL-2.18.3-GCCcore-12.3.0-CUDA-12.1.1.eb b/easybuild/easyconfigs/n/NCCL/NCCL-2.18.3-GCCcore-12.3.0-CUDA-12.1.1.eb index 4e931ccda3d..d23741aa2c8 100644 --- a/easybuild/easyconfigs/n/NCCL/NCCL-2.18.3-GCCcore-12.3.0-CUDA-12.1.1.eb +++ b/easybuild/easyconfigs/n/NCCL/NCCL-2.18.3-GCCcore-12.3.0-CUDA-12.1.1.eb @@ -11,7 +11,8 @@ toolchain = {'name': 'GCCcore', 'version': '12.3.0'} github_account = 'NVIDIA' source_urls = [GITHUB_SOURCE] sources = ['v%(version)s-1.tar.gz'] -checksums = ['b4f5d7d9eea2c12e32e7a06fe138b2cfc75969c6d5c473aa6f819a792db2fc96'] +checksums = [('6477d83c9edbb34a0ebce6d751a1b32962bc6415d75d04972b676c6894ceaef9', + 'b4f5d7d9eea2c12e32e7a06fe138b2cfc75969c6d5c473aa6f819a792db2fc96')] builddependencies = [('binutils', '2.40')] diff --git a/easybuild/easyconfigs/n/NTL/NTL-11.5.1-GCC-12.2.0.eb b/easybuild/easyconfigs/n/NTL/NTL-11.5.1-GCC-12.2.0.eb new file mode 100644 index 00000000000..e591e4d7c66 --- /dev/null +++ b/easybuild/easyconfigs/n/NTL/NTL-11.5.1-GCC-12.2.0.eb @@ -0,0 +1,44 @@ +# contributed by Guilherme Peretti-Pezzi (CSCS) +# updated by Alex Domingo (Vrije Universiteit Brussel) +# updated by Åke Sandgren(Umeå University) + +easyblock = 'ConfigureMake' + +name = 'NTL' +version = '11.5.1' + +homepage = 'https://shoup.net/ntl/' + +description = """NTL is a high-performance, portable C++ library providing data structures and +algorithms for manipulating signed, arbitrary length integers, and for vectors, +matrices, and polynomials over the integers and over finite fields.""" + +toolchain = {'name': 'GCC', 'version': '12.2.0'} +toolchainopts = {'pic': True} + +github_account = 'libntl' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['ef578fa8b6c0c64edd1183c4c303b534468b58dd3eb8df8c9a5633f984888de5'] + +builddependencies = [ + ('Perl', '5.36.0'), +] + +dependencies = [ + ('GMP', '6.2.1'), +] + +start_dir = 'src' + +prefix_opt = 'PREFIX=' +configopts = 'CXX="$CXX" CXXFLAGS="$CXXFLAGS" GMP_PREFIX="$EBROOTGMP" SHARED=on' + +runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libntl.%s' % e for e in ['a', SHLIB_EXT]], + 'dirs': ['include/NTL', 'share/doc'], +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/n/Ninja/Ninja-1.11.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/n/Ninja/Ninja-1.11.1-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..47d0bd6318d --- /dev/null +++ b/easybuild/easyconfigs/n/Ninja/Ninja-1.11.1-GCCcore-13.2.0.eb @@ -0,0 +1,31 @@ +easyblock = 'CmdCp' + +name = 'Ninja' +version = '1.11.1' + +homepage = 'https://ninja-build.org/' +description = "Ninja is a small build system with a focus on speed." + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://github.com/ninja-build/ninja/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['31747ae633213f1eda3842686f83c2aa1412e0f5691d1c14dbbcc67fe7400cea'] + +builddependencies = [ + ('binutils', '2.40'), + ('Python', '3.11.5'), +] + +cmds_map = [('.*', "./configure.py --bootstrap")] + +files_to_copy = [(['ninja'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/ninja'], + 'dirs': [], +} + +sanity_check_commands = ["ninja --version"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/n/n2v/n2v-0.3.2-foss-2022a.eb b/easybuild/easyconfigs/n/n2v/n2v-0.3.2-foss-2022a.eb new file mode 100644 index 00000000000..29bc3aab621 --- /dev/null +++ b/easybuild/easyconfigs/n/n2v/n2v-0.3.2-foss-2022a.eb @@ -0,0 +1,30 @@ +easyblock = 'PythonBundle' + +name = 'n2v' +version = '0.3.2' + +homepage = 'https://github.com/juglab/n2v' +description = "Learning Denoising from Single Noisy Images" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('Pillow', '9.1.1'), + ('imagecodecs', '2022.9.26'), + ('ruamel.yaml', '0.17.21'), + ('CSBDeep', '0.7.4'), +] + +use_pip = True + +exts_list = [ + (name, version, { + 'checksums': ['8662aa5e903e170a1c9769882da241d669b6e7efd8b164b68723c675539ec06f'], + }), +] + +sanity_pip_check = True + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/n/nanopolish/nanopolish-0.14.0-foss-2022a.eb b/easybuild/easyconfigs/n/nanopolish/nanopolish-0.14.0-foss-2022a.eb new file mode 100644 index 00000000000..2ca012c73d5 --- /dev/null +++ b/easybuild/easyconfigs/n/nanopolish/nanopolish-0.14.0-foss-2022a.eb @@ -0,0 +1,61 @@ +easyblock = 'MakeCp' + +name = 'nanopolish' +version = '0.14.0' + +homepage = 'https://github.com/jts/nanopolish' +description = "Software package for signal-level analysis of Oxford Nanopore sequencing data." + +toolchain = {'name': 'foss', 'version': '2022a'} + +source_urls = [ + 'https://github.com/jts/nanopolish/archive/', + 'https://github.com/mateidavid/fast5/archive/', +] +sources = [ + { + 'source_urls': ['https://github.com/jts/nanopolish/archive/'], + 'download_filename': 'v%(version)s.tar.gz', + 'filename': SOURCE_TAR_GZ, + }, + { + 'source_urls': ['https://github.com/hasindu2008/slow5lib/archive/'], + 'download_filename': 'v1.1.0.tar.gz', + 'filename': 'slow5lib-v1.1.0.tar.gz', + }, +] +checksums = [ + {'nanopolish-0.14.0.tar.gz': 'bcc1a7e2d23941592d817da3af9165b3843ae52b11a3ca5983d6417f1614ef78'}, + {'slow5lib-v1.1.0.tar.gz': 'f13f08b85a9a11086b5d9378251093d1858d0dc29d8e727eabacfa57a73f4277'}, +] + +builddependencies = [('Eigen', '3.4.0')] + +dependencies = [ + ('zlib', '1.2.12'), + ('Python', '3.10.4'), + ('Biopython', '1.79'), + ('Pysam', '0.19.1'), + ('HDF5', '1.12.2'), + ('HTSlib', '1.15.1'), + ('minimap2', '2.24'), + ('VBZ-Compression', '1.0.3'), +] + +prebuildopts = "rmdir slow5lib && ln -s %(builddir)s/slow5lib-*/ slow5lib && " +buildopts = "HDF5=noinstall EIGEN=noinstall HTS=noinstall MINIMAP2=noinstall" + +runtest = 'test ' + buildopts + +files_to_copy = [(['nanopolish'], 'bin'), 'scripts'] + +postinstallcmds = ["chmod a+rx %(installdir)s/scripts/*"] + +sanity_check_paths = { + 'files': ['bin/nanopolish'], + 'dirs': ['scripts'], +} + +modextrapaths = {'PATH': 'scripts'} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/n/netCDF-Fortran/netCDF-Fortran-4.6.1-iimpi-2023a.eb b/easybuild/easyconfigs/n/netCDF-Fortran/netCDF-Fortran-4.6.1-iimpi-2023a.eb new file mode 100644 index 00000000000..30505ae9f4c --- /dev/null +++ b/easybuild/easyconfigs/n/netCDF-Fortran/netCDF-Fortran-4.6.1-iimpi-2023a.eb @@ -0,0 +1,28 @@ +name = 'netCDF-Fortran' +version = '4.6.1' + +homepage = 'https://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries + and machine-independent data formats that support the creation, access, and sharing of array-oriented + scientific data.""" + +toolchain = {'name': 'iimpi', 'version': '2023a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = ['https://github.com/Unidata/netcdf-fortran/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['40b534e0c81b853081c67ccde095367bd8a5eead2ee883431331674e7aa9509f'] + +builddependencies = [ + ('M4', '1.4.19'), +] + +dependencies = [ + ('netCDF', '4.9.2'), + ('bzip2', '1.0.8'), +] + +# (too) parallel build fails, but single-core build is fairly quick anyway (~1min) +parallel = 1 + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/n/netcdf4-python/netcdf4-python-1.6.4-foss-2023a.eb b/easybuild/easyconfigs/n/netcdf4-python/netcdf4-python-1.6.4-foss-2023a.eb new file mode 100644 index 00000000000..58f5790b23e --- /dev/null +++ b/easybuild/easyconfigs/n/netcdf4-python/netcdf4-python-1.6.4-foss-2023a.eb @@ -0,0 +1,57 @@ +easyblock = 'PythonBundle' + +name = 'netcdf4-python' +version = '1.6.4' + +homepage = 'https://unidata.github.io/netcdf4-python/' +description = """Python/numpy interface to netCDF.""" + +toolchain = {'name': 'foss', 'version': '2023a'} +toolchainopts = {'usempi': True} + +dependencies = [ + ('Python', '3.11.3'), + ('SciPy-bundle', '2023.07'), + ('netCDF', '4.9.2'), + ('cURL', '8.0.1'), + ('mpi4py', '3.1.4'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('cftime', '1.6.2', { + 'checksums': ['8614c00fb8a5046de304fdd86dbd224f99408185d7b245ac6628d0276596e6d2'], + }), + (name, version, { + 'patches': [ + 'netcdf4-python-1.1.8-avoid-diskless-test.patch', + 'netcdf4-python-1.6.1_relax_tolerance_compression_test.patch', + ], + 'source_tmpl': 'netCDF4-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/n/netCDF4'], + 'checksums': [ + {'netCDF4-1.6.4.tar.gz': '66da6542cbc7a6045cd1d979397dfd5a3f6c880c76d52b8f98bb108c82ee8c6e'}, + {'netcdf4-python-1.1.8-avoid-diskless-test.patch': + 'a8b262fa201d55f59015e1bc14466c1d113f807543bc1e05a22481ab0d216d72'}, + {'netcdf4-python-1.6.1_relax_tolerance_compression_test.patch': + '64d192a5d1e3e00af78f053da78f5a35015fa713c7f97b10b622be6a44347166'}, + ], + }), +] + +fix_python_shebang_for = ['bin/*'] + +sanity_check_paths = { + 'files': ['bin/nc3tonc4', 'bin/nc4tonc3', 'bin/ncinfo'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + "nc4tonc3 --help", + "nc3tonc4 --help", + "ncinfo --help", +] + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/n/numdiff/numdiff-5.9.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/n/numdiff/numdiff-5.9.0-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..9bee3f67258 --- /dev/null +++ b/easybuild/easyconfigs/n/numdiff/numdiff-5.9.0-GCCcore-12.2.0.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'numdiff' +version = '5.9.0' + +homepage = 'https://www.nongnu.org/numdiff/' +description = """Numdiff (which I will also write numdiff) is a little program that can be used to compare putatively + similar files line by line and field by field, ignoring small numeric differences or/and different numeric formats. + Equivalently, Numdiff is a program with the capability to appropriately compare files containing numerical fields + (and not only).""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +source_urls = [GNU_SAVANNAH_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['87284a117944723eebbf077f857a0a114d818f8b5b54d289d59e73581194f5ef'] + +builddependencies = [('binutils', '2.39')] + +sanity_check_paths = { + 'files': ['bin/ndselect', 'bin/numdiff'], + 'dirs': ['share'], +} + +sanity_check_commands = ["numdiff --help"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/o/OGDF/OGDF-dogwood-202202-GCC-11.2.0.eb b/easybuild/easyconfigs/o/OGDF/OGDF-dogwood-202202-GCC-11.2.0.eb index afd6fc5aef3..06d84a232f2 100644 --- a/easybuild/easyconfigs/o/OGDF/OGDF-dogwood-202202-GCC-11.2.0.eb +++ b/easybuild/easyconfigs/o/OGDF/OGDF-dogwood-202202-GCC-11.2.0.eb @@ -10,7 +10,6 @@ drawing. It offers sophisticated algorithms and data structures to use within your own applications or scientific projects.""" toolchain = {'name': 'GCC', 'version': '11.2.0'} -toolchainopts = {'cstd': 'c++17'} source_urls = ['https://github.com/ogdf/ogdf/archive'] sources = ['%(version)s.tar.gz'] diff --git a/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-6.2-gompi-2022b-CUDA-12.0.0.eb b/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-6.2-gompi-2022b-CUDA-12.0.0.eb new file mode 100644 index 00000000000..65688e8f9f6 --- /dev/null +++ b/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-6.2-gompi-2022b-CUDA-12.0.0.eb @@ -0,0 +1,39 @@ +easyblock = 'ConfigureMake' + +name = 'OSU-Micro-Benchmarks' +version = '6.2' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://mvapich.cse.ohio-state.edu/benchmarks/' +description = """OSU Micro-Benchmarks""" + +toolchain = {'name': 'gompi', 'version': '2022b'} +toolchainopts = {'usempi': True} + +source_urls = ['https://mvapich.cse.ohio-state.edu/download/mvapich/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['bb9dbc87dcf8ec6785977a61f6fceee8febf1a682488eaab4c58cf50e4fa985f'] + +dependencies = [ + ('CUDA', '12.0.0', '', SYSTEM), + ('NCCL', '2.16.2', versionsuffix), + ('UCX-CUDA', '1.13.1', versionsuffix), + ('UCC-CUDA', '1.1.0', versionsuffix), +] + +configopts = ' --enable-cuda --with-cuda=$EBROOTCUDA --enable-ncclomb --with-nccl=$EBROOTNCCL' + +local_benchmark_dirs = [ + 'libexec/osu-micro-benchmarks/mpi/%s' % x for x in ['collective', 'one-sided', 'pt2pt', 'startup'] +] + [ + 'libexec/osu-micro-benchmarks/nccl/pt2pt', + 'libexec/osu-micro-benchmarks/c/nccl/collective' +] +modextrapaths = {'PATH': local_benchmark_dirs} + +sanity_check_paths = { + 'files': [], + 'dirs': local_benchmark_dirs, +} + +moduleclass = 'perf' diff --git a/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-6.2-iimpi-2022b.eb b/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-6.2-iimpi-2022b.eb new file mode 100644 index 00000000000..86e06d2c7fa --- /dev/null +++ b/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-6.2-iimpi-2022b.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'OSU-Micro-Benchmarks' +version = '6.2' + +homepage = 'https://mvapich.cse.ohio-state.edu/benchmarks/' +description = """OSU Micro-Benchmarks""" + +toolchain = {'name': 'iimpi', 'version': '2022b'} +toolchainopts = {'usempi': True} + +source_urls = ['https://mvapich.cse.ohio-state.edu/download/mvapich/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['bb9dbc87dcf8ec6785977a61f6fceee8febf1a682488eaab4c58cf50e4fa985f'] + +local_benchmark_dirs = [ + 'libexec/osu-micro-benchmarks/mpi/%s' % x for x in ['collective', 'one-sided', 'pt2pt', 'startup'] +] +modextrapaths = {'PATH': local_benchmark_dirs} + +sanity_check_paths = { + 'files': [], + 'dirs': local_benchmark_dirs, +} + +moduleclass = 'perf' diff --git a/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-7.2-gompi-2023.09.eb b/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-7.2-gompi-2023.09.eb new file mode 100644 index 00000000000..5c33104aaa4 --- /dev/null +++ b/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-7.2-gompi-2023.09.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'OSU-Micro-Benchmarks' +version = '7.2' + +homepage = 'https://mvapich.cse.ohio-state.edu/benchmarks/' +description = """OSU Micro-Benchmarks""" + +toolchain = {'name': 'gompi', 'version': '2023.09'} +toolchainopts = {'usempi': True} + +source_urls = ['https://mvapich.cse.ohio-state.edu/download/mvapich/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['1a4e1f2aab0e65404b3414e23bd46616184b69b6231ce9313d9c630bd6e633c1'] + +local_benchmark_dirs = [ + 'libexec/osu-micro-benchmarks/mpi/%s' % x for x in ['collective', 'one-sided', 'pt2pt', 'startup'] +] +modextrapaths = {'PATH': local_benchmark_dirs} + +sanity_check_paths = { + 'files': [], + 'dirs': local_benchmark_dirs, +} + +moduleclass = 'perf' diff --git a/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-7.2-gompi-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-7.2-gompi-2023a-CUDA-12.1.1.eb new file mode 100644 index 00000000000..6700d327d4a --- /dev/null +++ b/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-7.2-gompi-2023a-CUDA-12.1.1.eb @@ -0,0 +1,38 @@ +easyblock = 'ConfigureMake' + +name = 'OSU-Micro-Benchmarks' +version = '7.2' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://mvapich.cse.ohio-state.edu/benchmarks/' +description = """OSU Micro-Benchmarks""" + +toolchain = {'name': 'gompi', 'version': '2023a'} +toolchainopts = {'usempi': True} + +source_urls = ['https://mvapich.cse.ohio-state.edu/download/mvapich/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['1a4e1f2aab0e65404b3414e23bd46616184b69b6231ce9313d9c630bd6e633c1'] + +dependencies = [ + ('CUDA', '12.1.1', '', SYSTEM), + ('NCCL', '2.18.3', versionsuffix), + ('UCX-CUDA', '1.14.1', versionsuffix), + ('UCC-CUDA', '1.2.0', versionsuffix), +] + +configopts = ' --enable-cuda --with-cuda=$EBROOTCUDA --enable-ncclomb --with-nccl=$EBROOTNCCL' + +local_benchmark_dirs = [ + 'libexec/osu-micro-benchmarks/mpi/%s' % x for x in ['collective', 'one-sided', 'pt2pt', 'startup'] +] + [ + 'libexec/osu-micro-benchmarks/nccl/%s' % x for x in ['collective', 'pt2pt'] +] +modextrapaths = {'PATH': local_benchmark_dirs} + +sanity_check_paths = { + 'files': [], + 'dirs': local_benchmark_dirs, +} + +moduleclass = 'perf' diff --git a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.20-GCC-11.3.0.eb b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.20-GCC-11.3.0.eb index c00bedf7a63..1041b4ef6d3 100644 --- a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.20-GCC-11.3.0.eb +++ b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.20-GCC-11.3.0.eb @@ -19,6 +19,7 @@ patches = [ 'OpenBLAS-0.3.21_fix-order-vectorization.patch', 'OpenBLAS-0.3.21_disable-fma-in-cscal-zscal.patch', 'OpenBLAS-0.3.21_avoid-crash-in-zdot.patch', + 'OpenBLAS-0.3.20_fix-cpuid-neoverse-v1-n2.patch', ] checksums = [ {'v0.3.20.tar.gz': '8495c9affc536253648e942908e88e097f2ec7753ede55aca52e5dead3029e3c'}, @@ -31,6 +32,8 @@ checksums = [ {'OpenBLAS-0.3.21_disable-fma-in-cscal-zscal.patch': 'bd6836206a883208dc8bc997946f97e4c97d91d8e101fc54db414aaa56902fc3'}, {'OpenBLAS-0.3.21_avoid-crash-in-zdot.patch': '3dac2c1ec896df574f1b37cde81a16f24550b7f1eb81fbfacb0c4449b0dc7894'}, + {'OpenBLAS-0.3.20_fix-cpuid-neoverse-v1-n2.patch': + '1b495465f8dd1e151d74cf5aa4288120361d29164d6a377228a8d51c255b8a9e'}, ] builddependencies = [ diff --git a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.20_fix-cpuid-neoverse-v1-n2.patch b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.20_fix-cpuid-neoverse-v1-n2.patch new file mode 100644 index 00000000000..e638336abea --- /dev/null +++ b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.20_fix-cpuid-neoverse-v1-n2.patch @@ -0,0 +1,17 @@ +# This fixes an incorrect autodetection of NeoverseV1 architecture at build time +# Fixes https://github.com/EESSI/software-layer/pull/310#issuecomment-1734345487 +# Patch was extracted from https://github.com/OpenMathLib/OpenBLAS/commit/09b8545fc51316d0fecf34c9e753b8a20358a3e8 +# which is part of https://github.com/OpenMathLib/OpenBLAS/pull/3586 (which is merged in OpenBLAS-0.3.21) +--- cpuid_arm64.c.orig 2022-02-20 21:35:05.000000000 +0000 ++++ cpuid_arm64.c 2023-09-26 16:27:15.265602255 +0000 +@@ -73,8 +73,8 @@ + "TSV110", + "EMAG8180", + "NEOVERSEN1", +- "NEOVERSEV1" +- "NEOVERSEN2" ++ "NEOVERSEV1", ++ "NEOVERSEN2", + "THUNDERX3T110", + "VORTEX", + "CORTEXA55", diff --git a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.23-GCC-12.3.0.eb b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.23-GCC-12.3.0.eb index 2368237262b..abbc1f81fe9 100644 --- a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.23-GCC-12.3.0.eb +++ b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.23-GCC-12.3.0.eb @@ -19,6 +19,8 @@ patches = [ 'OpenBLAS-0.3.21_fix-order-vectorization.patch', 'OpenBLAS-0.3.23_fix-parallel-build.patch', 'OpenBLAS-0.3.23_fix-lapack-test.patch', + 'OpenBLAS-0.3.23_fix-tests-hang.patch', + 'OpenBLAS-0.3.23_disable-DDRGES3-LAPACK-test.patch', ] checksums = [ {'v0.3.23.tar.gz': '5d9491d07168a5d00116cdc068a40022c3455bf9293c7cb86a65b1054d7e5114'}, @@ -30,6 +32,9 @@ checksums = [ '08af834e5d60441fd35c128758ed9c092ba6887c829e0471ecd489079539047d'}, {'OpenBLAS-0.3.23_fix-parallel-build.patch': 'abe10ba3b0ca54772dbf235596e35325a5159018f6a60cfc88824c2c220d99d9'}, {'OpenBLAS-0.3.23_fix-lapack-test.patch': 'f6b3d81061f136e34aaf5359bb80fb9d2bba28825cc1dd26179b8dd01a9a0054'}, + {'OpenBLAS-0.3.23_fix-tests-hang.patch': '9de1fdee6edf3b2bb55e4639fdd92d2877b5f0ac880f7df2cfea47ecebf16609'}, + {'OpenBLAS-0.3.23_disable-DDRGES3-LAPACK-test.patch': + '36a16b4d3b867897413b43b774f8b57d641ad9a1b452e9de33ced198ab25e461'}, ] builddependencies = [ diff --git a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.23_disable-DDRGES3-LAPACK-test.patch b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.23_disable-DDRGES3-LAPACK-test.patch new file mode 100644 index 00000000000..74174819c6a --- /dev/null +++ b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.23_disable-DDRGES3-LAPACK-test.patch @@ -0,0 +1,13 @@ +disable failing DDRGES3 test in LAPACK 3.10 test suite, fixes "Error code from DDRGES3 = 9"; +see also https://github.com/OpenMathLib/OpenBLAS/issues/4032 +author: Kenneth Hoste (HPC-UGent) +--- OpenBLAS-0.3.23/lapack-netlib/TESTING/dgd.in.orig 2023-09-29 08:05:53.089031858 +0200 ++++ OpenBLAS-0.3.23/lapack-netlib/TESTING/dgd.in 2023-09-29 08:08:32.234680735 +0200 +@@ -1,6 +1,6 @@ + DGS Data for the Real Nonsymmetric Schur Form Driver + 5 Number of matrix dimensions +-6 2 10 12 20 30 Matrix dimensions ++2 10 12 20 30 Matrix dimensions + 1 1 1 2 1 Parameters NB, NBMIN, NXOVER, NS, NBCOL + 10 Threshold for test ratios + .TRUE. Put T to test the error exits diff --git a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.23_fix-tests-hang.patch b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.23_fix-tests-hang.patch new file mode 100644 index 00000000000..68d7ac5f81a --- /dev/null +++ b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.23_fix-tests-hang.patch @@ -0,0 +1,165 @@ +From ea669c8ae938450e101140d634cca291bffd3898 Mon Sep 17 00:00:00 2001 +From: Martin Kroeker +Date: Wed, 26 Jul 2023 00:27:14 +0200 +Subject: [PATCH 1/4] simplify openmp thread limit handling + +--- + common_thread.h | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +diff --git a/common_thread.h b/common_thread.h +index 05e1d5489d..0a4c703b7c 100644 +--- a/common_thread.h ++++ b/common_thread.h +@@ -136,15 +136,13 @@ typedef struct blas_queue { + #ifdef SMP_SERVER + + extern int blas_server_avail; ++extern int blas_omp_number_max; + + static __inline int num_cpu_avail(int level) { + + #ifdef USE_OPENMP + int openmp_nthreads; +- if (blas_num_threads_set == 0) + openmp_nthreads=omp_get_max_threads(); +- else +- openmp_nthreads=blas_cpu_number; + #endif + + #ifndef USE_OPENMP +@@ -156,7 +154,13 @@ int openmp_nthreads; + ) return 1; + + #ifdef USE_OPENMP +- if (blas_cpu_number != openmp_nthreads) { ++ if (openmp_nthreads > blas_omp_number_max){ ++#ifdef DEBUG ++ fprintf(stderr,"WARNING - more OpenMP threads requested (%d) than available (%d)\n",openmp_nthreads,blas_omp_number_max); ++#endif ++ openmp_nthreads = blas_omp_number_max; ++ } ++ if (blas_cpu_number != openmp_nthreads) { + goto_set_num_threads(openmp_nthreads); + } + #endif + +From 3326b924b324d49960e0f657f049e5658e7e6c69 Mon Sep 17 00:00:00 2001 +From: Martin Kroeker +Date: Wed, 26 Jul 2023 00:31:24 +0200 +Subject: [PATCH 2/4] remove status variable blas_num_threads_set; initialize + openmp thread maximum on startup + +--- + driver/others/blas_server_omp.c | 4 +++- + driver/others/memory.c | 4 ---- + driver/others/memory_qalloc.c | 1 - + 3 files changed, 3 insertions(+), 6 deletions(-) + +diff --git a/driver/others/blas_server_omp.c b/driver/others/blas_server_omp.c +index 2e0c0f38c1..43764df00c 100644 +--- a/driver/others/blas_server_omp.c ++++ b/driver/others/blas_server_omp.c +@@ -68,6 +68,7 @@ + #endif + + int blas_server_avail = 0; ++int blas_omp_number_max = 0; + + extern int openblas_omp_adaptive_env(); + +@@ -100,7 +101,6 @@ static void adjust_thread_buffers() { + + void goto_set_num_threads(int num_threads) { + +- blas_num_threads_set = 1; + if (num_threads < 0) blas_num_threads_set = 0; + if (num_threads < 1) num_threads = blas_num_threads; + +@@ -125,6 +125,8 @@ void openblas_set_num_threads(int num_threads) { + } + + int blas_thread_init(void){ ++if(blas_omp_number_max <= 0) ++ blas_omp_number_max = omp_get_max_threads(); + + blas_get_cpu_number(); + +diff --git a/driver/others/memory.c b/driver/others/memory.c +index 3cbd17bc2f..4fceae7545 100644 +--- a/driver/others/memory.c ++++ b/driver/others/memory.c +@@ -422,8 +422,6 @@ This value is equal or large than blas_cpu_number. This means some threads are s + */ + int blas_num_threads = 0; + +-int blas_num_threads_set = 0; +- + int goto_get_num_procs (void) { + return blas_cpu_number; + } +@@ -1996,8 +1994,6 @@ This value is equal or large than blas_cpu_number. This means some threads are s + */ + int blas_num_threads = 0; + +-int blas_num_threads_set = 0; +- + int goto_get_num_procs (void) { + return blas_cpu_number; + } +diff --git a/driver/others/memory_qalloc.c b/driver/others/memory_qalloc.c +index 0b38d1887c..6174d9b75e 100644 +--- a/driver/others/memory_qalloc.c ++++ b/driver/others/memory_qalloc.c +@@ -283,7 +283,6 @@ The numbers of threads in the thread pool. + This value is equal or large than blas_cpu_number. This means some threads are sleep. + */ + int blas_num_threads = 0; +-int blas_num_threads_set = 0; + + int goto_get_num_procs (void) { + return blas_cpu_number; + +From 94adf98bb80b36c9faa2fa90fe7f33b36d30748c Mon Sep 17 00:00:00 2001 +From: Martin Kroeker +Date: Wed, 26 Jul 2023 08:31:37 +0200 +Subject: [PATCH 3/4] remove unused status variable + +--- + common_thread.h | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/common_thread.h b/common_thread.h +index 0a4c703b7c..06a7a1a38c 100644 +--- a/common_thread.h ++++ b/common_thread.h +@@ -53,7 +53,6 @@ extern void goto_set_num_threads(int nthreads); + /* Global Parameter */ + extern int blas_cpu_number; + extern int blas_num_threads; +-extern int blas_num_threads_set; + extern int blas_omp_linked; + + #define BLAS_LEGACY 0x8000U + +From 9ff84dc3f2536ce94e0a300a098485c7ff3d771d Mon Sep 17 00:00:00 2001 +From: Martin Kroeker +Date: Wed, 26 Jul 2023 10:02:44 +0200 +Subject: [PATCH 4/4] remove unused status variable + +--- + driver/others/blas_server_omp.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/driver/others/blas_server_omp.c b/driver/others/blas_server_omp.c +index 43764df00c..fe6b4a7c06 100644 +--- a/driver/others/blas_server_omp.c ++++ b/driver/others/blas_server_omp.c +@@ -101,7 +101,6 @@ static void adjust_thread_buffers() { + + void goto_set_num_threads(int num_threads) { + +- if (num_threads < 0) blas_num_threads_set = 0; + if (num_threads < 1) num_threads = blas_num_threads; + + if (num_threads > MAX_CPU_NUMBER) num_threads = MAX_CPU_NUMBER; diff --git a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.24-GCC-13.2.0.eb b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.24-GCC-13.2.0.eb new file mode 100644 index 00000000000..f3358f87771 --- /dev/null +++ b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.24-GCC-13.2.0.eb @@ -0,0 +1,48 @@ +name = 'OpenBLAS' +version = '0.3.24' + +homepage = 'http://www.openblas.net/' +description = "OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version." + +toolchain = {'name': 'GCC', 'version': '13.2.0'} + +source_urls = [ + # order matters, trying to download the large.tgz/timing.tgz LAPACK tarballs from GitHub causes trouble + 'https://www.netlib.org/lapack/timing/', + 'https://github.com/xianyi/OpenBLAS/archive/', +] +sources = ['v%(version)s.tar.gz'] +patches = [ + ('large.tgz', '.'), + ('timing.tgz', '.'), + 'OpenBLAS-0.3.15_workaround-gcc-miscompilation.patch', + 'OpenBLAS-0.3.21_fix-order-vectorization.patch', + 'OpenBLAS-0.3.23_fix-lapack-test.patch', + 'OpenBLAS-0.3.23_disable-DDRGES3-LAPACK-test.patch', +] +checksums = [ + {'v0.3.24.tar.gz': 'ceadc5065da97bd92404cac7254da66cc6eb192679cf1002098688978d4d5132'}, + {'large.tgz': 'f328d88b7fa97722f271d7d0cfea1c220e0f8e5ed5ff01d8ef1eb51d6f4243a1'}, + {'timing.tgz': '999c65f8ea8bd4eac7f1c7f3463d4946917afd20a997807300fe35d70122f3af'}, + {'OpenBLAS-0.3.15_workaround-gcc-miscompilation.patch': + 'e6b326fb8c4a8a6fd07741d9983c37a72c55c9ff9a4f74a80e1352ce5f975971'}, + {'OpenBLAS-0.3.21_fix-order-vectorization.patch': + '08af834e5d60441fd35c128758ed9c092ba6887c829e0471ecd489079539047d'}, + {'OpenBLAS-0.3.23_fix-lapack-test.patch': 'f6b3d81061f136e34aaf5359bb80fb9d2bba28825cc1dd26179b8dd01a9a0054'}, + {'OpenBLAS-0.3.23_disable-DDRGES3-LAPACK-test.patch': + '36a16b4d3b867897413b43b774f8b57d641ad9a1b452e9de33ced198ab25e461'}, +] + +builddependencies = [ + ('make', '4.4.1'), + # required by LAPACK test suite + ('Python', '3.11.5'), +] + +run_lapack_tests = True +max_failing_lapack_tests_num_errors = 150 + +# extensive testing can be enabled by uncommenting the line below +# runtest = 'PATH=.:$PATH lapack-timing' + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/o/OpenCV/OpenCV-4.8.1-foss-2023a-contrib.eb b/easybuild/easyconfigs/o/OpenCV/OpenCV-4.8.1-foss-2023a-contrib.eb new file mode 100644 index 00000000000..fe14501e01c --- /dev/null +++ b/easybuild/easyconfigs/o/OpenCV/OpenCV-4.8.1-foss-2023a-contrib.eb @@ -0,0 +1,107 @@ +name = 'OpenCV' +version = '4.8.1' +versionsuffix = '-contrib' + +# the hash is version dependent! see 3rdparty/ippicv/ippicv.cmake +local_ippicv_hash = '1224f78da6684df04397ac0f40c961ed37f79ccb' + +homepage = 'https://opencv.org/' +description = """OpenCV (Open Source Computer Vision Library) is an open source computer vision + and machine learning software library. OpenCV was built to provide + a common infrastructure for computer vision applications and to accelerate + the use of machine perception in the commercial products. + Includes extra modules for OpenCV from the contrib repository.""" + +toolchain = {'name': 'foss', 'version': '2023a'} + +sources = [ + { + 'source_urls': ['https://github.com/%(namelower)s/%(namelower)s/archive/'], + 'download_filename': '%(version)s.tar.gz', + 'filename': SOURCELOWER_TAR_GZ + }, + { + 'source_urls': ['https://github.com/%(namelower)s/opencv_contrib/archive/'], + 'download_filename': '%(version)s.tar.gz', + 'filename': '%(namelower)s_contrib-%(version)s.tar.gz' + }, + { + 'source_urls': ['https://raw.githubusercontent.com/opencv/opencv_3rdparty/%s/ippicv' % local_ippicv_hash], + 'filename': 'ippicv_2021.8_lnx_intel64_20230330_general.tgz', + 'extract_cmd': 'cp %s %(builddir)s' + }, +] +patches = [('opencv_contrib_python.egg-info', '..')] +checksums = [ + {'%(namelower)s-%(version)s.tar.gz': '62f650467a60a38794d681ae7e66e3e8cfba38f445e0bf87867e2f2cdc8be9d5'}, + {'%(namelower)s_contrib-%(version)s.tar.gz': '0c082a0b29b3118f2a0a1856b403bb098643af7b994a0080f402a12159a99c6e'}, + {'ippicv_2021.8_lnx_intel64_20230330_general.tgz': + '7cfe0fb0e15ea8f3d2d971c19df2d14382469943d4efa85e48bf358930daa85d'}, + {'opencv_contrib_python.egg-info': '08eb95c735d4ff82e35e3df56c2e7e75501cc263a8efcb9348d04e6322a4b034'}, +] + +builddependencies = [ + ('CMake', '3.26.3'), +] +dependencies = [ + ('Python', '3.11.3'), + ('SciPy-bundle', '2023.07'), + ('Python-bundle-PyPI', '2023.06'), + ('zlib', '1.2.13'), + ('FFmpeg', '6.0'), + ('freetype', '2.13.0'), + ('HarfBuzz', '5.3.1'), + ('libjpeg-turbo', '2.1.5.1'), + ('OpenJPEG', '2.5.0'), + ('libpng', '1.6.39'), + ('LibTIFF', '4.5.0'), + ('libwebp', '1.3.1'), + ('OpenEXR', '3.1.7'), + ('JasPer', '4.0.0'), + ('Java', '11', '', SYSTEM), + ('ant', '1.10.14', '-Java-%(javaver)s', SYSTEM), + ('GLib', '2.77.1'), + ('GTK4', '4.13.1'), + ('HDF5', '1.14.0'), +] + +# XXXX in configurations is a bug fix in OpenCV because ocv_check_modules is not able to recognize freetype and harfbuzz +# ref: https://github.com/opencv/opencv/blob/6e8daaec0f46aaba9ea22e2afce47307b1dbff9f/cmake/OpenCVUtils.cmake#L861 +configopts = " ".join([ + "-DOPENCV_EXTRA_MODULES_PATH=%(builddir)s/%(namelower)s_contrib-%(version)s/modules", + "-DOPENCV_GENERATE_PKGCONFIG=ON", + "-DFREETYPE_FOUND=ON", + "-DFREETYPE_INCLUDE_DIRS=$EBROOTFREETYPE/include/freetype2/", + "-DFREETYPE_LIBRARIES=$EBROOTFREETYPE/lib64/libfreetype.so", + "-DFREETYPE_LINK_LIBRARIES=$EBROOTFREETYPE/lib64/libfreetype.so", + "-DFREETYPE_LINK_LIBRARIES_XXXXX=ON", + "-DHARFBUZZ_FOUND=ON", + "-DHARFBUZZ_INCLUDE_DIRS=$EBROOTHARFBUZZ/include/harfbuzz", + "-DHARFBUZZ_LIBRARIES=$EBROOTHARFBUZZ/lib64/libharfbuzz.so", + "-DHARFBUZZ_LINK_LIBRARIES=$EBROOTHARFBUZZ/lib64/libharfbuzz.so", + "-DHARFBUZZ_LINK_LIBRARIES_XXXXX=ON", + "-DBUILD_opencv_python2=OFF", +]) + +# Install a egg-info file so it is more python friendly +local_egg_info_src = '%(builddir)s/opencv_contrib_python.egg-info' +local_egg_info_dest = '%(installdir)s/lib/python%(pyshortver)s/site-packages/opencv_contrib_python-%(version)s.egg-info' +postinstallcmds = [ + 'sed "s/#OPENCV_VERSION#/%%(version)s/" %s > %s' % (local_egg_info_src, local_egg_info_dest), +] + +enhance_sanity_check = True + +local_contrib_libs = [ + 'aruco', 'bgsegm', 'bioinspired', 'ccalib', 'datasets', 'dnn_objdetect', 'dnn_superres', 'dpm', 'face', 'freetype', + 'fuzzy', 'hdf', 'hfs', 'img_hash', 'line_descriptor', 'optflow', 'phase_unwrapping', 'plot', 'quality', 'reg', + 'rgbd', 'saliency', 'shape', 'stereo', 'structured_light', 'superres', 'surface_matching', 'text', 'tracking', + 'videostab', 'xfeatures2d', 'ximgproc', 'xobjdetect', 'xphoto' +] + +sanity_check_paths = { + 'files': ['lib64/libopencv_%s.%s' % (x, SHLIB_EXT) for x in local_contrib_libs], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/o/OpenEXR/OpenEXR-3.2.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/o/OpenEXR/OpenEXR-3.2.0-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..815985fab48 --- /dev/null +++ b/easybuild/easyconfigs/o/OpenEXR/OpenEXR-3.2.0-GCCcore-13.2.0.eb @@ -0,0 +1,38 @@ +easyblock = 'CMakeMake' + +name = 'OpenEXR' +version = '3.2.0' + +homepage = 'https://www.openexr.com/' +description = """OpenEXR is a high dynamic-range (HDR) image file format developed by Industrial Light & Magic + for use in computer imaging applications""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://github.com/%(namelower)s/%(namelower)s/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['b1b200606640547fceff0d3ebe01ac05c4a7ae2a131be7e9b3e5b9f491ef35b3'] + +builddependencies = [ + ('binutils', '2.40'), + ('CMake', '3.27.6'), +] +dependencies = [ + ('Imath', '3.1.9'), + ('zlib', '1.2.13') +] + +local_libs, local_bins = [ + ['Iex', 'IlmThread', 'OpenEXR', 'OpenEXRUtil'], + ['envmap', 'header', 'makepreview', 'maketiled', 'multipart', 'multiview', 'stdattr'] +] + +sanity_check_paths = { + 'files': ( + ['lib/lib%s.%s' % (s, SHLIB_EXT) for s in local_libs] + + ['bin/exr%s' % b for b in local_bins] + ), + 'dirs': ['include/%(name)s', 'share'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-10-foss-2023a.eb b/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-10-foss-2023a.eb new file mode 100644 index 00000000000..c4358543285 --- /dev/null +++ b/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-10-foss-2023a.eb @@ -0,0 +1,36 @@ +name = 'OpenFOAM' +version = '10' + +homepage = 'https://www.openfoam.org/' +description = """OpenFOAM is a free, open source CFD software package. + OpenFOAM has an extensive range of features to solve anything from complex fluid flows + involving chemical reactions, turbulence and heat transfer, + to solid dynamics and electromagnetics.""" + +toolchain = {'name': 'foss', 'version': '2023a'} + +source_urls = ['https://github.com/OpenFOAM/OpenFOAM-%(version_major)s/archive'] +sources = ['version-%(version)s.tar.gz'] +patches = ['OpenFOAM-%(version)s-ThirdParty.patch'] +checksums = [ + {'version-10.tar.gz': '59d712ba798ca44b989b6ac50bcb7c534eeccb82bcf961e10ec19fc8d84000cf'}, + {'OpenFOAM-10-ThirdParty.patch': '307df0206cdb24533f4974378843332064f4a2d85cf0638c20fc4c87b1524b43'}, +] + +builddependencies = [ + ('Bison', '3.8.2'), + ('CMake', '3.26.3'), + ('flex', '2.6.4'), +] + +dependencies = [ + ('ncurses', '6.4'), + # OpenFOAM requires 64 bit METIS using 32 bit indexes (array indexes) + ('METIS', '5.1.0'), + ('SCOTCH', '7.0.3'), + ('CGAL', '5.6'), + ('ParaView', '5.11.2'), + ('gnuplot', '5.4.8'), +] + +moduleclass = 'cae' diff --git a/easybuild/easyconfigs/o/OpenJPEG/OpenJPEG-2.5.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/o/OpenJPEG/OpenJPEG-2.5.0-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..9905775a89f --- /dev/null +++ b/easybuild/easyconfigs/o/OpenJPEG/OpenJPEG-2.5.0-GCCcore-13.2.0.eb @@ -0,0 +1,42 @@ +easyblock = 'CMakeMake' + +name = 'OpenJPEG' +version = '2.5.0' + +homepage = 'https://www.openjpeg.org/' +description = """OpenJPEG is an open-source JPEG 2000 codec written in + C language. It has been developed in order to promote the use of JPEG 2000, + a still-image compression standard from the Joint Photographic Experts Group + (JPEG). Since may 2015, it is officially recognized by ISO/IEC and ITU-T as + a JPEG 2000 Reference Software.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/uclouvain/%(namelower)s/archive'] +sources = ['v%(version)s.tar.gz'] +checksums = ['0333806d6adecc6f7a91243b2b839ff4d2053823634d4f6ed7a59bc87409122a'] + +builddependencies = [ + ('binutils', '2.40'), + ('CMake', '3.27.6'), +] +# for running the binary of openjpeg like opj_compress you need the libraries like zlib etc. +dependencies = [ + ('zlib', '1.2.13'), + ('libpng', '1.6.40'), + ('LibTIFF', '4.6.0'), +] + +sanity_check_paths = { + 'files': [ + 'bin/opj_compress', + 'bin/opj_decompress', + 'bin/opj_dump', + 'include/openjpeg-%(version_major)s.%(version_minor)s/openjpeg.h', + 'lib/libopenjp2.%s' % SHLIB_EXT + ], + 'dirs': ['bin', 'include', 'lib'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/o/OpenMM/OpenMM-8.0.0-foss-2023a.eb b/easybuild/easyconfigs/o/OpenMM/OpenMM-8.0.0-foss-2023a.eb new file mode 100644 index 00000000000..b45f64ecebe --- /dev/null +++ b/easybuild/easyconfigs/o/OpenMM/OpenMM-8.0.0-foss-2023a.eb @@ -0,0 +1,60 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics +# Update to 7.5.1 +# J. Sassmannshausen / GSTT + +easyblock = 'CMakeMake' + +name = 'OpenMM' +version = '8.0.0' + +homepage = 'https://openmm.org' +description = "OpenMM is a toolkit for molecular simulation." + +toolchain = {'name': 'foss', 'version': '2023a'} +toolchainopts = {'opt': True} + +source_urls = ['https://github.com/openmm/openmm/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = ['dc63d7b47c8bb7b169c409cfd63d909ed0ce1ae114d37c627bf7a4231acf488e'] + +builddependencies = [ + ('CMake', '3.26.3'), + ('Doxygen', '1.9.7'), +] + +dependencies = [ + ('Python', '3.11.3'), + ('SciPy-bundle', '2023.07'), + ('SWIG', '4.1.1'), +] + +pretestopts = " CTEST_OUTPUT_ON_FAILURE=1" +local_ignore_pattern = "(Integrator)|(Thermostat)|(Barostat)|(Rpmd)|(Amoeba)" +runtest = """test -e ARGS="-E \'%s\'" """ % local_ignore_pattern + +preinstallopts = ' export OPENMM_INCLUDE_PATH=%(installdir)s/include && ' +preinstallopts += ' export OPENMM_LIB_PATH=%(installdir)s/lib && ' + +# required to install the python API +installopts = ' && cd python && python setup.py build && python setup.py install --prefix=%(installdir)s' + +sanity_check_paths = { + 'files': ['lib/libOpenMM.%s' % SHLIB_EXT], + 'dirs': ['lib/python%(pyshortver)s/site-packages'] +} + +sanity_check_commands = [ + "python -c 'import simtk.openmm'", + "python -m openmm.testInstallation", +] + +modextrapaths = { + 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages/OpenMM-%(version)s-py%(pyshortver)s-linux-%(arch)s.egg', + 'OPENMM_INCLUDE_PATH': 'include', + 'OPENMM_LIB_PATH': 'lib', +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.5-GCC-12.3.0.eb b/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.5-GCC-12.3.0.eb index f54e9e48c72..6279c1af7bd 100644 --- a/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.5-GCC-12.3.0.eb +++ b/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.5-GCC-12.3.0.eb @@ -11,6 +11,7 @@ sources = [SOURCELOWER_TAR_BZ2] patches = [ 'OpenMPI-4.1.1_build-with-internal-cuda-header.patch', 'OpenMPI-4.1.1_opal-datatype-cuda-performance.patch', + 'OpenMPI-4.1.5_fix-pmix3x.patch', ] checksums = [ {'openmpi-4.1.5.tar.bz2': 'a640986bc257389dd379886fdae6264c8cfa56bc98b71ce3ae3dfbd8ce61dbe3'}, @@ -18,6 +19,8 @@ checksums = [ '63eac52736bdf7644c480362440a7f1f0ae7c7cae47b7565f5635c41793f8c83'}, {'OpenMPI-4.1.1_opal-datatype-cuda-performance.patch': 'b767c7166cf0b32906132d58de5439c735193c9fd09ec3c5c11db8d5fa68750e'}, + {'OpenMPI-4.1.5_fix-pmix3x.patch': + '46edac3dbf32f2a611d45e8a3c8edd3ae2f430eec16a1373b510315272115c40'}, ] builddependencies = [ diff --git a/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.5-intel-compilers-2023.1.0.eb b/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.5-intel-compilers-2023.1.0.eb index 7d59c6d092f..4d79ac0d55a 100644 --- a/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.5-intel-compilers-2023.1.0.eb +++ b/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.5-intel-compilers-2023.1.0.eb @@ -11,6 +11,7 @@ sources = [SOURCELOWER_TAR_BZ2] patches = [ 'OpenMPI-4.1.1_build-with-internal-cuda-header.patch', 'OpenMPI-4.1.1_opal-datatype-cuda-performance.patch', + 'OpenMPI-4.1.5_fix-pmix3x.patch', ] checksums = [ {'openmpi-4.1.5.tar.bz2': 'a640986bc257389dd379886fdae6264c8cfa56bc98b71ce3ae3dfbd8ce61dbe3'}, @@ -18,6 +19,8 @@ checksums = [ '63eac52736bdf7644c480362440a7f1f0ae7c7cae47b7565f5635c41793f8c83'}, {'OpenMPI-4.1.1_opal-datatype-cuda-performance.patch': 'b767c7166cf0b32906132d58de5439c735193c9fd09ec3c5c11db8d5fa68750e'}, + {'OpenMPI-4.1.5_fix-pmix3x.patch': + '46edac3dbf32f2a611d45e8a3c8edd3ae2f430eec16a1373b510315272115c40'}, ] builddependencies = [ diff --git a/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.5_fix-pmix3x.patch b/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.5_fix-pmix3x.patch new file mode 100644 index 00000000000..5f209139a3d --- /dev/null +++ b/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.5_fix-pmix3x.patch @@ -0,0 +1,581 @@ +From 6e8e14f2c2f207d5fa51299cc67558697a5b7d63 Mon Sep 17 00:00:00 2001 +From: Gilles Gouaillardet +Date: Wed, 8 Mar 2023 10:48:00 +0900 +Subject: [PATCH] pmix3x: use PMIX_VALUE_LOAD() and PMIX_INFO_LOAD() macros + +Refs. open-mpi/ompi#10416 + +bot:notacherrypick + +Signed-off-by: Gilles Gouaillardet +--- + opal/mca/pmix/pmix3x/pmix3x.c | 273 ++++++++++++++++++++++----- + opal/mca/pmix/pmix3x/pmix3x.h | 6 +- + opal/mca/pmix/pmix3x/pmix3x_client.c | 48 ++--- + 3 files changed, 242 insertions(+), 85 deletions(-) + +diff --git a/opal/mca/pmix/pmix3x/pmix3x.c b/opal/mca/pmix/pmix3x/pmix3x.c +index 3b2a5353cc6..c49b6772af5 100644 +--- a/opal/mca/pmix/pmix3x/pmix3x.c ++++ b/opal/mca/pmix/pmix3x/pmix3x.c +@@ -1,7 +1,7 @@ + /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ + /* + * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. +- * Copyright (c) 2014-2019 Research Organization for Information Science ++ * Copyright (c) 2014-2023 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2015 Mellanox Technologies, Inc. + * All rights reserved. +@@ -217,8 +217,7 @@ static void return_local_event_hdlr(int status, opal_list_t *results, + PMIX_INFO_CREATE(op->info, op->ninfo); + n=0; + OPAL_LIST_FOREACH(kv, cd->info, opal_value_t) { +- (void)strncpy(op->info[n].key, kv->key, PMIX_MAX_KEYLEN); +- pmix3x_value_load(&op->info[n].value, kv); ++ pmix3x_info_load(&op->info[n], kv); + ++n; + } + } +@@ -735,7 +734,7 @@ char* pmix3x_convert_jobid(opal_jobid_t jobid) + /**** RHC: NEED TO ADD SUPPORT FOR NEW PMIX DATA TYPES, INCLUDING + **** CONVERSION OF PROC STATES ****/ + +-void pmix3x_value_load(pmix_value_t *v, ++void pmix3x_info_load(pmix_info_t *i, + opal_value_t *kv) + { + opal_pmix3x_jobid_trkr_t *job; +@@ -743,91 +742,264 @@ void pmix3x_value_load(pmix_value_t *v, + opal_list_t *list; + opal_value_t *val; + pmix_info_t *info; ++ pmix_envar_t envar; + size_t n; + + switch(kv->type) { + case OPAL_UNDEF: +- v->type = PMIX_UNDEF; ++ PMIX_INFO_LOAD(i, kv->key, &kv->data, PMIX_UNDEF); + break; + case OPAL_BOOL: +- v->type = PMIX_BOOL; +- memcpy(&(v->data.flag), &kv->data.flag, 1); ++ PMIX_INFO_LOAD(i, kv->key, &kv->data.flag, PMIX_BOOL); + break; + case OPAL_BYTE: +- v->type = PMIX_BYTE; +- memcpy(&(v->data.byte), &kv->data.byte, 1); ++ PMIX_INFO_LOAD(i, kv->key, &kv->data.byte, PMIX_BYTE); + break; + case OPAL_STRING: +- v->type = PMIX_STRING; +- if (NULL != kv->data.string) { +- v->data.string = strdup(kv->data.string); ++ PMIX_INFO_LOAD(i, kv->key, kv->data.string, PMIX_STRING); ++ break; ++ case OPAL_SIZE: ++ PMIX_INFO_LOAD(i, kv->key, &kv->data.size, PMIX_SIZE); ++ break; ++ case OPAL_PID: ++ PMIX_INFO_LOAD(i, kv->key, &kv->data.pid, PMIX_PID); ++ break; ++ case OPAL_INT: ++ PMIX_INFO_LOAD(i, kv->key, &kv->data.integer, PMIX_INT); ++ break; ++ case OPAL_INT8: ++ PMIX_INFO_LOAD(i, kv->key, &kv->data.int8, PMIX_INT8); ++ break; ++ case OPAL_INT16: ++ PMIX_INFO_LOAD(i, kv->key, &kv->data.int16, PMIX_INT16); ++ break; ++ case OPAL_INT32: ++ PMIX_INFO_LOAD(i, kv->key, &kv->data.int32, PMIX_INT32); ++ break; ++ case OPAL_INT64: ++ PMIX_INFO_LOAD(i, kv->key, &kv->data.int64, PMIX_INT64); ++ break; ++ case OPAL_UINT: ++ PMIX_INFO_LOAD(i, kv->key, &kv->data.uint, PMIX_UINT); ++ break; ++ case OPAL_UINT8: ++ PMIX_INFO_LOAD(i, kv->key, &kv->data.uint8, PMIX_UINT8); ++ break; ++ case OPAL_UINT16: ++ PMIX_INFO_LOAD(i, kv->key, &kv->data.uint16, PMIX_UINT16); ++ break; ++ case OPAL_UINT32: ++ PMIX_INFO_LOAD(i, kv->key, &kv->data.uint32, PMIX_UINT32); ++ break; ++ case OPAL_UINT64: ++ PMIX_INFO_LOAD(i, kv->key, &kv->data.uint32, PMIX_UINT64); ++ break; ++ case OPAL_FLOAT: ++ PMIX_INFO_LOAD(i, kv->key, &kv->data.fval, PMIX_FLOAT); ++ break; ++ case OPAL_DOUBLE: ++ PMIX_INFO_LOAD(i, kv->key, &kv->data.dval, PMIX_DOUBLE); ++ break; ++ case OPAL_TIMEVAL: ++ PMIX_INFO_LOAD(i, kv->key, &kv->data.tv, PMIX_TIMEVAL); ++ break; ++ case OPAL_TIME: ++ PMIX_INFO_LOAD(i, kv->key, &kv->data.time, PMIX_TIME); ++ break; ++ case OPAL_STATUS: ++ i->value.type = PMIX_STATUS; ++ i->value.data.status = pmix3x_convert_opalrc(kv->data.status); ++ break; ++ case OPAL_VPID: ++ i->value.type = PMIX_PROC_RANK; ++ i->value.data.rank = pmix3x_convert_opalrank(kv->data.name.vpid); ++ break; ++ case OPAL_NAME: ++ i->value.type = PMIX_PROC; ++ /* have to stringify the jobid */ ++ PMIX_PROC_CREATE(i->value.data.proc, 1); ++ /* see if this job is in our list of known nspaces */ ++ found = false; ++ OPAL_LIST_FOREACH(job, &mca_pmix_pmix3x_component.jobids, opal_pmix3x_jobid_trkr_t) { ++ if (job->jobid == kv->data.name.jobid) { ++ (void)strncpy(i->value.data.proc->nspace, job->nspace, PMIX_MAX_NSLEN); ++ found = true; ++ break; ++ } ++ } ++ if (!found) { ++ (void)opal_snprintf_jobid(i->value.data.proc->nspace, PMIX_MAX_NSLEN, kv->data.name.jobid); ++ } ++ i->value.data.proc->rank = pmix3x_convert_opalrank(kv->data.name.vpid); ++ break; ++ case OPAL_BYTE_OBJECT: ++ i->value.type = PMIX_BYTE_OBJECT; ++ if (NULL != kv->data.bo.bytes) { ++ i->value.data.bo.bytes = (char*)malloc(kv->data.bo.size); ++ memcpy(i->value.data.bo.bytes, kv->data.bo.bytes, kv->data.bo.size); ++ i->value.data.bo.size = (size_t)kv->data.bo.size; ++ } else { ++ i->value.data.bo.bytes = NULL; ++ i->value.data.bo.size = 0; ++ } ++ break; ++ case OPAL_PERSIST: ++ i->value.type = PMIX_PERSIST; ++ i->value.data.persist = pmix3x_convert_opalpersist((opal_pmix_persistence_t)kv->data.uint8); ++ break; ++ case OPAL_SCOPE: ++ i->value.type = PMIX_SCOPE; ++ i->value.data.scope = pmix3x_convert_opalscope((opal_pmix_scope_t)kv->data.uint8); ++ break; ++ case OPAL_DATA_RANGE: ++ i->value.type = PMIX_DATA_RANGE; ++ i->value.data.range = pmix3x_convert_opalrange((opal_pmix_data_range_t)kv->data.uint8); ++ break; ++ case OPAL_PROC_STATE: ++ i->value.type = PMIX_PROC_STATE; ++ /* the OPAL layer doesn't have any concept of proc state, ++ * so the ORTE layer is responsible for converting it */ ++ memcpy(&i->value.data.state, &kv->data.uint8, sizeof(uint8_t)); ++ break; ++ case OPAL_PTR: ++ /* if the opal_value_t is passing a true pointer, then ++ * respect that request and pass it along */ ++ if (0 == strcmp(kv->key, OPAL_PMIX_EVENT_RETURN_OBJECT)) { ++ i->value.type = PMIX_POINTER; ++ i->value.data.ptr = kv->data.ptr; ++ break; ++ } ++ /* otherwise, it must be to a list of ++ * opal_value_t's that we need to convert to a pmix_data_array ++ * of pmix_info_t structures */ ++ list = (opal_list_t*)kv->data.ptr; ++ i->value.type = PMIX_DATA_ARRAY; ++ i->value.data.darray = (pmix_data_array_t*)malloc(sizeof(pmix_data_array_t)); ++ i->value.data.darray->type = PMIX_INFO; ++ i->value.data.darray->size = opal_list_get_size(list); ++ if (0 < i->value.data.darray->size) { ++ PMIX_INFO_CREATE(info, i->value.data.darray->size); ++ i->value.data.darray->array = info; ++ n=0; ++ OPAL_LIST_FOREACH(val, list, opal_value_t) { ++ if (NULL != val->key) { ++ (void)strncpy(info[n].key, val->key, PMIX_MAX_KEYLEN); ++ } ++ pmix3x_value_load(&info[n].value, val); ++ ++n; ++ } + } else { +- v->data.string = NULL; ++ i->value.data.darray->array = NULL; ++ } ++ break; ++ case OPAL_PROC_INFO: ++ i->value.type = PMIX_PROC_INFO; ++ PMIX_PROC_INFO_CREATE(i->value.data.pinfo, 1); ++ /* see if this job is in our list of known nspaces */ ++ found = false; ++ OPAL_LIST_FOREACH(job, &mca_pmix_pmix3x_component.jobids, opal_pmix3x_jobid_trkr_t) { ++ if (job->jobid == kv->data.pinfo.name.jobid) { ++ (void)strncpy(i->value.data.pinfo->proc.nspace, job->nspace, PMIX_MAX_NSLEN); ++ found = true; ++ break; ++ } ++ } ++ if (!found) { ++ (void)opal_snprintf_jobid(i->value.data.pinfo->proc.nspace, PMIX_MAX_NSLEN, kv->data.pinfo.name.jobid); + } ++ i->value.data.pinfo->proc.rank = pmix3x_convert_opalrank(kv->data.pinfo.name.vpid); ++ if (NULL != kv->data.pinfo.hostname) { ++ i->value.data.pinfo->hostname = strdup(kv->data.pinfo.hostname); ++ } ++ if (NULL != kv->data.pinfo.executable_name) { ++ i->value.data.pinfo->executable_name = strdup(kv->data.pinfo.executable_name); ++ } ++ i->value.data.pinfo->pid = kv->data.pinfo.pid; ++ i->value.data.pinfo->exit_code = kv->data.pinfo.exit_code; ++ i->value.data.pinfo->state = pmix3x_convert_opalstate(kv->data.pinfo.state); ++ break; ++ case OPAL_ENVAR: ++ PMIX_ENVAR_CONSTRUCT(&envar); ++ PMIX_ENVAR_LOAD(&envar, kv->data.envar.envar, kv->data.envar.value, kv->data.envar.separator); ++ PMIX_INFO_LOAD(i, kv->key, &envar, PMIX_ENVAR); ++ PMIX_ENVAR_DESTRUCT(&envar); ++ break; ++ default: ++ /* silence warnings */ ++ break; ++ } ++} ++ ++void pmix3x_value_load(pmix_value_t *v, ++ opal_value_t *kv) ++{ ++ opal_pmix3x_jobid_trkr_t *job; ++ bool found; ++ opal_list_t *list; ++ opal_value_t *val; ++ pmix_info_t *info; ++ size_t n; ++ ++ switch(kv->type) { ++ case OPAL_UNDEF: ++ PMIX_VALUE_LOAD(v, NULL, PMIX_UNDEF); ++ break; ++ case OPAL_BOOL: ++ PMIX_VALUE_LOAD(v, &kv->data.flag, PMIX_BOOL); ++ break; ++ case OPAL_BYTE: ++ PMIX_VALUE_LOAD(v, &kv->data.byte, PMIX_BYTE); ++ break; ++ case OPAL_STRING: ++ PMIX_VALUE_LOAD(v, kv->data.string, PMIX_STRING); + break; + case OPAL_SIZE: +- v->type = PMIX_SIZE; +- memcpy(&(v->data.size), &kv->data.size, sizeof(size_t)); ++ PMIX_VALUE_LOAD(v, &kv->data.size, PMIX_SIZE); + break; + case OPAL_PID: +- v->type = PMIX_PID; +- memcpy(&(v->data.pid), &kv->data.pid, sizeof(pid_t)); ++ PMIX_VALUE_LOAD(v, &kv->data.pid, PMIX_PID); + break; + case OPAL_INT: +- v->type = PMIX_INT; +- memcpy(&(v->data.integer), &kv->data.integer, sizeof(int)); ++ PMIX_VALUE_LOAD(v, &kv->data.integer, PMIX_INT); + break; + case OPAL_INT8: +- v->type = PMIX_INT8; +- memcpy(&(v->data.int8), &kv->data.int8, 1); ++ PMIX_VALUE_LOAD(v, &kv->data.int8, PMIX_INT8); + break; + case OPAL_INT16: +- v->type = PMIX_INT16; +- memcpy(&(v->data.int16), &kv->data.int16, 2); ++ PMIX_VALUE_LOAD(v, &kv->data.int16, PMIX_INT16); + break; + case OPAL_INT32: +- v->type = PMIX_INT32; +- memcpy(&(v->data.int32), &kv->data.int32, 4); ++ PMIX_VALUE_LOAD(v, &kv->data.int32, PMIX_INT32); + break; + case OPAL_INT64: +- v->type = PMIX_INT64; +- memcpy(&(v->data.int64), &kv->data.int64, 8); ++ PMIX_VALUE_LOAD(v, &kv->data.int64, PMIX_INT64); + break; + case OPAL_UINT: +- v->type = PMIX_UINT; +- memcpy(&(v->data.uint), &kv->data.uint, sizeof(int)); ++ PMIX_VALUE_LOAD(v, &kv->data.uint, PMIX_UINT); + break; + case OPAL_UINT8: +- v->type = PMIX_UINT8; +- memcpy(&(v->data.uint8), &kv->data.uint8, 1); ++ PMIX_VALUE_LOAD(v, &kv->data.uint8, PMIX_UINT8); + break; + case OPAL_UINT16: +- v->type = PMIX_UINT16; +- memcpy(&(v->data.uint16), &kv->data.uint16, 2); ++ PMIX_VALUE_LOAD(v, &kv->data.uint16, PMIX_UINT16); + break; + case OPAL_UINT32: +- v->type = PMIX_UINT32; +- memcpy(&(v->data.uint32), &kv->data.uint32, 4); ++ PMIX_VALUE_LOAD(v, &kv->data.uint32, PMIX_UINT32); + break; + case OPAL_UINT64: +- v->type = PMIX_UINT64; +- memcpy(&(v->data.uint64), &kv->data.uint64, 8); ++ PMIX_VALUE_LOAD(v, &kv->data.uint64, PMIX_UINT64); + break; + case OPAL_FLOAT: +- v->type = PMIX_FLOAT; +- memcpy(&(v->data.fval), &kv->data.fval, sizeof(float)); ++ PMIX_VALUE_LOAD(v, &kv->data.fval, PMIX_FLOAT); + break; + case OPAL_DOUBLE: +- v->type = PMIX_DOUBLE; +- memcpy(&(v->data.dval), &kv->data.dval, sizeof(double)); ++ PMIX_VALUE_LOAD(v, &kv->data.dval, PMIX_DOUBLE); + break; + case OPAL_TIMEVAL: +- v->type = PMIX_TIMEVAL; +- memcpy(&(v->data.tv), &kv->data.tv, sizeof(struct timeval)); ++ PMIX_VALUE_LOAD(v, &kv->data.tv, PMIX_TIMEVAL); + break; + case OPAL_TIME: +- v->type = PMIX_TIME; +- memcpy(&(v->data.time), &kv->data.time, sizeof(time_t)); ++ PMIX_VALUE_LOAD(v, &kv->data.time, PMIX_TIME); + break; + case OPAL_STATUS: + v->type = PMIX_STATUS; +@@ -1308,8 +1480,7 @@ static void register_handler(opal_list_t *event_codes, + PMIX_INFO_CREATE(op->info, op->ninfo); + n=0; + OPAL_LIST_FOREACH(kv, info, opal_value_t) { +- (void)strncpy(op->info[n].key, kv->key, PMIX_MAX_KEYLEN); +- pmix3x_value_load(&op->info[n].value, kv); ++ pmix3x_info_load(&op->info[n], kv); + ++n; + } + } +@@ -1428,7 +1599,7 @@ static int notify_event(int status, + op->info[n].value.type = PMIX_STATUS; + op->info[n].value.data.status = pmix3x_convert_opalrc(kv->data.integer); + } else { +- pmix3x_value_load(&op->info[n].value, kv); ++ pmix3x_info_load(&op->info[n], kv); + } + ++n; + } +@@ -1533,8 +1704,7 @@ static void pmix3x_query(opal_list_t *queries, + PMIX_INFO_CREATE(cd->queries[n].qualifiers, cd->queries[n].nqual); + nq = 0; + OPAL_LIST_FOREACH(ival, &q->qualifiers, opal_value_t) { +- (void)strncpy(cd->queries[n].qualifiers[nq].key, ival->key, PMIX_MAX_KEYLEN); +- pmix3x_value_load(&cd->queries[n].qualifiers[nq].value, ival); ++ pmix3x_info_load(&cd->queries[n].qualifiers[nq], ival); + ++nq; + } + } +@@ -1596,8 +1766,7 @@ static void pmix3x_log(opal_list_t *info, + PMIX_INFO_CREATE(cd->info, cd->ninfo); + n=0; + OPAL_LIST_FOREACH(ival, info, opal_value_t) { +- (void)strncpy(cd->info[n].key, ival->key, PMIX_MAX_KEYLEN); +- pmix3x_value_load(&cd->info[n].value, ival); ++ pmix3x_info_load(&cd->info[n], ival); + ++n; + } + +diff --git a/opal/mca/pmix/pmix3x/pmix3x.h b/opal/mca/pmix/pmix3x/pmix3x.h +index 94e46bbd461..7048af0cb03 100644 +--- a/opal/mca/pmix/pmix3x/pmix3x.h ++++ b/opal/mca/pmix/pmix3x/pmix3x.h +@@ -3,8 +3,8 @@ + * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2015 Mellanox Technologies, Inc. + * All rights reserved. +- * Copyright (c) 2016 Research Organization for Information Science +- * and Technology (RIST). All rights reserved. ++ * Copyright (c) 2016-2023 Research Organization for Information Science ++ * and Technology (RIST). All rights reserved. + * Copyright (c) 2017 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2021 IBM Corporation. All rights reserved. +@@ -334,6 +334,8 @@ OPAL_MODULE_DECLSPEC opal_pmix_data_range_t pmix3x_convert_range(pmix_data_range + OPAL_MODULE_DECLSPEC opal_pmix_persistence_t pmix3x_convert_persist(pmix_persistence_t scope); + OPAL_MODULE_DECLSPEC pmix_persistence_t pmix3x_convert_opalpersist(opal_pmix_persistence_t scope); + ++OPAL_MODULE_DECLSPEC void pmix3x_info_load(pmix_info_t *v, ++ opal_value_t *kv); + OPAL_MODULE_DECLSPEC void pmix3x_value_load(pmix_value_t *v, + opal_value_t *kv); + OPAL_MODULE_DECLSPEC int pmix3x_value_unload(opal_value_t *kv, +diff --git a/opal/mca/pmix/pmix3x/pmix3x_client.c b/opal/mca/pmix/pmix3x/pmix3x_client.c +index caf1a409f4a..5d9f0fd28bb 100644 +--- a/opal/mca/pmix/pmix3x/pmix3x_client.c ++++ b/opal/mca/pmix/pmix3x/pmix3x_client.c +@@ -1,8 +1,8 @@ + /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ + /* + * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. +- * Copyright (c) 2014-2017 Research Organization for Information Science +- * and Technology (RIST). All rights reserved. ++ * Copyright (c) 2014-2023 Research Organization for Information Science ++ * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2017 Mellanox Technologies, Inc. + * All rights reserved. + * Copyright (c) 2016 Cisco Systems, Inc. All rights reserved. +@@ -93,8 +93,7 @@ int pmix3x_client_init(opal_list_t *ilist) + PMIX_INFO_CREATE(pinfo, ninfo); + n=0; + OPAL_LIST_FOREACH(ival, ilist, opal_value_t) { +- (void)strncpy(pinfo[n].key, ival->key, PMIX_MAX_KEYLEN); +- pmix3x_value_load(&pinfo[n].value, ival); ++ pmix3x_info_load(&pinfo[n], ival); + ++n; + } + } else { +@@ -222,8 +221,7 @@ int pmix3x_tool_init(opal_list_t *info) + PMIX_INFO_CREATE(pinfo, ninfo); + n=0; + OPAL_LIST_FOREACH(val, info, opal_value_t) { +- (void)strncpy(pinfo[n].key, val->key, PMIX_MAX_KEYLEN); +- pmix3x_value_load(&pinfo[n].value, val); ++ pmix3x_info_load(&pinfo[n], val); + ++n; + /* check to see if our name is being given from above */ + if (0 == strcmp(val->key, OPAL_PMIX_TOOL_NSPACE)) { +@@ -647,8 +645,7 @@ int pmix3x_get(const opal_process_name_t *proc, const char *key, + PMIX_INFO_CREATE(pinfo, sz); + n=0; + OPAL_LIST_FOREACH(ival, info, opal_value_t) { +- (void)strncpy(pinfo[n].key, ival->key, PMIX_MAX_KEYLEN); +- pmix3x_value_load(&pinfo[n].value, ival); ++ pmix3x_info_load(&pinfo[n], ival); + ++n; + } + } +@@ -768,8 +765,7 @@ int pmix3x_getnb(const opal_process_name_t *proc, const char *key, + PMIX_INFO_CREATE(op->info, op->sz); + n=0; + OPAL_LIST_FOREACH(val, info, opal_value_t) { +- (void)strncpy(op->info[n].key, val->key, PMIX_MAX_KEYLEN); +- pmix3x_value_load(&op->info[n].value, val); ++ pmix3x_info_load(&op->info[n], val); + ++n; + } + } +@@ -809,8 +805,7 @@ int pmix3x_publish(opal_list_t *info) + PMIX_INFO_CREATE(pinfo, sz); + n=0; + OPAL_LIST_FOREACH(iptr, info, opal_value_t) { +- (void)strncpy(pinfo[n].key, iptr->key, PMIX_MAX_KEYLEN); +- pmix3x_value_load(&pinfo[n].value, iptr); ++ pmix3x_info_load(&pinfo[n], iptr); + ++n; + } + } else { +@@ -857,8 +852,7 @@ int pmix3x_publishnb(opal_list_t *info, + PMIX_INFO_CREATE(op->info, op->sz); + n=0; + OPAL_LIST_FOREACH(iptr, info, opal_value_t) { +- (void)strncpy(op->info[n].key, iptr->key, PMIX_MAX_KEYLEN); +- pmix3x_value_load(&op->info[n].value, iptr); ++ pmix3x_info_load(&op->info[n], iptr); + ++n; + } + } +@@ -903,8 +897,7 @@ int pmix3x_lookup(opal_list_t *data, opal_list_t *info) + PMIX_INFO_CREATE(pinfo, sz); + n=0; + OPAL_LIST_FOREACH(iptr, info, opal_value_t) { +- (void)strncpy(pinfo[n].key, iptr->key, PMIX_MAX_KEYLEN); +- pmix3x_value_load(&pinfo[n].value, iptr); ++ pmix3x_info_load(&pinfo[n], iptr); + ++n; + } + } +@@ -1052,8 +1045,7 @@ int pmix3x_lookupnb(char **keys, opal_list_t *info, + PMIX_INFO_CREATE(op->info, op->sz); + n=0; + OPAL_LIST_FOREACH(iptr, info, opal_value_t) { +- (void)strncpy(op->info[n].key, iptr->key, PMIX_MAX_KEYLEN); +- pmix3x_value_load(&op->info[n].value, iptr); ++ pmix3x_info_load(&op->info[n], iptr); + ++n; + } + } +@@ -1080,8 +1072,7 @@ int pmix3x_unpublish(char **keys, opal_list_t *info) + PMIX_INFO_CREATE(pinfo, ninfo); + n=0; + OPAL_LIST_FOREACH(iptr, info, opal_value_t) { +- (void)strncpy(pinfo[n].key, iptr->key, PMIX_MAX_KEYLEN); +- pmix3x_value_load(&pinfo[n].value, iptr); ++ pmix3x_info_load(&pinfo[n], iptr); + ++n; + } + } else { +@@ -1119,8 +1110,7 @@ int pmix3x_unpublishnb(char **keys, opal_list_t *info, + PMIX_INFO_CREATE(op->info, op->sz); + n=0; + OPAL_LIST_FOREACH(iptr, info, opal_value_t) { +- (void)strncpy(op->info[n].key, iptr->key, PMIX_MAX_KEYLEN); +- pmix3x_value_load(&op->info[n].value, iptr); ++ pmix3x_info_load(&op->info[n], iptr); + ++n; + } + } +@@ -1154,8 +1144,7 @@ int pmix3x_spawn(opal_list_t *job_info, opal_list_t *apps, opal_jobid_t *jobid) + PMIX_INFO_CREATE(info, ninfo); + n=0; + OPAL_LIST_FOREACH(ival, job_info, opal_value_t) { +- (void)strncpy(info[n].key, ival->key, PMIX_MAX_KEYLEN); +- pmix3x_value_load(&info[n].value, ival); ++ pmix3x_info_load(&info[n], ival); + ++n; + } + } +@@ -1180,7 +1169,7 @@ int pmix3x_spawn(opal_list_t *job_info, opal_list_t *apps, opal_jobid_t *jobid) + m=0; + OPAL_LIST_FOREACH(ival, &app->info, opal_value_t) { + (void)strncpy(papps[n].info[m].key, ival->key, PMIX_MAX_KEYLEN); +- pmix3x_value_load(&papps[n].info[m].value, ival); ++ pmix3x_info_load(&papps[n].info[m], ival); + ++m; + } + } +@@ -1270,8 +1259,7 @@ int pmix3x_spawnnb(opal_list_t *job_info, opal_list_t *apps, + PMIX_INFO_CREATE(op->info, op->ninfo); + n=0; + OPAL_LIST_FOREACH(info, job_info, opal_value_t) { +- (void)strncpy(op->info[n].key, info->key, PMIX_MAX_KEYLEN); +- pmix3x_value_load(&op->info[n].value, info); ++ pmix3x_info_load(&op->info[n], info); + ++n; + } + } +@@ -1292,8 +1280,7 @@ int pmix3x_spawnnb(opal_list_t *job_info, opal_list_t *apps, + PMIX_INFO_CREATE(op->apps[n].info, op->apps[n].ninfo); + m=0; + OPAL_LIST_FOREACH(info, &app->info, opal_value_t) { +- (void)strncpy(op->apps[n].info[m].key, info->key, PMIX_MAX_KEYLEN); +- pmix3x_value_load(&op->apps[n].info[m].value, info); ++ pmix3x_info_load(&op->apps[n].info[m], info); + ++m; + } + } +@@ -1659,8 +1646,7 @@ abort(); + PMIX_INFO_CREATE(op->info, op->ninfo); + n=0; + OPAL_LIST_FOREACH(iptr, directives, opal_value_t) { +- (void)strncpy(op->info[n].key, iptr->key, PMIX_MAX_KEYLEN); +- pmix3x_value_load(&op->info[n].value, iptr); ++ pmix3x_info_load(&op->info[n], iptr); + ++n; + } + } diff --git a/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.6-GCC-13.2.0.eb b/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.6-GCC-13.2.0.eb new file mode 100644 index 00000000000..3e4baa87735 --- /dev/null +++ b/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.6-GCC-13.2.0.eb @@ -0,0 +1,62 @@ +name = 'OpenMPI' +version = '4.1.6' + +homepage = 'https://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-3 implementation.""" + +toolchain = {'name': 'GCC', 'version': '13.2.0'} + +source_urls = ['https://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] +sources = [SOURCELOWER_TAR_BZ2] +patches = [ + 'OpenMPI-4.1.1_build-with-internal-cuda-header.patch', + 'OpenMPI-4.1.1_opal-datatype-cuda-performance.patch', +] +checksums = [ + {'openmpi-4.1.6.tar.bz2': 'f740994485516deb63b5311af122c265179f5328a0d857a567b85db00b11e415'}, + {'OpenMPI-4.1.1_build-with-internal-cuda-header.patch': + '63eac52736bdf7644c480362440a7f1f0ae7c7cae47b7565f5635c41793f8c83'}, + {'OpenMPI-4.1.1_opal-datatype-cuda-performance.patch': + 'b767c7166cf0b32906132d58de5439c735193c9fd09ec3c5c11db8d5fa68750e'}, +] + +builddependencies = [ + ('pkgconf', '2.0.3'), + ('Perl', '5.38.0'), + ('Autotools', '20220317'), +] + +dependencies = [ + ('zlib', '1.2.13'), + ('hwloc', '2.9.2'), + ('libevent', '2.1.12'), + ('UCX', '1.15.0'), + ('libfabric', '1.19.0'), + ('PMIx', '4.2.6'), + ('UCC', '1.2.0'), +] + +# Update configure to include changes from the "internal-cuda" patch +# by running a subset of autogen.pl sufficient to achieve this +# without doing the full, long-running regeneration. +preconfigopts = ' && '.join([ + 'cd config', + 'autom4te --language=m4sh opal_get_version.m4sh -o opal_get_version.sh', + 'cd ..', + 'autoconf', + 'autoheader', + 'aclocal', + 'automake', + '' +]) + +# CUDA related patches and custom configure option can be removed if CUDA support isn't wanted. +configopts = '--with-cuda=internal ' + +# disable MPI1 compatibility for now, see what breaks... +# configopts += '--enable-mpi1-compatibility ' + +# to enable SLURM integration (site-specific) +# configopts += '--with-slurm --with-pmi=/usr/include/slurm --with-pmi-libdir=/usr' + +moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/o/OpenMolcas/OpenMolcas-23.06-intel-2023a.eb b/easybuild/easyconfigs/o/OpenMolcas/OpenMolcas-23.06-intel-2023a.eb new file mode 100644 index 00000000000..907f553c656 --- /dev/null +++ b/easybuild/easyconfigs/o/OpenMolcas/OpenMolcas-23.06-intel-2023a.eb @@ -0,0 +1,58 @@ +easyblock = 'CMakeMake' + +name = 'OpenMolcas' +version = '23.06' + +homepage = "https://gitlab.com/Molcas/OpenMolcas" +description = "OpenMolcas is a quantum chemistry software package." + +toolchain = {'name': 'intel', 'version': '2023a'} +toolchainopts = {'usempi': True} + +source_urls = ['https://gitlab.com/Molcas/OpenMolcas/-/archive/v%(version)s/'] +sources = ["%(name)s-v%(version)s.tar.gz"] +patches = ['%(name)s-%(version)s_mcpdft_deps.patch'] +checksums = [ + {'%(name)s-v%(version)s.tar.gz': 'fe0299ed39af6e84f249f91452c411f9845c9ae4a0ce78641c867dea8056f280'}, + {'%(name)s-%(version)s_mcpdft_deps.patch': 'a798ec6f93a19539aa2211a978da461d4ecd31c5521b9dab6f2a9b1c2fa65f0e'}, +] + +builddependencies = [('CMake', '3.26.3')] + +dependencies = [ + ('Python', '3.11.3'), + ('Python-bundle-PyPI', '2023.06'), + ('HDF5', '1.14.0'), + ('GlobalArrays', '5.8.2'), +] + +build_shared_libs = True + +preconfigopts = 'GAROOT=$EBROOTGLOBALARRAYS' +_copts = [ + '-DLINALG=MKL', + '-DMKLROOT=$MKLROOT', + '-DOPENMP=ON', + '-DTOOLS=ON', + '-DFDE=ON', + '-DMPI=ON', + '-DGA=ON', +] +configopts = ' '.join(_copts) + +modextrapaths = {'PATH': ''} +modextravars = { + 'MOLCAS': '%(installdir)s', + 'MOLCAS_DRIVER': '%(installdir)s/pymolcas', + 'MOLCAS_SOURCE': '%(installdir)s', +} + +sanity_check_commands = ['cd %(builddir)s/easybuild_obj; ./pymolcas verify'] + +sanity_check_paths = { + 'files': ['bin/dynamix.exe', 'bin/mpprop.exe', 'lib/libmolcas.%s' % SHLIB_EXT, + 'sbin/help_basis', 'pymolcas'], + 'dirs': ['data/', 'basis_library/'], +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/o/OpenMolcas/OpenMolcas-23.06_mcpdft_deps.patch b/easybuild/easyconfigs/o/OpenMolcas/OpenMolcas-23.06_mcpdft_deps.patch new file mode 100644 index 00000000000..9351f956181 --- /dev/null +++ b/easybuild/easyconfigs/o/OpenMolcas/OpenMolcas-23.06_mcpdft_deps.patch @@ -0,0 +1,17 @@ +# What: Add rasscf as a dependency to mcpdft +# Authors: B. Hajgato (UGent), 2021 +# maxim-masterov (SURF), 2023 +# +diff -Nru OpenMolcas-v23.06.orig/CMakeLists.txt OpenMolcas-v23.06/CMakeLists.txt +--- OpenMolcas-v23.06.orig/CMakeLists.txt 2023-10-09 13:47:31.989388000 +0200 ++++ OpenMolcas-v23.06/CMakeLists.txt 2023-10-09 13:47:56.971468000 +0200 +@@ -2354,6 +2354,9 @@ + + # set program dependencies of super modules + # (note dependencies are not recursive with object libraries, so child dependencies must be explicit) ++set (mcpdft_deplibs ++ rasscf ++) + set (casvb_deplibs + rasscf + ) diff --git a/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-GCCcore-13.2.0.eb b/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..c5f9932f03f --- /dev/null +++ b/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-GCCcore-13.2.0.eb @@ -0,0 +1,44 @@ +easyblock = 'ConfigureMake' + +name = 'OpenPGM' +version = '5.2.122' + +homepage = 'https://code.google.com/p/openpgm/' +description = """ + OpenPGM is an open source implementation of the Pragmatic General Multicast + (PGM) specification in RFC 3208 available at www.ietf.org. PGM is a reliable + and scalable multicast protocol that enables receivers to detect loss, request + retransmission of lost data, or notify an application of unrecoverable loss. + PGM is a receiver-reliable protocol, which means the receiver is responsible + for ensuring all data is received, absolving the sender of reception + responsibility. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/%(namelower)s/'] +sources = ['libpgm-%(version)s.tar.gz'] +patches = [ + '%(name)s-%(version)s-pkgconfig_includes.patch', + '%(name)s-%(version)s-python3-compliant.patch', +] +checksums = [ + '6b895f550b95284dcde7189b01e04a9a1c1f94579af31b1eebd32c2207a1ba2c', # libpgm-%(version)s.tar.gz + '4a9fc7fbb6e73e325639a895cd19c1ac6918b575f715c057caa01f826de40114', # %(name)s-%(version)s-pkgconfig_includes.patch + 'a3bf6b4127473d287d72767b0335b8705940e56ffbccc8d4d3bdbf23a2fc8618', # %(name)s-%(version)s-python3-compliant.patch +] + +builddependencies = [ + ('binutils', '2.40'), + ('Python', '3.11.5'), +] + +start_dir = 'pgm' + +sanity_check_paths = { + 'files': ['lib/libpgm.%s' % SHLIB_EXT, 'lib/libpgm.a'], + 'dirs': ['include'], +} + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/o/OpenSSL/OpenSSL-1.1.eb b/easybuild/easyconfigs/o/OpenSSL/OpenSSL-1.1.eb index 001713087da..b4c7bcbd94e 100644 --- a/easybuild/easyconfigs/o/OpenSSL/OpenSSL-1.1.eb +++ b/easybuild/easyconfigs/o/OpenSSL/OpenSSL-1.1.eb @@ -27,11 +27,11 @@ builddependencies = [('pkgconf', '1.8.0')] # component list, which will be build and installed as usual. components = [ - (name, '1.1.1u', { + (name, '1.1.1w', { 'easyblock': 'EB_OpenSSL', 'source_urls': ['https://www.openssl.org/source/'], 'sources': [SOURCELOWER_TAR_GZ], - 'checksums': ['e2f8d84b523eecd06c7be7626830370300fbcc15386bf5142d72758f6963ebc6'], + 'checksums': ['cf3098950cb4d853ad95c0841f1f9c6d3dc102dccfcacd521d93925208b76ac8'], 'start_dir': '%(namelower)s-%(version)s', }), ] diff --git a/easybuild/easyconfigs/o/OpenSlide/OpenSlide-3.4.1-GCCcore-12.3.0-largefiles.eb b/easybuild/easyconfigs/o/OpenSlide/OpenSlide-3.4.1-GCCcore-12.3.0-largefiles.eb new file mode 100644 index 00000000000..77358e8a3ab --- /dev/null +++ b/easybuild/easyconfigs/o/OpenSlide/OpenSlide-3.4.1-GCCcore-12.3.0-largefiles.eb @@ -0,0 +1,56 @@ +easyblock = 'ConfigureMake' + +name = 'OpenSlide' +version = '3.4.1' +versionsuffix = '-largefiles' + +homepage = 'https://openslide.org/' +description = """OpenSlide is a C library that provides a simple interface to +read whole-slide images (also known as virtual slides).""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +patches = ['%(name)s-%(version)s_large_file_support.patch'] +checksums = [ + # v3.4.1.tar.gz + 'a5d869916e370125421535dcce778b2ba625dc50d920aa4ca93bbaaa6a7b470c', + # %(name)s-%(version_major_minor)s.1_large_file_support.patch + 'cb618053f4ae6c3ce37d1b8b0e4ef7c55fd17378776d13be4aa4efab91706b8c', +] + +builddependencies = [ + ('Autotools', '20220317'), + ('M4', '1.4.19'), + ('pkgconf', '1.9.5'), + ('binutils', '2.40'), +] + +dependencies = [ + ('zlib', '1.2.13'), + ('libpng', '1.6.39'), + ('libjpeg-turbo', '2.1.5.1'), + ('LibTIFF', '4.5.0'), + ('OpenJPEG', '2.5.0'), + ('libxml2', '2.11.4'), + ('SQLite', '3.42.0'), + ('cairo', '1.17.8'), + ('Gdk-Pixbuf', '2.42.10'), +] + +preconfigopts = "autoreconf -f -i && " + +sanity_check_paths = { + 'files': [ + 'bin/openslide-quickhash1sum', + 'bin/openslide-show-properties', + 'bin/openslide-write-png', + 'lib/libopenslide.la', + 'lib/libopenslide.%s' % SHLIB_EXT + ], + 'dirs': ['include/openslide'] +} + + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/o/OrthoFinder/OrthoFinder-2.5.5-foss-2023a.eb b/easybuild/easyconfigs/o/OrthoFinder/OrthoFinder-2.5.5-foss-2023a.eb new file mode 100644 index 00000000000..6bf59e72ea3 --- /dev/null +++ b/easybuild/easyconfigs/o/OrthoFinder/OrthoFinder-2.5.5-foss-2023a.eb @@ -0,0 +1,40 @@ +easyblock = 'PythonPackage' + +name = 'OrthoFinder' +version = '2.5.5' + +homepage = 'https://github.com/davidemms/OrthoFinder' +description = "OrthoFinder is a fast, accurate and comprehensive platform for comparative genomics" + +toolchain = {'name': 'foss', 'version': '2023a'} + +github_account = 'davidemms' +source_urls = [GITHUB_SOURCE] +sources = ['%(version)s.tar.gz'] +checksums = ['56cc3dd196e88cb67cce9f34e459f44d52b8b1e0f339b6380b9e6a7c0104f6ff'] + +dependencies = [ + ('Python', '3.11.3'), + ('SciPy-bundle', '2023.07'), + ('BLAST+', '2.14.1'), + ('DIAMOND', '2.1.8'), + ('FastME', '2.1.6.3'), + ('MCL', '22.282'), + ('MMseqs2', '14-7e284'), +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +options = {'modulename': 'scripts_of'} + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['convert_orthofinder_tree_ids', 'make_ultrametric', 'orthofinder', + 'primary_transcript']], + 'dirs': ['ExampleData', 'lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["orthofinder --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/o/openkim-models/openkim-models-20210811-GCCcore-12.3.0.eb b/easybuild/easyconfigs/o/openkim-models/openkim-models-20210811-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..0a9a26b1e30 --- /dev/null +++ b/easybuild/easyconfigs/o/openkim-models/openkim-models-20210811-GCCcore-12.3.0.eb @@ -0,0 +1,51 @@ +easyblock = 'CMakeMake' + +name = 'openkim-models' +version = '20210811' + +homepage = 'https://openkim.org/' +description = """Open Knowledgebase of Interatomic Models. + +OpenKIM is an API and a collection of interatomic models (potentials) for +atomistic simulations. It is a library that can be used by simulation programs +to get access to the models in the OpenKIM database. + +This EasyBuild installs the models. The API itself is in the kim-api +package. + """ + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +builddependencies = [ + ('binutils', '2.40'), + ('pkgconf', '1.9.5'), +] + +dependencies = [ + ('kim-api', '2.3.0'), +] + +source_urls = ['https://s3.openkim.org/archives/collection/'] +sources = ['openkim-models-2021-08-11.txz'] +checksums = ['f42d241969787297d839823bdd5528bc9324cd2d85f5cf2054866e654ce576da'] + +separate_build_dir = True +abs_path_compilers = True # Otherwise some KIM-API magic breaks cmake. +configopts = '-DKIM_API_INSTALL_COLLECTION=SYSTEM ' +configopts += '-DKIM_API_PORTABLE_MODEL_INSTALL_PREFIX=%(installdir)s/lib/kim-api/portable-models ' +configopts += '-DKIM_API_SIMULATOR_MODEL_INSTALL_PREFIX=%(installdir)s/lib/kim-api/simulator-models ' +configopts += '-DKIM_API_MODEL_DRIVER_INSTALL_PREFIX=%(installdir)s/lib/kim-api/model-drivers ' + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/kim-api/model-drivers', 'lib/kim-api/portable-models', 'lib/kim-api/simulator-models'] +} + +modextravars = { + 'KIM_API_MODEL_DRIVERS_DIR': '%(installdir)s/lib/kim-api/model-drivers', + 'KIM_API_PORTABLE_MODELS_DIR': '%(installdir)s/lib/kim-api/portable-models', + 'KIM_API_SIMULATOR_MODELS_DIR': '%(installdir)s/lib/kim-api/simulator-models', +} + + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/o/openpyxl/openpyxl-3.1.2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/o/openpyxl/openpyxl-3.1.2-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..a666b740fce --- /dev/null +++ b/easybuild/easyconfigs/o/openpyxl/openpyxl-3.1.2-GCCcore-12.3.0.eb @@ -0,0 +1,35 @@ +easyblock = 'PythonBundle' + +name = 'openpyxl' +version = '3.1.2' + +homepage = 'https://openpyxl.readthedocs.io' +description = "A Python library to read/write Excel 2010 xlsx/xlsm files" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +builddependencies = [('binutils', '2.40')] + +dependencies = [ + ('Python', '3.11.3'), + ('lxml', '4.9.2'), + ('Pillow', '10.0.0'), +] + +use_pip = True + +exts_list = [ + ('et_xmlfile', '1.1.0', { + 'checksums': ['8eb9e2bc2f8c97e37a2dc85a09ecdcdec9d8a396530a6d5a33b30b9a92da0c5c'], + }), + ('jdcal', '1.4.1', { + 'checksums': ['472872e096eb8df219c23f2689fc336668bdb43d194094b5cc1707e1640acfc8'], + }), + (name, version, { + 'checksums': ['a6f5977418eff3b2d5500d54d9db50c8277a368436f4e4f8ddb1be3422870184'], + }), +] + +sanity_pip_check = True + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/o/openslide-python/openslide-python-1.3.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/o/openslide-python/openslide-python-1.3.1-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..25e52c700cb --- /dev/null +++ b/easybuild/easyconfigs/o/openslide-python/openslide-python-1.3.1-GCCcore-12.3.0.eb @@ -0,0 +1,29 @@ +easyblock = 'PythonPackage' + +name = 'openslide-python' +version = '1.3.1' + +homepage = 'https://github.com/openslide/openslide-python' +description = "OpenSlide Python is a Python interface to the OpenSlide library." + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +source_urls = ['https://github.com/openslide/openslide-python/archive'] +sources = ['v%(version)s.tar.gz'] +checksums = ['3f56bc9d02ae4a5b7257cf5e35214c5cc45f429ff3d5ef849c6c8e2460c1f9cd'] + +builddependencies = [('binutils', '2.40')] + +dependencies = [ + ('Python', '3.11.3'), + ('OpenSlide', '3.4.1', '-largefiles'), + ('Pillow-SIMD', '9.5.0'), +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +options = {'modulename': 'openslide'} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/PCRE2/PCRE2-10.42-GCCcore-13.2.0.eb b/easybuild/easyconfigs/p/PCRE2/PCRE2-10.42-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..416148d0f52 --- /dev/null +++ b/easybuild/easyconfigs/p/PCRE2/PCRE2-10.42-GCCcore-13.2.0.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'PCRE2' +version = '10.42' + +homepage = 'https://www.pcre.org/' +description = """ + The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax + and semantics as Perl 5. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/PCRE2Project/%(namelower)s/releases/download/%(namelower)s-%(version)s'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['c33b418e3b936ee3153de2c61cc638e7e4fe3156022a5c77d0711bcbb9d64f1f'] + +builddependencies = [('binutils', '2.40')] + +configopts = "--enable-shared --enable-jit --enable-pcre2-16 --enable-unicode" + +sanity_check_paths = { + 'files': ["bin/pcre2-config", "bin/pcre2grep", "bin/pcre2test", "lib/libpcre2-8.a", "lib/libpcre2-16.a"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/p/PETSc/PETSc-3.19.2-foss-2022b.eb b/easybuild/easyconfigs/p/PETSc/PETSc-3.19.2-foss-2022b.eb new file mode 100644 index 00000000000..1a49fec0885 --- /dev/null +++ b/easybuild/easyconfigs/p/PETSc/PETSc-3.19.2-foss-2022b.eb @@ -0,0 +1,46 @@ +## +# Author: Robert Mijakovic +# Author: Jasper Grimm (UoY) +## +name = 'PETSc' +version = '3.19.2' + +homepage = 'https://www.mcs.anl.gov/petsc' +description = """PETSc, pronounced PET-see (the S is silent), is a suite of data structures and routines for the + scalable (parallel) solution of scientific applications modeled by partial differential equations.""" + +toolchain = {'name': 'foss', 'version': '2022b'} +toolchainopts = {'openmp': True, 'usempi': True, 'pic': True} + +source_urls = [ + 'https://ftp.mcs.anl.gov/pub/petsc/release-snapshots/', + 'ftp://ftp.mcs.anl.gov/pub/petsc/release-snapshots/', +] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['114f363f779bb16839b25c0e70f8b0ae0d947d50e72f7c6cddcb11b001079b16'] + +builddependencies = [('CMake', '3.24.3')] + +dependencies = [ + ('Python', '3.10.8'), + ('SciPy-bundle', '2023.02'), + ('Boost', '1.81.0'), + ('METIS', '5.1.0'), + ('SCOTCH', '7.0.3'), + ('MUMPS', '5.6.1', '-metis'), + ('SuiteSparse', '5.13.0', '-METIS-5.1.0'), + ('Hypre', '2.27.0'), + ('ParMETIS', '4.0.3'), + ('SuperLU_DIST', '8.1.2'), + ('mpi4py', '3.1.4'), +] + +configopts = '--LIBS="$LIBS -lrt" --with-mpi4py=0 ' + +shared_libs = 1 + +# only required when building PETSc in a SLURM job environment +# configopts += '--with-batch=1 --known-mpi-shared-libraries=1 --known-64-bit-blas-indices=0 ' +# prebuildopts = "srun ./conftest-arch-linux2-c-opt && ./reconfigure-arch-linux2-c-opt.py && " + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/p/PGPLOT/PGPLOT-5.2.2-GCCcore-11.3.0.eb b/easybuild/easyconfigs/p/PGPLOT/PGPLOT-5.2.2-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..d07bd42ad50 --- /dev/null +++ b/easybuild/easyconfigs/p/PGPLOT/PGPLOT-5.2.2-GCCcore-11.3.0.eb @@ -0,0 +1,58 @@ +easyblock = 'CmdCp' + +name = 'PGPLOT' +version = '5.2.2' + +homepage = 'https://sites.astro.caltech.edu/~tjp/pgplot/' +description = """The PGPLOT Graphics Subroutine Library is a Fortran- or C-callable, +device-independent graphics package for making simple scientific graphs. It is intended +for making graphical images of publication quality with minimum effort on the part of +the user. For most applications, the program can be device-independent, and the output +can be directed to the appropriate device at run time.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['ftp://ftp.astro.caltech.edu/pub/pgplot/'] +sources = ['%%(namelower)s%s.tar.gz' % version.replace('.', '')] +patches = ['PGPLOT-5.2.2_gfortran-deps-fixes.patch'] +checksums = [ + {'pgplot522.tar.gz': 'a5799ff719a510d84d26df4ae7409ae61fe66477e3f1e8820422a9a4727a5be4'}, + {'PGPLOT-5.2.2_gfortran-deps-fixes.patch': 'b1822eb32499dc18aa4aa4fae0b31c3c64ff8abb3a243716e78addafa7e58cec'}, +] + +builddependencies = [ + ('binutils', '2.38'), +] + +dependencies = [ + ('libpng', '1.6.37'), + ('zlib', '1.2.12'), + ('X11', '20220504'), +] + +cmds_map = [('.*', './makemake . linux g77_gcc && make && make shared && make cpg && make cpg-shared')] + +files_to_copy = [ + (['pgdemo*'], 'bin'), + (['libpgplot.*', 'libcpgplot.*'], 'lib'), + (['grfont.dat'], 'share'), + (['cpgplot.h'], 'include'), +] + +# create .so symlinks for shared libraries +postinstallcmds = [ + "cd %%(installdir)s/lib && ln -s libcpgplot.%s.5.2.2 libcpgplot.%s.5" % (SHLIB_EXT, SHLIB_EXT), + "cd %%(installdir)s/lib && ln -s libcpgplot.%s.5.2.2 libcpgplot.%s" % (SHLIB_EXT, SHLIB_EXT), + "cd %%(installdir)s/lib && ln -s libpgplot.%s.5.2.2 libpgplot.%s.5" % (SHLIB_EXT, SHLIB_EXT), + "cd %%(installdir)s/lib && ln -s libpgplot.%s.5.2.2 libpgplot.%s" % (SHLIB_EXT, SHLIB_EXT), +] + +sanity_check_paths = { + 'files': ['include/cpgplot.h', 'lib/libpgplot.a', 'lib/libcpgplot.a', + 'lib/libpgplot.%s' % SHLIB_EXT, 'lib/libcpgplot.%s' % SHLIB_EXT], + 'dirs': ['bin'], +} + +modextravars = {'PGPLOT_FONT': '%(installdir)s/share/grfont.dat'} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/PMIx/PMIx-3.1.4-GCCcore-8.3.0.eb b/easybuild/easyconfigs/p/PMIx/PMIx-3.1.4-GCCcore-8.3.0.eb index f732b370577..48b78f5e9cb 100644 --- a/easybuild/easyconfigs/p/PMIx/PMIx-3.1.4-GCCcore-8.3.0.eb +++ b/easybuild/easyconfigs/p/PMIx/PMIx-3.1.4-GCCcore-8.3.0.eb @@ -23,7 +23,11 @@ toolchainopts = {'pic': True} source_urls = ['https://github.com/pmix/pmix/releases/download/v%(version)s'] sources = ['%(namelower)s-%(version)s.tar.bz2'] -checksums = ['982f6eff7764b7c7d6566554f47bb3244fc3ff5bf0abba2bc395f0833d0a9ee0'] +patches = ['PMIx-3.1.x_lchown.patch'] +checksums = [ + {'pmix-3.1.4.tar.bz2': '982f6eff7764b7c7d6566554f47bb3244fc3ff5bf0abba2bc395f0833d0a9ee0'}, + {'PMIx-3.1.x_lchown.patch': '9a4d5e3cb0e619f2e9ac2ffad0b8cb2b22f5c67973080724c79519fb34d55776'}, +] builddependencies = [('binutils', '2.32')] diff --git a/easybuild/easyconfigs/p/PMIx/PMIx-3.1.5-GCCcore-10.2.0.eb b/easybuild/easyconfigs/p/PMIx/PMIx-3.1.5-GCCcore-10.2.0.eb index efe2a2d3ed8..fa9cd004705 100644 --- a/easybuild/easyconfigs/p/PMIx/PMIx-3.1.5-GCCcore-10.2.0.eb +++ b/easybuild/easyconfigs/p/PMIx/PMIx-3.1.5-GCCcore-10.2.0.eb @@ -23,7 +23,11 @@ toolchainopts = {'pic': True} source_urls = ['https://github.com/openpmix/openpmix/releases/download/v%(version)s'] sources = ['%(namelower)s-%(version)s.tar.bz2'] -checksums = ['88934195174455df478b996313095df25b51d0caf5a5cce01b22f0ccdc6c5cf7'] +patches = ['PMIx-3.1.x_lchown.patch'] +checksums = [ + {'pmix-3.1.5.tar.bz2': '88934195174455df478b996313095df25b51d0caf5a5cce01b22f0ccdc6c5cf7'}, + {'PMIx-3.1.x_lchown.patch': '9a4d5e3cb0e619f2e9ac2ffad0b8cb2b22f5c67973080724c79519fb34d55776'}, +] builddependencies = [('binutils', '2.35')] diff --git a/easybuild/easyconfigs/p/PMIx/PMIx-3.1.5-GCCcore-9.3.0.eb b/easybuild/easyconfigs/p/PMIx/PMIx-3.1.5-GCCcore-9.3.0.eb index 6b6c1bc9807..59b8ab28bce 100644 --- a/easybuild/easyconfigs/p/PMIx/PMIx-3.1.5-GCCcore-9.3.0.eb +++ b/easybuild/easyconfigs/p/PMIx/PMIx-3.1.5-GCCcore-9.3.0.eb @@ -23,7 +23,11 @@ toolchainopts = {'pic': True} source_urls = ['https://github.com/openpmix/openpmix/releases/download/v%(version)s'] sources = ['%(namelower)s-%(version)s.tar.bz2'] -checksums = ['88934195174455df478b996313095df25b51d0caf5a5cce01b22f0ccdc6c5cf7'] +patches = ['PMIx-3.1.x_lchown.patch'] +checksums = [ + {'pmix-3.1.5.tar.bz2': '88934195174455df478b996313095df25b51d0caf5a5cce01b22f0ccdc6c5cf7'}, + {'PMIx-3.1.x_lchown.patch': '9a4d5e3cb0e619f2e9ac2ffad0b8cb2b22f5c67973080724c79519fb34d55776'}, +] builddependencies = [('binutils', '2.34')] diff --git a/easybuild/easyconfigs/p/PMIx/PMIx-3.1.x_lchown.patch b/easybuild/easyconfigs/p/PMIx/PMIx-3.1.x_lchown.patch new file mode 100644 index 00000000000..09cc729e08e --- /dev/null +++ b/easybuild/easyconfigs/p/PMIx/PMIx-3.1.x_lchown.patch @@ -0,0 +1,87 @@ +backport of https://github.com/openpmix/openpmix/pull/3150 to PMIx 3.1.x +diff -ru pmix-3.1.5.orig/src/mca/common/dstore/dstore_base.c pmix-3.1.5/src/mca/common/dstore/dstore_base.c +--- pmix-3.1.5.orig/src/mca/common/dstore/dstore_base.c 2020-02-19 05:55:43.000000000 +0100 ++++ pmix-3.1.5/src/mca/common/dstore/dstore_base.c 2023-09-11 15:17:22.502130578 +0200 +@@ -525,7 +525,7 @@ + } + } + if (s->setjobuid > 0){ +- if (0 > chown(s->nspace_path, (uid_t) s->jobuid, (gid_t) -1)){ ++ if (0 > lchown(s->nspace_path, (uid_t) s->jobuid, (gid_t) -1)){ + rc = PMIX_ERROR; + PMIX_ERROR_LOG(rc); + return rc; +@@ -1677,7 +1677,7 @@ + } + } + if (ds_ctx->setjobuid > 0) { +- if (chown(ds_ctx->base_path, (uid_t) ds_ctx->jobuid, (gid_t) -1) < 0){ ++ if (lchown(ds_ctx->base_path, (uid_t) ds_ctx->jobuid, (gid_t) -1) < 0){ + rc = PMIX_ERR_NO_PERMISSIONS; + PMIX_ERROR_LOG(rc); + goto err_exit; +diff -ru pmix-3.1.5.orig/src/mca/common/dstore/dstore_segment.c pmix-3.1.5/src/mca/common/dstore/dstore_segment.c +--- pmix-3.1.5.orig/src/mca/common/dstore/dstore_segment.c 2020-02-19 05:55:43.000000000 +0100 ++++ pmix-3.1.5/src/mca/common/dstore/dstore_segment.c 2023-09-11 15:17:22.502130578 +0200 +@@ -120,7 +120,7 @@ + + if (setuid > 0){ + rc = PMIX_ERR_PERM; +- if (0 > chown(file_name, (uid_t) uid, (gid_t) -1)){ ++ if (0 > lchown(file_name, (uid_t) uid, (gid_t) -1)){ + PMIX_ERROR_LOG(rc); + goto err_exit; + } +@@ -211,7 +211,7 @@ + + if (setuid > 0){ + rc = PMIX_ERR_PERM; +- if (0 > chown(file_name, (uid_t) uid, (gid_t) -1)){ ++ if (0 > lchown(file_name, (uid_t) uid, (gid_t) -1)){ + PMIX_ERROR_LOG(rc); + goto err_exit; + } +diff -ru pmix-3.1.5.orig/src/mca/gds/ds12/gds_ds12_lock_fcntl.c pmix-3.1.5/src/mca/gds/ds12/gds_ds12_lock_fcntl.c +--- pmix-3.1.5.orig/src/mca/gds/ds12/gds_ds12_lock_fcntl.c 2020-02-19 05:55:43.000000000 +0100 ++++ pmix-3.1.5/src/mca/gds/ds12/gds_ds12_lock_fcntl.c 2023-09-11 15:17:22.502130578 +0200 +@@ -127,7 +127,7 @@ + } + } + if (0 != setuid) { +- if (0 > chown(lock_ctx->lockfile, uid, (gid_t) -1)) { ++ if (0 > lchown(lock_ctx->lockfile, uid, (gid_t) -1)) { + rc = PMIX_ERROR; + PMIX_ERROR_LOG(rc); + goto error; +diff -ru pmix-3.1.5.orig/src/mca/gds/ds12/gds_ds12_lock_pthread.c pmix-3.1.5/src/mca/gds/ds12/gds_ds12_lock_pthread.c +--- pmix-3.1.5.orig/src/mca/gds/ds12/gds_ds12_lock_pthread.c 2020-02-19 05:55:43.000000000 +0100 ++++ pmix-3.1.5/src/mca/gds/ds12/gds_ds12_lock_pthread.c 2023-09-11 15:17:22.502130578 +0200 +@@ -113,7 +113,7 @@ + } + memset(lock_ctx->segment->seg_base_addr, 0, size); + if (0 != setuid) { +- if (0 > chown(lock_ctx->lockfile, (uid_t) uid, (gid_t) -1)){ ++ if (0 > lchown(lock_ctx->lockfile, (uid_t) uid, (gid_t) -1)){ + rc = PMIX_ERROR; + PMIX_ERROR_LOG(rc); + goto error; +diff -ru pmix-3.1.5.orig/src/mca/ptl/usock/ptl_usock_component.c pmix-3.1.5/src/mca/ptl/usock/ptl_usock_component.c +--- pmix-3.1.5.orig/src/mca/ptl/usock/ptl_usock_component.c 2020-02-19 05:55:43.000000000 +0100 ++++ pmix-3.1.5/src/mca/ptl/usock/ptl_usock_component.c 2023-09-11 15:19:31.883298870 +0200 +@@ -267,14 +267,14 @@ + } + /* chown as required */ + if (lt->owner_given) { +- if (0 != chown(address->sun_path, lt->owner, -1)) { ++ if (0 != lchown(address->sun_path, lt->owner, -1)) { + pmix_output(0, "CANNOT CHOWN socket %s: %s", address->sun_path, strerror (errno)); + CLOSE_THE_SOCKET(lt->socket); + goto sockerror; + } + } + if (lt->group_given) { +- if (0 != chown(address->sun_path, -1, lt->group)) { ++ if (0 != lchown(address->sun_path, -1, lt->group)) { + pmix_output(0, "CANNOT CHOWN socket %s: %s", address->sun_path, strerror (errno)); + CLOSE_THE_SOCKET(lt->socket); + goto sockerror; diff --git a/easybuild/easyconfigs/p/PMIx/PMIx-3.2.3-GCCcore-10.3.0.eb b/easybuild/easyconfigs/p/PMIx/PMIx-3.2.3-GCCcore-10.3.0.eb index c95149b5eaa..ac54991a3d8 100644 --- a/easybuild/easyconfigs/p/PMIx/PMIx-3.2.3-GCCcore-10.3.0.eb +++ b/easybuild/easyconfigs/p/PMIx/PMIx-3.2.3-GCCcore-10.3.0.eb @@ -24,7 +24,11 @@ toolchainopts = {'pic': True} source_urls = ['https://github.com/openpmix/openpmix/releases/download/v%(version)s'] sources = ['%(namelower)s-%(version)s.tar.bz2'] -checksums = ['9b835f23c2f94a193c14012ee68b3657a61c568598cdd1212a3716b32d41a135'] +patches = ['PMIx-3.2.x_lchown.patch'] +checksums = [ + {'pmix-3.2.3.tar.bz2': '9b835f23c2f94a193c14012ee68b3657a61c568598cdd1212a3716b32d41a135'}, + {'PMIx-3.2.x_lchown.patch': '67f081fdc5d66557343c7019e45b08f169708e2eed628644e99b1ea1dff302e1'}, +] builddependencies = [('binutils', '2.36.1')] diff --git a/easybuild/easyconfigs/p/PMIx/PMIx-3.2.x_lchown.patch b/easybuild/easyconfigs/p/PMIx/PMIx-3.2.x_lchown.patch new file mode 100644 index 00000000000..ae84cf059f7 --- /dev/null +++ b/easybuild/easyconfigs/p/PMIx/PMIx-3.2.x_lchown.patch @@ -0,0 +1,99 @@ +backport of https://github.com/openpmix/openpmix/pull/3150 to PMIx 3.2.x +diff -ru pmix-3.2.3.orig/src/mca/common/dstore/dstore_base.c pmix-3.2.3/src/mca/common/dstore/dstore_base.c +--- pmix-3.2.3.orig/src/mca/common/dstore/dstore_base.c 2020-12-23 15:43:16.000000000 +0100 ++++ pmix-3.2.3/src/mca/common/dstore/dstore_base.c 2023-09-13 18:28:41.479243046 +0200 +@@ -528,7 +528,7 @@ + } + } + if (s->setjobuid > 0){ +- if (0 > chown(s->nspace_path, (uid_t) s->jobuid, (gid_t) -1)){ ++ if (0 > lchown(s->nspace_path, (uid_t) s->jobuid, (gid_t) -1)){ + rc = PMIX_ERROR; + PMIX_ERROR_LOG(rc); + return rc; +@@ -1682,7 +1682,7 @@ + } + } + if (ds_ctx->setjobuid > 0) { +- if (chown(ds_ctx->base_path, (uid_t) ds_ctx->jobuid, (gid_t) -1) < 0){ ++ if (lchown(ds_ctx->base_path, (uid_t) ds_ctx->jobuid, (gid_t) -1) < 0){ + rc = PMIX_ERR_NO_PERMISSIONS; + PMIX_ERROR_LOG(rc); + goto err_exit; +diff -ru pmix-3.2.3.orig/src/mca/common/dstore/dstore_segment.c pmix-3.2.3/src/mca/common/dstore/dstore_segment.c +--- pmix-3.2.3.orig/src/mca/common/dstore/dstore_segment.c 2020-04-16 15:16:47.000000000 +0200 ++++ pmix-3.2.3/src/mca/common/dstore/dstore_segment.c 2023-09-13 18:28:41.479243046 +0200 +@@ -120,7 +120,7 @@ + + if (setuid > 0){ + rc = PMIX_ERR_PERM; +- if (0 > chown(file_name, (uid_t) uid, (gid_t) -1)){ ++ if (0 > lchown(file_name, (uid_t) uid, (gid_t) -1)){ + PMIX_ERROR_LOG(rc); + goto err_exit; + } +@@ -211,7 +211,7 @@ + + if (setuid > 0){ + rc = PMIX_ERR_PERM; +- if (0 > chown(file_name, (uid_t) uid, (gid_t) -1)){ ++ if (0 > lchown(file_name, (uid_t) uid, (gid_t) -1)){ + PMIX_ERROR_LOG(rc); + goto err_exit; + } +diff -ru pmix-3.2.3.orig/src/mca/gds/ds12/gds_ds12_lock_fcntl.c pmix-3.2.3/src/mca/gds/ds12/gds_ds12_lock_fcntl.c +--- pmix-3.2.3.orig/src/mca/gds/ds12/gds_ds12_lock_fcntl.c 2020-04-16 15:16:47.000000000 +0200 ++++ pmix-3.2.3/src/mca/gds/ds12/gds_ds12_lock_fcntl.c 2023-09-13 18:28:41.480243044 +0200 +@@ -127,7 +127,7 @@ + } + } + if (0 != setuid) { +- if (0 > chown(lock_ctx->lockfile, uid, (gid_t) -1)) { ++ if (0 > lchown(lock_ctx->lockfile, uid, (gid_t) -1)) { + rc = PMIX_ERROR; + PMIX_ERROR_LOG(rc); + goto error; +diff -ru pmix-3.2.3.orig/src/mca/gds/ds12/gds_ds12_lock_pthread.c pmix-3.2.3/src/mca/gds/ds12/gds_ds12_lock_pthread.c +--- pmix-3.2.3.orig/src/mca/gds/ds12/gds_ds12_lock_pthread.c 2020-04-16 15:16:47.000000000 +0200 ++++ pmix-3.2.3/src/mca/gds/ds12/gds_ds12_lock_pthread.c 2023-09-13 18:28:41.480243044 +0200 +@@ -113,7 +113,7 @@ + } + memset(lock_ctx->segment->seg_base_addr, 0, size); + if (0 != setuid) { +- if (0 > chown(lock_ctx->lockfile, (uid_t) uid, (gid_t) -1)){ ++ if (0 > lchown(lock_ctx->lockfile, (uid_t) uid, (gid_t) -1)){ + rc = PMIX_ERROR; + PMIX_ERROR_LOG(rc); + goto error; +diff -ru pmix-3.2.3.orig/src/mca/ptl/usock/ptl_usock_component.c pmix-3.2.3/src/mca/ptl/usock/ptl_usock_component.c +--- pmix-3.2.3.orig/src/mca/ptl/usock/ptl_usock_component.c 2020-12-23 15:43:16.000000000 +0100 ++++ pmix-3.2.3/src/mca/ptl/usock/ptl_usock_component.c 2023-09-13 18:28:41.481243042 +0200 +@@ -267,14 +267,14 @@ + } + /* chown as required */ + if (lt->owner_given) { +- if (0 != chown(address->sun_path, lt->owner, -1)) { ++ if (0 != lchown(address->sun_path, lt->owner, -1)) { + pmix_output(0, "CANNOT CHOWN socket %s: %s", address->sun_path, strerror (errno)); + CLOSE_THE_SOCKET(lt->socket); + goto sockerror; + } + } + if (lt->group_given) { +- if (0 != chown(address->sun_path, -1, lt->group)) { ++ if (0 != lchown(address->sun_path, -1, lt->group)) { + pmix_output(0, "CANNOT CHOWN socket %s: %s", address->sun_path, strerror (errno)); + CLOSE_THE_SOCKET(lt->socket); + goto sockerror; +diff -ru pmix-3.2.3.orig/src/util/pmix_pty.c pmix-3.2.3/src/util/pmix_pty.c +--- pmix-3.2.3.orig/src/util/pmix_pty.c 2020-04-16 15:16:47.000000000 +0200 ++++ pmix-3.2.3/src/util/pmix_pty.c 2023-09-13 18:29:33.097140428 +0200 +@@ -248,7 +248,7 @@ + gid = -1; /* group tty is not in the group file */ + } + /* following two functions don't work unless we're root */ +- chown(pts_name, getuid(), gid); ++ lchown(pts_name, getuid(), gid); + chmod(pts_name, S_IRUSR | S_IWUSR | S_IWGRP); + fds = open(pts_name, O_RDWR); + if (fds < 0) { diff --git a/easybuild/easyconfigs/p/PMIx/PMIx-4.2.6-GCCcore-13.2.0.eb b/easybuild/easyconfigs/p/PMIx/PMIx-4.2.6-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..ade4f901574 --- /dev/null +++ b/easybuild/easyconfigs/p/PMIx/PMIx-4.2.6-GCCcore-13.2.0.eb @@ -0,0 +1,45 @@ +easyblock = 'ConfigureMake' + +name = 'PMIx' +version = '4.2.6' + +homepage = 'https://pmix.org/' +description = """Process Management for Exascale Environments +PMI Exascale (PMIx) represents an attempt to +provide an extended version of the PMI standard specifically designed +to support clusters up to and including exascale sizes. The overall +objective of the project is not to branch the existing pseudo-standard +definitions - in fact, PMIx fully supports both of the existing PMI-1 +and PMI-2 APIs - but rather to (a) augment and extend those APIs to +eliminate some current restrictions that impact scalability, and (b) +provide a reference implementation of the PMI-server that demonstrates +the desired level of scalability. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/openpmix/openpmix/releases/download/v%(version)s'] +sources = ['%(namelower)s-%(version)s.tar.bz2'] +checksums = ['10b0d5a7fca70272e9427c677557578ac452cea02aeb00e30dec2116d20c3cd0'] + +builddependencies = [('binutils', '2.40')] + +dependencies = [ + ('libevent', '2.1.12'), + ('zlib', '1.2.13'), + ('hwloc', '2.9.2'), +] + +configopts = ' --with-libevent=$EBROOTLIBEVENT --with-zlib=$EBROOTZLIB' +configopts += ' --with-hwloc=$EBROOTHWLOC' +configopts += ' --enable-pmix-binaries' + +buildopts = 'V=1' + +sanity_check_paths = { + 'files': ['bin/pevent', 'bin/plookup', 'bin/pmix_info', 'bin/pps'], + 'dirs': ['etc', 'include', 'lib', 'share'] +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/PRSice/PRSice-2.3.5-GCCcore-12.3.0.eb b/easybuild/easyconfigs/p/PRSice/PRSice-2.3.5-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..f77c2144f22 --- /dev/null +++ b/easybuild/easyconfigs/p/PRSice/PRSice-2.3.5-GCCcore-12.3.0.eb @@ -0,0 +1,36 @@ +# Contribution from the NIHR Biomedical Research Centre +# Guy's and St Thomas' NHS Foundation Trust and King's College London +# uploaded by J. Sassmannshausen + +easyblock = 'CMakeMakeCp' + +name = 'PRSice' +version = '2.3.5' + +homepage = 'https://www.prsice.info/' +description = """PRSice (pronounced 'precise') is a Polygenic Risk +Score software for calculating, applying, evaluating and +plotting the results of polygenic risk scores (PRS) analyses.""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +source_urls = ['https://github.com/choishingwan/PRSice/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = ['0a7e649ddebe4e969cd8400c5ad977a7b900be4f5c920a84483cb8930367354d'] + +builddependencies = [ + ('CMake', '3.26.3'), + ('binutils', '2.40'), + ('Eigen', '3.4.0'), +] + +files_to_copy = [(['bin/PRSice'], 'bin'), "README.md", "LICENSE"] + +sanity_check_paths = { + 'files': ['bin/PRSice'], + 'dirs': [], +} + +sanity_check_commands = ["PRSice --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/ParaView/ParaView-5.11.1-fix_thrust_vtk_m.patch b/easybuild/easyconfigs/p/ParaView/ParaView-5.11.1-fix_thrust_vtk_m.patch new file mode 100644 index 00000000000..b1effa799e3 --- /dev/null +++ b/easybuild/easyconfigs/p/ParaView/ParaView-5.11.1-fix_thrust_vtk_m.patch @@ -0,0 +1,83 @@ +From 5d0481342a877c7297df4726a06cd4f45ea7af25 Mon Sep 17 00:00:00 2001 +From: Sujin Philip +Date: Mon, 9 Jan 2023 12:58:33 -0500 +Subject: [PATCH] Fix compile issues when using cuda 12 + +CUDA 12 adds a `cub::Swap` function that creates ambiguity with `vtkm::Swap`. +This happens when a function from the `cub` namespace is called with an object +of a class defined in the `vtkm` namespace as an argument. If that function +has an unqualified call to `Swap`, it results in ADL being used, causing the +templated functions `cub::Swap` and `vtkm::Swap` to conflict. +--- + vtkm/Swap.h | 24 ++++++++++++++++------- + vtkm/exec/cuda/internal/ExecutionPolicy.h | 1 + + 2 files changed, 18 insertions(+), 7 deletions(-) + +diff --git a/vtkm/Swap.h b/vtkm/Swap.h +index f833a495c5..342c5a20c9 100644 +--- a/vtkm/Swap.h ++++ b/vtkm/Swap.h +@@ -24,21 +24,31 @@ namespace vtkm + + /// Performs a swap operation. Safe to call from cuda code. + #if defined(VTKM_CUDA) ++// CUDA 12 adds a `cub::Swap` function that creates ambiguity with `vtkm::Swap`. ++// This happens when a function from the `cub` namespace is called with an object of a class ++// defined in the `vtkm` namespace as an argument. If that function has an unqualified call to ++// `Swap`, it results in ADL being used, causing the templated functions `cub::Swap` and ++// `vtkm::Swap` to conflict. ++#if defined(VTKM_CUDA_VERSION_MAJOR) && (VTKM_CUDA_VERSION_MAJOR >= 12) && \ ++ defined(VTKM_CUDA_DEVICE_PASS) ++using cub::Swap; ++#else + template +-VTKM_EXEC_CONT void Swap(T& a, T& b) ++VTKM_EXEC_CONT inline void Swap(T& a, T& b) + { +- using namespace thrust; ++ using thrust::swap; + swap(a, b); + } ++#endif + #elif defined(VTKM_HIP) + template +-__host__ void Swap(T& a, T& b) ++__host__ inline void Swap(T& a, T& b) + { +- using namespace std; ++ using std::swap; + swap(a, b); + } + template +-__device__ void Swap(T& a, T& b) ++__device__ inline void Swap(T& a, T& b) + { + T temp = a; + a = b; +@@ -46,9 +56,9 @@ __device__ void Swap(T& a, T& b) + } + #else + template +-VTKM_EXEC_CONT void Swap(T& a, T& b) ++VTKM_EXEC_CONT inline void Swap(T& a, T& b) + { +- using namespace std; ++ using std::swap; + swap(a, b); + } + #endif +diff --git a/vtkm/exec/cuda/internal/ExecutionPolicy.h b/vtkm/exec/cuda/internal/ExecutionPolicy.h +index 4db1edc6f9..02cad4ab6d 100644 +--- a/vtkm/exec/cuda/internal/ExecutionPolicy.h ++++ b/vtkm/exec/cuda/internal/ExecutionPolicy.h +@@ -17,6 +17,7 @@ + #include + VTKM_THIRDPARTY_PRE_INCLUDE + #include ++#include + #include + #include + VTKM_THIRDPARTY_POST_INCLUDE +-- +GitLab + diff --git a/easybuild/easyconfigs/p/ParaView/ParaView-5.11.1-foss-2022b-CUDA-12.2.0.eb b/easybuild/easyconfigs/p/ParaView/ParaView-5.11.1-foss-2022b-CUDA-12.2.0.eb new file mode 100644 index 00000000000..8f312f89318 --- /dev/null +++ b/easybuild/easyconfigs/p/ParaView/ParaView-5.11.1-foss-2022b-CUDA-12.2.0.eb @@ -0,0 +1,82 @@ +easyblock = 'CMakeMake' + +name = 'ParaView' +version = '5.11.1' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://www.paraview.org' +description = "ParaView is a scientific parallel visualizer." + +toolchain = {'name': 'foss', 'version': '2022b'} +toolchainopts = {'pic': True, 'usempi': True} + +local_download_suffix = 'download.php?submit=Download&version=v%(version_major_minor)s&type=source&os=all&downloadFile=' +source_urls = ['https://www.paraview.org/paraview-downloads/%s' % local_download_suffix] +sources = ["%(name)s-v%(version)s.tar.gz"] +patches = ['ParaView-5.11.1-remove_glew_init_warning.patch', + ('ParaView-5.11.1-fix_thrust_vtk_m.patch', 'VTK/ThirdParty/vtkm/vtkvtkm/vtk-m/')] +checksums = [ + {'ParaView-v5.11.1.tar.gz': 'de32f3e576b5f639ffc6903aa9e4cd46ac30c753185edc4366a7f305a6951b16'}, + {'ParaView-5.11.1-remove_glew_init_warning.patch': + 'dd86134f3a5b2c1b834224c69665dd31f99ef7d367688fe77dbaada212758710'}, + {'ParaView-5.11.1-fix_thrust_vtk_m.patch': + 'cb4a0dacf1fe2ddefa68ea6f6a061e6cb7d21717053a6514679f9ed73a52525f'}, +] + +builddependencies = [('CMake', '3.24.3')] + +dependencies = [ + ('CUDA', '12.2.0', '', SYSTEM), + ('OptiX', '7.2.0', '', SYSTEM), + ('Boost', '1.81.0'), + ('Python', '3.10.8'), + ('SciPy-bundle', '2023.02'), + ('XZ', '5.2.7'), + ('HDF5', '1.14.0'), + ('netCDF', '4.9.0'), + ('libdrm', '2.4.114'), + ('Mesa', '22.2.4'), + ('Qt5', '5.15.7'), + ('zlib', '1.2.12'), + ('FFmpeg', '5.1.2'), + ('Szip', '2.1.1'), +] + +_copts = [ + # Basic configuration + '-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON' + '-DPARAVIEW_BUILD_SHARED_LIBS=ON', + '-DPARAVIEW_USE_MPI=ON', + '-DPARAVIEW_ENABLE_FFMPEG=ON', + '-DPARAVIEW_USE_PYTHON=ON', + # CUDA (Vtk-m) + '-DPARAVIEW_USE_CUDA=ON', + '-DPython3_ROOT_DIR=$EBROOTPYTHON', + '-DCMAKE_CUDA_ARCHITECTURES="%(cuda_cc_cmake)s"', + # Hardware but not software raytracing support + '-DPARAVIEW_ENABLE_RAYTRACING=ON', + '-DVTK_ENABLE_OSPRAY=OFF', + '-DVTK_ENABLE_OPTIX=ON', + # Useful input formats + '-DPARAVIEW_ENABLE_XDMF2=ON', + '-DPARAVIEW_ENABLE_XDMF3=ON', + # EGL, X and Mesa + '-DOPENGL_INCLUDE_DIR=$EBROOTMESA/include', + '-DEGL_INCLUDE_DIR=$EBROOTLIBGLVND/include', + '-DEGL_LIBRARY=$EBROOTLIBGLVND/lib/libEGL.%s' % SHLIB_EXT, + '-DEGL_opengl_LIBRARY=$EBROOTLIBGLVND/libOpenGL.%s' % SHLIB_EXT, + '-DVTK_OPENGL_HAS_EGL=ON', + '-DVTK_USE_X=ON', + '-DVTK_OPENGL_HAS_OSMESA=OFF'] +configopts = ' '.join(_copts) + +sanity_check_paths = { + 'files': ['bin/paraview', 'bin/pvserver', 'bin/pvpython'], + 'dirs': ['include/paraview-%(version_major_minor)s', 'lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ['python -c "import paraview"'] + +modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/ParaView/ParaView-5.11.1-foss-2022b.eb b/easybuild/easyconfigs/p/ParaView/ParaView-5.11.1-foss-2022b.eb new file mode 100644 index 00000000000..a495c8da450 --- /dev/null +++ b/easybuild/easyconfigs/p/ParaView/ParaView-5.11.1-foss-2022b.eb @@ -0,0 +1,71 @@ +easyblock = 'CMakeMake' + +name = 'ParaView' +version = '5.11.1' +versionsuffix = '' + +homepage = 'https://www.paraview.org' +description = "ParaView is a scientific parallel visualizer." + +toolchain = {'name': 'foss', 'version': '2022b'} +toolchainopts = {'pic': True, 'usempi': True} + +local_download_suffix = 'download.php?submit=Download&version=v%(version_major_minor)s&type=source&os=all&downloadFile=' +source_urls = ['https://www.paraview.org/paraview-downloads/%s' % local_download_suffix] +sources = ["%(name)s-v%(version)s.tar.gz"] +patches = ['ParaView-5.11.1-remove_glew_init_warning.patch'] +checksums = [ + {'ParaView-v5.11.1.tar.gz': 'de32f3e576b5f639ffc6903aa9e4cd46ac30c753185edc4366a7f305a6951b16'}, + {'ParaView-5.11.1-remove_glew_init_warning.patch': + 'dd86134f3a5b2c1b834224c69665dd31f99ef7d367688fe77dbaada212758710'}, +] + +builddependencies = [('CMake', '3.24.3')] + +dependencies = [ + ('Python', '3.10.8'), + ('SciPy-bundle', '2023.02'), + ('Boost', '1.81.0'), + ('XZ', '5.2.7'), + ('HDF5', '1.14.0'), + ('netCDF', '4.9.0'), + ('libdrm', '2.4.114'), + ('Mesa', '22.2.4'), + ('Qt5', '5.15.7'), + ('zlib', '1.2.12'), + ('FFmpeg', '5.1.2'), + ('Szip', '2.1.1'), +] + +_copts = [ + # Basic configuration + '-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON', + '-DPARAVIEW_BUILD_SHARED_LIBS=ON', + '-DPARAVIEW_USE_MPI=ON', + '-DPARAVIEW_ENABLE_FFMPEG=ON', + '-DPARAVIEW_USE_PYTHON=ON', + '-DPython3_ROOT_DIR=$EBROOTPYTHON', + # Useful input formats + '-DPARAVIEW_ENABLE_XDMF2=ON', + '-DPARAVIEW_ENABLE_XDMF3=ON', + # EGL, X and Mesa + '-DOPENGL_glu_LIBRARY=$EBROOTLIBGLU/lib/libGLU.%s' % SHLIB_EXT, + '-DOPENGL_INCLUDE_DIR=$EBROOTMESA/include', + '-DEGL_INCLUDE_DIR=$EBROOTLIBGLVND/include', + '-DEGL_LIBRARY=$EBROOTLIBGLVND/lib/libEGL.%s' % SHLIB_EXT, + '-DEGL_opengl_LIBRARY=$EBROOTLIBGLVND/libOpenGL.%s' % SHLIB_EXT, + '-DVTK_OPENGL_HAS_EGL=ON', + '-DVTK_USE_X=ON', + '-DVTK_OPENGL_HAS_OSMESA=OFF'] +configopts = ' '.join(_copts) + +sanity_check_paths = { + 'files': ['bin/paraview', 'bin/pvserver', 'bin/pvpython'], + 'dirs': ['include/paraview-%(version_major_minor)s', 'lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ['python -c "import paraview"'] + +modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/ParaView/ParaView-5.11.1-remove_glew_init_warning.patch b/easybuild/easyconfigs/p/ParaView/ParaView-5.11.1-remove_glew_init_warning.patch new file mode 100644 index 00000000000..ad26e8652b8 --- /dev/null +++ b/easybuild/easyconfigs/p/ParaView/ParaView-5.11.1-remove_glew_init_warning.patch @@ -0,0 +1,15 @@ +This patch silences a spurious warning that occurs when running the GUI under VirtualGL +with EGL enabled. +--- +--- VTK/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx.orig 2023-08-23 16:35:23.418470811 +0200 ++++ VTK/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx 2023-08-23 16:36:10.830654656 +0200 +@@ -471,8 +471,8 @@ + this->GlewInitValid = (result == GLEW_OK); + if (!this->GlewInitValid) + { +- const char* errorMsg = reinterpret_cast(glewGetErrorString(result)); +- vtkErrorMacro("GLEW could not be initialized: " << errorMsg); ++ //const char* errorMsg = reinterpret_cast(glewGetErrorString(result)); ++ //vtkErrorMacro("GLEW could not be initialized: " << errorMsg); + return; + } diff --git a/easybuild/easyconfigs/p/ParaView/ParaView-5.11.2-foss-2023a.eb b/easybuild/easyconfigs/p/ParaView/ParaView-5.11.2-foss-2023a.eb new file mode 100644 index 00000000000..c849554271c --- /dev/null +++ b/easybuild/easyconfigs/p/ParaView/ParaView-5.11.2-foss-2023a.eb @@ -0,0 +1,70 @@ +easyblock = 'CMakeMake' + +name = 'ParaView' +version = '5.11.2' + +homepage = 'https://www.paraview.org' +description = "ParaView is a scientific parallel visualizer." + +toolchain = {'name': 'foss', 'version': '2023a'} +toolchainopts = {'pic': True, 'usempi': True} + +local_download_suffix = 'download.php?submit=Download&version=v%(version_major_minor)s&type=source&os=all&downloadFile=' +source_urls = ['https://www.paraview.org/paraview-downloads/%s' % local_download_suffix] +sources = ["%(name)s-v%(version)s.tar.gz"] +patches = ['ParaView-5.11.1-remove_glew_init_warning.patch'] +checksums = [ + {'ParaView-v5.11.2.tar.gz': 'ddee336075f8c258a3d34eb1cdd2f4d46a5082f0b4af614e36b06e530f3b346f'}, + {'ParaView-5.11.1-remove_glew_init_warning.patch': + 'dd86134f3a5b2c1b834224c69665dd31f99ef7d367688fe77dbaada212758710'}, +] + +builddependencies = [('CMake', '3.26.3')] + +dependencies = [ + ('Python', '3.11.3'), + ('SciPy-bundle', '2023.07'), + ('Boost', '1.82.0'), + ('XZ', '5.4.2'), + ('HDF5', '1.14.0'), + ('netCDF', '4.9.2'), + ('libdrm', '2.4.115'), + ('Mesa', '23.1.4'), + ('Qt5', '5.15.10'), + ('zlib', '1.2.13'), + ('FFmpeg', '6.0'), + ('Szip', '2.1.1'), +] + +_copts = [ + # Basic configuration + '-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON', + '-DPARAVIEW_BUILD_SHARED_LIBS=ON', + '-DPARAVIEW_USE_MPI=ON', + '-DPARAVIEW_ENABLE_FFMPEG=ON', + '-DPARAVIEW_USE_PYTHON=ON', + '-DPython3_ROOT_DIR=$EBROOTPYTHON', + # Useful input formats + '-DPARAVIEW_ENABLE_XDMF2=ON', + '-DPARAVIEW_ENABLE_XDMF3=ON', + # EGL, X and Mesa + '-DOPENGL_glu_LIBRARY=$EBROOTLIBGLU/lib/libGLU.%s' % SHLIB_EXT, + '-DOPENGL_INCLUDE_DIR=$EBROOTMESA/include', + '-DEGL_INCLUDE_DIR=$EBROOTLIBGLVND/include', + '-DEGL_LIBRARY=$EBROOTLIBGLVND/lib/libEGL.%s' % SHLIB_EXT, + '-DEGL_opengl_LIBRARY=$EBROOTLIBGLVND/libOpenGL.%s' % SHLIB_EXT, + '-DVTK_OPENGL_HAS_EGL=ON', + '-DVTK_USE_X=ON', + '-DVTK_OPENGL_HAS_OSMESA=OFF'] +configopts = ' '.join(_copts) + +sanity_check_paths = { + 'files': ['bin/paraview', 'bin/pvserver', 'bin/pvpython'], + 'dirs': ['include/paraview-%(version_major_minor)s', 'lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ['python -c "import paraview"'] + +modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/Perl-bundle-CPAN/Perl-bundle-CPAN-5.38.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/p/Perl-bundle-CPAN/Perl-bundle-CPAN-5.38.0-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..bf8c4acaced --- /dev/null +++ b/easybuild/easyconfigs/p/Perl-bundle-CPAN/Perl-bundle-CPAN-5.38.0-GCCcore-13.2.0.eb @@ -0,0 +1,2135 @@ +easyblock = 'PerlBundle' + +name = 'Perl-bundle-CPAN' +version = '5.38.0' + +homepage = 'https://www.perl.org/' +description = """A set of common packages from CPAN""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +builddependencies = [ + ('binutils', '2.40'), + ('groff', '1.23.0'), +] + +dependencies = [ + ('Perl', version), + ('zlib', '1.2.13'), # for Net::SSLeay + ('expat', '2.5.0'), # for XML::Parser + ('ncurses', '6.4'), # for Term::ReadLine::Gnu + ('libreadline', '8.2'), # for Term::ReadLine::Gnu + ('OpenSSL', '1.1', '', SYSTEM), # required for Net::SSLeay +] + +# !! order of extensions is important !! +# extensions updated on 2023-10-18 +exts_list = [ + ('Config::General', '2.65', { + 'source_tmpl': 'Config-General-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TL/TLINDEN'], + 'checksums': ['4d6d5754be3a9f30906836f0cc10e554c8832e14e7a1341efb15b05d706fc58f'], + }), + ('HTTP::Date', '6.06', { + 'source_tmpl': 'HTTP-Date-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['7b685191c6acc3e773d1fc02c95ee1f9fae94f77783175f5e78c181cc92d2b52'], + }), + ('File::Listing', '6.16', { + 'source_tmpl': 'File-Listing-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + 'checksums': ['189b3a13fc0a1ba412b9d9ec5901e9e5e444cc746b9f0156d4399370d33655c6'], + }), + ('ExtUtils::Config', '0.008', { + 'source_tmpl': 'ExtUtils-Config-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['ae5104f634650dce8a79b7ed13fb59d67a39c213a6776cfdaa3ee749e62f1a8c'], + }), + ('ExtUtils::InstallPaths', '0.012', { + 'source_tmpl': 'ExtUtils-InstallPaths-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['84735e3037bab1fdffa3c2508567ad412a785c91599db3c12593a50a1dd434ed'], + }), + ('ExtUtils::Helpers', '0.026', { + 'source_tmpl': 'ExtUtils-Helpers-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['de901b6790a4557cf4ec908149e035783b125bf115eb9640feb1bc1c24c33416'], + }), + ('Test::Harness', '3.48', { + 'source_tmpl': 'Test-Harness-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['e73ff89c81c1a53f6baeef6816841b89d3384403ad97422a7da9d1eeb20ef9c5'], + }), + ('Module::Build::Tiny', '0.047', { + 'source_tmpl': 'Module-Build-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['71260e9421b93c33dd1b3e7d0cf15f759c0ca7c753fa840279ec3be70f8f8c9d'], + }), + ('aliased', '0.34', { + 'source_tmpl': 'aliased-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['c350524507cd827fab864e5d4c2cc350b1babaa12fa95aec0ca00843fcc7deeb'], + }), + ('Text::Glob', '0.11', { + 'source_tmpl': 'Text-Glob-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + 'checksums': ['069ccd49d3f0a2dedb115f4bdc9fbac07a83592840953d1fcdfc39eb9d305287'], + }), + ('Regexp::Common', '2017060201', { + 'source_tmpl': 'Regexp-Common-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABIGAIL'], + 'checksums': ['ee07853aee06f310e040b6bf1a0199a18d81896d3219b9b35c9630d0eb69089b'], + }), + ('IO::String', '1.08', { + 'source_tmpl': 'IO-String-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + 'checksums': ['2a3f4ad8442d9070780e58ef43722d19d1ee21a803bf7c8206877a10482de5a0'], + }), + ('Data::Stag', '0.14', { + 'source_tmpl': 'Data-Stag-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CM/CMUNGALL'], + 'checksums': ['4ab122508d2fb86d171a15f4006e5cf896d5facfa65219c0b243a89906258e59'], + }), + ('GO::Utils', '0.15', { + 'source_tmpl': 'go-perl-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CM/CMUNGALL'], + 'checksums': ['423d26155ee85ca51ab2270cee59f4e85b193e57ac3a29aff827298c0a396b12'], + }), + ('Module::Pluggable', '5.2', { + 'source_tmpl': 'Module-Pluggable-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SI/SIMONW'], + 'checksums': ['b3f2ad45e4fd10b3fb90d912d78d8b795ab295480db56dc64e86b9fa75c5a6df'], + }), + ('Try::Tiny', '0.31', { + 'source_tmpl': 'Try-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['3300d31d8a4075b26d8f46ce864a1d913e0e8467ceeba6655d5d2b2e206c11be'], + }), + ('Test::Fatal', '0.017', { + 'source_tmpl': 'Test-Fatal-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['37dfffdafb84b762efe96b02fb2aa41f37026c73e6b83590db76229697f3c4a6'], + }), + ('Test::Warnings', '0.032', { + 'source_tmpl': 'Test-Warnings-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['4727dae2416e9f07e41e2dc3a9143ba6affc1ec57652117c99d50038e313e9d9'], + }), + ('Class::Inspector', '1.36', { + 'source_tmpl': 'Class-Inspector-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + 'checksums': ['cc295d23a472687c24489d58226ead23b9fdc2588e522f0b5f0747741700694e'], + }), + ('File::ShareDir::Install', '0.14', { + 'source_tmpl': 'File-ShareDir-Install-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['8f9533b198f2d4a9a5288cbc7d224f7679ad05a7a8573745599789428bc5aea0'], + }), + ('File::ShareDir', '1.118', { + 'source_tmpl': 'File-ShareDir-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + 'checksums': ['3bb2a20ba35df958dc0a4f2306fc05d903d8b8c4de3c8beefce17739d281c958'], + }), + ('IPC::System::Simple', '1.30', { + 'source_tmpl': 'IPC-System-Simple-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JK/JKEENAN'], + 'checksums': ['22e6f5222b505ee513058fdca35ab7a1eab80539b98e5ca4a923a70a8ae9ba9e'], + }), + ('Importer', '0.026', { + 'source_tmpl': 'Importer-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + 'checksums': ['e08fa84e13cb998b7a897fc8ec9c3459fcc1716aff25cc343e36ef875891b0ef'], + }), + ('Term::Table', '0.017', { + 'source_tmpl': 'Term-Table-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + 'checksums': ['f11db4268ad8044f6e1a1ac9534ca0cd3ad779c4006fff37fae500db98fac91a'], + }), + ('Scope::Guard', '0.21', { + 'source_tmpl': 'Scope-Guard-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHOCOLATE'], + 'checksums': ['8c9b1bea5c56448e2c3fadc65d05be9e4690a3823a80f39d2f10fdd8f777d278'], + }), + ('Sub::Info', '0.002', { + 'source_tmpl': 'Sub-Info-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + 'checksums': ['ea3056d696bdeff21a99d340d5570887d39a8cc47bff23adfc82df6758cdd0ea'], + }), + ('Test2::Require::Module', '0.000156', { + 'source_tmpl': 'Test2-Suite-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + 'checksums': ['bf382ae72f3a93bf7ed36885118fae2ffab0ff117743f59038df254efef2c94e'], + }), + ('Test2::Plugin::NoWarnings', '0.09', { + 'source_tmpl': 'Test2-Plugin-NoWarnings-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['be3dd800042eef362bf17d2056cf9e934dee91ccce98e4f178b8fb5772f2fb74'], + }), + ('Class::Tiny', '1.008', { + 'source_tmpl': 'Class-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + 'checksums': ['ee058a63912fa1fcb9a72498f56ca421a2056dc7f9f4b67837446d6421815615'], + }), + ('Path::Tiny', '0.144', { + 'source_tmpl': 'Path-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + 'checksums': ['f6ea094ece845c952a02c2789332579354de8d410a707f9b7045bd241206487d'], + }), + ('Test::Deep', '1.204', { + 'source_tmpl': 'Test-Deep-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['b6591f6ccdd853c7efc9ff3c5756370403211cffe46047f082b1cd1611a84e5f'], + }), + ('Test::File', '1.993', { + 'source_tmpl': 'Test-File-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BD/BDFOY'], + 'checksums': ['ef2ffe1aaec7b42d874ad411ec647547b9b9bc2f5fb93e49e3399488456afc7a'], + }), + ('Test::Needs', '0.002010', { + 'source_tmpl': 'Test-Needs-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + 'checksums': ['923ffdc78fcba96609753e4bae26b0ba0186893de4a63cd5236e012c7c90e208'], + }), + ('Test::Requires', '0.11', { + 'source_tmpl': 'Test-Requires-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TOKUHIROM'], + 'checksums': ['4b88de549597eecddf7c3c38a4d0204a16f59ad804577b671896ac04e24e040f'], + }), + ('File::Copy::Recursive', '0.45', { + 'source_tmpl': 'File-Copy-Recursive-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DM/DMUEY'], + 'checksums': ['d3971cf78a8345e38042b208bb7b39cb695080386af629f4a04ffd6549df1157'], + }), + ('Test::File::ShareDir::Dist', '1.001002', { + 'source_tmpl': 'Test-File-ShareDir-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KE/KENTNL'], + 'checksums': ['b33647cbb4b2f2fcfbde4f8bb4383d0ac95c2f89c4c5770eb691f1643a337aad'], + }), + ('CPAN::Meta::Check', '0.018', { + 'source_tmpl': 'CPAN-Meta-Check-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['f619d2df5ea0fd91c8cf83eb54acccb5e43d9e6ec1a3f727b3d0ac15d0cf378a'], + }), + ('Sub::Exporter::Progressive', '0.001013', { + 'source_tmpl': 'Sub-Exporter-Progressive-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/F/FR/FREW'], + 'checksums': ['d535b7954d64da1ac1305b1fadf98202769e3599376854b2ced90c382beac056'], + }), + ('Module::Runtime', '0.016', { + 'source_tmpl': 'Module-Runtime-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/Z/ZE/ZEFRAM'], + 'checksums': ['68302ec646833547d410be28e09676db75006f4aa58a11f3bdb44ffe99f0f024'], + }), + ('Module::Implementation', '0.09', { + 'source_tmpl': 'Module-Implementation-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['c15f1a12f0c2130c9efff3c2e1afe5887b08ccd033bd132186d1e7d5087fd66d'], + }), + ('B::Hooks::EndOfScope', '0.26', { + 'source_tmpl': 'B-Hooks-EndOfScope-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['39df2f8c007a754672075f95b90797baebe97ada6d944b197a6352709cb30671'], + }), + ('Package::Stash', '0.40', { + 'source_tmpl': 'Package-Stash-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['5a9722c6d9cb29ee133e5f7b08a5362762a0b5633ff5170642a5b0686e95e066'], + }), + ('namespace::clean', '0.27', { + 'source_tmpl': 'namespace-clean-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RI/RIBASUSHI'], + 'checksums': ['8a10a83c3e183dc78f9e7b7aa4d09b47c11fb4e7d3a33b9a12912fd22e31af9d'], + }), + ('Sub::Identify', '0.14', { + 'source_tmpl': 'Sub-Identify-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RG/RGARCIA'], + 'checksums': ['068d272086514dd1e842b6a40b1bedbafee63900e5b08890ef6700039defad6f'], + }), + ('namespace::autoclean', '0.29', { + 'source_tmpl': 'namespace-autoclean-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['45ebd8e64a54a86f88d8e01ae55212967c8aa8fed57e814085def7608ac65804'], + }), + ('Eval::Closure', '0.14', { + 'source_tmpl': 'Eval-Closure-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + 'checksums': ['ea0944f2f5ec98d895bef6d503e6e4a376fea6383a6bc64c7670d46ff2218cad'], + }), + ('Exporter::Tiny', '1.006002', { + 'source_tmpl': 'Exporter-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TOBYINK'], + 'checksums': ['6f295e2cbffb1dbc15bdb9dadc341671c1e0cd2bdf2d312b17526273c322638d'], + }), + ('Type::Tiny', '2.004000', { + 'source_tmpl': 'Type-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TOBYINK'], + 'checksums': ['697e7f775edfc85f4cf07792d04fd19b09c25285f98f5938e8efc4f74507a128'], + }), + ('Class::Data::Inheritable', '0.09', { + 'source_tmpl': 'Class-Data-Inheritable-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSHERER'], + 'checksums': ['44088d6e90712e187b8a5b050ca5b1c70efe2baa32ae123e9bd8f59f29f06e4d'], + }), + ('Devel::StackTrace', '2.04', { + 'source_tmpl': 'Devel-StackTrace-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['cd3c03ed547d3d42c61fa5814c98296139392e7971c092e09a431f2c9f5d6855'], + }), + ('Exception::Class', '1.45', { + 'source_tmpl': 'Exception-Class-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['5482a77ef027ca1f9f39e1f48c558356e954936fc8fbbdee6c811c512701b249'], + }), + ('Role::Tiny', '2.002004', { + 'source_tmpl': 'Role-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + 'checksums': ['d7bdee9e138a4f83aa52d0a981625644bda87ff16642dfa845dcb44d9a242b45'], + }), + ('MRO::Compat', '0.15', { + 'source_tmpl': 'MRO-Compat-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + 'checksums': ['0d4535f88e43babd84ab604866215fc4d04398bd4db7b21852d4a31b1c15ef61'], + }), + ('Sub::Quote', '2.006008', { + 'source_tmpl': 'Sub-Quote-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + 'checksums': ['94bebd500af55762e83ea2f2bc594d87af828072370c7110c60c238a800d15b2'], + }), + ('Specio', '0.48', { + 'source_tmpl': 'Specio-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['0c85793580f1274ef08173079131d101f77b22accea7afa8255202f0811682b2'], + }), + ('Test::Without::Module', '0.21', { + 'source_tmpl': 'Test-Without-Module-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CO/CORION'], + 'checksums': ['3cdeafadac4853ebeafe689346d555da5dfa3cfa9d4c84e3e5e7bfee50beec46'], + }), + ('Params::ValidationCompiler', '0.31', { + 'source_tmpl': 'Params-ValidationCompiler-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['7b6497173f1b6adb29f5d51d8cf9ec36d2f1219412b4b2410e9d77a901e84a6d'], + }), + ('DateTime::Locale', '1.39', { + 'source_tmpl': 'DateTime-Locale-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['10c145a6c7daf7118864e97482b4ae9f94f93b9414212eee8aa30b16a8135100'], + }), + ('Class::Singleton', '1.6', { + 'source_tmpl': 'Class-Singleton-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], + 'checksums': ['27ba13f0d9512929166bbd8c9ef95d90d630fc80f0c9a1b7458891055e9282a4'], + }), + ('DateTime::TimeZone', '2.60', { + 'source_tmpl': 'DateTime-TimeZone-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['f0460d379323905b579bed44e141237a337dc25dd26b6ab0c60ac2b80629323d'], + }), + ('Module::Build', '0.4234', { + 'source_tmpl': 'Module-Build-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['66aeac6127418be5e471ead3744648c766bd01482825c5b66652675f2bc86a8f'], + }), + ('Params::Validate', '1.31', { + 'source_tmpl': 'Params-Validate-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['1bf2518ef2c4869f91590e219f545c8ef12ed53cf313e0eb5704adf7f1b2961e'], + }), + ('List::MoreUtils::XS', '0.430', { + 'source_tmpl': 'List-MoreUtils-XS-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + 'checksums': ['e8ce46d57c179eecd8758293e9400ff300aaf20fefe0a9d15b9fe2302b9cb242'], + }), + ('List::MoreUtils', '0.430', { + 'source_tmpl': 'List-MoreUtils-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + 'checksums': ['63b1f7842cd42d9b538d1e34e0330de5ff1559e4c2737342506418276f646527'], + }), + ('DateTime', '1.59', { + 'source_tmpl': 'DateTime-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['de3e9a63ce15470b4db4adad4ba6ac8ec297d88c0c6c6b354b081883b0a67695'], + }), + ('Number::Compare', '0.03', { + 'source_tmpl': 'Number-Compare-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + 'checksums': ['83293737e803b43112830443fb5208ec5208a2e6ea512ed54ef8e4dd2b880827'], + }), + ('File::Find::Rule', '0.34', { + 'source_tmpl': 'File-Find-Rule-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + 'checksums': ['7e6f16cc33eb1f29ff25bee51d513f4b8a84947bbfa18edb2d3cc40a2d64cafe'], + }), + ('Params::Util', '1.102', { + 'source_tmpl': 'Params-Util-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + 'checksums': ['499bb1b482db24fda277a51525596ad092c2bd51dd508fa8fec2e9f849097402'], + }), + ('File::Find::Rule::Perl', '1.16', { + 'source_tmpl': 'File-Find-Rule-Perl-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['ae1886050d9ca21223c073e2870abdc80dc30e3f55289a11c37da3820a8321ff'], + }), + ('Readonly', '2.05', { + 'source_tmpl': 'Readonly-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SA/SANKO'], + 'checksums': ['4b23542491af010d44a5c7c861244738acc74ababae6b8838d354dfb19462b5e'], + }), + ('Git', '0.42', { + 'source_tmpl': 'Git-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MS/MSOUTH'], + 'checksums': ['9469a9f398f3a2bf2b0500566ee41d3ff6fae460412a137185767a1cc4783a6d'], + }), + ('File::Slurp::Tiny', '0.004', { + 'source_tmpl': 'File-Slurp-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['452995beeabf0e923e65fdc627a725dbb12c9e10c00d8018c16d10ba62757f1e'], + }), + ('Tree::DAG_Node', '1.32', { + 'source_tmpl': 'Tree-DAG_Node-%(version)s.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + 'checksums': ['22d9de3d6e6f4afd89e6d825c664f9482878bd49e29cb81342a707af40542d3d'], + }), + ('Template', '3.101', { + 'source_tmpl': 'Template-Toolkit-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABW'], + 'checksums': ['d2a32dd6c21e4b37c6a93df8087ca9e880cfae613a3e5efaea307b0bdcaedb58'], + }), + ('DBI', '1.643', { + 'source_tmpl': 'DBI-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TI/TIMB'], + 'checksums': ['8a2b993db560a2c373c174ee976a51027dd780ec766ae17620c20393d2e836fa'], + }), + ('DBD::SQLite', '1.74', { + 'source_tmpl': 'DBD-SQLite-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI'], + 'checksums': ['8994997d84b9feb4547795f78746c661fb72e3cb6a25dbdd789b731f5688a4dd'], + }), + ('Math::Bezier', '0.01', { + 'source_tmpl': 'Math-Bezier-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABW'], + 'checksums': ['11a815fc45fdf0efabb1822ab77faad8b9eea162572c5f0940c8ed7d56e6b8b8'], + }), + ('Archive::Extract', '0.88', { + 'source_tmpl': 'Archive-Extract-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['cffcf135cd0622287d3b02154f7d6716495449fcaed03966621948e25ea5f742'], + }), + ('DBIx::Simple', '1.37', { + 'source_tmpl': 'DBIx-Simple-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JU/JUERD'], + 'checksums': ['46d311aa2ce08907401c56119658426dbb044c5a40de73d9a7b79bf50390cae3'], + }), + ('Shell', '0.73', { + 'source_tmpl': 'Shell-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/F/FE/FERREIRA'], + 'checksums': ['f7dbebf65261ed0e5abd0f57052b64d665a1a830bab4c8bbc220f235bd39caf5'], + }), + ('Test::Simple', '1.302195', { + 'source_tmpl': 'Test-Simple-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + 'checksums': ['b390bb23592e0b946c95adbb3c30b11bc634a286b2847be611ad929c57e39a6c'], + }), + ('Set::Scalar', '1.29', { + 'source_tmpl': 'Set-Scalar-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAVIDO'], + 'checksums': ['a3dc1526f3dde72d3c64ea00007b86ce608cdcd93567cf6e6e42dc10fdc4511d'], + }), + ('IO::Stringy', '2.113', { + 'source_tmpl': 'IO-Stringy-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CA/CAPOEIRAB'], + 'checksums': ['51220fcaf9f66a639b69d251d7b0757bf4202f4f9debd45bdd341a6aca62fe4e'], + }), + ('Encode::Locale', '1.05', { + 'source_tmpl': 'Encode-Locale-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + 'checksums': ['176fa02771f542a4efb1dbc2a4c928e8f4391bf4078473bd6040d8f11adb0ec1'], + }), + ('XML::SAX::Base', '1.09', { + 'source_tmpl': 'XML-SAX-Base-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + 'checksums': ['66cb355ba4ef47c10ca738bd35999723644386ac853abbeb5132841f5e8a2ad0'], + }), + ('XML::NamespaceSupport', '1.12', { + 'source_tmpl': 'XML-NamespaceSupport-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN'], + 'checksums': ['47e995859f8dd0413aa3f22d350c4a62da652e854267aa0586ae544ae2bae5ef'], + }), + ('XML::SAX', '1.02', { + 'source_tmpl': 'XML-SAX-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + 'checksums': ['4506c387043aa6a77b455f00f57409f3720aa7e553495ab2535263b4ed1ea12a'], + }), + ('Test::LeakTrace', '0.17', { + 'source_tmpl': 'Test-LeakTrace-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEEJO'], + 'checksums': ['777d64d2938f5ea586300eef97ef03eacb43d4c1853c9c3b1091eb3311467970'], + }), + ('Sub::Uplevel', '0.2800', { + 'source_tmpl': 'Sub-Uplevel-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + 'checksums': ['b4f3f63b80f680a421332d8851ddbe5a8e72fcaa74d5d1d98f3c8cc4a3ece293'], + }), + ('Test::Exception', '0.43', { + 'source_tmpl': 'Test-Exception-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + 'checksums': ['156b13f07764f766d8b45a43728f2439af81a3512625438deab783b7883eb533'], + }), + ('Text::Aligner', '0.16', { + 'source_tmpl': 'Text-Aligner-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + 'checksums': ['5c857dbce586f57fa3d7c4ebd320023ab3b2963b2049428ae01bd3bc4f215725'], + }), + ('Text::Table', '1.135', { + 'source_tmpl': 'Text-Table-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + 'checksums': ['fca3c16e83127f7c44dde3d3f7e3c73ea50d109a1054445de8082fea794ca5d2'], + }), + ('MIME::Types', '2.24', { + 'source_tmpl': 'MIME-Types-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + 'checksums': ['629e361f22b220be50c2da7354e23c0451757709a03c25a22f3160edb94cb65f'], + }), + ('Cwd::Guard', '0.05', { + 'source_tmpl': 'Cwd-Guard-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KAZEBURO'], + 'checksums': ['7afc7ca2b9502e440241938ad97a3e7ebd550180ebd6142e1db394186b268e77'], + }), + ('Capture::Tiny', '0.48', { + 'source_tmpl': 'Capture-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + 'checksums': ['6c23113e87bad393308c90a207013e505f659274736638d8c79bac9c67cc3e19'], + }), + ('File::Copy::Recursive::Reduced', '0.007', { + 'source_tmpl': 'File-Copy-Recursive-Reduced-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JK/JKEENAN'], + 'checksums': ['d3b58522e69803a91437e29c099eb706e8373f1eef0518a4dc3669dd3dfcdc27'], + }), + ('Module::Build::XSUtil', '0.19', { + 'source_tmpl': 'Module-Build-XSUtil-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HI/HIDEAKIO'], + 'checksums': ['9063b3c346edeb422807ffe49ffb23038c4f900d4a77b845ce4b53d97bf29400'], + }), + ('Tie::Function', '0.02', { + 'source_tmpl': 'Tie-Function-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAVIDNICO/handy_tied_functions'], + 'checksums': ['0b1617af218dfab911ba0fbd72210529a246efe140332da77fe3e03d11000117'], + }), + ('Number::Format', '1.76', { + 'source_tmpl': 'Number-Format-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['0e0060eb363635a885706c6a26f5fcaafeae759f7b2acae49dda70e195dd44d6'], + }), + ('Template::Plugin::Number::Format', '1.06', { + 'source_tmpl': 'Template-Plugin-Number-Format-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DARREN'], + 'checksums': ['0865836a1bcbc34d4a0ee34b5ccc14d7b511f1fd300bf390f002dac349539843'], + }), + ('HTML::Tagset', '3.20', { + 'source_tmpl': 'HTML-Tagset-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PETDANCE'], + 'checksums': ['adb17dac9e36cd011f5243881c9739417fd102fce760f8de4e9be4c7131108e2'], + }), + ('URI', '5.21', { + 'source_tmpl': 'URI-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['96265860cd61bde16e8415dcfbf108056de162caa0ac37f81eb695c9d2e0ab77'], + }), + ('B::COW', '0.007', { + 'source_tmpl': 'B-COW-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AT/ATOOMIC'], + 'checksums': ['1290daf227e8b09889a31cf182e29106f1cf9f1a4e9bf7752f9de92ed1158b44'], + }), + ('Clone', '0.46', { + 'source_tmpl': 'Clone-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GARU'], + 'checksums': ['aadeed5e4c8bd6bbdf68c0dd0066cb513e16ab9e5b4382dc4a0aafd55890697b'], + }), + ('IO::HTML', '1.004', { + 'source_tmpl': 'IO-HTML-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJM'], + 'checksums': ['c87b2df59463bbf2c39596773dfb5c03bde0f7e1051af339f963f58c1cbd8bf5'], + }), + ('LWP::MediaTypes', '6.04', { + 'source_tmpl': 'LWP-MediaTypes-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['8f1bca12dab16a1c2a7c03a49c5e58cce41a6fec9519f0aadfba8dad997919d9'], + }), + ('HTTP::Message', '6.45', { + 'source_tmpl': 'HTTP-Message-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['01cb8406612a3f738842d1e97313ae4d874870d1b8d6d66331f16000943d4cbe'], + }), + ('HTML::Parser', '3.81', { + 'source_tmpl': 'HTML-Parser-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['c0910a5c8f92f8817edd06ccfd224ba1c2ebe8c10f551f032587a1fc83d62ff2'], + }), + ('Date::Handler', '1.2', { + 'source_tmpl': 'Date-Handler-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BB/BBEAUSEJ'], + 'checksums': ['c36fd2b68d48c2e17417bf2873c78820f3ae02460fdf5976b8eeab887d59e16c'], + }), + ('XML::Parser', '2.46', { + 'source_tmpl': 'XML-Parser-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + 'checksums': ['d331332491c51cccfb4cb94ffc44f9cd73378e618498d4a37df9e043661c515d'], + }), + ('Data::Grove', '0.08', { + 'source_tmpl': 'libxml-perl-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KM/KMACLEOD'], + 'checksums': ['4571059b7b5d48b7ce52b01389e95d798bf5cf2020523c153ff27b498153c9cb'], + }), + ('Class::ISA', '0.36', { + 'source_tmpl': 'Class-ISA-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SM/SMUELLER'], + 'checksums': ['8816f34e9a38e849a10df756030dccf9fe061a196c11ac3faafd7113c929b964'], + }), + ('DBIx::ContextualFetch', '1.03', { + 'source_tmpl': 'DBIx-ContextualFetch-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + 'checksums': ['85e2f805bfc81cd738c294316b27a515397036f397a0ff1c6c8d754c38530306'], + }), + ('Ima::DBI', '0.35', { + 'source_tmpl': 'Ima-DBI-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERRIN'], + 'checksums': ['8b481ceedbf0ae4a83effb80581550008bfdd3885ef01145e3733c7097c00a08'], + }), + ('Tie::IxHash', '1.23', { + 'source_tmpl': 'Tie-IxHash-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + 'checksums': ['fabb0b8c97e67c9b34b6cc18ed66f6c5e01c55b257dcf007555e0b027d4caf56'], + }), + ('Parse::RecDescent', '1.967015', { + 'source_tmpl': 'Parse-RecDescent-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JT/JTBRAUN'], + 'checksums': ['1943336a4cb54f1788a733f0827c0c55db4310d5eae15e542639c9dd85656e37'], + }), + ('GO', '0.04', { + 'runtest': False, # Problem with indirect dependency DBD::Pg + 'source_tmpl': 'go-db-perl-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SJ/SJCARBON'], + 'checksums': ['8eb73d591ad767e7cf26def40cffd84833875f1ad51e456960b9ed73dc23641b'], + }), + ('Class::Trigger', '0.15', { + 'source_tmpl': 'Class-Trigger-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + 'checksums': ['b7a878d44dea67d64df2ca18020d9d868a95596debd16f1a264874209332b07f'], + }), + ('Class::Accessor', '0.51', { + 'source_tmpl': 'Class-Accessor-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + 'checksums': ['bf12a3e5de5a2c6e8a447b364f4f5a050bf74624c56e315022ae7992ff2f411c'], + }), + ('UNIVERSAL::moniker', '0.08', { + 'source_tmpl': 'UNIVERSAL-moniker-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + 'checksums': ['94ce27a546cd57cb52e080a8f2533a7cc2350028388582485bd1039a37871f9c'], + }), + ('Class::DBI', 'v3.0.17', { + 'source_tmpl': 'Class-DBI-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + 'checksums': ['541354fe361c56850cb11261f6ca089a14573fa764792447444ff736ae626206'], + }), + ('Class::DBI::SQLite', '0.11', { + 'source_tmpl': 'Class-DBI-SQLite-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + 'checksums': ['c4661b00afb7e53c97ac36e13f34dde43c1a93540a2f4ff97e6182b0c731e4e7'], + }), + ('File::Slurper', '0.014', { + 'source_tmpl': 'File-Slurper-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['d5a36487339888c3cd758e648160ee1d70eb4153cacbaff57846dbcefb344b0c'], + }), + ('Pod::POM', '2.01', { + 'source_tmpl': 'Pod-POM-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + 'checksums': ['1b50fba9bbdde3ead192beeba0eaddd0c614e3afb1743fa6fff805f57c56f7f4'], + }), + ('Math::Round', '0.08', { + 'source_tmpl': 'Math-Round-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + 'checksums': ['7b4d2775ad3b859a5fd61f7f3fc5cfba42b1a10df086d2ed15a0ae712c8fd402'], + }), + ('Algorithm::Diff', '1.201', { + 'source_tmpl': 'Algorithm-Diff-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['0022da5982645d9ef0207f3eb9ef63e70e9713ed2340ed7b3850779b0d842a7d'], + }), + ('Text::Diff', '1.45', { + 'source_tmpl': 'Text-Diff-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + 'checksums': ['e8baa07b1b3f53e00af3636898bbf73aec9a0ff38f94536ede1dbe96ef086f04'], + }), + ('Log::Message', '0.08', { + 'source_tmpl': 'Log-Message-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['bd697dd62aaf26d118e9f0a0813429deb1c544e4501559879b61fcbdfe99fe46'], + }), + ('Log::Message::Simple', '0.10', { + 'source_tmpl': 'Log-Message-Simple-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['aa12d1a4c0ac260b94d448fa01feba242a8a85cb6cbfdc66432e3b5b468add96'], + }), + ('Net::SSLeay', '1.92', { + 'preconfigopts': "export OPENSSL_PREFIX=$EBROOTOPENSSL && ", + 'source_tmpl': 'Net-SSLeay-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHRISN'], + 'checksums': ['47c2f2b300f2e7162d71d699f633dd6a35b0625a00cbda8c50ac01144a9396a9'], + }), + ('IO::Socket::SSL', '2.083', { + 'source_tmpl': 'IO-Socket-SSL-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SU/SULLR'], + 'checksums': ['904ef28765440a97d8a9a0df597f8c3d7f3cb0a053d1b082c10bed03bc802069'], + }), + ('Fennec::Lite', '0.004', { + 'source_tmpl': 'Fennec-Lite-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + 'checksums': ['dce28e3932762c2ff92aa52d90405c06e898e81cb7b164ccae8966ae77f1dcab'], + }), + ('Meta::Builder', '0.004', { + 'source_tmpl': 'Meta-Builder-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + 'checksums': ['acb499aa7206eb9db21eb85357a74521bfe3bdae4a6416d50a7c75b939cf56fe'], + }), + ('Exporter::Declare', '0.114', { + 'source_tmpl': 'Exporter-Declare-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + 'checksums': ['4bd70d6ca76f6f6ba7e4c618d4ac93b8593a58f1233ccbe18b10f5f204f1d4e4'], + }), + ('Mouse', 'v2.5.10', { + 'source_tmpl': 'Mouse-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SK/SKAJI'], + 'checksums': ['ce8dc23946153a467ff09765167ee2590f5c502120f48a2d9441733f39aa32ee'], + }), + ('Test::Version', '2.09', { + 'source_tmpl': 'Test-Version-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + 'checksums': ['9ce1dd2897a5f30e1b7f8966ec66f57d8d8f280f605f28c7ca221fa79aca38e0'], + }), + ('Class::Method::Modifiers', '2.15', { + 'source_tmpl': 'Class-Method-Modifiers-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['65cd85bfe475d066e9186f7a8cc636070985b30b0ebb1cde8681cf062c2e15fc'], + }), + ('Moo', '2.005005', { + 'source_tmpl': 'Moo-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + 'checksums': ['fb5a2952649faed07373f220b78004a9c6aba387739133740c1770e9b1f4b108'], + }), + ('Data::Dumper::Concise', '2.023', { + 'source_tmpl': 'Data-Dumper-Concise-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['a6c22f113caf31137590def1b7028a7e718eface3228272d0672c25e035d5853'], + }), + ('DBIx::Admin::CreateTable', '2.11', { + 'source_tmpl': 'DBIx-Admin-CreateTable-%(version)s.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + 'checksums': ['07b1427fbc15455657ca57217749004162a50c04abb243022a5b479e4b2a5912'], + }), + ('Config::Tiny', '2.30', { + 'source_tmpl': 'Config-Tiny-%(version)s.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + 'checksums': ['b2f7345619b3b8e636dd39ea010731c9dc2bfb8f022bcbd86ae6ad17866e110d'], + }), + ('File::Slurp', '9999.32', { + 'source_tmpl': 'File-Slurp-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CA/CAPOEIRAB'], + 'checksums': ['4c3c21992a9d42be3a79dd74a3c83d27d38057269d65509a2f555ea0fb2bc5b0'], + }), + ('DBIx::Admin::DSNManager', '2.02', { + 'source_tmpl': 'DBIx-Admin-DSNManager-%(version)s.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + 'checksums': ['c25511f42328ccb606a0cd78413a74181c87fb37a382d38aa3fad106b540adcb'], + }), + ('Lingua::EN::PluralToSingular', '0.21', { + 'source_tmpl': 'Lingua-EN-PluralToSingular-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BK/BKB'], + 'checksums': ['f8a8b7de28c25c96190d7f48c90b5ad9b9bf517f3835c77641f0e8fa546c0d1d'], + }), + ('Test::Warn', '0.37', { + 'source_tmpl': 'Test-Warn-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BIGJ'], + 'checksums': ['98ca32e7f2f5ea89b8bfb9a0609977f3d153e242e2e51705126cb954f1a06b57'], + }), + ('Test::Differences', '0.71', { + 'runtest': False, # Cryptic test failing + 'source_tmpl': 'Test-Differences-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DC/DCANTRELL'], + 'checksums': ['cac16a56cd843b0809e5b49199d60d75a8dbad7ca9a08380dbf3f5cc3aaa38d9'], + }), + ('Test::Most', '0.38', { + 'source_tmpl': 'Test-Most-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OV/OVID'], + 'checksums': ['089eb894f7bace4c37c6334e0e290eb20338ee10223af0c82cbe7281c78382df'], + }), + ('Const::Fast', '0.014', { + 'source_tmpl': 'Const-Fast-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['f805953a08c57846a16a4d85d7b766398afaf7c36c1465fcb1dea09e5fa394db'], + }), + ('Ref::Util', '0.204', { + 'source_tmpl': 'Ref-Util-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AR/ARC'], + 'checksums': ['415fa73dbacf44f3d5d79c14888cc994562720ab468e6f71f91cd1f769f105e1'], + }), + ('Class::XSAccessor', '1.19', { + 'source_tmpl': 'Class-XSAccessor-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SM/SMUELLER'], + 'checksums': ['99c56b395f1239af19901f2feeb125d9ecb4e351a0d80daa9529211a4700a6f2'], + }), + ('Hash::Objectify', '0.008', { + 'source_tmpl': 'Hash-Objectify-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + 'checksums': ['236d5829cdebf3ba648d34e1295cd9099a20506d8d0284668e617e0058cebeed'], + }), + ('Const::Exporter', 'v1.2.3', { + 'source_tmpl': 'Const-Exporter-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RR/RRWO'], + 'checksums': ['53e59b4764aebcf79bbed533ab5a6107339fe516b7f2f607b1bae8dd9dcf7015'], + }), + ('HTML::Entities::Interpolate', '1.10', { + 'source_tmpl': 'HTML-Entities-Interpolate-%(version)s.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + 'checksums': ['f15a9df92c282419f7010964aca1ada844ddfae7afc735cd2ba1bb20883e955c'], + }), + ('List::SomeUtils', '0.59', { + 'source_tmpl': 'List-SomeUtils-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['fab30372e4c67bf5a46062da38d1d0c8756279feada866eb439fa29571a2dc7b'], + }), + ('List::UtilsBy', '0.12', { + 'source_tmpl': 'List-UtilsBy-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PEVANS'], + 'checksums': ['fff1281fd469fe982b1a58044becfd970f313bff3a26e1c7b2b3f4c0a5ed71e0'], + }), + ('List::AllUtils', '0.19', { + 'source_tmpl': 'List-AllUtils-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['30a8146ab21a7787b8c56d5829cf9a7f2b15276d3b3fca07336ac38d3002ffbc'], + }), + ('Unicode::EastAsianWidth', '12.0', { + 'source_tmpl': 'Unicode-EastAsianWidth-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AU/AUDREYT'], + 'checksums': ['2a5bfd926c4fe5f77e6137da2c31ac2545282ae5fec6e9af0fdd403555a90ff4'], + }), + ('String::TtyLength', '0.03', { + 'source_tmpl': 'String-TtyLength-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + 'checksums': ['4fedaf72028511d80eb6afba523993e9aaa245d7af558345d5d4ed46e2e82ce1'], + }), + ('Text::Table::Manifold', '1.03', { + 'source_tmpl': 'Text-Table-Manifold-%(version)s.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + 'checksums': ['e680713169557b0768952fa6932f25576a61dccfb96bd9036dcf6fcefb35e09e'], + }), + ('DBIx::Admin::TableInfo', '3.04', { + 'source_tmpl': 'DBIx-Admin-TableInfo-%(version)s.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + 'checksums': ['b9625992683b97378bea0947773f50e3c9f81974048b84f4c3422cae7e6082f4'], + }), + ('Net::HTTP', '6.23', { + 'runtest': False, # Fragile tests + 'source_tmpl': 'Net-HTTP-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['0d65c09dd6c8589b2ae1118174d3c1a61703b6ecfc14a3442a8c74af65e0c94e'], + }), + ('Clone::Choose', '0.010', { + 'source_tmpl': 'Clone-Choose-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HE/HERMES'], + 'checksums': ['5623481f58cee8edb96cd202aad0df5622d427e5f748b253851dfd62e5123632'], + }), + ('Hash::Merge', '0.302', { + 'source_tmpl': 'Hash-Merge-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HE/HERMES'], + 'checksums': ['ae0522f76539608b61dde14670e79677e0f391036832f70a21f31adde2538644'], + }), + ('SQL::Abstract', '2.000001', { + 'source_tmpl': 'SQL-Abstract-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MS/MSTROUT'], + 'checksums': ['35a642662c349420d44be6e0ef7d8765ea743eb12ad14399aa3a232bb94e6e9a'], + }), + ('HTML::Form', '6.11', { + 'source_tmpl': 'HTML-Form-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SI/SIMBABQUE'], + 'checksums': ['43bfaa7087393487d2d51261a1aa7f6f81a97b1d8fef7a48fcf6ef32b16d6454'], + }), + ('IPC::Run', '20231003.0', { + 'source_tmpl': 'IPC-Run-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + 'checksums': ['eb25bbdf5913d291797ef1bfe998f15130b455d3ed02aacde6856f0b25e4fe57'], + }), + ('File::Remove', '1.61', { + 'source_tmpl': 'File-Remove-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + 'checksums': ['fd857f585908fc503461b9e48b3c8594e6535766bc14beb17c90ba58d5dc4975'], + }), + ('YAML::Tiny', '1.74', { + 'source_tmpl': 'YAML-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['7b38ca9f5d3ce24230a6b8bdc1f47f5b2db348e7f7f9666c26f5955636e33d6c'], + }), + ('Module::Install', '1.21', { + 'source_tmpl': 'Module-Install-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['fbf91007f30565f3920e106055fd0d4287981d5e7dad8b35323ce4b733f15a7b'], + }), + ('Test::ClassAPI', '1.07', { + 'source_tmpl': 'Test-ClassAPI-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['30e9dbfc5e0cc2ee14eae8f3465a908a710daecbd0a3ebdb2888fc4504fa18aa'], + }), + ('HTTP::Tiny', '0.088', { + 'source_tmpl': 'HTTP-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + 'checksums': ['7ce6367e861883b6868d6dd86168af33524717d8cc94100c2abf9bd86a82b4d8'], + }), + ('Sub::Install', '0.929', { + 'source_tmpl': 'Sub-Install-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['80b1e281d8cd3b2b31dac711f5c8a1657a87cd80bbe69af3924bcbeb4e5db077'], + }), + ('Package::DeprecationManager', '0.18', { + 'source_tmpl': 'Package-DeprecationManager-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['b68d3f0ced55b7615fddbb6029b89f92a34fe0dd8c6fd6bceffc157d56834fe8'], + }), + ('Digest::SHA1', '2.13', { + 'source_tmpl': 'Digest-SHA1-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + 'checksums': ['68c1dac2187421f0eb7abf71452a06f190181b8fc4b28ededf5b90296fb943cc'], + }), + ('Date::Language', '2.33', { + 'source_tmpl': 'TimeDate-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AT/ATOOMIC'], + 'checksums': ['c0b69c4b039de6f501b0d9f13ec58c86b040c1f7e9b27ef249651c143d605eb2'], + }), + ('version', '0.9930', { + 'source_tmpl': 'version-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['61db955fbcb39f5902fa6c8b957aeb2741e23d4840f84abf846af1f670aeee30'], + }), + ('XML::Bare', '0.53', { + 'source_tmpl': 'XML-Bare-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CO/CODECHILD'], + 'checksums': ['865e198e98d904be1683ef5a53a4948f02dabdacde59fc554a082ffbcc5baefd'], + }), + ('Dist::CheckConflicts', '0.11', { + 'source_tmpl': 'Dist-CheckConflicts-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + 'checksums': ['ea844b9686c94d666d9d444321d764490b2cde2f985c4165b4c2c77665caedc4'], + }), + ('Sub::Name', '0.27', { + 'source_tmpl': 'Sub-Name-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['ecf36fba1c47ca93e1daa394968ed39c4186867459d9cd173c421e2b972043e8'], + }), + ('Time::Piece', '1.3401', { + 'source_tmpl': 'Time-Piece-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ES/ESAYM'], + 'checksums': ['4b55b7bb0eab45cf239a54dfead277dfa06121a43e63b3fce0853aecfdb04c27'], + }), + ('Digest::HMAC', '1.04', { + 'source_tmpl': 'Digest-HMAC-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AR/ARODLAND'], + 'checksums': ['d6bc8156aa275c44d794b7c18f44cdac4a58140245c959e6b19b2c3838b08ed4'], + }), + ('HTTP::Negotiate', '6.01', { + 'source_tmpl': 'HTTP-Negotiate-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + 'checksums': ['1c729c1ea63100e878405cda7d66f9adfd3ed4f1d6cacaca0ee9152df728e016'], + }), + ('Email::Date::Format', '1.008', { + 'source_tmpl': 'Email-Date-Format-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['432b7c83ff88749af128003f5257c573aec1a463418db90ed22843cbbc258b4f'], + }), + ('MIME::Lite', '3.033', { + 'source_tmpl': 'MIME-Lite-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['78a279f1d2e242551c347ef97a13fc675766602cb84c2a80c569400f4f368bab'], + }), + ('Crypt::Rijndael', '1.16', { + 'source_tmpl': 'Crypt-Rijndael-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['6540085e3804b82a6f0752c1122cf78cadd221990136dd6fd4c097d056c84d40'], + }), + ('B::Lint', '1.20', { + 'runtest': False, # One failing subtest + 'source_tmpl': 'B-Lint-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['dc49408964fd8b7963859c92e013f0b9f92f74be5a7c2a78e3996279827c10b3'], + }), + ('Canary::Stability', '2013', { + 'source_tmpl': 'Canary-Stability-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + 'checksums': ['a5c91c62cf95fcb868f60eab5c832908f6905221013fea2bce3ff57046d7b6ea'], + }), + ('AnyEvent', '7.17', { + 'source_tmpl': 'AnyEvent-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + 'checksums': ['50beea689c098fe4aaeb83806c40b9fe7f946d5769acf99f849f099091a4b985'], + }), + ('Object::Accessor', '0.48', { + 'source_tmpl': 'Object-Accessor-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['76cb824a27b6b4e560409fcf6fd5b3bfbbd38b72f1f3d37ed0b54bd9c0baeade'], + }), + ('Data::UUID', '1.226', { + 'source_tmpl': 'Data-UUID-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['093d57ffa0d411a94bafafae495697db26f5c9d0277198fe3f7cf2be22996453'], + }), + ('Test::Pod', '1.52', { + 'source_tmpl': 'Test-Pod-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['60a8dbcc60168bf1daa5cc2350236df9343e9878f4ab9830970a5dde6fe8e5fc'], + }), + ('AppConfig', '1.71', { + 'source_tmpl': 'AppConfig-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + 'checksums': ['1177027025ecb09ee64d9f9f255615c04db5e14f7536c344af632032eb887b0f'], + }), + ('Net::SMTP::SSL', '1.04', { + 'source_tmpl': 'Net-SMTP-SSL-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['7b29c45add19d3d5084b751f7ba89a8e40479a446ce21cfd9cc741e558332a00'], + }), + ('XML::Tiny', '2.07', { + 'source_tmpl': 'XML-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DC/DCANTRELL'], + 'checksums': ['ce39fcb53e0fe9f1cbcd86ddf152e1db48566266b70ec0769ef364eeabdd8941'], + }), + ('HTML::Tree', '5.07', { + 'source_tmpl': 'HTML-Tree-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KE/KENTNL'], + 'checksums': ['f0374db84731c204b86c1d5b90975fef0d30a86bd9def919343e554e31a9dbbf'], + }), + ('Devel::GlobalDestruction', '0.14', { + 'source_tmpl': 'Devel-GlobalDestruction-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + 'checksums': ['34b8a5f29991311468fe6913cadaba75fd5d2b0b3ee3bb41fe5b53efab9154ab'], + }), + ('WWW::RobotRules', '6.02', { + 'source_tmpl': 'WWW-RobotRules-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + 'checksums': ['46b502e7a288d559429891eeb5d979461dd3ecc6a5c491ead85d165b6e03a51e'], + }), + ('IO::Tty', '1.17', { + 'source_tmpl': 'IO-Tty-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + 'checksums': ['a5f1a83020bc5b5dd6c1b570f48c7546e0a8f7fac10a068740b03925ad9e14e8'], + }), + ('Expect', '1.35', { + 'source_tmpl': 'Expect-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JA/JACOBY'], + 'checksums': ['09d92761421decd495853103379165a99efbf452c720f30277602cf23679fd06'], + }), + ('Term::UI', '0.50', { + 'source_tmpl': 'Term-UI-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['60bfdd6d4c158b88d370133fc65b20485a36a45b12d906000b81c78ca524163d'], + }), + ('Net::SNMP', 'v6.0.1', { + 'source_tmpl': 'Net-SNMP-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DT/DTOWN'], + 'checksums': ['14c37bc1cbb3f3cdc7d6c13e0f27a859f14cdcfd5ea54a0467a88bc259b0b741'], + }), + ('XML::Filter::BufferText', '1.01', { + 'source_tmpl': 'XML-Filter-BufferText-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RB/RBERJON'], + 'checksums': ['8fd2126d3beec554df852919f4739e689202cbba6a17506e9b66ea165841a75c'], + }), + ('XML::SAX::Writer', '0.57', { + 'source_tmpl': 'XML-SAX-Writer-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN'], + 'checksums': ['3d61d07ef43b0126f5b4de4f415a256fa859fa88dc4fdabaad70b7be7c682cf0'], + }), + ('Statistics::Descriptive', '3.0801', { + 'source_tmpl': 'Statistics-Descriptive-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + 'checksums': ['047b70a63fdcaa916168e0ff2d58e155e0ebbc68ed4ccbd73a7213dca3028f65'], + }), + ('Data::OptList', '0.114', { + 'source_tmpl': 'Data-OptList-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['9fd1093b917a21fb79ae1607db53d113b4e0ad8fe0ae776cb077a7e50044fdf3'], + }), + ('Class::Load', '0.25', { + 'source_tmpl': 'Class-Load-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['2a48fa779b5297e56156380e8b32637c6c58decb4f4a7f3c7350523e11275f8f'], + }), + ('HTTP::Daemon', '6.16', { + 'source_tmpl': 'HTTP-Daemon-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['b38d092725e6fa4e0c4dc2a47e157070491bafa0dbe16c78a358e806aa7e173d'], + }), + ('Test::RequiresInternet', '0.05', { + 'source_tmpl': 'Test-RequiresInternet-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MALLEN'], + 'checksums': ['bba7b32a1cc0d58ce2ec20b200a7347c69631641e8cae8ff4567ad24ef1e833e'], + }), + ('HTTP::Cookies', '6.10', { + 'source_tmpl': 'HTTP-Cookies-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['e36f36633c5ce6b5e4b876ffcf74787cc5efe0736dd7f487bdd73c14f0bd7007'], + }), + ('HTTP::CookieJar', '0.014', { + 'source_tmpl': 'HTTP-CookieJar-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + 'checksums': ['7094ea5c91f536d263b85e83ab4e9a963e11c4408ce08ecae553fa9c0cc47e73'], + }), + ('LWP::Simple', '6.72', { + 'source_tmpl': 'libwww-perl-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['e9b8354fd5e20be207afe23ddd584fcd59bf82998dc077decf684ba1dae5a05d'], + }), + ('Time::Piece::MySQL', '0.06', { + 'source_tmpl': 'Time-Piece-MySQL-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + 'checksums': ['319601feec17fae344988a5ee91cfc6a0bcfe742af77dba254724c3268b2a60f'], + }), + ('Package::Stash::XS', '0.30', { + 'source_tmpl': 'Package-Stash-XS-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['26bad65c1959c57379b3e139dc776fbec5f702906617ef27cdc293ddf1239231'], + }), + ('Want', '0.29', { + 'source_tmpl': 'Want-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RO/ROBIN'], + 'checksums': ['b4e4740b8d4cb783591273c636bd68304892e28d89e88abf9273b1de17f552f7'], + }), + ('Set::Array', '0.30', { + 'source_tmpl': 'Set-Array-%(version)s.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + 'checksums': ['d9f024c8e3637feccdebcf6479b6754b6c92f1209f567feaf0c23818af31ee3c'], + }), + ('boolean', '0.46', { + 'source_tmpl': 'boolean-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IN/INGY'], + 'checksums': ['95c088085c3e83bf680fe6ce16d8264ec26310490f7d1680e416ea7a118f156a'], + }), + ('Test::NoWarnings', '1.06', { + 'source_tmpl': 'Test-NoWarnings-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + 'checksums': ['c2dc51143b7eb63231210e27df20d2c8393772e0a333547ec8b7a205ed62f737'], + }), + ('Crypt::DES', '2.07', { + 'source_tmpl': 'Crypt-DES-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DP/DPARIS'], + 'checksums': ['2db1ebb5837b4cb20051c0ee5b733b4453e3137df0a92306034c867621edd7e7'], + }), + ('XML::XPath', '1.48', { + 'source_tmpl': 'XML-XPath-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MANWAR'], + 'checksums': ['7bc75be36b239e5b2e700a9570d2b53b43093d467f2abe6a743f9ff9093790cd'], + }), + ('JSON', '4.10', { + 'source_tmpl': 'JSON-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI'], + 'checksums': ['df8b5143d9a7de99c47b55f1a170bd1f69f711935c186a6dc0ab56dd05758e35'], + }), + ('Sub::Exporter', '0.990', { + 'source_tmpl': 'Sub-Exporter-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['bc64ec5a06865f9cc676215c06a9448b3a0c8b3974ffb23a24f8e2ad090544fc'], + }), + ('Class::Load::XS', '0.10', { + 'source_tmpl': 'Class-Load-XS-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['5bc22cf536ebfd2564c5bdaf42f0d8a4cee3d1930fc8b44b7d4a42038622add1'], + }), + ('Data::Types', '0.17', { + 'source_tmpl': 'Data-Types-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MANWAR'], + 'checksums': ['860751feb79b7dfc1af71c4b7fe920220ec6d31c4ab9402b8f178f7f4b8293c1'], + }), + ('Set::IntSpan::Fast', '1.15', { + 'source_tmpl': 'Set-IntSpan-Fast-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AN/ANDYA'], + 'checksums': ['cfb1768c24f55208e87405b17f537f0f303fa141891d0b22d509a941aa57e24e'], + }), + ('Text::Iconv', '1.7', { + 'source_tmpl': 'Text-Iconv-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MP/MPIOTR'], + 'checksums': ['5b80b7d5e709d34393bcba88971864a17b44a5bf0f9e4bcee383d029e7d2d5c3'], + }), + ('Text::Balanced', '2.06', { + 'source_tmpl': 'Text-Balanced-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], + 'checksums': ['773e0f0f21c0cb2cf664cee6ba28ff70259babcc892f9b650f9cbda00be092ad'], + }), + ('strictures', '2.000006', { + 'source_tmpl': 'strictures-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + 'checksums': ['09d57974a6d1b2380c802870fed471108f51170da81458e2751859f2714f8d57'], + }), + ('Switch', '2.17', { + 'source_tmpl': 'Switch-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + 'checksums': ['31354975140fe6235ac130a109496491ad33dd42f9c62189e23f49f75f936d75'], + }), + ('File::Which', '1.27', { + 'source_tmpl': 'File-Which-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + 'checksums': ['3201f1a60e3f16484082e6045c896842261fc345de9fb2e620fd2a2c7af3a93a'], + }), + ('Error', '0.17029', { + 'source_tmpl': 'Error-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + 'checksums': ['1a23f7913032aed6d4b68321373a3899ca66590f4727391a091ec19c95bf7adc'], + }), + ('Mock::Quick', '1.111', { + 'source_tmpl': 'Mock-Quick-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + 'checksums': ['ff786008bf8c022064ececd3b7ed89c76b35e8d1eac6cf472a9f51771c1c9f2c'], + }), + ('Text::CSV', '2.03', { + 'source_tmpl': 'Text-CSV-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI'], + 'checksums': ['48bbce9f234935a88595618e04dd141628246d650f2a726024df1c137e0b65fb'], + }), + ('Test::Output', '1.034', { + 'source_tmpl': 'Test-Output-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BD/BDFOY'], + 'checksums': ['cd42e2801c0d2b482d18c9fb4b06c757054818bcbb2824e5dfbf33ad7a3d69a0'], + }), + ('File::CheckTree', '4.42', { + 'source_tmpl': 'File-CheckTree-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['66fb417f8ff8a5e5b7ea25606156e70e204861c59fa8c3831925b4dd3f155f8a'], + }), + ('Math::VecStat', '0.08', { + 'source_tmpl': 'Math-VecStat-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AS/ASPINELLI'], + 'checksums': ['409a8e0e4b1025c8e80f628f65a9778aa77ab285161406ca4a6c097b13656d0d'], + }), + ('Pod::Parser', '1.66', { + 'configopts': 'INSTALLDIRS=site', # Force it to correctly use site_perl + 'source_tmpl': 'Pod-Parser-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAREKR'], + 'checksums': ['22928a7bffe61b452c05bbbb8f5216d4b9cf9fe2a849b776c25500d24d20df7c'], + }), + ('Pod::LaTeX', '0.61', { + 'source_tmpl': 'Pod-LaTeX-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TJ/TJENNESS'], + 'checksums': ['15a840ea1c8a76cd3c865fbbf2fec33b03615c0daa50f9c800c54e0cf0659d46'], + }), + ('XML::Twig', '3.52', { + 'source_tmpl': 'XML-Twig-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIROD'], + 'checksums': ['fef75826c24f2b877d0a0d2645212fc4fb9756ed4d2711614ac15c497e8680ad'], + }), + ('XML::Simple', '2.25', { + 'source_tmpl': 'XML-Simple-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + 'checksums': ['531fddaebea2416743eb5c4fdfab028f502123d9a220405a4100e68fc480dbf8'], + }), + ('Pod::Plainer', '1.04', { + 'source_tmpl': 'Pod-Plainer-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RM/RMBARKER'], + 'checksums': ['1bbfbf7d1d4871e5a83bab2137e22d089078206815190eb1d5c1260a3499456f'], + }), + ('Data::Section::Simple', '0.07', { + 'source_tmpl': 'Data-Section-Simple-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + 'checksums': ['0b3035ffdb909aa1f7ded6b608fa9d894421c82c097d51e7171170d67579a9cb'], + }), + ('File::HomeDir', '1.006', { + 'source_tmpl': 'File-HomeDir-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + 'checksums': ['593737c62df0f6dab5d4122e0b4476417945bb6262c33eedc009665ef1548852'], + }), + ('Authen::SASL', '2.1700', { + 'source_tmpl': 'Authen-SASL-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EH/EHUELS'], + 'checksums': ['b86d5a576b8d387aee24f39f47a54afd14bb66b09003db5065001f1de03a8ece'], + }), + ('Import::Into', '1.002005', { + 'source_tmpl': 'Import-Into-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + 'checksums': ['bd9e77a3fb662b40b43b18d3280cd352edf9fad8d94283e518181cc1ce9f0567'], + }), + ('DateTime::Tiny', '1.07', { + 'runtest': False, # One subset fails due to locale + 'source_tmpl': 'DateTime-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + 'checksums': ['83568a22838cb518fbeb9e060460ec7f59d5a0b0a1cc06562954c3674d7cf7e4'], + }), + ('Text::Format', '0.62', { + 'source_tmpl': 'Text-Format-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + 'checksums': ['7d429057319e123c590ba0765334f0ade4a5eb9ea8db7c0ec4d3902de5f90404'], + }), + ('Devel::CheckCompiler', '0.07', { + 'source_tmpl': 'Devel-CheckCompiler-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SY/SYOHEX'], + 'checksums': ['768b7697b4b8d4d372c7507b65e9dd26aa4223f7100183bbb4d3af46d43869b5'], + }), + ('Log::Handler', '0.90', { + 'source_tmpl': 'Log-Handler-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BL/BLOONIX'], + 'checksums': ['3a5c80e7128454770f83acab8cbd3e70e5ec3d59a61dc32792a178f0b31bf74d'], + }), + ('Term::ReadKey', '2.38', { + 'source_tmpl': 'TermReadKey-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JS/JSTOWE'], + 'checksums': ['5a645878dc570ac33661581fbb090ff24ebce17d43ea53fd22e105a856a47290'], + }), + ('Set::IntSpan', '1.19', { + 'source_tmpl': 'Set-IntSpan-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SW/SWMCD'], + 'checksums': ['11b7549b13ec5d87cc695dd4c777cd02983dd5fe9866012877fb530f48b3dfd0'], + }), + ('Module::Runtime::Conflicts', '0.003', { + 'source_tmpl': 'Module-Runtime-Conflicts-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['707cdc75038c70fe91779b888ac050f128565d3967ba96680e1b1c7cc9733875'], + }), + ('File::pushd', '1.016', { + 'source_tmpl': 'File-pushd-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + 'checksums': ['d73a7f09442983b098260df3df7a832a5f660773a313ca273fa8b56665f97cdc'], + }), + ('Test::CleanNamespaces', '0.24', { + 'source_tmpl': 'Test-CleanNamespaces-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['338d5569e8e89a654935f843ec0bc84aaa486fe8dd1898fb9cab3eccecd5327a'], + }), + ('Devel::OverloadInfo', '0.007', { + 'source_tmpl': 'Devel-OverloadInfo-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IL/ILMARI'], + 'checksums': ['21a184163b90f91f06ffc7f5de0b968356546ae9b400a9d75c573c958c246222'], + }), + ('Moose', '2.2206', { + 'source_tmpl': 'Moose-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['67972c4e2bc39fbda38518177af0e67bbbeb548562e4ec4b759a1a7a583e505b'], + }), + ('Algorithm::Dependency', '1.112', { + 'source_tmpl': 'Algorithm-Dependency-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['7e0fb7c39f56a2dccf9d0295c82f3031ee116e807f6a12a438fa4dd41b0ec187'], + }), + ('Font::TTF', '1.06', { + 'source_tmpl': 'Font-TTF-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BH/BHALLISSY'], + 'checksums': ['4b697d444259759ea02d2c442c9bffe5ffe14c9214084a01f743693a944cc293'], + }), + ('IPC::Run3', '0.048', { + 'source_tmpl': 'IPC-Run3-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['3d81c3cc1b5cff69cca9361e2c6e38df0352251ae7b41e2ff3febc850e463565'], + }), + ('SQL::Statement', '1.414', { + 'source_tmpl': 'SQL-Statement-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + 'checksums': ['dde8bdcfa6a136eedda06519ba0f3efaec085c39db0df9c472dc0ec6cd781a49'], + }), + ('Package::Constants', '0.06', { + 'source_tmpl': 'Package-Constants-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['0b58be78706ccc4e4bd9bbad41767470427fd7b2cfad749489de101f85bc5df5'], + }), + ('CPANPLUS', '0.9914', { + 'source_tmpl': 'CPANPLUS-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['76c3e5da623a4af60fe64adec448fb1f8e0cae9f6798a36b68865974044e9b67'], + }), + ('IO::Tty', '1.17', { + 'source_tmpl': 'IO-Tty-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + 'checksums': ['a5f1a83020bc5b5dd6c1b570f48c7546e0a8f7fac10a068740b03925ad9e14e8'], + }), + ('Text::Soundex', '3.05', { + 'source_tmpl': 'Text-Soundex-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['f6dd55b4280b25dea978221839864382560074e1d6933395faee2510c2db60ed'], + }), + ('Mail::Util', '2.21', { + 'source_tmpl': 'MailTools-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + 'checksums': ['4ad9bd6826b6f03a2727332466b1b7d29890c8d99a32b4b3b0a8d926ee1a44cb'], + }), + ('Test::More::UTF8', '0.05', { + 'source_tmpl': 'Test-More-UTF8-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MO/MONS'], + 'checksums': ['b9f1c4b36a97cdfefaa53ed1115dd38f4b483037775f6559ee1df14acfd1ce04'], + }), + ('Text::Template', '1.61', { + 'source_tmpl': 'Text-Template-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MS/MSCHOUT'], + 'checksums': ['a295ea7d1ef241ae2640c1f7864b628f8e6f99ec14fb1da781b2f5f2168dcf09'], + }), + ('PadWalker', '2.5', { + 'source_tmpl': 'PadWalker-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RO/ROBIN'], + 'checksums': ['07b26abb841146af32072a8d68cb90176ffb176fd9268e6f2f7d106f817a0cd0'], + }), + ('Devel::Cycle', '1.12', { + 'source_tmpl': 'Devel-Cycle-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LD/LDS'], + 'checksums': ['fd3365c4d898b2b2bddbb78a46d507a18cca8490a290199547dab7f1e7390bc2'], + }), + ('Test::Memory::Cycle', '1.06', { + 'source_tmpl': 'Test-Memory-Cycle-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PETDANCE'], + 'checksums': ['9d53ddfdc964cd8454cb0da4c695b6a3ae47b45839291c34cb9d8d1cfaab3202'], + }), + ('PDF::API2', '2.045', { + 'source_tmpl': 'PDF-API2-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SS/SSIMMS'], + 'checksums': ['b6bdb4e0d0cd6526103fdd58c171e0560c36b843b7fe3ca4ddc9bb1e4c832406'], + }), + ('Devel::CheckLib', '1.16', { + 'source_tmpl': 'Devel-CheckLib-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MATTN'], + 'checksums': ['869d38c258e646dcef676609f0dd7ca90f085f56cf6fd7001b019a5d5b831fca'], + }), + ('SVG', '2.87', { + 'source_tmpl': 'SVG-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MANWAR'], + 'checksums': ['b3fa58c1c59942b4ebef003da97c3e01e531480ca29e8efbe327ff0589c0bd3c'], + }), + ('Statistics::Basic', '1.6611', { + 'source_tmpl': 'Statistics-Basic-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JE/JETTERO'], + 'checksums': ['6855ce5615fd3e1af4cfc451a9bf44ff29a3140b4e7130034f1f0af2511a94fb'], + }), + ('Log::Log4perl', '1.57', { + 'source_tmpl': 'Log-Log4perl-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETJ'], + 'checksums': ['0f8fcb7638a8f3db4c797df94fdbc56013749142f2f94cbc95b43c9fca096a13'], + }), + ('Math::CDF', '0.1', { + 'source_tmpl': 'Math-CDF-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CA/CALLAHAN'], + 'checksums': ['7896bf250835ce47dcc813cb8cf9dc576c5455de42e822dcd7d8d3fef2125565'], + }), + ('Array::Utils', '0.5', { + 'source_tmpl': 'Array-Utils-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/Z/ZM/ZMIJ/Array'], + 'checksums': ['89dd1b7fcd9b4379492a3a77496e39fe6cd379b773fd03a6b160dd26ede63770'], + }), + ('File::Grep', '0.02', { + 'source_tmpl': 'File-Grep-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MN/MNEYLON'], + 'checksums': ['462e15274eb6278521407ea302d9eea7252cd44cab2382871f7de833d5f85632'], + }), + ('File::Temp', '0.2311', { + 'source_tmpl': 'File-Temp-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['2290d61bf5c39882fc3311da9ce1c7f42dbdf825ae169e552c59fe4598b36f4a'], + }), + ('Set::Object', '1.42', { + 'source_tmpl': 'Set-Object-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RU/RURBAN'], + 'checksums': ['d18c5a8a233eabbd0206cf3da5b00fcdd7b37febf12a93dcc3d1c026e6fdec45'], + }), + ('Heap', '0.80', { + 'source_tmpl': 'Heap-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JM/JMM'], + 'checksums': ['ccda29f3c93176ad0fdfff4dd6f5e4ac90b370cba4b028386b7343bf64139bde'], + }), + ('Graph', '0.9727', { + 'source_tmpl': 'Graph-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETJ'], + 'checksums': ['392a8916dc95131abe8c913dfcac7698484bf4866b42af5f7043c0062e742229'], + }), + ('XML::Writer', '0.900', { + 'source_tmpl': 'XML-Writer-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JO/JOSEPHW'], + 'checksums': ['73c8f5bd3ecf2b350f4adae6d6676d52e08ecc2d7df4a9f089fa68360d400d1f'], + }), + ('Parse::Yapp', '1.21', { + 'source_tmpl': 'Parse-Yapp-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/W/WB/WBRASWELL'], + 'checksums': ['3810e998308fba2e0f4f26043035032b027ce51ce5c8a52a8b8e340ca65f13e5'], + }), + ('Graph::ReadWrite', '2.10', { + 'source_tmpl': 'Graph-ReadWrite-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + 'checksums': ['516c1ea9facb995dbc38d1735d58974b2399862567e731b729c8d0bc2ee5a14b'], + }), + ('PerlIO::utf8_strict', '0.010', { + 'source_tmpl': 'PerlIO-utf8_strict-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['bcd2848b72df290b5e984fae8b1a6ca96f6d072003cf222389a8c9e8e1c570cd'], + }), + ('Digest::MD5::File', '0.08', { + 'source_tmpl': 'Digest-MD5-File-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DM/DMUEY'], + 'checksums': ['adb43a54e32627b4f7e57c9640e6eb06d0bb79d8ea54cd0bd79ed35688fb1218'], + }), + ('String::RewritePrefix', '0.009', { + 'source_tmpl': 'String-RewritePrefix-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['44918bec96a54af8ca37ca897e436709ec284a07b28516ef3cce4666869646d5'], + }), + ('Getopt::Long::Descriptive', '0.111', { + 'source_tmpl': 'Getopt-Long-Descriptive-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['9b8d15fcaf18fdd740246b438f0e7eb914b831c51d9d708c099eca776622076d'], + }), + ('IO::TieCombine', '1.005', { + 'source_tmpl': 'IO-TieCombine-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['402d4db8300b3d271632f4995e0ade329d89280a7e47f2badf8b38af6e5569af'], + }), + ('App::Cmd', '0.336', { + 'source_tmpl': 'App-Cmd-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['df966b57d59abb196e00304885e5bf117ca958182ae3f4eedf17218ea2838e81'], + }), + ('Carp::Clan', '6.08', { + 'source_tmpl': 'Carp-Clan-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['c75f92e34422cc5a65ab05d155842b701452434e9aefb649d6e2289c47ef6708'], + }), + ('Sub::Exporter::ForMethods', '0.100055', { + 'source_tmpl': 'Sub-Exporter-ForMethods-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['791f4203ba7c0f7d8380bc01bec20215f7c8bc70d7ed03e552eee44541abe94e'], + }), + ('MooseX::Types', '0.50', { + 'source_tmpl': 'MooseX-Types-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['9cd87b3492cbf0be9d2df9317b2adf9fc30663770e69906654bea3f41b17cb08'], + }), + ('Variable::Magic', '0.63', { + 'source_tmpl': 'Variable-Magic-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/V/VP/VPIT'], + 'checksums': ['ba4083b2c31ff2694f2371333d554c826aaf24b4d98d03e48b5b4a43a2a0e679'], + }), + ('MooseX::Types::Perl', '0.101344', { + 'source_tmpl': 'MooseX-Types-Perl-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['87644354f74fa65235cb2bfca44277930a7eabe51acc5f81fb631530a8355e24'], + }), + ('Log::Dispatch', '2.71', { + 'source_tmpl': 'Log-Dispatch-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['9d60d9648c35ce2754731eb4deb7f05809ece1bd633b74d74795aed9ec732570'], + }), + ('JSON::MaybeXS', '1.004005', { + 'source_tmpl': 'JSON-MaybeXS-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['f5b6bc19f579e66b7299f8748b8ac3e171936dc4e7fcb72a8a257a9bd482a331'], + }), + ('String::Flogger', '1.101246', { + 'source_tmpl': 'String-Flogger-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['15f8491e07818bb3cfa9f6bd3aabf6430ba9b4e309f18114358be3d81bff3a0f'], + }), + ('Log::Dispatch::Array', '1.005', { + 'source_tmpl': 'Log-Dispatch-Array-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['311640b7a967f8dd7c9bb41a227073565636d70df4fcc1d44fed8a8223b347ca'], + }), + ('Sub::Exporter::GlobExporter', '0.006', { + 'source_tmpl': 'Sub-Exporter-GlobExporter-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['de743f08026701c2a6a222a8b41c4cdc254b1a4afe7ef98987cd3aba4ce52696'], + }), + ('Log::Dispatchouli', '3.007', { + 'source_tmpl': 'Log-Dispatchouli-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['988118965952ba49a8fa791a6536880c89017f4eb9d72c1745ed67d15c0d272c'], + }), + ('Test::FailWarnings', '0.008', { + 'source_tmpl': 'Test-FailWarnings-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + 'checksums': ['da34ef9029f6849d6026201d49127d054ee6ac4b979c82210315f5721964a96f'], + }), + ('Data::Section', '0.200008', { + 'source_tmpl': 'Data-Section-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['83acc7a55d3dd7ed36e9d78d350af3138c69cfa178a44765822712ff433b990e'], + }), + ('Test::CheckDeps', '0.010', { + 'source_tmpl': 'Test-CheckDeps-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['66fccca6c6f330e7ecc898bd6a51846e2145b3e02d78c4997ba6b7de23b551ee'], + }), + ('Software::License', '0.104004', { + 'runtest': False, # This test just suddenly started to fail + 'source_tmpl': 'Software-License-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['a1fda24ec87752198097380fb9300c14b574826270cc580daf750e3585fc270c'], + }), + ('MooseX::SetOnce', '0.203', { + 'source_tmpl': 'MooseX-SetOnce-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['3cd2f3664e438382cf844b679350a2e428b760927e2cf18fccdc468a7bc3066f'], + }), + ('Term::Encoding', '0.03', { + 'source_tmpl': 'Term-Encoding-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + 'checksums': ['95ba9687d735d25a3cbe64508d7894f009c7fa2a1726c3e786e9e21da2251d0b'], + }), + ('Throwable', '1.001', { + 'source_tmpl': 'Throwable-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['d0cb5e9d7d06d70f2cc56eecf857a83a45eaca43850dcdda91d3feb4ddde4c51'], + }), + ('Role::Identifiable::HasIdent', '0.009', { + 'source_tmpl': 'Role-Identifiable-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['5a735e9f7177f9ebae047eb7bae29b7ec29ec020ae37637aea5350d30c087b76'], + }), + ('MooseX::Role::Parameterized', '1.11', { + 'source_tmpl': 'MooseX-Role-Parameterized-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['1cfe766c5d7f0ecab57f733dcca430a2a2acd6b995757141b940ade3692bec9e'], + }), + ('MooseX::OneArgNew', '0.007', { + 'source_tmpl': 'MooseX-OneArgNew-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['84282435f1169cf09d7513fa9387e2091791635cf35a078b500b829aeea06138'], + }), + ('MooseX::LazyRequire', '0.11', { + 'source_tmpl': 'MooseX-LazyRequire-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['ef620c1e019daf9cf3f23a943d25a94c91e93ab312bcd63be2e9740ec0b94288'], + }), + ('String::Formatter', '1.235', { + 'source_tmpl': 'String-Formatter-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['08236a913b911ce652cf08598e7c07d2df3f369fc47bf401a485a504a1660783'], + }), + ('String::Errf', '0.009', { + 'source_tmpl': 'String-Errf-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['e1fedbf9b4fd64b64ea81038ddb76a4c6cd85f5db15bc21f10656a298349dc1f'], + }), + ('Role::HasMessage', '0.007', { + 'source_tmpl': 'Role-HasMessage-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['5e267a4d7620b368481204c88ea2044b8b2a58ff8b05577f2717b2754c0414ce'], + }), + ('Config::MVP', '2.200013', { + 'source_tmpl': 'Config-MVP-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['018d161623ee3a67f860d9e680e22e61b79eae6018f0e7c3b525fc934f5b7d45'], + }), + ('Mixin::Linewise::Readers', '0.111', { + 'source_tmpl': 'Mixin-Linewise-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['d28e88516ce9b5295c31631dcccdc0fc8f2ab7d8a5cc876bb1b20131087b01db'], + }), + ('Config::INI', '0.029', { + 'source_tmpl': 'Config-INI-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['0bbe797a730210644a907d90cd4aa2b23ad580cb27bd39393bfc6a7ef9fdfdea'], + }), + ('String::Truncate', '1.100603', { + 'source_tmpl': 'String-Truncate-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['ab45602cce2dd9515edfbb2e6e5cde19cdd5498d61a23afd8c46c1f11f8eec62'], + }), + ('Pod::Eventual', '0.094003', { + 'source_tmpl': 'Pod-Eventual-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['7f060cc34d11656ce069db061e3d60edc0cabc8f89a4a2dc7eaae95dac856d2d'], + }), + ('Pod::Elemental', '0.103006', { + 'source_tmpl': 'Pod-Elemental-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['750c3a79d8e1824758a6ef7d2dd077dcddca503542b8c34eccd5acbb779dc423'], + }), + ('Test::Object', '0.08', { + 'source_tmpl': 'Test-Object-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['65278964147837313f4108e55b59676e8a364d6edf01b3dc198aee894ab1d0bb'], + }), + ('Hook::LexWrap', '0.26', { + 'source_tmpl': 'Hook-LexWrap-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['b60bdc5f98f94f9294b06adef82b1d996da192d5f183f9f434b610fd1137ec2d'], + }), + ('Test::SubCalls', '1.10', { + 'source_tmpl': 'Test-SubCalls-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['cbc1e9b35a05e71febc13e5ef547a31c8249899bb6011dbdc9d9ff366ddab6c2'], + }), + ('PPI', '1.277', { + 'source_tmpl': 'PPI-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MITHALDU'], + 'checksums': ['87c79f83b6876e206051965d5019d2507c551f819a86750080ec7ec43b2e0af8'], + }), + ('Config::MVP::Reader::INI', '2.101465', { + 'source_tmpl': 'Config-MVP-Reader-INI-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['13c7aa27c1df98cd33ada399e59ff38fabfa9d65513e42af02f72c2d3f636247'], + }), + ('Pod::Weaver', '4.019', { + 'source_tmpl': 'Pod-Weaver-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['6946ad1f04eaf9aa11f24cc54494e1d57962f58e05912f364b74f9593e7de7f7'], + }), + ('CPAN::Uploader', '0.103018', { + 'source_tmpl': 'CPAN-Uploader-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['c4ffe4ede9db79b396e3bfc5e7cdf0e2e9821e1f1e087f523bcfa74c9fc9e248'], + }), + ('Devel::FindPerl', '0.016', { + 'source_tmpl': 'Devel-FindPerl-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['43a2bf2f787a3f1b881179063162b2aa3e7cb044f6e5e76ec6466ae90a861138'], + }), + ('Module::Path', '0.19', { + 'source_tmpl': 'Module-Path-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + 'checksums': ['b33179ce4dd73dfcde7d46808804b9ffbb11db0245fe455a7d001747562feaca'], + }), + ('Perl::PrereqScanner', '1.100', { + 'source_tmpl': 'Perl-PrereqScanner-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['01181d38a2e7aff838d262122563c50636ba4b3652ee5d1d4f8ef5ba3f5b186b'], + }), + ('Dist::Zilla', '6.030', { + 'source_tmpl': 'Dist-Zilla-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['c406bbe6809e94edb70ca94324c301433d6c8a3dfbe70b02df12e1dff2f3b130'], + }), + ('XML::RegExp', '0.04', { + 'source_tmpl': 'XML-RegExp-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TJ/TJMATHER'], + 'checksums': ['df1990096036085c8e2d45904fe180f82bfed40f1a7e05243f334ea10090fc54'], + }), + ('XML::DOM', '1.46', { + 'source_tmpl': 'XML-DOM-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TJ/TJMATHER'], + 'checksums': ['8ba24b0b459b01d6c5e5b0408829c7d5dfe47ff79b3548c813759048099b175e'], + }), + ('Data::Dump', '1.25', { + 'source_tmpl': 'Data-Dump-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GARU'], + 'checksums': ['a4aa6e0ddbf39d5ad49bddfe0f89d9da864e3bc00f627125d1bc580472f53fbd'], + }), + ('File::Next', '1.18', { + 'source_tmpl': 'File-Next-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PETDANCE'], + 'checksums': ['f900cb39505eb6e168a9ca51a10b73f1bbde1914b923a09ecd72d9c02e6ec2ef'], + }), + ('App::cpanminus', '1.7047', { + 'source_tmpl': 'App-cpanminus-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + 'checksums': ['963e63c6e1a8725ff2f624e9086396ae150db51dd0a337c3781d09a994af05a5'], + }), + ('Parallel::ForkManager', '2.02', { + 'source_tmpl': 'Parallel-ForkManager-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/Y/YA/YANICK'], + 'checksums': ['c1b2970a8bb666c3de7caac4a8f4dbcc043ab819bbc337692ec7bf27adae4404'], + }), + ('Object::InsideOut', '4.05', { + 'source_tmpl': 'Object-InsideOut-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JD/JDHEDDEN'], + 'checksums': ['9dfd6ca2822724347e0eb6759d00709425814703ad5c66bdb6214579868bcac4'], + }), + ('Logger::Simple', '2.0', { + 'source_tmpl': 'Logger-Simple-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TS/TSTANLEY'], + 'checksums': ['2e63fd3508775b5902132ba1bfb03b42bee468dfaf35dfe42e1909ff6d291b2d'], + }), + ('Scalar::Util::Numeric', '0.40', { + 'source_tmpl': 'Scalar-Util-Numeric-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHOCOLATE'], + 'checksums': ['d7501b6d410703db5b1c1942fbfc41af8964a35525d7f766058acf5ca2cc4440'], + }), + ('Spiffy', '0.46', { + 'source_tmpl': 'Spiffy-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IN/INGY'], + 'checksums': ['8f58620a8420255c49b6c43c5ff5802bd25e4f09240c51e5bf2b022833d41da3'], + }), + ('Test::Base', '0.89', { + 'source_tmpl': 'Test-Base-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IN/INGY'], + 'checksums': ['2794a1aaaeb1d3a287dd2c7286258663796562f7db9ccc6b424bc4f1de8ad014'], + }), + ('Test::YAML', '1.07', { + 'source_tmpl': 'Test-YAML-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TI/TINITA'], + 'checksums': ['1f300d034f46298cb92960912cc04bac33fb27f05b8852d8f051e110b9cd995f'], + }), + ('YAML', '1.30', { + 'source_tmpl': 'YAML-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TI/TINITA'], + 'checksums': ['5030a6d6cbffaf12583050bf552aa800d4646ca9678c187add649227f57479cd'], + }), + ('Object::InsideOut', '4.05', { + 'source_tmpl': 'Object-InsideOut-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JD/JDHEDDEN'], + 'checksums': ['9dfd6ca2822724347e0eb6759d00709425814703ad5c66bdb6214579868bcac4'], + }), + ('Time::HiRes', '1.9764', { + 'source_tmpl': 'Time-HiRes-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AT/ATOOMIC'], + 'checksums': ['9841be5587bfb7cd1f2fe267b5e5ac04ce25e79d5cc77e5ef9a9c5abd101d7b1'], + }), + ('Term::ReadLine::Gnu', '1.46', { + 'modulename': 'Term::ReadLine', + 'source_tmpl': 'Term-ReadLine-Gnu-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAYASHI'], + 'checksums': ['b13832132e50366c34feac12ce82837c0a9db34ca530ae5d27db97cf9c964c7b'], + }), + ('ExtUtils::MakeMaker', '7.70', { + 'source_tmpl': 'ExtUtils-MakeMaker-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['f108bd46420d2f00d242825f865b0f68851084924924f92261d684c49e3e7a74'], + }), + ('Scalar::Util', '1.63', { + 'source_tmpl': 'Scalar-List-Utils-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PEVANS'], + 'checksums': ['cafbdf212f6827dc9a0dd3b57b6ee50e860586d7198228a33262d55c559eb2a9'], + }), + ('Module::CoreList', '5.20230920', { + 'source_tmpl': 'Module-CoreList-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['c3099fb0ca3cfbc996e99ac2c7f3a3d1e8156bde3b43d9374f4eedaeda275005'], + }), + ('Module::Metadata', '1.000038', { + 'source_tmpl': 'Module-Metadata-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['b599d8770a9a9fa0a8ae3cd0ed395a9cf71b4eb53aed82989a6bece33485a9cd'], + }), + ('Params::Check', '0.38', { + 'configopts': 'INSTALLDIRS=site', # Force it to correctly use site_perl + 'source_tmpl': 'Params-Check-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['f0c9d33876c36b1bca1475276d26d2efaf449b256d7cc8118fae012e89a26290'], + }), + ('Locale::Maketext::Simple', '0.21', { + 'configopts': 'INSTALLDIRS=site', # Force it to correctly use site_perl + 'source_tmpl': 'Locale-Maketext-Simple-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JE/JESSE'], + 'checksums': ['b009ff51f4fb108d19961a523e99b4373ccf958d37ca35bf1583215908dca9a9'], + }), + ('Perl::OSType', '1.010', { + 'source_tmpl': 'Perl-OSType-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + 'checksums': ['e7ed4994b5d547cb23aadb84dc6044c5eb085d5a67a6c5624f42542edd3403b2'], + }), + ('IPC::Cmd', '1.04', { + 'source_tmpl': 'IPC-Cmd-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['d110a0f60e35c65721454200f0d2f0f8965529a2add9649d1fa6f4f9eccb6430'], + }), + ('Pod::Escapes', '1.07', { + 'source_tmpl': 'Pod-Escapes-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + 'checksums': ['dbf7c827984951fb248907f940fd8f19f2696bc5545c0a15287e0fbe56a52308'], + }), + ('if', '0.0608', { + 'configopts': 'INSTALLDIRS=site', # Force it to correctly use site_perl + 'modulename': False, + 'source_tmpl': 'if-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], + 'checksums': ['37206e10919c4d99273020008a3581bf0947d364e859b8966521c3145b4b3700'], + }), + ('Test', '1.26', { + 'configopts': 'INSTALLDIRS=site', # Force it to correctly use site_perl + 'source_tmpl': 'Test-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JE/JESSE'], + 'checksums': ['f7701bd28e05e7f82fe9a181bbab38f53fa6aeae48d2a810da74d1b981d4f392'], + }), + ('ExtUtils::Constant', '0.25', { + 'runtest': False, # Somehow has syntax errors in tests + 'source_tmpl': 'ExtUtils-Constant-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NW/NWCLARK'], + 'checksums': ['6933d0e963b62281ef7561068e6aecac8c4ac2b476b2bba09ab0b90fbac9d757'], + }), + ('ExtUtils::CBuilder', '0.280236', { + 'source_tmpl': 'ExtUtils-CBuilder-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AM/AMBS'], + 'checksums': ['abc21827eb8a513171bf7fdecefce9945132cb76db945036518291f607b1491f'], + }), + ('Carp::Heavy', '1.50', { + 'source_tmpl': 'Carp-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], + 'checksums': ['f5273b4e1a6d51b22996c48cb3a3cbc72fd456c4038f5c20b127e2d4bcbcebd9'], + }), + ('Pod::Simple', '3.45', { + 'source_tmpl': 'Pod-Simple-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KH/KHW'], + 'checksums': ['8483bb95cd3e4307d66def092a3779f843af772482bfdc024e3e00d0c4db0cfa'], + }), + ('Socket', '2.037', { + 'source_tmpl': 'Socket-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PEVANS'], + 'checksums': ['85448811e9e274374404634f3c208afa936ee4d223e76251ea9868315b0c812f'], + }), + ('Time::Local', '1.35', { + 'source_tmpl': 'Time-Local-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['1d136b71bd041cbe6f66c43180ee79e675b72ad5a3596abd6a44d211072ada29'], + }), + ('Storable', '3.25', { + 'source_tmpl': 'Storable-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NW/NWCLARK'], + 'checksums': ['e1e96b24a076792fde52154789fe4b76034b9ad39c8a1a819ead77d50d5f1817'], + }), + ('ExtUtils::ParseXS', '3.51', { + 'source_tmpl': 'ExtUtils-ParseXS-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['82431a57425d78682acefb3a2cc9287683d091c8d034b825c584d9805bed6535'], + }), + ('Pod::Man', '5.01', { + 'source_tmpl': 'podlators-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RR/RRA'], + 'checksums': ['ccfd1df9f1a47f095bce6d718fad5af40f78ce2491f2c7239626e15b7020bc71'], + }), + ('Mozilla::CA', '20230821', { + 'source_tmpl': 'Mozilla-CA-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LW/LWP'], + 'checksums': ['32e1d0045299004045b9c4d16c2daae453a216208873deea2440f71260a7cda1'], + }), + ('LWP::Protocol::https', '6.11', { + 'source_tmpl': 'LWP-Protocol-https-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['0132ddbf03661565ca85050f2a5094fb9263cbbc3ccb1a4d9c41ac9bb083b917'], + }), + ('Module::Load', '0.36', { + 'source_tmpl': 'Module-Load-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['d825020ac00b220e89f9524e24d838f9438b072fcae8c91938e4026677bef6e0'], + }), + ('Module::Load::Conditional', '0.74', { + 'source_tmpl': 'Module-Load-Conditional-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['54c354a9393820f1ebc2a095da084ea0392dcbccb0cb38a187a71831cc60a730'], + }), + ('parent', '0.241', { + 'source_tmpl': 'parent-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CO/CORION'], + 'checksums': ['b10b3960ab3997dab7571ffe975ba462d979d086450740a1e08b3959e75128fe'], + }), + ('Net::Domain', '3.15', { + 'source_tmpl': 'libnet-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], + 'checksums': ['a71f4db580e1a767d6936faa5baf38f1fa617824342da078b561283e86f8f4a2'], + }), + ('Encode', '3.19', { + 'source_tmpl': 'Encode-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DANKOGAI'], + 'checksums': ['9163f848eef69e4d4cc8838397f0861fd9ea7ede001117dbd9694f8d95052ef5'], + }), + ('Cwd', '3.75', { + 'runtest': False, # Single failure about a tainted PATH + 'source_tmpl': 'PathTools-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], + 'checksums': ['a558503aa6b1f8c727c0073339081a77888606aa701ada1ad62dd9d8c3f945a2'], + }), + ('MIME::Base64', '3.16', { + 'source_tmpl': 'MIME-Base64-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CA/CAPOEIRAB'], + 'checksums': ['77f73d6f7aeb8d33be08b0d8c2617f9b6c77fb7fc45422d507ca8bafe4246017'], + }), + ('ExtUtils::CppGuess', '0.26', { + 'runtest': False, # Poorly written test + 'source_tmpl': 'ExtUtils-CppGuess-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETJ'], + 'checksums': ['c8b362b860172a4076acee00438f52b86464f2c500702cfcf7527811ff9a683e'], + }), + ('XSLoader', '0.24', { + 'source_tmpl': 'XSLoader-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SA/SAPER'], + 'checksums': ['e819a35a6b8e55cb61b290159861f0dc00fe9d8c4f54578eb24f612d45c8d85f'], + }), + ('AutoLoader', '5.74', { + 'source_tmpl': 'AutoLoader-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SM/SMUELLER'], + 'checksums': ['2fac75b05309f71a6871804cd25e1a3ba0a28f43f294fb54528077558da3aff4'], + }), + ('Set::IntervalTree', '0.12', { + 'source_tmpl': 'Set-IntervalTree-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SL/SLOYD'], + 'checksums': ['6fd4000e4022968e2ce5b83c07b189219ef1925ecb72977b52a6f7d76adbc349'], + }), + ('MCE::Mutex', '1.889', { + 'runtest': False, # Single failing subtest + 'source_tmpl': 'MCE-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARIOROY'], + 'checksums': ['db6153e474d046fc253050bf53c54002d84cd4ca77d21c2b9df56feeb809bbed'], + }), + ('Text::CSV_XS', '1.52', { + 'source_tmpl': 'Text-CSV_XS-%(version)s.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HM/HMBRAND'], + 'checksums': ['e415aa705badf84b359dc4c0f0c982f1bf708481daa14756f3136e7c89c0e41d'], + }), + ('DBD::CSV', '0.60', { + 'source_tmpl': 'DBD-CSV-%(version)s.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HM/HMBRAND'], + 'checksums': ['018b83a30f799979bc8c3c3044c8b1c8001cdf60bdc3e746848818195254b4e7'], + }), + ('Array::Transpose', '0.06', { + 'source_tmpl': 'Array-Transpose-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MR/MRDVT'], + 'checksums': ['d58667f64381a105f375226f592d0af71068e640a5a9f4d5ecf27c90feb32676'], + }), + ('Config::Simple', '4.58', { + 'source_tmpl': 'Config-Simple-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHERZODR'], + 'checksums': ['dd9995706f0f9384a15ccffe116c3b6e22f42ba2e58d8f24ed03c4a0e386edb4'], + }), + ('Business::ISBN::Data', '20231013.001', { + 'source_tmpl': 'Business-ISBN-Data-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BD/BDFOY'], + 'checksums': ['749371a46882a3ff9fb640295cc781d3b0ad6ef7d657a52257b14fbf5b2253b4'], + }), + ('Business::ISBN', '3.008', { + 'source_tmpl': 'Business-ISBN-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BD/BDFOY'], + 'checksums': ['19c4a1d4d99a0dd7695a90192b13404a0e3eeebedfcbe97a0202e36b238c0e69'], + }), + ('common::sense', '3.75', { + 'source_tmpl': 'common-sense-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + 'checksums': ['a86a1c4ca4f3006d7479064425a09fa5b6689e57261fcb994fe67d061cba0e7e'], + }), + ('Compress::Raw::Zlib', '2.206', { + 'source_tmpl': 'Compress-Raw-Zlib-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PM/PMQS'], + 'checksums': ['46785a6a383a1c843895b7f9f25d5d759e7c305159f9d1e04a3604eb74c77374'], + }), + ('IO::Compress::Zip', '2.206', { + 'runtest': False, # Problem with indirect dependency DBD::Pg + 'source_tmpl': 'IO-Compress-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PM/PMQS'], + 'checksums': ['7d3062b9a494f757e8d0614f220d83f22731bbda1aeb5f7cff0e72a83f433d35'], + }), + ('Types::Serialiser', '1.01', { + 'source_tmpl': 'Types-Serialiser-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + 'checksums': ['f8c7173b0914d0e3d957282077b366f0c8c70256715eaef3298ff32b92388a80'], + }), + ('JSON::XS', '4.03', { + 'source_tmpl': 'JSON-XS-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + 'checksums': ['515536f45f2fa1a7e88c8824533758d0121d267ab9cb453a1b5887c8a56b9068'], + }), + ('Authen::NTLM', '1.09', { + 'source_tmpl': 'NTLM-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NB/NBEBOUT'], + 'checksums': ['c823e30cda76bc15636e584302c960e2b5eeef9517c2448f7454498893151f85'], + }), + ('Types::Serialiser', '1.01', { + 'source_tmpl': 'Types-Serialiser-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + 'checksums': ['f8c7173b0914d0e3d957282077b366f0c8c70256715eaef3298ff32b92388a80'], + }), + ('XML::SAX::Expat', '0.51', { + 'source_tmpl': 'XML-SAX-Expat-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BJ/BJOERN'], + 'checksums': ['4c016213d0ce7db2c494e30086b59917b302db8c292dcd21f39deebd9780c83f'], + }), + ('Inline', '0.86', { + 'source_tmpl': 'Inline-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IN/INGY'], + 'checksums': ['510a7de2d011b0db80b0874e8c0f7390010991000ae135cff7474df1e6d51e3a'], + }), + ('Test::Sys::Info', '0.23', { + 'source_tmpl': 'Test-Sys-Info-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BU/BURAK'], + 'checksums': ['30c5f2c4cfee8e1ae6d9fb6291f79addbff5739ba4efa5b1e034520f18fbc95a'], + }), + ('Sys::Info::Base', '0.7807', { + 'source_tmpl': 'Sys-Info-Base-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BU/BURAK'], + 'checksums': ['132362b0046e8dc4f12e1560903623a88a8871d09bf1c29d93d48d3f4a582acb'], + }), + ('Sys::Info::Driver::Unknown::Device::CPU', '0.79', { + 'source_tmpl': 'Sys-Info-Driver-Unknown-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BU/BURAK'], + 'checksums': ['02408843c8e36ea3d507e9f33fee48d6908543829ebe320f13d1bfe76af31e09'], + }), + ('Unix::Processors', '2.046', { + 'source_tmpl': 'Unix-Processors-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/W/WS/WSNYDER'], + 'checksums': ['3973ebdc44682c9c15c776f66e8be242cb4ff1dd52caf43ff446b74d4dccca06'], + }), + ('Sys::Info::Driver::Linux::Device::CPU', '0.7905', { + 'source_tmpl': 'Sys-Info-Driver-Linux-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BU/BURAK'], + 'checksums': ['899c329bd3508ec5849ad0e5dadfa7c3679bbacaea9dda12404a7893032e8b7b'], + }), + ('Sys::Info', '0.7811', { + 'source_tmpl': 'Sys-Info-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BU/BURAK'], + 'checksums': ['566482bff3427c198d7955468ed945a8e736c4a2925151fdef96801ef8a401e1'], + }), + ('CGI', '4.59', { + 'source_tmpl': 'CGI-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEEJO'], + 'checksums': ['6dee4b89b88b10e77c96f3c08d19b586aef833b17a425d618aad7d28c262f91c'], + }), + ('HTML::Template', '2.97', { + 'source_tmpl': 'HTML-Template-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SA/SAMTREGAR'], + 'checksums': ['6547af61f3aa85793f8616190938d677d7995fb3b720c16258040bc935e2129f'], + }), + ('MIME::Charset', 'v1.013.1', { + 'source_tmpl': 'MIME-Charset-1.013.1.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEZUMI'], + 'checksums': ['1bb7a6e0c0d251f23d6e60bf84c9adefc5b74eec58475bfee4d39107e60870f0'], + }), + ('Unicode::LineBreak', '2019.001', { + 'source_tmpl': 'Unicode-LineBreak-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEZUMI'], + 'checksums': ['486762e4cacddcc77b13989f979a029f84630b8175e7fef17989e157d4b6318a'], + }), + ('String::Print', '0.94', { + 'source_tmpl': 'String-Print-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + 'checksums': ['9b3cd677adb7a40cb183bd6c60db80d96adcabd5aae27e324e3ee37e3275229b'], + }), + ('Log::Report::Optional', '1.07', { + 'source_tmpl': 'Log-Report-Optional-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + 'checksums': ['b2658b53176df5afa5d02789368715c86b98c8d04ecd930252bcd7f832cc6224'], + }), + ('Log::Report', '1.34', { + 'source_tmpl': 'Log-Report-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + 'checksums': ['1faeb18993ab8796dce4cccda2ec912f8f565aa0258026f88197aa0fe3004a78'], + }), + ('Sys::Info::Driver::Unknown', '0.79', { + 'source_tmpl': 'Sys-Info-Driver-Unknown-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BU/BURAK'], + 'checksums': ['02408843c8e36ea3d507e9f33fee48d6908543829ebe320f13d1bfe76af31e09'], + }), + ('Sys::Info::Driver::Linux', '0.7905', { + 'source_tmpl': 'Sys-Info-Driver-Linux-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BU/BURAK'], + 'checksums': ['899c329bd3508ec5849ad0e5dadfa7c3679bbacaea9dda12404a7893032e8b7b'], + }), + ('Unix::Processors', '2.046', { + 'source_tmpl': 'Unix-Processors-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/W/WS/WSNYDER'], + 'checksums': ['3973ebdc44682c9c15c776f66e8be242cb4ff1dd52caf43ff446b74d4dccca06'], + }), + ('local::lib', '2.000029', { + 'source_tmpl': 'local-lib-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + 'checksums': ['8df87a10c14c8e909c5b47c5701e4b8187d519e5251e87c80709b02bb33efdd7'], + }), + ('Module::Path', '0.19', { + 'source_tmpl': 'Module-Path-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + 'checksums': ['b33179ce4dd73dfcde7d46808804b9ffbb11db0245fe455a7d001747562feaca'], + }), + ('Devel::Size', '0.83', { + 'source_tmpl': 'Devel-Size-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NW/NWCLARK'], + 'checksums': ['757a67e0aa59ae103ea5ca092cbecc025644ebdc326731688ffab6f8823ef4b3'], + }), + ('Math::Utils', '1.14', { + 'source_tmpl': 'Math-Utils-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JG/JGAMBLE'], + 'checksums': ['88a20ae0736a622671b92bb2a350969af424d7610284530b277c8020235f2695'], + }), +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.28.1-GCCcore-8.2.0.eb b/easybuild/easyconfigs/p/Perl/Perl-5.28.1-GCCcore-8.2.0.eb index 7bf8eea4d1b..18e3ad24b83 100644 --- a/easybuild/easyconfigs/p/Perl/Perl-5.28.1-GCCcore-8.2.0.eb +++ b/easybuild/easyconfigs/p/Perl/Perl-5.28.1-GCCcore-8.2.0.eb @@ -1552,6 +1552,7 @@ exts_list = [ 'checksums': ['dbf7c827984951fb248907f940fd8f19f2696bc5545c0a15287e0fbe56a52308'], }), ('if', '0.0608', { + 'modulename': False, 'source_tmpl': 'if-%(version)s.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], 'checksums': ['37206e10919c4d99273020008a3581bf0947d364e859b8966521c3145b4b3700'], diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.30.0-GCCcore-8.3.0.eb b/easybuild/easyconfigs/p/Perl/Perl-5.30.0-GCCcore-8.3.0.eb index fca58541cb2..d750ffca979 100644 --- a/easybuild/easyconfigs/p/Perl/Perl-5.30.0-GCCcore-8.3.0.eb +++ b/easybuild/easyconfigs/p/Perl/Perl-5.30.0-GCCcore-8.3.0.eb @@ -1512,6 +1512,7 @@ exts_list = [ 'checksums': ['2cb898bff42bc10024e0a3252c79e13a2eb7a8a5fb3367bb60583b576a11702b'], }), ('Term::ReadLine::Gnu', '1.36', { + 'modulename': 'Term::ReadLine', 'source_tmpl': 'Term-ReadLine-Gnu-%(version)s.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAYASHI'], 'checksums': ['9a08f7a4013c9b865541c10dbba1210779eb9128b961250b746d26702bab6925'], @@ -1562,6 +1563,7 @@ exts_list = [ 'checksums': ['dbf7c827984951fb248907f940fd8f19f2696bc5545c0a15287e0fbe56a52308'], }), ('if', '0.0608', { + 'modulename': False, 'source_tmpl': 'if-%(version)s.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], 'checksums': ['37206e10919c4d99273020008a3581bf0947d364e859b8966521c3145b4b3700'], diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.30.2-GCCcore-9.3.0.eb b/easybuild/easyconfigs/p/Perl/Perl-5.30.2-GCCcore-9.3.0.eb index 29d8f77201b..a0b67405467 100644 --- a/easybuild/easyconfigs/p/Perl/Perl-5.30.2-GCCcore-9.3.0.eb +++ b/easybuild/easyconfigs/p/Perl/Perl-5.30.2-GCCcore-9.3.0.eb @@ -1492,6 +1492,7 @@ exts_list = [ 'checksums': ['2cb898bff42bc10024e0a3252c79e13a2eb7a8a5fb3367bb60583b576a11702b'], }), ('Term::ReadLine::Gnu', '1.36', { + 'modulename': 'Term::ReadLine', 'source_tmpl': 'Term-ReadLine-Gnu-%(version)s.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAYASHI'], 'checksums': ['9a08f7a4013c9b865541c10dbba1210779eb9128b961250b746d26702bab6925'], @@ -1542,6 +1543,7 @@ exts_list = [ 'checksums': ['dbf7c827984951fb248907f940fd8f19f2696bc5545c0a15287e0fbe56a52308'], }), ('if', '0.0608', { + 'modulename': False, 'source_tmpl': 'if-%(version)s.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], 'checksums': ['37206e10919c4d99273020008a3581bf0947d364e859b8966521c3145b4b3700'], @@ -1761,11 +1763,6 @@ exts_list = [ 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN/'], 'checksums': ['a86a1c4ca4f3006d7479064425a09fa5b6689e57261fcb994fe67d061cba0e7e'], }), - ('IO::Compress::Bzip2', '2.096', { - 'source_tmpl': 'IO-Compress-%(version)s.tar.gz', - 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PM/PMQS/'], - 'checksums': ['9d219fd5df4b490b5d2f847921e3cb1c3392758fa0bae9b05a8992b3620ba572'], - }), ('JSON::XS', '4.03', { 'source_tmpl': 'JSON-XS-%(version)s.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN/'], diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.32.1-GCCcore-10.3.0.eb b/easybuild/easyconfigs/p/Perl/Perl-5.32.1-GCCcore-10.3.0.eb index 82a1570fadd..264dc8a3d15 100644 --- a/easybuild/easyconfigs/p/Perl/Perl-5.32.1-GCCcore-10.3.0.eb +++ b/easybuild/easyconfigs/p/Perl/Perl-5.32.1-GCCcore-10.3.0.eb @@ -937,6 +937,12 @@ exts_list = [ 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AS/ASPINELLI'], 'checksums': ['409a8e0e4b1025c8e80f628f65a9778aa77ab285161406ca4a6c097b13656d0d'], }), + ('Pod::Parser', '1.65', { + 'configopts': 'INSTALLDIRS=site', # Force it to correctly use site_perl + 'source_tmpl': 'Pod-Parser-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAREKR'], + 'checksums': ['3ba7bdec659416a51fe2a7e59f0883e9c6a3b21bc9d001042c1d6a32d401b28a'], + }), ('Pod::LaTeX', '0.61', { 'source_tmpl': 'Pod-LaTeX-%(version)s.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TJ/TJENNESS'], @@ -1488,6 +1494,7 @@ exts_list = [ 'checksums': ['9841be5587bfb7cd1f2fe267b5e5ac04ce25e79d5cc77e5ef9a9c5abd101d7b1'], }), ('Term::ReadLine::Gnu', '1.37', { + 'modulename': 'Term::ReadLine', 'source_tmpl': 'Term-ReadLine-Gnu-%(version)s.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAYASHI'], 'checksums': ['3bd31a998a9c14748ee553aed3e6b888ec47ff57c07fc5beafb04a38a72f0078'], @@ -1538,6 +1545,7 @@ exts_list = [ 'checksums': ['dbf7c827984951fb248907f940fd8f19f2696bc5545c0a15287e0fbe56a52308'], }), ('if', '0.0608', { + 'modulename': False, 'source_tmpl': 'if-%(version)s.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], 'checksums': ['37206e10919c4d99273020008a3581bf0947d364e859b8966521c3145b4b3700'], @@ -1732,11 +1740,6 @@ exts_list = [ 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], 'checksums': ['a86a1c4ca4f3006d7479064425a09fa5b6689e57261fcb994fe67d061cba0e7e'], }), - ('IO::Compress::Bzip2', '2.102', { - 'source_tmpl': 'IO-Compress-%(version)s.tar.gz', - 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PM/PMQS'], - 'checksums': ['d6fa7f9a5beee446452a0fbc43589a0c73fe7e925c075b98628b018048dc72a4'], - }), ('JSON::XS', '4.03', { 'source_tmpl': 'JSON-XS-%(version)s.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.34.0-GCCcore-11.2.0.eb b/easybuild/easyconfigs/p/Perl/Perl-5.34.0-GCCcore-11.2.0.eb index 6f534c52ba2..2a9ef4add3d 100644 --- a/easybuild/easyconfigs/p/Perl/Perl-5.34.0-GCCcore-11.2.0.eb +++ b/easybuild/easyconfigs/p/Perl/Perl-5.34.0-GCCcore-11.2.0.eb @@ -934,6 +934,12 @@ exts_list = [ 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AS/ASPINELLI'], 'checksums': ['409a8e0e4b1025c8e80f628f65a9778aa77ab285161406ca4a6c097b13656d0d'], }), + ('Pod::Parser', '1.65', { + 'configopts': 'INSTALLDIRS=site', # Force it to correctly use site_perl + 'source_tmpl': 'Pod-Parser-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAREKR'], + 'checksums': ['3ba7bdec659416a51fe2a7e59f0883e9c6a3b21bc9d001042c1d6a32d401b28a'], + }), ('Pod::LaTeX', '0.61', { 'source_tmpl': 'Pod-LaTeX-%(version)s.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TJ/TJENNESS'], @@ -1485,6 +1491,7 @@ exts_list = [ 'checksums': ['9841be5587bfb7cd1f2fe267b5e5ac04ce25e79d5cc77e5ef9a9c5abd101d7b1'], }), ('Term::ReadLine::Gnu', '1.42', { + 'modulename': 'Term::ReadLine', 'source_tmpl': 'Term-ReadLine-Gnu-%(version)s.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAYASHI'], 'checksums': ['3c5f1281da2666777af0f34de0289564e6faa823aea54f3945c74c98e95a5e73'], @@ -1535,6 +1542,7 @@ exts_list = [ 'checksums': ['dbf7c827984951fb248907f940fd8f19f2696bc5545c0a15287e0fbe56a52308'], }), ('if', '0.0608', { + 'modulename': False, 'source_tmpl': 'if-%(version)s.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], 'checksums': ['37206e10919c4d99273020008a3581bf0947d364e859b8966521c3145b4b3700'], @@ -1729,11 +1737,6 @@ exts_list = [ 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], 'checksums': ['a86a1c4ca4f3006d7479064425a09fa5b6689e57261fcb994fe67d061cba0e7e'], }), - ('IO::Compress::Bzip2', '2.102', { - 'source_tmpl': 'IO-Compress-%(version)s.tar.gz', - 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PM/PMQS'], - 'checksums': ['d6fa7f9a5beee446452a0fbc43589a0c73fe7e925c075b98628b018048dc72a4'], - }), ('JSON::XS', '4.03', { 'source_tmpl': 'JSON-XS-%(version)s.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.34.1-GCCcore-11.3.0.eb b/easybuild/easyconfigs/p/Perl/Perl-5.34.1-GCCcore-11.3.0.eb index 1750e4abff0..142a6d15917 100644 --- a/easybuild/easyconfigs/p/Perl/Perl-5.34.1-GCCcore-11.3.0.eb +++ b/easybuild/easyconfigs/p/Perl/Perl-5.34.1-GCCcore-11.3.0.eb @@ -989,6 +989,12 @@ exts_list = [ 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AS/ASPINELLI'], 'checksums': ['409a8e0e4b1025c8e80f628f65a9778aa77ab285161406ca4a6c097b13656d0d'], }), + ('Pod::Parser', '1.65', { + 'configopts': 'INSTALLDIRS=site', # Force it to correctly use site_perl + 'source_tmpl': 'Pod-Parser-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAREKR/'], + 'checksums': ['3ba7bdec659416a51fe2a7e59f0883e9c6a3b21bc9d001042c1d6a32d401b28a'], + }), ('Pod::LaTeX', '0.61', { 'source_tmpl': 'Pod-LaTeX-%(version)s.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TJ/TJENNESS'], @@ -1590,6 +1596,7 @@ exts_list = [ 'checksums': ['9841be5587bfb7cd1f2fe267b5e5ac04ce25e79d5cc77e5ef9a9c5abd101d7b1'], }), ('Term::ReadLine::Gnu', '1.42', { + 'modulename': 'Term::ReadLine', 'source_tmpl': 'Term-ReadLine-Gnu-%(version)s.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAYASHI'], 'checksums': ['3c5f1281da2666777af0f34de0289564e6faa823aea54f3945c74c98e95a5e73'], @@ -1640,6 +1647,7 @@ exts_list = [ 'checksums': ['dbf7c827984951fb248907f940fd8f19f2696bc5545c0a15287e0fbe56a52308'], }), ('if', '0.0608', { + 'modulename': False, 'source_tmpl': 'if-%(version)s.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], 'checksums': ['37206e10919c4d99273020008a3581bf0947d364e859b8966521c3145b4b3700'], @@ -1834,11 +1842,6 @@ exts_list = [ 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], 'checksums': ['a86a1c4ca4f3006d7479064425a09fa5b6689e57261fcb994fe67d061cba0e7e'], }), - ('IO::Compress::Bzip2', '2.106', { - 'source_tmpl': 'IO-Compress-%(version)s.tar.gz', - 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PM/PMQS'], - 'checksums': ['cb9a26ec7d86afb3081b6369620f1f67eaa45b7c41c4eb800e1da5e700a3e3f5'], - }), ('JSON::XS', '4.03', { 'source_tmpl': 'JSON-XS-%(version)s.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.36.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/p/Perl/Perl-5.36.0-GCCcore-12.2.0.eb index 6a7989e6d2a..157d352765f 100644 --- a/easybuild/easyconfigs/p/Perl/Perl-5.36.0-GCCcore-12.2.0.eb +++ b/easybuild/easyconfigs/p/Perl/Perl-5.36.0-GCCcore-12.2.0.eb @@ -989,6 +989,12 @@ exts_list = [ 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AS/ASPINELLI'], 'checksums': ['409a8e0e4b1025c8e80f628f65a9778aa77ab285161406ca4a6c097b13656d0d'], }), + ('Pod::Parser', '1.66', { + 'configopts': 'INSTALLDIRS=site', # Force it to correctly use site_perl + 'source_tmpl': 'Pod-Parser-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAREKR'], + 'checksums': ['22928a7bffe61b452c05bbbb8f5216d4b9cf9fe2a849b776c25500d24d20df7c'], + }), ('Pod::LaTeX', '0.61', { 'source_tmpl': 'Pod-LaTeX-%(version)s.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TJ/TJENNESS'], @@ -1590,6 +1596,7 @@ exts_list = [ 'checksums': ['9841be5587bfb7cd1f2fe267b5e5ac04ce25e79d5cc77e5ef9a9c5abd101d7b1'], }), ('Term::ReadLine::Gnu', '1.42', { + 'modulename': 'Term::ReadLine', 'source_tmpl': 'Term-ReadLine-Gnu-%(version)s.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAYASHI'], 'checksums': ['3c5f1281da2666777af0f34de0289564e6faa823aea54f3945c74c98e95a5e73'], @@ -1640,6 +1647,7 @@ exts_list = [ 'checksums': ['dbf7c827984951fb248907f940fd8f19f2696bc5545c0a15287e0fbe56a52308'], }), ('if', '0.0608', { + 'modulename': False, 'source_tmpl': 'if-%(version)s.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], 'checksums': ['37206e10919c4d99273020008a3581bf0947d364e859b8966521c3145b4b3700'], @@ -1834,11 +1842,6 @@ exts_list = [ 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], 'checksums': ['a86a1c4ca4f3006d7479064425a09fa5b6689e57261fcb994fe67d061cba0e7e'], }), - ('IO::Compress::Bzip2', '2.201', { - 'source_tmpl': 'IO-Compress-%(version)s.tar.gz', - 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PM/PMQS'], - 'checksums': ['f6c55c4e39cfaa3219965dd3b36c9de1edee9a82a10a9cadeb3b74a9ceeeaaad'], - }), ('JSON::XS', '4.03', { 'source_tmpl': 'JSON-XS-%(version)s.tar.gz', 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], diff --git a/easybuild/easyconfigs/p/Pillow/Pillow-10.0.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/p/Pillow/Pillow-10.0.0-GCCcore-12.3.0.eb index 85a73b42332..21d8071c49b 100644 --- a/easybuild/easyconfigs/p/Pillow/Pillow-10.0.0-GCCcore-12.3.0.eb +++ b/easybuild/easyconfigs/p/Pillow/Pillow-10.0.0-GCCcore-12.3.0.eb @@ -24,6 +24,8 @@ dependencies = [ ] download_dep_fail = True +# avoid that hardcoded paths like /usr/include are used in build commands +installopts = "--global-option=build_ext --global-option='--disable-platform-guessing' " use_pip = True sanity_pip_check = True diff --git a/easybuild/easyconfigs/p/Pillow/Pillow-6.0.0-GCCcore-8.2.0.eb b/easybuild/easyconfigs/p/Pillow/Pillow-6.0.0-GCCcore-8.2.0.eb index 02e02a6573a..fa078fe683a 100644 --- a/easybuild/easyconfigs/p/Pillow/Pillow-6.0.0-GCCcore-8.2.0.eb +++ b/easybuild/easyconfigs/p/Pillow/Pillow-6.0.0-GCCcore-8.2.0.eb @@ -25,7 +25,10 @@ dependencies = [ ] download_dep_fail = True +# avoid that hardcoded paths like /usr/include are used in build commands +installopts = "--global-option=build_ext --global-option='--disable-platform-guessing' " use_pip = True +sanity_pip_check = True options = {'modulename': 'PIL'} diff --git a/easybuild/easyconfigs/p/Pillow/Pillow-6.2.1-GCCcore-8.3.0.eb b/easybuild/easyconfigs/p/Pillow/Pillow-6.2.1-GCCcore-8.3.0.eb index 13dee61b577..5bd030dd974 100644 --- a/easybuild/easyconfigs/p/Pillow/Pillow-6.2.1-GCCcore-8.3.0.eb +++ b/easybuild/easyconfigs/p/Pillow/Pillow-6.2.1-GCCcore-8.3.0.eb @@ -25,7 +25,10 @@ dependencies = [ ] download_dep_fail = True +# avoid that hardcoded paths like /usr/include are used in build commands +installopts = "--global-option=build_ext --global-option='--disable-platform-guessing' " use_pip = True +sanity_pip_check = True options = {'modulename': 'PIL'} diff --git a/easybuild/easyconfigs/p/Pillow/Pillow-7.0.0-GCCcore-9.3.0-Python-3.8.2.eb b/easybuild/easyconfigs/p/Pillow/Pillow-7.0.0-GCCcore-9.3.0-Python-3.8.2.eb index 9fc85ff2e06..0e9cf1b4445 100644 --- a/easybuild/easyconfigs/p/Pillow/Pillow-7.0.0-GCCcore-9.3.0-Python-3.8.2.eb +++ b/easybuild/easyconfigs/p/Pillow/Pillow-7.0.0-GCCcore-9.3.0-Python-3.8.2.eb @@ -29,6 +29,8 @@ dependencies = [ ] download_dep_fail = True +# avoid that hardcoded paths like /usr/include are used in build commands +installopts = "--global-option=build_ext --global-option='--disable-platform-guessing' " use_pip = True sanity_pip_check = True diff --git a/easybuild/easyconfigs/p/Pillow/Pillow-8.0.1-GCCcore-10.2.0.eb b/easybuild/easyconfigs/p/Pillow/Pillow-8.0.1-GCCcore-10.2.0.eb index 7bdf2476477..6c8f256ce9a 100644 --- a/easybuild/easyconfigs/p/Pillow/Pillow-8.0.1-GCCcore-10.2.0.eb +++ b/easybuild/easyconfigs/p/Pillow/Pillow-8.0.1-GCCcore-10.2.0.eb @@ -28,6 +28,8 @@ dependencies = [ ] download_dep_fail = True +# avoid that hardcoded paths like /usr/include are used in build commands +installopts = "--global-option=build_ext --global-option='--disable-platform-guessing' " use_pip = True sanity_pip_check = True diff --git a/easybuild/easyconfigs/p/Pillow/Pillow-8.2.0-GCCcore-10.3.0.eb b/easybuild/easyconfigs/p/Pillow/Pillow-8.2.0-GCCcore-10.3.0.eb index 42cbf229337..6274b50e9b0 100644 --- a/easybuild/easyconfigs/p/Pillow/Pillow-8.2.0-GCCcore-10.3.0.eb +++ b/easybuild/easyconfigs/p/Pillow/Pillow-8.2.0-GCCcore-10.3.0.eb @@ -28,6 +28,8 @@ dependencies = [ ] download_dep_fail = True +# avoid that hardcoded paths like /usr/include are used in build commands +installopts = "--global-option=build_ext --global-option='--disable-platform-guessing' " use_pip = True sanity_pip_check = True diff --git a/easybuild/easyconfigs/p/Pillow/Pillow-8.3.1-GCCcore-11.2.0.eb b/easybuild/easyconfigs/p/Pillow/Pillow-8.3.1-GCCcore-11.2.0.eb index a9516e2ab73..4b4a35c2651 100644 --- a/easybuild/easyconfigs/p/Pillow/Pillow-8.3.1-GCCcore-11.2.0.eb +++ b/easybuild/easyconfigs/p/Pillow/Pillow-8.3.1-GCCcore-11.2.0.eb @@ -28,6 +28,8 @@ dependencies = [ ] download_dep_fail = True +# avoid that hardcoded paths like /usr/include are used in build commands +installopts = "--global-option=build_ext --global-option='--disable-platform-guessing' " use_pip = True sanity_pip_check = True diff --git a/easybuild/easyconfigs/p/Pillow/Pillow-8.3.2-GCCcore-11.2.0.eb b/easybuild/easyconfigs/p/Pillow/Pillow-8.3.2-GCCcore-11.2.0.eb index 9567cc977dd..098deac80fa 100644 --- a/easybuild/easyconfigs/p/Pillow/Pillow-8.3.2-GCCcore-11.2.0.eb +++ b/easybuild/easyconfigs/p/Pillow/Pillow-8.3.2-GCCcore-11.2.0.eb @@ -24,6 +24,8 @@ dependencies = [ ] download_dep_fail = True +# avoid that hardcoded paths like /usr/include are used in build commands +installopts = "--global-option=build_ext --global-option='--disable-platform-guessing' " use_pip = True sanity_pip_check = True diff --git a/easybuild/easyconfigs/p/Pillow/Pillow-9.1.0-GCCcore-10.3.0.eb b/easybuild/easyconfigs/p/Pillow/Pillow-9.1.0-GCCcore-10.3.0.eb index cf7bb373ec2..caa9fcf574f 100644 --- a/easybuild/easyconfigs/p/Pillow/Pillow-9.1.0-GCCcore-10.3.0.eb +++ b/easybuild/easyconfigs/p/Pillow/Pillow-9.1.0-GCCcore-10.3.0.eb @@ -24,6 +24,8 @@ dependencies = [ ] download_dep_fail = True +# avoid that hardcoded paths like /usr/include are used in build commands +installopts = "--global-option=build_ext --global-option='--disable-platform-guessing' " use_pip = True sanity_pip_check = True diff --git a/easybuild/easyconfigs/p/Pillow/Pillow-9.1.1-GCCcore-11.2.0.eb b/easybuild/easyconfigs/p/Pillow/Pillow-9.1.1-GCCcore-11.2.0.eb index 1d53e76e777..6516e4b933b 100644 --- a/easybuild/easyconfigs/p/Pillow/Pillow-9.1.1-GCCcore-11.2.0.eb +++ b/easybuild/easyconfigs/p/Pillow/Pillow-9.1.1-GCCcore-11.2.0.eb @@ -24,6 +24,8 @@ dependencies = [ ] download_dep_fail = True +# avoid that hardcoded paths like /usr/include are used in build commands +installopts = "--global-option=build_ext --global-option='--disable-platform-guessing' " use_pip = True sanity_pip_check = True diff --git a/easybuild/easyconfigs/p/Pillow/Pillow-9.1.1-GCCcore-11.3.0.eb b/easybuild/easyconfigs/p/Pillow/Pillow-9.1.1-GCCcore-11.3.0.eb index 137475682e6..1105bf2154e 100644 --- a/easybuild/easyconfigs/p/Pillow/Pillow-9.1.1-GCCcore-11.3.0.eb +++ b/easybuild/easyconfigs/p/Pillow/Pillow-9.1.1-GCCcore-11.3.0.eb @@ -24,6 +24,8 @@ dependencies = [ ] download_dep_fail = True +# avoid that hardcoded paths like /usr/include are used in build commands +installopts = "--global-option=build_ext --global-option='--disable-platform-guessing' " use_pip = True sanity_pip_check = True diff --git a/easybuild/easyconfigs/p/Pillow/Pillow-9.2.0-GCCcore-10.2.0.eb b/easybuild/easyconfigs/p/Pillow/Pillow-9.2.0-GCCcore-10.2.0.eb index 38e7492daf9..f925080a099 100644 --- a/easybuild/easyconfigs/p/Pillow/Pillow-9.2.0-GCCcore-10.2.0.eb +++ b/easybuild/easyconfigs/p/Pillow/Pillow-9.2.0-GCCcore-10.2.0.eb @@ -26,6 +26,8 @@ dependencies = [ ] download_dep_fail = True +# avoid that hardcoded paths like /usr/include are used in build commands +installopts = "--global-option=build_ext --global-option='--disable-platform-guessing' " use_pip = True sanity_pip_check = True diff --git a/easybuild/easyconfigs/p/Pillow/Pillow-9.4.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/p/Pillow/Pillow-9.4.0-GCCcore-12.2.0.eb index 5060e93e3b2..cb1ef19b3f0 100644 --- a/easybuild/easyconfigs/p/Pillow/Pillow-9.4.0-GCCcore-12.2.0.eb +++ b/easybuild/easyconfigs/p/Pillow/Pillow-9.4.0-GCCcore-12.2.0.eb @@ -24,6 +24,8 @@ dependencies = [ ] download_dep_fail = True +# avoid that hardcoded paths like /usr/include are used in build commands +installopts = "--global-option=build_ext --global-option='--disable-platform-guessing' " use_pip = True sanity_pip_check = True diff --git a/easybuild/easyconfigs/p/ProBiS/ProBiS-20230403-gompi-2022b.eb b/easybuild/easyconfigs/p/ProBiS/ProBiS-20230403-gompi-2022b.eb new file mode 100644 index 00000000000..cc6a507d9e2 --- /dev/null +++ b/easybuild/easyconfigs/p/ProBiS/ProBiS-20230403-gompi-2022b.eb @@ -0,0 +1,33 @@ +easyblock = 'MakeCp' + +name = 'ProBiS' +version = '20230403' +local_commit = 'f10a9f4c' + +homepage = 'http://insilab.org/probis-algorithm' +description = """ProBiS algorithm aligns and superimposes complete protein surfaces, +surface motifs, or protein binding sites.""" + +toolchain = {'name': 'gompi', 'version': '2022b'} +toolchainopts = {'cstd': 'c++11'} + +source_urls = ['https://gitlab.com/janezkonc/probis/-/archive/master/'] +sources = ['%s.tar.gz' % local_commit] +checksums = ['5f81df7498daefe0e66082561f31d4c66f75cf1eebbed6430e3d78dd3097896b'] + +dependencies = [ + ('GSL', '2.7'), +] + +buildopts = 'probis CC="$MPICXX" CFLAGS="$CFLAGS -Wall -Wno-unused-function -DNDEBUG -pthread"' + +files_to_copy = [(['probis'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/probis'], + 'dirs': [], +} + +sanity_check_commands = ["probis -h"] + +moduleclass = "bio" diff --git a/easybuild/easyconfigs/p/PyCairo/PyCairo-1.25.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/p/PyCairo/PyCairo-1.25.0-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..6a386c621fe --- /dev/null +++ b/easybuild/easyconfigs/p/PyCairo/PyCairo-1.25.0-GCCcore-12.3.0.eb @@ -0,0 +1,38 @@ +# Need to use Meson instead of the "pip" installation +# See: https://github.com/pygobject/pycairo/issues/312 +easyblock = 'MesonNinja' + +name = 'PyCairo' +version = '1.25.0' + +homepage = 'https://pycairo.readthedocs.io/' +description = """Python bindings for the cairo library""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +source_urls = ['https://github.com/pygobject/%(namelower)s/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['ebb811ed6eae75866aaeac6edcfc2508665b550dc76ff51505092099a68df0b5'] + +builddependencies = [ + ('binutils', '2.40'), + ('pkgconf', '1.9.5'), + ('Meson', '1.1.1'), + ('Ninja', '1.11.1'), +] + +dependencies = [ + ('Python', '3.11.3'), + ('cairo', '1.17.8'), +] + +sanity_check_paths = { + 'files': ['%s/py3cairo.%s' % (p, e) for (p, e) in [('include/pycairo', 'h'), ('lib/pkgconfig', 'pc')]], + 'dirs': ['lib/python%(pyshortver)s/site-packages/cairo'], +} + +modextrapaths = { + 'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/PyGObject/PyGObject-3.46.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/p/PyGObject/PyGObject-3.46.0-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..9e886374697 --- /dev/null +++ b/easybuild/easyconfigs/p/PyGObject/PyGObject-3.46.0-GCCcore-12.3.0.eb @@ -0,0 +1,38 @@ +easyblock = 'PythonPackage' + +name = 'PyGObject' +version = '3.46.0' + +homepage = 'https://pygobject.readthedocs.io/' +description = """PyGObject is a Python package which provides bindings for GObject based +libraries such as GTK, GStreamer, WebKitGTK, GLib, GIO and many more.""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['481437b05af0a66b7c366ea052710eb3aacbb979d22d30b797f7ec29347ab1e6'] + +builddependencies = [ + ('binutils', '2.40'), + ('pkgconf', '1.9.5'), +] + +dependencies = [ + ('Python', '3.11.3'), + ('GLib', '2.77.1'), + ('GObject-Introspection', '1.76.1'), + ('PyCairo', '1.25.0'), +] + +use_pip = True +sanity_pip_check = True +download_dep_fail = True + +sanity_check_paths = { + 'files': ['include/pygobject-%(version_major)s.0/pygobject.h'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +options = {'modulename': 'gi'} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/PyMC/PyMC-5.9.0-foss-2023a.eb b/easybuild/easyconfigs/p/PyMC/PyMC-5.9.0-foss-2023a.eb new file mode 100644 index 00000000000..953952040c2 --- /dev/null +++ b/easybuild/easyconfigs/p/PyMC/PyMC-5.9.0-foss-2023a.eb @@ -0,0 +1,37 @@ +# Author: Pavel Grochal (INUITS) +# License: GPLv2 + +easyblock = 'PythonBundle' + +name = 'PyMC' +version = '5.9.0' + +homepage = 'https://www.pymc.io' +description = """PyMC is a probabilistic programming library for Python that allows users to build Bayesian models + with a simple Python API and fit them using Markov chain Monte Carlo (MCMC) methods.""" + +toolchain = {'name': 'foss', 'version': '2023a'} + +dependencies = [ + ('Python', '3.11.3'), + ('SciPy-bundle', '2023.07'), # for numpy, scipy, pandas + ('ArviZ', '0.16.1'), + ('PyTensor', '2.17.1'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('fastprogress', '1.0.3', { + 'checksums': ['7a17d2b438890f838c048eefce32c4ded47197ecc8ea042cecc33d3deb8022f5'], + }), + ('cachetools', '5.3.1', { + 'checksums': ['dce83f2d9b4e1f732a8cd44af8e8fab2dbe46201467fc98b3ef8f269092bf62b'], + }), + ('pymc', version, { + 'checksums': ['96a063e6ce4d754a0d4a93e460a270453eac78cee37c816d1f0d26a4e08cd269'], + }), +] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/p/PyPy/PyPy-7.3.12-3.10.eb b/easybuild/easyconfigs/p/PyPy/PyPy-7.3.12-3.10.eb new file mode 100644 index 00000000000..68a7d7a9713 --- /dev/null +++ b/easybuild/easyconfigs/p/PyPy/PyPy-7.3.12-3.10.eb @@ -0,0 +1,37 @@ +easyblock = 'Tarball' + +name = 'PyPy' +version = '7.3.12' +_pyver = '3.10' +versionsuffix = '-%s' % _pyver + +homepage = 'https://www.pypy.org' +description = "A fast, compliant alternative implementation of Python" + +toolchain = SYSTEM + +source_urls = ['https://downloads.python.org/pypy/'] +local_archs = {'aarch64': 'aarch64', 'x86_64': 'linux64'} +sources = ['pypy%s-v%%(version)s-%s.tar.bz2' % (_pyver, local_archs[ARCH])] +checksums = [{ + 'pypy%s-v%%(version)s-aarch64.tar.bz2' % _pyver: '26208b5a134d9860a08f74cce60960005758e82dc5f0e3566a48ed863a1f16a1', + 'pypy%s-v%%(version)s-linux64.tar.bz2' % _pyver: '6c577993160b6f5ee8cab73cd1a807affcefafe2f7441c87bd926c10505e8731', +} +] + +postinstallcmds = [ + # remove python* commands provided by PyPy, so they don't shadow actual python commands + # (system Python, or provided by a Python dependency) + "rm %(installdir)s/bin/python*", +] + +sanity_check_paths = { + 'files': ['bin/pypy', 'bin/pypy3'], + 'dirs': ['include/pypy%s' % _pyver, 'lib/pypy%s' % _pyver], +} + +sanity_check_commands = [ + "pypy --help", +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/PyTensor/PyTensor-2.17.1-gfbf-2023a.eb b/easybuild/easyconfigs/p/PyTensor/PyTensor-2.17.1-gfbf-2023a.eb new file mode 100644 index 00000000000..5ae101c343e --- /dev/null +++ b/easybuild/easyconfigs/p/PyTensor/PyTensor-2.17.1-gfbf-2023a.eb @@ -0,0 +1,51 @@ +easyblock = 'PythonBundle' + +name = 'PyTensor' +version = '2.17.1' + +homepage = 'https://github.com/pymc-devs/pytensor' +description = "Optimizing compiler for evaluating mathematical expressions on CPUs and GPUs" + +toolchain = {'name': 'gfbf', 'version': '2023a'} + +dependencies = [ + ('Python', '3.11.3'), + ('SciPy-bundle', '2023.07'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('cons', '0.4.6', { + 'checksums': ['669fe9d5ee916d5e42b9cac6acc911df803d04f2e945c1604982a04d27a29b47'], + }), + ('multipledispatch', '1.0.0', { + 'checksums': ['5c839915465c68206c3e9c473357908216c28383b425361e5d144594bf85a7e0'], + }), + ('etuples', '0.3.9', { + 'checksums': ['a474e586683d8ba8d842ba29305005ceed1c08371a4b4b0e0e232527137e5ea3'], + }), + ('toolz', '0.12.0', { + 'checksums': ['88c570861c440ee3f2f6037c4654613228ff40c93a6c25e0eba70d17282c6194'], + }), + ('logical-unification', '0.4.6', { + 'checksums': ['908435123f8a106fa4dcf9bf1b75c7beb309fa2bbecf277868af8f1c212650a0'], + 'modulename': 'unification', + }), + ('miniKanren', '1.0.3', { + 'checksums': ['1ec8bdb01144ad5e8752c7c297fb8a122db920f859276d25a72d164e998d7f6e'], + 'modulename': 'kanren', + }), + (name, version, { + 'sources': ['pytensor-%(version)s.tar.gz'], + 'checksums': ['64855a453b945c52d674086f1d160a35e910efbf13693dfaf0c39e92d474a851'], + }), +] + +sanity_check_paths = { + 'files': ['bin/pytensor-cache'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/p/PyTorch-Ignite/PyTorch-Ignite-0.4.12-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/p/PyTorch-Ignite/PyTorch-Ignite-0.4.12-foss-2022a-CUDA-11.7.0.eb new file mode 100644 index 00000000000..a486bf7403d --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch-Ignite/PyTorch-Ignite-0.4.12-foss-2022a-CUDA-11.7.0.eb @@ -0,0 +1,33 @@ +easyblock = 'PythonBundle' + +name = 'PyTorch-Ignite' +version = '0.4.12' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://pytorch-ignite.ai/' +description = """ +Ignite is a high-level library to help with training and evaluating neural +networks in PyTorch flexibly and transparently.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('CUDA', '11.7.0', '', SYSTEM), + ('Python', '3.10.4'), + ('PyTorch', '1.12.0', versionsuffix), +] + +exts_list = [ + ('pytorch-ignite', version, { + 'source_urls': ['https://pypi.python.org/packages/source/%(nameletterlower)s/%(namelower)s'], + 'sources': ['pytorch-ignite-%(version)s.tar.gz'], + 'checksums': ['063ca746aba413824d91b6fdc953118d54d1d25b972339dd8212a99c3a077423'], + 'modulename': 'ignite', + }), +] + +use_pip = True + +sanity_pip_check = True + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/PyTorch-Ignite/PyTorch-Ignite-0.4.12-foss-2022a.eb b/easybuild/easyconfigs/p/PyTorch-Ignite/PyTorch-Ignite-0.4.12-foss-2022a.eb new file mode 100644 index 00000000000..ef84f91c426 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch-Ignite/PyTorch-Ignite-0.4.12-foss-2022a.eb @@ -0,0 +1,31 @@ +easyblock = 'PythonBundle' + +name = 'PyTorch-Ignite' +version = '0.4.12' + +homepage = 'https://pytorch-ignite.ai/' +description = """ +Ignite is a high-level library to help with training and evaluating neural +networks in PyTorch flexibly and transparently.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('PyTorch', '1.12.0'), +] + +exts_list = [ + ('pytorch-ignite', version, { + 'source_urls': ['https://pypi.python.org/packages/source/%(nameletterlower)s/%(namelower)s'], + 'sources': ['pytorch-ignite-%(version)s.tar.gz'], + 'checksums': ['063ca746aba413824d91b6fdc953118d54d1d25b972339dd8212a99c3a077423'], + 'modulename': 'ignite', + }), +] + +use_pip = True + +sanity_pip_check = True + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/PyTorch-bundle/PyTorch-bundle-1.13.1-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/p/PyTorch-bundle/PyTorch-bundle-1.13.1-foss-2022a-CUDA-11.7.0.eb new file mode 100644 index 00000000000..9daa4dfb672 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch-bundle/PyTorch-bundle-1.13.1-foss-2022a-CUDA-11.7.0.eb @@ -0,0 +1,75 @@ +easyblock = 'PythonBundle' + +name = 'PyTorch-bundle' +version = '1.13.1' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://pytorch.org/' +description = """PyTorch with compatible versions of official Torch extensions.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +builddependencies = [ + ('CMake', '3.23.1'), + ('RE2', '2022-06-01'), # for torchtext +] + +dependencies = [ + ('CUDA', '11.7.0', '', SYSTEM), + ('Python', '3.10.4'), + ('PyTorch', version, versionsuffix), + ('Pillow-SIMD', '9.2.0'), # for torchvision + ('SentencePiece', '0.1.97'), # for torchtext + ('tqdm', '4.64.0'), # for torchtext + ('double-conversion', '3.2.0'), # for torchtext + ('utf8proc', '2.7.0'), # for torchtext + ('tensorboard', '2.10.0'), # for torch-tb-profiler +] + +use_pip = True + +exts_list = [ + ('portalocker', '2.7.0', { + 'checksums': ['032e81d534a88ec1736d03f780ba073f047a06c478b06e2937486f334e955c51'], + }), + ('torchdata', '0.5.1', { + 'preinstallopts': "USE_SYSTEM_LIBS=1 ", + 'source_urls': ['https://github.com/pytorch/data/archive'], + 'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': '%(name)s-%(version)s.tar.gz'}], + 'checksums': ['69d80bd33ce8f08e7cfeeb71cefddfc29cede25a85881e33dbae47576b96ed29'], + }), + ('torchtext', '0.14.1', { + 'patches': [ + 'torchtext-0.14.1_use-system-libs.patch', + 'torchtext-0.13.1_cxx_17.patch', + ], + 'source_urls': ['https://github.com/pytorch/text/archive'], + 'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': '%(name)s-%(version)s.tar.gz'}], + 'checksums': [ + {'torchtext-0.14.1.tar.gz': 'fd1ef3da7d9c20408c740f7dc7d02ad52a6048b46368355a1a7326d3bc4f2e63'}, + {'torchtext-0.14.1_use-system-libs.patch': + '1366d10c4755b6003194f7313ca11d165a80a13d325bee9d669ea2b333d82536'}, + {'torchtext-0.13.1_cxx_17.patch': 'fd242c139baa27352d1065cece4658a3ede76f46ffec08ac04a554301e547f22'}, + ], + }), + ('torchvision', '0.14.1', { + 'source_urls': ['https://github.com/pytorch/vision/archive'], + 'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': '%(name)s-%(version)s.tar.gz'}], + 'checksums': ['ced67e1cf1f97e168cdf271851a4d0b6d382ab7936e7bcbb39aaa87239c324b6'], + }), + ('pytorch-ignite', '0.4.12', { + 'modulename': 'ignite', + 'source_urls': ['https://github.com/pytorch/ignite/archive'], + 'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': '%(name)s-%(version)s.tar.gz'}], + 'checksums': ['7d10fd40edc568bbda687151bb5b53b0d59a980cd6c25ec2b061e7f234aeab76'], + }), + ('torch-tb-profiler', '0.4.3', { + 'modulename': 'torch.profiler', + 'sources': ['torch_tb_profiler-%(version)s.tar.gz'], + 'checksums': ['8b8d29b2de960b3c4423087b23cec29beaf9ac3a8c7b046c18fd25b218f726b1'], + }), +] + +sanity_pip_check = True + +moduleclass = 'ai' diff --git a/easybuild/easyconfigs/p/PyTorch-bundle/torchtext-0.14.1_use-system-libs.patch b/easybuild/easyconfigs/p/PyTorch-bundle/torchtext-0.14.1_use-system-libs.patch new file mode 100644 index 00000000000..a071b8f51f8 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch-bundle/torchtext-0.14.1_use-system-libs.patch @@ -0,0 +1,75 @@ +Use external deps for third party libraries +Split from "deps_fix" patch from torchtext +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 1ead15d46..21f85e555 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -63,5 +63,9 @@ endif() + + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORCH_COMPILED_WITH_CXX_ABI} -Wall ${TORCH_CXX_FLAGS}") + +-add_subdirectory(third_party) ++find_package(double-conversion) ++find_package(re2) ++find_library(SENTENCEPIECE_LIBRARY sentencepiece PATHS $ENV{EBROOTSENTENCEPIECE}/lib64) ++find_library(SENTENCEPIECE_TRAIN_LIBRARY sentencepiece_train PATHS $ENV{EBROOTSENTENCEPIECE}/lib64) ++find_library(UTF8PROC_LIBRARY utf8proc PATHS $ENV{UTF8PROC}/lib64) + add_subdirectory(torchtext/csrc) +diff --git a/packaging/build_wheel.sh b/packaging/build_wheel.sh +index 9882cb1b2..43e2a05d8 100755 +--- a/packaging/build_wheel.sh ++++ b/packaging/build_wheel.sh +@@ -10,7 +10,6 @@ setup_env + setup_wheel_python + pip_install numpy future cmake>=3.18.0 ninja + setup_pip_pytorch_version +-git submodule update --init --recursive + python setup.py clean + if [[ "$OSTYPE" == "msys" ]]; then + "$script_dir/vc_env_helper.bat" python setup.py bdist_wheel +diff --git a/setup.py b/setup.py +index 080415f7e..bd84405be 100644 +--- a/setup.py ++++ b/setup.py +@@ -81,7 +81,6 @@ class clean(distutils.command.clean.clean): + # Remove build directory + build_dirs = [ + ROOT_DIR / "build", +- ROOT_DIR / "third_party" / "build", + ] + for path in build_dirs: + if path.exists(): +@@ -89,7 +88,6 @@ + shutil.rmtree(str(path), ignore_errors=True) + + +-_init_submodule() + setup_info = dict( + # Metadata + name="torchtext", +diff --git a/torchtext/csrc/CMakeLists.txt b/torchtext/csrc/CMakeLists.txt +index 037f814dc..658b90342 100644 +--- a/torchtext/csrc/CMakeLists.txt ++++ b/torchtext/csrc/CMakeLists.txt +@@ -18,10 +18,6 @@ set( + set( + LIBTORCHTEXT_INCLUDE_DIRS + ${PROJECT_SOURCE_DIR} +- ${PROJECT_SOURCE_DIR}/third_party/sentencepiece/src +- $ +- $ +- $ + ${TORCH_INSTALL_PREFIX}/include + ${TORCH_INSTALL_PREFIX}/include/torch/csrc/api/include + ) +@@ -119,10 +115,6 @@ if (BUILD_TORCHTEXT_PYTHON_EXTENSION) + set( + EXTENSION_INCLUDE_DIRS + ${PROJECT_SOURCE_DIR} +- ${PROJECT_SOURCE_DIR}/third_party/sentencepiece/src +- $ +- $ +- $ + ${TORCH_INSTALL_PREFIX}/include + ${TORCH_INSTALL_PREFIX}/include/torch/csrc/api/include + ) diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1-foss-2022a-CUDA-11.7.0.eb new file mode 100644 index 00000000000..3303a814d56 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1-foss-2022a-CUDA-11.7.0.eb @@ -0,0 +1,164 @@ +name = 'PyTorch' +version = '1.13.1' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://pytorch.org/' +description = """Tensors and Dynamic neural networks in Python with strong GPU acceleration. +PyTorch is a deep learning framework that puts Python first.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +source_urls = [GITHUB_RELEASE] +sources = ['%(namelower)s-v%(version)s.tar.gz'] +patches = [ + 'PyTorch-1.7.0_disable-dev-shm-test.patch', + 'PyTorch-1.10.0_fix-kineto-crash.patch', + 'PyTorch-1.11.0_fix-fp16-quantization-without-fbgemm.patch', + 'PyTorch-1.11.1_skip-test_init_from_local_shards.patch', + 'PyTorch-1.12.0_fix-EmbeddingBag-without-fbgemm.patch', + 'PyTorch-1.12.1_add-hypothesis-suppression.patch', + 'PyTorch-1.12.1_fix-skip-decorators.patch', + 'PyTorch-1.12.1_fix-test_cpp_extensions_jit.patch', + 'PyTorch-1.12.1_fix-test_wishart_log_prob.patch', + 'PyTorch-1.12.1_fix-TestTorch.test_to.patch', + 'PyTorch-1.12.1_fix-use-after-free-in-tensorpipe-agent.patch', + 'PyTorch-1.12.1_fix-vsx-loadu.patch', + 'PyTorch-1.12.1_fix-vsx-vector-funcs.patch', + 'PyTorch-1.12.1_skip-test_round_robin.patch', + 'PyTorch-1.13.1_disable-test-sharding.patch', + 'PyTorch-1.13.1_fix-flaky-jit-test.patch', + 'PyTorch-1.13.1_fix-fsdp-fp16-test.patch', + 'PyTorch-1.13.1_fix-fsdp-tp-integration-test.patch', + 'PyTorch-1.13.1_fix-kineto-crash-on-exit.patch', + 'PyTorch-1.13.1_fix-pytest-args.patch', + 'PyTorch-1.13.1_fix-test-ops-conf.patch', + 'PyTorch-1.13.1_fix-wrong-check-in-fsdp-tests.patch', + 'PyTorch-1.13.1_increase-tolerance-test_jit.patch', + 'PyTorch-1.13.1_increase-tolerance-test_ops.patch', + 'PyTorch-1.13.1_increase-tolerance-test_optim.patch', + 'PyTorch-1.13.1_install-vsx-vec-headers.patch', + 'PyTorch-1.13.1_no-cuda-stubs-rpath.patch', + 'PyTorch-1.13.1_remove-flaky-test-in-testnn.patch', + 'PyTorch-1.13.1_skip-failing-grad-test.patch', + 'PyTorch-1.13.1_skip-test-requiring-online-access.patch', + 'PyTorch-1.13.1_skip-tests-without-fbgemm.patch', +] +checksums = [ + {'pytorch-v1.13.1.tar.gz': 'dbc229ee9750b02b514937d017744443a269ea0241ed3f32b9af0703589d25d4'}, + {'PyTorch-1.7.0_disable-dev-shm-test.patch': '622cb1eaeadc06e13128a862d9946bcc1f1edd3d02b259c56a9aecc4d5406b8a'}, + {'PyTorch-1.10.0_fix-kineto-crash.patch': 'dc467333b28162149af8f675929d8c6bf219f23230bfc0d39af02ba4f6f882eb'}, + {'PyTorch-1.11.0_fix-fp16-quantization-without-fbgemm.patch': + 'cc526130b6446bbbf5f0f7372d3aeee3e7d4c4d6e471524dff028b430b152934'}, + {'PyTorch-1.11.1_skip-test_init_from_local_shards.patch': + '4aeb1b0bc863d4801b0095cbce69f8794066748f0df27c6aaaf729c5ecba04b7'}, + {'PyTorch-1.12.0_fix-EmbeddingBag-without-fbgemm.patch': + '090598592283e3fc46ee08a68b6a6afe07be41b26514afba51834408bf1c98ed'}, + {'PyTorch-1.12.1_add-hypothesis-suppression.patch': + 'e71ffb94ebe69f580fa70e0de84017058325fdff944866d6bd03463626edc32c'}, + {'PyTorch-1.12.1_fix-skip-decorators.patch': 'e3ca6e42b2fa592ea095939fb59ab875668a058479407db3f3684cc5c6f4146c'}, + {'PyTorch-1.12.1_fix-test_cpp_extensions_jit.patch': + '1efc9850c431d702e9117d4766277d3f88c5c8b3870997c9974971bce7f2ab83'}, + {'PyTorch-1.12.1_fix-test_wishart_log_prob.patch': + 'cf475ae6e6234b96c8d1bf917597c5176c94b3ccd940b72f2e1cd0c979580f45'}, + {'PyTorch-1.12.1_fix-TestTorch.test_to.patch': '75f27987c3f25c501e719bd2b1c70a029ae0ee28514a97fe447516aee02b1535'}, + {'PyTorch-1.12.1_fix-use-after-free-in-tensorpipe-agent.patch': + '0bd7e88b92c4c6f0fecf01746009858ba19f2df68b10b88c41485328a531875d'}, + {'PyTorch-1.12.1_fix-vsx-loadu.patch': '8bfe3c94ada1dd1f7974a1261a8b576fb7ae944050fa1c7830fca033831123b2'}, + {'PyTorch-1.12.1_fix-vsx-vector-funcs.patch': 'caccbf60f62eac313896c1eaec78b08f5d0fdfcb907079087490bb13d1561aa2'}, + {'PyTorch-1.12.1_skip-test_round_robin.patch': '63d4849b78605aa088fdff695637d9473ea60dee603a3ff7f788690d70c55349'}, + {'PyTorch-1.13.1_disable-test-sharding.patch': 'df2074adeba47998ce2993d99ca64eb6f1c79ab7057f553b436efdec264d3572'}, + {'PyTorch-1.13.1_fix-flaky-jit-test.patch': '71efdeb29b5e5b4982c9f5cb2182733654a34d52f85bb5487bc4d7d99b86101b'}, + {'PyTorch-1.13.1_fix-fsdp-fp16-test.patch': '8ae68e60d6e1f92f50322b7f0381c7e65251fba32d7606e3a238a36a2f55b5cf'}, + {'PyTorch-1.13.1_fix-fsdp-tp-integration-test.patch': + '31e2d63b54ae1a8c554575f46db79bf8bbda851b6ca0ffe623c4911207a3c2bc'}, + {'PyTorch-1.13.1_fix-kineto-crash-on-exit.patch': + 'f1e6808ee8d91a2ad76e0caedb4685e5aec3008d5e2e3c3c3e88cbb25cbd71b4'}, + {'PyTorch-1.13.1_fix-pytest-args.patch': 'd3e3c841cf8d73683750f29326f2be56ee0bb5df7ff522baf7d7c3f301a91ec2'}, + {'PyTorch-1.13.1_fix-test-ops-conf.patch': 'df652eec7753864ebebbfeca546929a53e3fb8f24259d5c9b964266a8551198c'}, + {'PyTorch-1.13.1_fix-wrong-check-in-fsdp-tests.patch': + 'cbb5ca9ad668a504a456a2cc02d7254b79ddfd9a971a1648f0508fb103a9fc89'}, + {'PyTorch-1.13.1_increase-tolerance-test_jit.patch': + 'b97913754a0ae0887b8137db0b0d57caff8c3d7bd96fe555ea27ea01ff14527a'}, + {'PyTorch-1.13.1_increase-tolerance-test_ops.patch': + 'c909fdfc2b12df457e1eb5514265ffec3eab653994949416f3f048668421e223'}, + {'PyTorch-1.13.1_increase-tolerance-test_optim.patch': + 'a079d824085eab89794f5ecfc67792f735ed8cfd3fe7db52e4dea62e583cfe06'}, + {'PyTorch-1.13.1_install-vsx-vec-headers.patch': + '7b678f54bb947afd4767f5877ac424b4b94ce5db609ea20f5a869ccf4027035f'}, + {'PyTorch-1.13.1_no-cuda-stubs-rpath.patch': '4c636059850fc9d1ecb27ce275f8aad5d5b6fdc19e35aff0c25b86cb3201352a'}, + {'PyTorch-1.13.1_remove-flaky-test-in-testnn.patch': + 'be83ff61fe2dedab6d49c232936d5622df81ab49154264490021c6c828e53315'}, + {'PyTorch-1.13.1_skip-failing-grad-test.patch': '6681200f9509893cb9231b5c93ac9bc5e6d9d9ae4febefca52e7cbc843ba8f51'}, + {'PyTorch-1.13.1_skip-test-requiring-online-access.patch': + '61c3b7859dc06a9969981b07aa2789630de110d6d1d3633d27364be47af74712'}, + {'PyTorch-1.13.1_skip-tests-without-fbgemm.patch': + '481e595f673baf8ae58b41697a6792b83048b0264aa79b422f48cd8c22948bb7'}, +] + +osdependencies = [OS_PKG_IBVERBS_DEV] + +builddependencies = [ + ('CMake', '3.23.1'), + ('hypothesis', '6.46.7'), + # For tests + ('pytest-rerunfailures', '11.1'), + ('pytest-shard', '0.1.2'), +] + +dependencies = [ + ('CUDA', '11.7.0', '', SYSTEM), + ('Ninja', '1.10.2'), # Required for JIT compilation of C++ extensions + ('Python', '3.10.4'), + ('protobuf', '3.19.4'), + ('protobuf-python', '3.19.4'), + ('pybind11', '2.9.2'), + ('SciPy-bundle', '2022.05'), + ('PyYAML', '6.0'), + ('MPFR', '4.1.0'), + ('GMP', '6.2.1'), + ('numactl', '2.0.14'), + ('FFmpeg', '4.4.2'), + ('Pillow', '9.1.1'), + ('cuDNN', '8.4.1.50', '-CUDA-%(cudaver)s', SYSTEM), + ('magma', '2.6.2', '-CUDA-%(cudaver)s'), + ('NCCL', '2.12.12', '-CUDA-%(cudaver)s'), + ('expecttest', '0.1.3'), +] + +# default CUDA compute capabilities to use (override via --cuda-compute-capabilities) +cuda_compute_capabilities = ['3.5', '3.7', '5.2', '6.0', '6.1', '7.0', '7.2', '7.5', '8.0', '8.6'] + +excluded_tests = { + '': [ + # This test seems to take too long on NVIDIA Ampere at least. + 'distributed/test_distributed_spawn', + # Broken on CUDA 11.6/11.7: https://github.com/pytorch/pytorch/issues/75375 + 'distributions/test_constraints', + # no xdoctest + 'doctests', + # failing on broadwell + # See https://github.com/easybuilders/easybuild-easyconfigs/issues/17712 + 'test_native_mha', + # intermittent failures on various systems + # See https://github.com/easybuilders/easybuild-easyconfigs/issues/17712 + 'distributed/rpc/test_tensorpipe_agent', + ] +} + +runtest = 'cd test && PYTHONUNBUFFERED=1 %(python)s run_test.py --continue-through-error --verbose %(excluded_tests)s' + +# The readelf sanity check command can be taken out once the TestRPATH test from +# https://github.com/pytorch/pytorch/pull/87593 is accepted, since it is then checked as part of the PyTorch test suite +local_libcaffe2 = "$EBROOTPYTORCH/lib/python%%(pyshortver)s/site-packages/torch/lib/libcaffe2_nvrtc.%s" % SHLIB_EXT +sanity_check_commands = [ + "readelf -d %s | egrep 'RPATH|RUNPATH' | grep -v stubs" % local_libcaffe2, +] + +# Especially test_quantization has a few corner cases that are triggered by the random input values, +# those cannot be easily avoided, see https://github.com/pytorch/pytorch/issues/107030 +# So allow a low number of tests to fail as the tests "usually" succeed +max_failed_tests = 2 + +tests = ['PyTorch-check-cpp-extension.py'] + +moduleclass = 'ai' diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1-foss-2022b.eb b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1-foss-2022b.eb new file mode 100644 index 00000000000..896e238a874 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1-foss-2022b.eb @@ -0,0 +1,154 @@ +name = 'PyTorch' +version = '1.13.1' + +homepage = 'https://pytorch.org/' +description = """Tensors and Dynamic neural networks in Python with strong GPU acceleration. +PyTorch is a deep learning framework that puts Python first.""" + +toolchain = {'name': 'foss', 'version': '2022b'} + +source_urls = [GITHUB_RELEASE] +sources = ['%(namelower)s-v%(version)s.tar.gz'] +patches = [ + 'PyTorch-1.7.0_disable-dev-shm-test.patch', + 'PyTorch-1.10.0_fix-kineto-crash.patch', + 'PyTorch-1.11.0_fix-fp16-quantization-without-fbgemm.patch', + 'PyTorch-1.11.1_skip-test_init_from_local_shards.patch', + 'PyTorch-1.12.0_fix-EmbeddingBag-without-fbgemm.patch', + 'PyTorch-1.12.1_add-hypothesis-suppression.patch', + 'PyTorch-1.12.1_fix-skip-decorators.patch', + 'PyTorch-1.12.1_fix-test_cpp_extensions_jit.patch', + 'PyTorch-1.12.1_fix-test_wishart_log_prob.patch', + 'PyTorch-1.12.1_fix-TestTorch.test_to.patch', + 'PyTorch-1.12.1_fix-use-after-free-in-tensorpipe-agent.patch', + 'PyTorch-1.12.1_fix-vsx-loadu.patch', + 'PyTorch-1.12.1_fix-vsx-vector-funcs.patch', + 'PyTorch-1.12.1_skip-test_round_robin.patch', + 'PyTorch-1.13.1_disable-test-sharding.patch', + 'PyTorch-1.13.1_fix-flaky-jit-test.patch', + 'PyTorch-1.13.1_fix-fsdp-fp16-test.patch', + 'PyTorch-1.13.1_fix-gcc-12-missing-includes.patch', + 'PyTorch-1.13.1_fix-gcc-12-warning-in-fbgemm.patch', + 'PyTorch-1.13.1_fix-numpy-deprecations.patch', + 'PyTorch-1.13.1_fix-protobuf-dependency.patch', + 'PyTorch-1.13.1_fix-pytest-args.patch', + 'PyTorch-1.13.1_fix-python-3.11-compat.patch', + 'PyTorch-1.13.1_fix-test-ops-conf.patch', + 'PyTorch-1.13.1_fix-warning-in-test-cpp-api.patch', + 'PyTorch-1.13.1_increase-tolerance-test_ops.patch', + 'PyTorch-1.13.1_install-vsx-vec-headers.patch', + 'PyTorch-1.13.1_no-cuda-stubs-rpath.patch', + 'PyTorch-1.13.1_remove-flaky-test-in-testnn.patch', + 'PyTorch-1.13.1_skip-failing-grad-test.patch', + 'PyTorch-1.13.1_skip-failing-singular-grad-test.patch', + 'PyTorch-1.13.1_skip-tests-without-fbgemm.patch', +] +checksums = [ + {'pytorch-v1.13.1.tar.gz': 'dbc229ee9750b02b514937d017744443a269ea0241ed3f32b9af0703589d25d4'}, + {'PyTorch-1.7.0_disable-dev-shm-test.patch': '622cb1eaeadc06e13128a862d9946bcc1f1edd3d02b259c56a9aecc4d5406b8a'}, + {'PyTorch-1.10.0_fix-kineto-crash.patch': 'dc467333b28162149af8f675929d8c6bf219f23230bfc0d39af02ba4f6f882eb'}, + {'PyTorch-1.11.0_fix-fp16-quantization-without-fbgemm.patch': + 'cc526130b6446bbbf5f0f7372d3aeee3e7d4c4d6e471524dff028b430b152934'}, + {'PyTorch-1.11.1_skip-test_init_from_local_shards.patch': + '4aeb1b0bc863d4801b0095cbce69f8794066748f0df27c6aaaf729c5ecba04b7'}, + {'PyTorch-1.12.0_fix-EmbeddingBag-without-fbgemm.patch': + '090598592283e3fc46ee08a68b6a6afe07be41b26514afba51834408bf1c98ed'}, + {'PyTorch-1.12.1_add-hypothesis-suppression.patch': + 'e71ffb94ebe69f580fa70e0de84017058325fdff944866d6bd03463626edc32c'}, + {'PyTorch-1.12.1_fix-skip-decorators.patch': 'e3ca6e42b2fa592ea095939fb59ab875668a058479407db3f3684cc5c6f4146c'}, + {'PyTorch-1.12.1_fix-test_cpp_extensions_jit.patch': + '1efc9850c431d702e9117d4766277d3f88c5c8b3870997c9974971bce7f2ab83'}, + {'PyTorch-1.12.1_fix-test_wishart_log_prob.patch': + 'cf475ae6e6234b96c8d1bf917597c5176c94b3ccd940b72f2e1cd0c979580f45'}, + {'PyTorch-1.12.1_fix-TestTorch.test_to.patch': '75f27987c3f25c501e719bd2b1c70a029ae0ee28514a97fe447516aee02b1535'}, + {'PyTorch-1.12.1_fix-use-after-free-in-tensorpipe-agent.patch': + '0bd7e88b92c4c6f0fecf01746009858ba19f2df68b10b88c41485328a531875d'}, + {'PyTorch-1.12.1_fix-vsx-loadu.patch': '8bfe3c94ada1dd1f7974a1261a8b576fb7ae944050fa1c7830fca033831123b2'}, + {'PyTorch-1.12.1_fix-vsx-vector-funcs.patch': 'caccbf60f62eac313896c1eaec78b08f5d0fdfcb907079087490bb13d1561aa2'}, + {'PyTorch-1.12.1_skip-test_round_robin.patch': '63d4849b78605aa088fdff695637d9473ea60dee603a3ff7f788690d70c55349'}, + {'PyTorch-1.13.1_disable-test-sharding.patch': 'df2074adeba47998ce2993d99ca64eb6f1c79ab7057f553b436efdec264d3572'}, + {'PyTorch-1.13.1_fix-flaky-jit-test.patch': '71efdeb29b5e5b4982c9f5cb2182733654a34d52f85bb5487bc4d7d99b86101b'}, + {'PyTorch-1.13.1_fix-fsdp-fp16-test.patch': '8ae68e60d6e1f92f50322b7f0381c7e65251fba32d7606e3a238a36a2f55b5cf'}, + {'PyTorch-1.13.1_fix-gcc-12-missing-includes.patch': + '18df8c61ecaa9fb659346c1e172828bca6b069f0145bb8f6a36b0a23b7bef0a6'}, + {'PyTorch-1.13.1_fix-gcc-12-warning-in-fbgemm.patch': + '5c7be91a6096083a0b1315efe0001537499c600f1f569953c6a2c7f4cc1d0910'}, + {'PyTorch-1.13.1_fix-numpy-deprecations.patch': + 'f461b570efe0434ddd806bf2fa7020eb213e3ed89d0eb4403e076f4276ba2a46'}, + {'PyTorch-1.13.1_fix-protobuf-dependency.patch': + '8bd755a0cab7233a243bc65ca57c9630dfccdc9bf8c9792f0de4e07a644fcb00'}, + {'PyTorch-1.13.1_fix-pytest-args.patch': 'd3e3c841cf8d73683750f29326f2be56ee0bb5df7ff522baf7d7c3f301a91ec2'}, + {'PyTorch-1.13.1_fix-python-3.11-compat.patch': + 'fa4eb0e27e00a90bb217b77c0023089c4659c03f37d781ab4a681bdcb4f0432f'}, + {'PyTorch-1.13.1_fix-test-ops-conf.patch': 'df652eec7753864ebebbfeca546929a53e3fb8f24259d5c9b964266a8551198c'}, + {'PyTorch-1.13.1_fix-warning-in-test-cpp-api.patch': + 'bdde0f2105215c95a54de64ec4b1a4520528510663174fef6d5b900eb1db3937'}, + {'PyTorch-1.13.1_increase-tolerance-test_ops.patch': + 'c909fdfc2b12df457e1eb5514265ffec3eab653994949416f3f048668421e223'}, + {'PyTorch-1.13.1_install-vsx-vec-headers.patch': + '7b678f54bb947afd4767f5877ac424b4b94ce5db609ea20f5a869ccf4027035f'}, + {'PyTorch-1.13.1_no-cuda-stubs-rpath.patch': '4c636059850fc9d1ecb27ce275f8aad5d5b6fdc19e35aff0c25b86cb3201352a'}, + {'PyTorch-1.13.1_remove-flaky-test-in-testnn.patch': + 'be83ff61fe2dedab6d49c232936d5622df81ab49154264490021c6c828e53315'}, + {'PyTorch-1.13.1_skip-failing-grad-test.patch': '6681200f9509893cb9231b5c93ac9bc5e6d9d9ae4febefca52e7cbc843ba8f51'}, + {'PyTorch-1.13.1_skip-failing-singular-grad-test.patch': + '72688a57b2bb617665ad1a1d5e362c5111ae912c10936bb38a089c0204729f48'}, + {'PyTorch-1.13.1_skip-tests-without-fbgemm.patch': + '481e595f673baf8ae58b41697a6792b83048b0264aa79b422f48cd8c22948bb7'}, +] + +osdependencies = [OS_PKG_IBVERBS_DEV] + +builddependencies = [ + ('CMake', '3.24.3'), + ('hypothesis', '6.68.2'), + # For tests + ('pytest-rerunfailures', '12.0'), + ('pytest-shard', '0.1.2'), +] + +dependencies = [ + ('Ninja', '1.11.1'), # Required for JIT compilation of C++ extensions + ('Python', '3.10.8'), + ('protobuf', '23.0'), + ('protobuf-python', '4.23.0'), + ('pybind11', '2.10.3'), + ('SciPy-bundle', '2023.02'), + ('PyYAML', '6.0'), + ('MPFR', '4.2.0'), + ('GMP', '6.2.1'), + ('numactl', '2.0.16'), + ('FFmpeg', '5.1.2'), + ('Pillow', '9.4.0'), + ('expecttest', '0.1.3'), +] + +custom_opts = ['CMAKE_CXX_STANDARD=17'] + +excluded_tests = { + '': [ + # This test seems to take too long on NVIDIA Ampere at least. + 'distributed/test_distributed_spawn', + # Broken on CUDA 11.6/11.7: https://github.com/pytorch/pytorch/issues/75375 + 'distributions/test_constraints', + # no xdoctest + 'doctests', + # failing on broadwell + # See https://github.com/easybuilders/easybuild-easyconfigs/issues/17712 + 'test_native_mha', + # intermittent failures on various systems + # See https://github.com/easybuilders/easybuild-easyconfigs/issues/17712 + 'distributed/rpc/test_tensorpipe_agent', + ] +} + +runtest = 'cd test && PYTHONUNBUFFERED=1 %(python)s run_test.py --continue-through-error --verbose %(excluded_tests)s' + +# Especially test_quantization has a few corner cases that are triggered by the random input values, +# those cannot be easily avoided, see https://github.com/pytorch/pytorch/issues/107030 +# So allow a low number of tests to fail as the tests "usually" succeed +max_failed_tests = 2 + +tests = ['PyTorch-check-cpp-extension.py'] + +moduleclass = 'ai' diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_disable-test-sharding.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_disable-test-sharding.patch new file mode 100644 index 00000000000..551d7a4830a --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_disable-test-sharding.patch @@ -0,0 +1,41 @@ +Our error checking doesn't work well with the parallel/sharded pytorch test. +As the overall gain is low, disable it and always run the full test suite in a single process. +Additionally remove the fail-on-first-error flag (-x) to collect all errors. + +Author: Alexander Grund (TU Dresden) + +diff --git a/test/run_test.py b/test/run_test.py +index f7c80f3f0a6..9e930d774ed 100755 +--- a/test/run_test.py ++++ b/test/run_test.py +@@ -718,18 +718,18 @@ def print_log_file(test: str, file_path: str, failed: bool) -> None: + + + def run_test_ops(test_module, test_directory, options): +- if 'slow-gradcheck' in os.getenv("BUILD_ENVIRONMENT", ""): ++ if True: + # there are a lot of tests that take up a lot of space in slowgrad check, so don't bother parallelizing + # it's also on periodic so we don't care about TTS as much + return run_test(test_module, test_directory, copy.deepcopy(options), +- extra_unittest_args=["--use-pytest", '-vv', '-x', '--reruns=2', '-rfEX'], ++ extra_unittest_args=["--use-pytest", '-vv', '--reruns=2', '-rfEX'], + ) + return_codes = [] + os.environ["NUM_PARALLEL_PROCS"] = str(NUM_PROCS) + pool = get_context("spawn").Pool(NUM_PROCS) + for i in range(NUM_PROCS): + return_code = pool.apply_async(run_test, args=(test_module, test_directory, copy.deepcopy(options)), +- kwds={"extra_unittest_args": ["--use-pytest", '-vv', '-x', '--reruns=2', '-rfEX', ++ kwds={"extra_unittest_args": ["--use-pytest", '-vv', '--reruns=2', '-rfEX', + f'--shard-id={i}', f'--num-shards={NUM_PROCS}', + "-k=not _linalg_cholesky_"], + }) +@@ -742,7 +742,7 @@ def run_test_ops(test_module, test_directory, options): + if return_code.get() != 0: + return return_code.get() + return_code = run_test(test_module, test_directory, copy.deepcopy(options), +- extra_unittest_args=["--use-pytest", '-vv', '-x', '--reruns=2', '-rfEX', ++ extra_unittest_args=["--use-pytest", '-vv', '--reruns=2', '-rfEX', + "-k=_linalg_cholesky_"], + ) + return return_code diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-fsdp-tp-integration-test.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-fsdp-tp-integration-test.patch new file mode 100644 index 00000000000..6f4a52f460f --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-fsdp-tp-integration-test.patch @@ -0,0 +1,32 @@ +Similar to the FP16 test this test seems to expect at most 4 GPUs +as indicated by `skip_if_lt_x_gpu(4)` decorators. + +Otherwise: +- test_fsdp_tp_checkpoint_integration fails with + File "/tmp/eb-tmp-2022a-cuda/lib/python3.10/site-packages/torch/distributed/_shard/sharded_tensor/_ops/tensor_ops.py", line 46, in tensor_device + return self_st.local_shards()[0].tensor.device + IndexError: list index out of range +- test_fsdp_tp_integration fails with + AssertionError: Tensor-likes are not close! + + Mismatched elements: 72 / 72 (100.0%) + Greatest absolute difference: 0.958100214600563 at index (0, 2, 7) (up to 1e-05 allowed) + Greatest relative difference: 52.01691657271702 at index (1, 2, 4) (up to 1.3e-06 allowed) + +Author: Alexander Grund (TU Dresden) + +diff --git a/test/distributed/fsdp/test_fsdp_tp_integration.py b/test/distributed/fsdp/test_fsdp_tp_integration.py +index e813966ec2f..ec2308c705b 100644 +--- a/test/distributed/fsdp/test_fsdp_tp_integration.py ++++ b/test/distributed/fsdp/test_fsdp_tp_integration.py +@@ -202,6 +202,10 @@ class SimpleModel(torch.nn.Module): + + + class TestTPFSDPIntegration(FSDPTest): ++ @property ++ def world_size(self): ++ return min(4, super().world_size) ++ + def _get_params_and_sharding_info( + self, + model: SimpleModel, diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-gcc-12-missing-includes.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-gcc-12-missing-includes.patch new file mode 100644 index 00000000000..a74b69d95f4 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-gcc-12-missing-includes.patch @@ -0,0 +1,29 @@ +Add missing headers that are no longer transitively included in GCC 12 + +Author: Alexander Grund (TU Dresden) + +Submodule third_party/gloo contains modified content +diff --git a/third_party/gloo/gloo/transport/ibverbs/pair.h b/third_party/gloo/gloo/transport/ibverbs/pair.h +index 1ccc050..54dbc7e 100644 +--- a/third_party/gloo/gloo/transport/ibverbs/pair.h ++++ b/third_party/gloo/gloo/transport/ibverbs/pair.h +@@ -8,6 +8,7 @@ + + #pragma once + ++#include + #include + #include + #include +diff --git a/third_party/gloo/gloo/transport/tcp/device.cc b/third_party/gloo/gloo/transport/tcp/device.cc +index 05cf0a4..4408d60 100644 +--- a/third_party/gloo/gloo/transport/tcp/device.cc ++++ b/third_party/gloo/gloo/transport/tcp/device.cc +@@ -8,6 +8,7 @@ + + #include "gloo/transport/tcp/device.h" + ++#include + #include + #include + #include diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-gcc-12-warning-in-fbgemm.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-gcc-12-warning-in-fbgemm.patch new file mode 100644 index 00000000000..ec1168d3917 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-gcc-12-warning-in-fbgemm.patch @@ -0,0 +1,24 @@ +GCC 12 has a regression (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105593) +leading to warnings/errors during build: https://github.com/pytorch/FBGEMM/issues/1666 +Suppress the affected warning in FBGEMM. + +Author: Alexander Grund (TU Dresden) + +Submodule third_party/fbgemm contains modified content +diff --git a/third_party/fbgemm/CMakeLists.txt b/third_party/fbgemm/CMakeLists.txt +index 58dcb9ae..c888f0f8 100644 +--- a/third_party/fbgemm/CMakeLists.txt ++++ b/third_party/fbgemm/CMakeLists.txt +@@ -147,10 +147,10 @@ else(MSVC) + string(APPEND CMAKE_CXX_FLAGS " -Werror") + string(APPEND CMAKE_CXX_FLAGS " -Wno-deprecated-declarations") + target_compile_options(fbgemm_avx2 PRIVATE +- "-m64" "-mavx2" "-mf16c" "-mfma") ++ "-m64" "-mavx2" "-mf16c" "-mfma" "-Wno-uninitialized") + target_compile_options(fbgemm_avx512 PRIVATE + "-m64" "-mavx2" "-mfma" "-mavx512f" "-mavx512bw" "-mavx512dq" +- "-mavx512vl") ++ "-mavx512vl" "-Wno-uninitialized") + set_source_files_properties( + src/FbgemmFP16UKernelsAvx2.cc + src/FbgemmFP16UKernelsAvx512.cc diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-kineto-crash-on-exit.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-kineto-crash-on-exit.patch new file mode 100644 index 00000000000..ea4708e3b68 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-kineto-crash-on-exit.patch @@ -0,0 +1,102 @@ +Fix a crash in libkineto on shutdown observed in e.g. test_jit_cuda_fuser.py +Taken from https://github.com/pytorch/kineto/pull/696 +by Dmytro Dzhulgakov + +Backported: Alexander Grund (TU Dresden) + +Submodule third_party/kineto contains modified content +diff --git a/third_party/kineto/libkineto/include/Config.h b/third_party/kineto/libkineto/include/Config.h +index 3e7f2d4..10c80d9 100644 +--- a/third_party/kineto/libkineto/include/Config.h ++++ b/third_party/kineto/libkineto/include/Config.h +@@ -315,6 +315,12 @@ class Config : public AbstractConfig { + + void print(std::ostream& s) const; + ++ // Config relies on some state with global static lifetime. If other ++ // threads are using the config, it's possible that the global state ++ // is destroyed before the threads stop. By hanging onto this handle, ++ // correct destruction order can be ensured. ++ static std::shared_ptr getStaticObjectsLifetimeHandle(); ++ + private: + explicit Config(const Config& other) = default; + +diff --git a/third_party/kineto/libkineto/src/Config.cpp b/third_party/kineto/libkineto/src/Config.cpp +index 2b6e04e..b23abd6 100644 +--- a/third_party/kineto/libkineto/src/Config.cpp ++++ b/third_party/kineto/libkineto/src/Config.cpp +@@ -155,10 +155,8 @@ struct FactoryMap { + + std::shared_ptr configFactories() { + // Ensure this is safe to call during shutdown, even as static +- // destructors are invoked. Once factories destructor has been +- // invoked, weak_ptr.lock() will return nullptr. +- // But calls before that point will have a valid shared_ptr, +- // delaying destruction of the underlying FactoryMap. ++ // destructors are invoked. getStaticObjectLifetimeHandle hangs onto ++ // FactoryMap delaying its destruction. + static auto factories = std::make_shared(); + static std::weak_ptr weak_ptr = factories; + return weak_ptr.lock(); +@@ -210,6 +208,10 @@ Config::Config() + } + } + ++std::shared_ptr Config::getStaticObjectsLifetimeHandle() { ++ return configFactories(); ++} ++ + uint8_t Config::createDeviceMask(const string& val) { + uint8_t res = 0; + for (const auto& d : splitAndTrim(val, ',')) { +diff --git a/third_party/kineto/libkineto/src/ConfigLoader.cpp b/third_party/kineto/libkineto/src/ConfigLoader.cpp +index 4080b67..ca72b32 100644 +--- a/third_party/kineto/libkineto/src/ConfigLoader.cpp ++++ b/third_party/kineto/libkineto/src/ConfigLoader.cpp +@@ -157,7 +157,7 @@ void ConfigLoader::startThread() { + } + } + +-ConfigLoader::~ConfigLoader() { ++void ConfigLoader::stopThread() { + if (updateThread_) { + stopFlag_ = true; + { +@@ -165,7 +165,12 @@ ConfigLoader::~ConfigLoader() { + updateThreadCondVar_.notify_one(); + } + updateThread_->join(); ++ updateThread_ = nullptr; + } ++} ++ ++ConfigLoader::~ConfigLoader() { ++ stopThread(); + #if !USE_GOOGLE_LOG + Logger::clearLoggerObservers(); + #endif // !USE_GOOGLE_LOG +@@ -249,6 +254,11 @@ void ConfigLoader::configureFromDaemon( + } + + void ConfigLoader::updateConfigThread() { ++ // It's important to hang to this reference until the thread stops. ++ // Otherwise, the Config's static members may be destroyed before this ++ // function finishes. ++ auto handle = Config::getStaticObjectsLifetimeHandle(); ++ + auto now = system_clock::now(); + auto next_config_load_time = now; + auto next_on_demand_load_time = now + onDemandConfigUpdateIntervalSecs_; +diff --git a/third_party/kineto/libkineto/src/ConfigLoader.h b/third_party/kineto/libkineto/src/ConfigLoader.h +index 4680816..83a94ac 100644 +--- a/third_party/kineto/libkineto/src/ConfigLoader.h ++++ b/third_party/kineto/libkineto/src/ConfigLoader.h +@@ -108,6 +108,7 @@ class ConfigLoader { + DaemonConfigLoader* daemonConfigLoader(); + + void startThread(); ++ void stopThread(); + void updateConfigThread(); + void updateBaseConfig(); + diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-numpy-deprecations.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-numpy-deprecations.patch new file mode 100644 index 00000000000..e9586796310 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-numpy-deprecations.patch @@ -0,0 +1,102 @@ +Numpy 1.24 removed some types deprecated earlier leading to failures in e.g. test_torch: +> ERROR: test_parsing_intlist (__main__.TestTorch) +> ... +> AttributeError: module 'numpy' has no attribute 'float'. + +Backported from https://github.com/pytorch/pytorch/pull/93997 +Author: Alexander Grund (TU Dresden) + +diff --git a/test/quantization/core/test_quantized_op.py b/test/quantization/core/test_quantized_op.py +index 79297e073f0..827a781df10 100644 +--- a/test/quantization/core/test_quantized_op.py ++++ b/test/quantization/core/test_quantized_op.py +@@ -3010,7 +3010,7 @@ class TestDynamicQuantizedOps(TestCase): + # W_scale = 1.0 + # W_zp = 0 + W_scales = np.ones(output_channels) +- W_zps = np.zeros(output_channels).astype(np.int) ++ W_zps = np.zeros(output_channels).astype(int) + W_value_min = -128 + W_value_max = 127 + W_q0 = np.round( +@@ -3581,9 +3581,9 @@ class TestQuantizedLinear(TestCase): + # xnnpack forces W_zp to 0 when using symmetric quantization + # ONEDNN only supports symmetric quantization of weight + if dtype == torch.qint8 or qengine_is_onednn(): +- W_zps = np.zeros(output_channels).astype(np.int) ++ W_zps = np.zeros(output_channels).astype(int) + else: +- W_zps = np.round(np.random.rand(output_channels) * 100 - 50).astype(np.int) ++ W_zps = np.round(np.random.rand(output_channels) * 100 - 50).astype(int) + # when using symmetric quantization + # special restriction for xnnpack fully connected op weight + # [-127, 127] instead of [-128, 127] +diff --git a/test/test_reductions.py b/test/test_reductions.py +index 0e36906f25f..20fcb6ef9ae 100644 +--- a/test/test_reductions.py ++++ b/test/test_reductions.py +@@ -1323,7 +1323,7 @@ class TestReductions(TestCase): + vals = [[True, True], [True, False], [False, False], []] + for val in vals: + result = torch.prod(torch.tensor(val, device=device), dtype=torch.bool).item() +- expect = np.prod(np.array(val), dtype=np.bool) ++ expect = np.prod(np.array(val), dtype=bool) + self.assertEqual(result, expect) + + result = torch.prod(torch.tensor(val, device=device)).item() +diff --git a/test/test_tensor_creation_ops.py b/test/test_tensor_creation_ops.py +index aab26452496..a71761ce670 100644 +--- a/test/test_tensor_creation_ops.py ++++ b/test/test_tensor_creation_ops.py +@@ -1440,14 +1440,14 @@ class TestTensorCreation(TestCase): + def test_ctor_with_numpy_array(self, device): + correct_dtypes = [ + np.double, +- np.float, ++ float, + np.float16, + np.int64, + np.int32, + np.int16, + np.int8, + np.uint8, +- np.bool, ++ bool, + ] + + incorrect_byteorder = '>' if sys.byteorder == 'little' else '<' +diff --git a/test/test_tensorboard.py b/test/test_tensorboard.py +index e836b0f1ba8..0857873a5fa 100644 +--- a/test/test_tensorboard.py ++++ b/test/test_tensorboard.py +@@ -796,7 +796,7 @@ class TestTensorBoardNumpy(BaseTestCase): + model = ModelHelper(name="mnist") + # how come those inputs don't break the forward pass =.=a + workspace.FeedBlob("data", np.random.randn(1, 3, 64, 64).astype(np.float32)) +- workspace.FeedBlob("label", np.random.randn(1, 1000).astype(np.int)) ++ workspace.FeedBlob("label", np.random.randn(1, 1000).astype(int)) + + with core.NameScope("conv1"): + conv1 = brew.conv(model, "data", 'conv1', dim_in=1, dim_out=20, kernel=5) +@@ -831,7 +831,7 @@ class TestTensorBoardNumpy(BaseTestCase): + def test_caffe2_simple_cnnmodel(self): + model = cnn.CNNModelHelper("NCHW", name="overfeat") + workspace.FeedBlob("data", np.random.randn(1, 3, 64, 64).astype(np.float32)) +- workspace.FeedBlob("label", np.random.randn(1, 1000).astype(np.int)) ++ workspace.FeedBlob("label", np.random.randn(1, 1000).astype(int)) + with core.NameScope("conv1"): + conv1 = model.Conv("data", "conv1", 3, 96, 11, stride=4) + relu1 = model.Relu(conv1, conv1) +diff --git a/test/test_torch.py b/test/test_torch.py +index 8de5b822d00..3121e256b21 100644 +--- a/test/test_torch.py ++++ b/test/test_torch.py +@@ -6182,7 +6182,7 @@ class TestTorch(TestCase): + # fail parse with float variables + self.assertRaises(TypeError, lambda: torch.ones((torch.tensor(3.), torch.tensor(4)))) + # fail parse with numpy floats +- self.assertRaises(TypeError, lambda: torch.ones((np.float(3.), torch.tensor(4)))) ++ self.assertRaises(TypeError, lambda: torch.ones((3., torch.tensor(4)))) + self.assertRaises(TypeError, lambda: torch.ones((np.array(3.), torch.tensor(4)))) + + # fail parse with > 1 element variables diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-protobuf-dependency.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-protobuf-dependency.patch new file mode 100644 index 00000000000..c92a9d49d02 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-protobuf-dependency.patch @@ -0,0 +1,35 @@ +Add proper dependency in libprotobuf target to get the correct set of flags. +Otherwise the build will fail with e.g.: + undefined reference to `google::protobuf::internal::ThreadSafeArena::thread_cache_' +This is caused by missing the `PROTOBUF_USE_DLLS` define required for libprotobuf as a shared library. +See https://github.com/pytorch/pytorch/issues/106297 + +Author: Alexander Grund (TU Dresden) + +diff --git a/caffe2/proto/CMakeLists.txt b/caffe2/proto/CMakeLists.txt +index ba6b696dde4..5033e228119 100644 +--- a/caffe2/proto/CMakeLists.txt ++++ b/caffe2/proto/CMakeLists.txt +@@ -7,6 +7,7 @@ endif() + caffe2_protobuf_generate_cpp_py(Caffe2_PROTO_SRCS Caffe2_PROTO_HEADERS Caffe2_PROTO_PY ${Caffe2_PROTOBUF_FILES}) + + add_library(Caffe2_PROTO OBJECT ${Caffe2_PROTO_HEADERS} ${Caffe2_PROTO_SRCS}) ++target_link_libraries(Caffe2_PROTO PRIVATE protobuf::libprotobuf) + + if(MSVC) + if(BUILD_SHARED_LIBS) +diff --git a/cmake/ProtoBuf.cmake b/cmake/ProtoBuf.cmake +index 8d7633c4ab0..fb0e9a0c5f7 100644 +--- a/cmake/ProtoBuf.cmake ++++ b/cmake/ProtoBuf.cmake +@@ -122,10 +122,6 @@ if((NOT TARGET protobuf::libprotobuf) AND (NOT TARGET protobuf::libprotobuf-lite + # "Please set the proper paths so that I can find protobuf correctly.") + endif() + +-get_target_property(__tmp protobuf::libprotobuf INTERFACE_INCLUDE_DIRECTORIES) +-message(STATUS "Caffe2 protobuf include directory: " ${__tmp}) +-include_directories(BEFORE SYSTEM ${__tmp}) +- + # If Protobuf_VERSION is known (true in most cases, false if we are building + # local protobuf), then we will add a protobuf version check in + # Caffe2Config.cmake.in. diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-python-3.11-compat.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-python-3.11-compat.patch new file mode 100644 index 00000000000..327ff5fba84 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-python-3.11-compat.patch @@ -0,0 +1,160 @@ +Some code isn't compatible with Python 3.11+ +Backport https://github.com/pytorch/pytorch/pull/92895 to fix this. + +Author: Alexander Grund (TU Dresden) + +diff --git a/test/test_fx.py b/test/test_fx.py +index c8da9d3d2cf..6aefb4b9b2c 100644 +--- a/test/test_fx.py ++++ b/test/test_fx.py +@@ -3295,6 +3295,7 @@ class TestFX(JitTestCase): + finally: + del sys.modules["__future__"] + ++ @unittest.skipIf(sys.version_info > (3, 11), "Does not work in 3.11") + def test_annotations_empty_tuple(self): + class Foo(torch.nn.Module): + def forward(self, x: Tuple[()], y: Tuple[str, Tuple[()]]): +@@ -4030,7 +4031,7 @@ class TestFunctionalTracing(JitTestCase): + "max_pool2d": PROXY_ITERATED, + "max_pool3d": PROXY_ITERATED, + +- "group_norm": LEN_ERROR ++ "group_norm": PROXY_ITERATED + } + + @classmethod +@@ -4069,7 +4070,7 @@ class TestFunctionalTracing(JitTestCase): + + def functional_test(self): + if func_name in self.UNTRACEABLE_FUNCTIONALS_PY38 and \ +- sys.version_info >= (3, 8) and sys.version_info < (3, 11): ++ sys.version_info >= (3, 8) and sys.version_info < (3, 12): + exc, err = self.UNTRACEABLE_FUNCTIONALS_PY38[func_name] + with self.assertRaisesRegex(exc, err): + symbolic_trace(fn) +diff --git a/torch/fx/_symbolic_trace.py b/torch/fx/_symbolic_trace.py +index ff9df1161a7..521bb02c846 100644 +--- a/torch/fx/_symbolic_trace.py ++++ b/torch/fx/_symbolic_trace.py +@@ -119,7 +119,29 @@ def _patch_function(fn: FunctionType, nargs: int) -> FunctionType: + co = fn.__code__ + co_flags = co.co_flags & ~HAS_VARSTUFF + co_args: tuple +- if hasattr(co, "co_posonlyargcount"): ++ if hasattr(co, "co_qualname"): ++ # Python-3.11+ code signature ++ co_args = ( ++ nargs, ++ 0, ++ 0, ++ co.co_nlocals, ++ co.co_stacksize, ++ co_flags, ++ co.co_code, ++ co.co_consts, ++ co.co_names, ++ co.co_varnames, ++ co.co_filename, ++ co.co_name, ++ co.co_qualname, # type: ignore[attr-defined] ++ co.co_firstlineno, ++ co.co_lnotab, ++ co.co_exceptiontable, # type: ignore[attr-defined] ++ co.co_freevars, ++ co.co_cellvars, ++ ) ++ elif hasattr(co, "co_posonlyargcount"): + co_args = ( + nargs, + 0, +diff --git a/torch/fx/operator_schemas.py b/torch/fx/operator_schemas.py +index 7ec3bc9a673..7c8971fb3ec 100644 +--- a/torch/fx/operator_schemas.py ++++ b/torch/fx/operator_schemas.py +@@ -61,18 +61,29 @@ def _torchscript_type_to_python_type(ts_type : 'torch._C.JitType') -> Any: + return eval(ts_type.annotation_str, _type_eval_globals) + + def _torchscript_schema_to_signature(ts_schema : torch._C.FunctionSchema) -> inspect.Signature: +- parameters : List[inspect.Parameter] = [] ++ from inspect import Parameter ++ parameters : List[Parameter] = [] + for arg in ts_schema.arguments: + arg_type = _torchscript_type_to_python_type(arg.type) +- default = arg.default_value if arg.has_default_value() else inspect.Parameter.empty ++ default = arg.default_value if arg.has_default_value() else Parameter.empty + # TODO: Figure out if this is safe. It seems like when generating the type signatures for + # PythonArgParser, we emit signatures with `input` instead of `self` as the first tensor + # argument name. Downstream, if someone converts that positional argument to a keyword + # argument, the name mismatch will break things, so here we're going to normalize the + # name to "input" + name = arg.name if arg.name != 'self' else 'input' +- kind = inspect.Parameter.KEYWORD_ONLY if arg.kwarg_only else inspect.Parameter.POSITIONAL_OR_KEYWORD +- parameters.append(inspect.Parameter(name=name, kind=kind, default=default, annotation=arg_type)) ++ kind = Parameter.KEYWORD_ONLY if arg.kwarg_only else Parameter.POSITIONAL_OR_KEYWORD ++ # "from" is a keyword therefore it must be a POSITIONAL_ONLY argument ++ if name == "from": ++ assert kind == Parameter.POSITIONAL_OR_KEYWORD ++ # ParameterKind type is internal implementation detail to inspec package ++ # which makes it hard to do type annoation ++ kind = Parameter.POSITIONAL_ONLY # type: ignore[assignment] ++ # This renders all previous arguments to positional only ++ for idx, p in enumerate(parameters): ++ assert p.kind == Parameter.POSITIONAL_OR_KEYWORD ++ parameters[idx] = Parameter(name=p.name, kind=Parameter.POSITIONAL_ONLY, default=p.default, annotation=p.annotation) ++ parameters.append(Parameter(name=name, kind=kind, default=default, annotation=arg_type)) + return_types = [_torchscript_type_to_python_type(ret.type) for ret in ts_schema.returns] + if len(return_types) == 0: + return_type = None +@@ -392,7 +403,12 @@ def _args_kwargs_to_normalized_args_kwargs(sig : inspect.Signature, args : Tuple + supported_parameter_types = { + inspect.Parameter.POSITIONAL_OR_KEYWORD, inspect.Parameter.KEYWORD_ONLY} + if any(p.kind not in supported_parameter_types for p in sig.parameters.values()): +- return None ++ # Add an exception for one signature, which is common for random/uniform, i.e.: ++ # Tensor(a!) self, float from=0, float to=1, *, Generator? generator=None ++ # `from` is Python keyword and as such functions with that signature should have ++ # positional-only args, but at the same time they could be dispatched as kwargs ++ if list(sig.parameters.keys()) != ['input', 'from', 'to', 'generator']: ++ return None + + bound_args = sig.bind(*args, **kwargs) + bound_args.apply_defaults() +diff --git a/torch/fx/proxy.py b/torch/fx/proxy.py +index 5d65f03e29b..120452dfd71 100644 +--- a/torch/fx/proxy.py ++++ b/torch/fx/proxy.py +@@ -1,4 +1,5 @@ + import dis ++import sys + import torch + import inspect + import operator +@@ -267,7 +268,13 @@ class Proxy: + assert frame is not None + calling_frame = frame.f_back + assert calling_frame is not None +- inst = list(dis.get_instructions(calling_frame.f_code))[calling_frame.f_lasti // 2] ++ inst_list = list(dis.get_instructions(calling_frame.f_code)) ++ if sys.version_info >= (3, 11): ++ from bisect import bisect_left ++ inst_idx = bisect_left(inst_list, calling_frame.f_lasti, key=lambda x: x.offset) ++ else: ++ inst_idx = calling_frame.f_lasti // 2 ++ inst = inst_list[inst_idx] + if inst.opname == 'UNPACK_SEQUENCE': + return (self[i] for i in range(inst.argval)) # type: ignore[index] + +@@ -282,7 +289,11 @@ class Proxy: + calling_frame = frame.f_back + assert calling_frame is not None + insts = list(dis.get_instructions(calling_frame.f_code)) +- cur = calling_frame.f_lasti // 2 ++ if sys.version_info >= (3, 11): ++ from bisect import bisect_left ++ cur = bisect_left(insts, calling_frame.f_lasti, key=lambda x: x.offset) ++ else: ++ cur = calling_frame.f_lasti // 2 + inst = insts[cur] + + if inst.opname == 'POP_JUMP_IF_TRUE': diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-warning-in-test-cpp-api.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-warning-in-test-cpp-api.patch new file mode 100644 index 00000000000..186cfe89dfa --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-warning-in-test-cpp-api.patch @@ -0,0 +1,29 @@ +From 367387bab836c73c23719f97d929572c8b4e0fad Mon Sep 17 00:00:00 2001 +From: Nick Rossenbach +Date: Tue, 18 Apr 2023 23:31:51 +0200 +Subject: [PATCH] Add -Wno-error=nonnull for test/cpp/api/ + +On some platforms the build might fail due to the nonnull error +being triggered by different compiler behavior. + +Fix for #99278. +--- + test/cpp/api/CMakeLists.txt | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/test/cpp/api/CMakeLists.txt b/test/cpp/api/CMakeLists.txt +index 6b801a07318279..181139b01360c3 100644 +--- a/test/cpp/api/CMakeLists.txt ++++ b/test/cpp/api/CMakeLists.txt +@@ -80,6 +80,11 @@ if(NOT MSVC) + target_compile_options_if_supported(test_api "-Wno-maybe-uninitialized") + # gcc gives nonsensical warnings about variadic.h + target_compile_options_if_supported(test_api "-Wno-unused-but-set-parameter") ++ # the nonnull check might trigger for some build configurations, ++ # probably happening due to different code optimization ++ # (see e.g. https://rkoucha.fr/tech_corner/nonnull_gcc_attribute.html) ++ # this happened for a riscv build: https://github.com/pytorch/pytorch/issues/99278 ++ target_compile_options_if_supported(test_api "-Wno-error=nonnull") + endif() + + if(INSTALL_TEST) diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-wrong-check-in-fsdp-tests.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-wrong-check-in-fsdp-tests.patch new file mode 100644 index 00000000000..ec664f7ae32 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-wrong-check-in-fsdp-tests.patch @@ -0,0 +1,21 @@ +A check in the test code was inverted and incomplete. +See https://github.com/pytorch/pytorch/pull/90252 & https://github.com/pytorch/pytorch/pull/90785 + +Author: Alexander Grund (TU Dresden) + +diff --git a/torch/testing/_internal/common_fsdp.py b/torch/testing/_internal/common_fsdp.py +index eda1b953d95..56a95961371 100644 +--- a/torch/testing/_internal/common_fsdp.py ++++ b/torch/testing/_internal/common_fsdp.py +@@ -1014,7 +1014,10 @@ class FSDPTest(MultiProcessTestCase): + # the DDP parameters are in FP16 (from `half()`) while the FSDP + # parameters are in FP32 (from `summon_full_params()`) and (2) DDP runs + # the optimizer in FP16 while FSDP runs it in FP32 +- if mixed_precision is not None: ++ # TODO: Disable checking the parameters for pure FP16 due to floating ++ # point inaccuracy. Note that this means that the backward pass is not ++ # checked: https://github.com/pytorch/pytorch/issues/90784 ++ if mixed_precision is None and not use_pure_fp16: + self.assertEqual( + ddp_params, + fsdp_unsharded_params, diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_increase-tolerance-test_jit.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_increase-tolerance-test_jit.patch new file mode 100644 index 00000000000..b1d87bd071f --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_increase-tolerance-test_jit.patch @@ -0,0 +1,24 @@ +Fix the following failure: + +FAIL: test_freeze_conv_relu_fusion (jit.test_freezing.TestFrozenOptimizations) +---------------------------------------------------------------------- +... +Mismatched elements: 10 / 30 (33.3%) +Greatest absolute difference: 3.057718276977539e-05 at index (2, 3, 0, 0, 0) (up to 1e-05 allowed) +Greatest relative difference: 8.758584417742737e-05 at index (0, 3, 0, 0, 0) (up to 1.3e-06 allowed) + +Author: Alexander Grund (TU Dresden) + +diff --git a/test/jit/test_freezing.py b/test/jit/test_freezing.py +index cdb2187f6bb..900c7dc5f53 100644 +--- a/test/jit/test_freezing.py ++++ b/test/jit/test_freezing.py +@@ -2255,7 +2255,7 @@ class TestFrozenOptimizations(JitTestCase): + else: + FileCheck().check("aten::cudnn_convolution_relu").run(frozen_mod.graph) + +- self.assertEqual(mod_eager(inp), frozen_mod(inp)) ++ self.assertEqual(mod_eager(inp), frozen_mod(inp), atol=5e-5, rtol=1e-4) + + @unittest.skipIf(not (TEST_CUDNN or TEST_WITH_ROCM), "requires CUDNN") + def test_freeze_conv_relu_fusion_not_forward(self): diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_increase-tolerance-test_optim.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_increase-tolerance-test_optim.patch new file mode 100644 index 00000000000..566751f4990 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_increase-tolerance-test_optim.patch @@ -0,0 +1,17 @@ +Increase tolerance for failing test(s). +See https://github.com/pytorch/pytorch/issues/98414 + +Author: Alexander Grund (TU Dresden) + +diff --git a/test/test_optim.py b/test/test_optim.py +index 2cb27376919..ce7cf2cb160 100644 +--- a/test/test_optim.py ++++ b/test/test_optim.py +@@ -777,6 +777,7 @@ class TestOptim(TestCase): + ) + + def test_nadam(self): ++ self.precision, self.rel_tol = (2e-05, 1e-05) + self._test_basic_cases( + lambda weight, bias, foreach: optim.NAdam([weight, bias], lr=1e-3, foreach=foreach), + constructor_accepts_foreach=True, diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_skip-failing-singular-grad-test.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_skip-failing-singular-grad-test.patch new file mode 100644 index 00000000000..0933e5a3abc --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_skip-failing-singular-grad-test.patch @@ -0,0 +1,28 @@ +TestGradientsCPU.test_forward_mode_AD_linalg_det_singular_cpu_complex128 sometimes fails with + + raise GradcheckError(_get_notallclose_msg(a, n, j, i, complex_indices, test_imag, is_forward_ad) + jacobians_str) + torch.autograd.gradcheck.GradcheckError: While considering the imaginary part of complex inputs only, Jacobian computed with forward mode mismatch for output 0 with respect to input 0, + numerical:tensor([-0.1722-0.0510j, 0.0925-0.0695j, 0.1424+0.0206j, 0.0174-0.0618j], + dtype=torch.complex128) + analytical:tensor([-0.0000+0.0000j, 0.0925-0.0695j, 0.1424+0.0206j, 0.0174-0.0618j], + dtype=torch.complex128, grad_fn=) + +Author: Alexander Grund (TU Dresden) + +diff --git a/torch/testing/_internal/opinfo/definitions/linalg.py b/torch/testing/_internal/opinfo/definitions/linalg.py +index 0eb1ca07644..f3e5f9ec6ed 100644 +--- a/torch/testing/_internal/opinfo/definitions/linalg.py ++++ b/torch/testing/_internal/opinfo/definitions/linalg.py +@@ -1341,6 +1341,12 @@ op_db: List[OpInfo] = [ + "test_fn_fwgrad_bwgrad", + dtypes=(torch.complex128,), + ), ++ DecorateInfo( ++ unittest.skip(""), ++ "TestGradients", ++ "test_forward_mode_AD", ++ dtypes=(torch.complex128,), ++ ), + DecorateInfo( + unittest.skip("Skipped, see https://github.com//issues/84192"), + "TestGradients", diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_skip-test-requiring-online-access.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_skip-test-requiring-online-access.patch new file mode 100644 index 00000000000..cd50539752f --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_skip-test-requiring-online-access.patch @@ -0,0 +1,25 @@ +This tests downloads a Perl file from a Github repo which may fail in: + + File "test/test_cuda.py", line 4632, in test_memory_snapshot + torch.cuda.memory._save_segment_usage(f.name) + File "/torch/cuda/memory.py", line 610, in _save_segment_usage + f.write(_segments(snapshot)) + File "/torch/cuda/_memory_viz.py", line 60, in segments + return format_flamegraph(f.getvalue()) + File "/torch/cuda/_memory_viz.py", line 21, in format_flamegraph + urllib.request.urlretrieve( + +Author: Alexander Grund (TU Dresden) + +diff --git a/test/test_cuda.py b/test/test_cuda.py +index 50644c22875..64d0eeb2fd4 100644 +--- a/test/test_cuda.py ++++ b/test/test_cuda.py +@@ -4599,6 +4599,7 @@ class TestCudaComm(TestCase): + cat = torch.cat((outputs[0][i].to('cpu'), outputs[1][i].to('cpu'))) + self.assertTrue(torch.equal(x, cat)) + ++ @unittest.skip("Requires internet access") + def test_memory_snapshot(self): + try: + torch.cuda.memory.empty_cache() diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1-foss-2022a.eb b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1-foss-2022a.eb new file mode 100644 index 00000000000..e3428bfcbe7 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1-foss-2022a.eb @@ -0,0 +1,147 @@ +name = 'PyTorch' +version = '2.0.1' + +homepage = 'https://pytorch.org/' +description = """Tensors and Dynamic neural networks in Python with strong GPU acceleration. +PyTorch is a deep learning framework that puts Python first.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +source_urls = [GITHUB_RELEASE] +sources = ['%(namelower)s-v%(version)s.tar.gz'] +patches = [ + 'PyTorch-1.7.0_disable-dev-shm-test.patch', + 'PyTorch-1.11.1_skip-test_init_from_local_shards.patch', + 'PyTorch-1.12.1_add-hypothesis-suppression.patch', + 'PyTorch-1.12.1_fix-test_cpp_extensions_jit.patch', + 'PyTorch-1.12.1_fix-TestTorch.test_to.patch', + 'PyTorch-1.12.1_skip-test_round_robin.patch', + 'PyTorch-1.13.1_fix-gcc-12-warning-in-fbgemm.patch', + 'PyTorch-1.13.1_fix-protobuf-dependency.patch', + 'PyTorch-1.13.1_fix-warning-in-test-cpp-api.patch', + 'PyTorch-1.13.1_skip-failing-singular-grad-test.patch', + 'PyTorch-1.13.1_skip-tests-without-fbgemm.patch', + 'PyTorch-2.0.1_add-missing-vsx-vector-shift-functions.patch', + 'PyTorch-2.0.1_avoid-test_quantization-failures.patch', + 'PyTorch-2.0.1_disable-test-sharding.patch', + 'PyTorch-2.0.1_fix-numpy-compat.patch', + 'PyTorch-2.0.1_fix-shift-ops.patch', + 'PyTorch-2.0.1_fix-skip-decorators.patch', + 'PyTorch-2.0.1_fix-test_memory_profiler.patch', + 'PyTorch-2.0.1_fix-test-ops-conf.patch', + 'PyTorch-2.0.1_fix-torch.compile-on-ppc.patch', + 'PyTorch-2.0.1_fix-ub-in-inductor-codegen.patch', + 'PyTorch-2.0.1_fix-vsx-loadu.patch', + 'PyTorch-2.0.1_ignore_unexpected_success_in_test_torchinductor_opinfo.patch', + 'PyTorch-2.0.1_no-cuda-stubs-rpath.patch', + 'PyTorch-2.0.1_remove-test-requiring-online-access.patch', + 'PyTorch-2.0.1_skip-diff-test-on-ppc.patch', + 'PyTorch-2.0.1_skip-failing-gradtest.patch', + 'PyTorch-2.0.1_skip-test_shuffle_reproducibility.patch', + 'PyTorch-2.0.1_skip-tests-skipped-in-subprocess.patch', +] +checksums = [ + {'pytorch-v2.0.1.tar.gz': '9c564ca440265c69400ef5fdd48bf15e28af5aa4bed84c95efaad960a6699998'}, + {'PyTorch-1.7.0_disable-dev-shm-test.patch': '622cb1eaeadc06e13128a862d9946bcc1f1edd3d02b259c56a9aecc4d5406b8a'}, + {'PyTorch-1.11.1_skip-test_init_from_local_shards.patch': + '4aeb1b0bc863d4801b0095cbce69f8794066748f0df27c6aaaf729c5ecba04b7'}, + {'PyTorch-1.12.1_add-hypothesis-suppression.patch': + 'e71ffb94ebe69f580fa70e0de84017058325fdff944866d6bd03463626edc32c'}, + {'PyTorch-1.12.1_fix-test_cpp_extensions_jit.patch': + '1efc9850c431d702e9117d4766277d3f88c5c8b3870997c9974971bce7f2ab83'}, + {'PyTorch-1.12.1_fix-TestTorch.test_to.patch': '75f27987c3f25c501e719bd2b1c70a029ae0ee28514a97fe447516aee02b1535'}, + {'PyTorch-1.12.1_skip-test_round_robin.patch': '63d4849b78605aa088fdff695637d9473ea60dee603a3ff7f788690d70c55349'}, + {'PyTorch-1.13.1_fix-gcc-12-warning-in-fbgemm.patch': + '5c7be91a6096083a0b1315efe0001537499c600f1f569953c6a2c7f4cc1d0910'}, + {'PyTorch-1.13.1_fix-protobuf-dependency.patch': + '8bd755a0cab7233a243bc65ca57c9630dfccdc9bf8c9792f0de4e07a644fcb00'}, + {'PyTorch-1.13.1_fix-warning-in-test-cpp-api.patch': + 'bdde0f2105215c95a54de64ec4b1a4520528510663174fef6d5b900eb1db3937'}, + {'PyTorch-1.13.1_skip-failing-singular-grad-test.patch': + '72688a57b2bb617665ad1a1d5e362c5111ae912c10936bb38a089c0204729f48'}, + {'PyTorch-1.13.1_skip-tests-without-fbgemm.patch': + '481e595f673baf8ae58b41697a6792b83048b0264aa79b422f48cd8c22948bb7'}, + {'PyTorch-2.0.1_add-missing-vsx-vector-shift-functions.patch': + 'da44961d6c204403ba0c4b88cedccf06a7a3d24f29c4398545f96efae7a45c95'}, + {'PyTorch-2.0.1_avoid-test_quantization-failures.patch': + '02e3f47e4ed1d7d6077e26f1ae50073dc2b20426269930b505f4aefe5d2f33cd'}, + {'PyTorch-2.0.1_disable-test-sharding.patch': 'a1ed7f21c9a269ea039a07a3d6574f885787b30ca5687143c96e096d31066cca'}, + {'PyTorch-2.0.1_fix-numpy-compat.patch': 'f3e5798193e0909a415d824f13772973200965db84476c1737824f2735f2db94'}, + {'PyTorch-2.0.1_fix-shift-ops.patch': '5ee655d5dba56d801d5618543b6ca299fa874939a3471f7b5449bfcb7f3f18c7'}, + {'PyTorch-2.0.1_fix-skip-decorators.patch': '2039012cef45446065e1a2097839fe20bb29fe3c1dcc926c3695ebf29832e920'}, + {'PyTorch-2.0.1_fix-test_memory_profiler.patch': + 'fd03117c46f59c1c62227d31c410c4cdd98fd35410976758cb9e7ec947582ddb'}, + {'PyTorch-2.0.1_fix-test-ops-conf.patch': '0f995e4f89baf3cbeb8666cbfe694666a2ef2bc53d97d6301f768b3ff9001fa4'}, + {'PyTorch-2.0.1_fix-torch.compile-on-ppc.patch': + '20f9172ae696da0c5c7b3bae6f0bf1221192cb1cbac3a44526a415087834bee7'}, + {'PyTorch-2.0.1_fix-ub-in-inductor-codegen.patch': + '1b37194f55ae678f3657b8728dfb896c18ffe8babe90987ce468c4fa9274f357'}, + {'PyTorch-2.0.1_fix-vsx-loadu.patch': 'a0ffa61da2d47c6acd09aaf6d4791e527d8919a6f4f1aa7ed38454cdcadb1f72'}, + {'PyTorch-2.0.1_ignore_unexpected_success_in_test_torchinductor_opinfo.patch': + '57e2985a5b7085c2786e4b0c4a5f0c81f6b2ae9d5804bbd552b06e8b1570f4c4'}, + {'PyTorch-2.0.1_no-cuda-stubs-rpath.patch': '8902e58a762240f24cdbf0182e99ccdfc2a93492869352fcb4ca0ec7e407f83a'}, + {'PyTorch-2.0.1_remove-test-requiring-online-access.patch': + '721ab0d35ed0ff8a46cb84ced5a98c0fb8ce6143cf6cea80b1360d3d7f64f584'}, + {'PyTorch-2.0.1_skip-diff-test-on-ppc.patch': 'f6e39cd774e5663df25507a73d37ad598157c2eadb2f47ca20a537dbe4b3e14f'}, + {'PyTorch-2.0.1_skip-failing-gradtest.patch': '8030bdec6ba49b057ab232d19a7f1a5e542e47e2ec340653a246ec9ed59f8bc1'}, + {'PyTorch-2.0.1_skip-test_shuffle_reproducibility.patch': + '7047862abc1abaff62954da59700f36d4f39fcf83167a638183b1b7f8fec78ae'}, + {'PyTorch-2.0.1_skip-tests-skipped-in-subprocess.patch': + '166c134573a95230e39b9ea09ece3ad8072f39d370c9a88fb2a1e24f6aaac2b5'}, +] + +osdependencies = [OS_PKG_IBVERBS_DEV] + +builddependencies = [ + ('CMake', '3.23.1'), + ('hypothesis', '6.46.7'), + # For tests + ('pytest-rerunfailures', '11.1'), + ('pytest-shard', '0.1.2'), +] + +dependencies = [ + ('Ninja', '1.10.2'), # Required for JIT compilation of C++ extensions + ('Python', '3.10.4'), + ('protobuf', '3.19.4'), + ('protobuf-python', '3.19.4'), + ('pybind11', '2.9.2'), + ('SciPy-bundle', '2022.05'), + ('PyYAML', '6.0'), + ('MPFR', '4.1.0'), + ('GMP', '6.2.1'), + ('numactl', '2.0.14'), + ('FFmpeg', '4.4.2'), + ('Pillow', '9.1.1'), + ('expecttest', '0.1.3'), + ('networkx', '2.8.4'), + ('sympy', '1.10.1'), +] + +excluded_tests = { + '': [ + # This test seems to take too long on NVIDIA Ampere at least. + 'distributed/test_distributed_spawn', + # Broken on CUDA 11.6/11.7: https://github.com/pytorch/pytorch/issues/75375 + 'distributions/test_constraints', + # no xdoctest + 'doctests', + # failing on broadwell + # See https://github.com/easybuilders/easybuild-easyconfigs/issues/17712 + 'test_native_mha', + # intermittent failures on various systems + # See https://github.com/easybuilders/easybuild-easyconfigs/issues/17712 + 'distributed/rpc/test_tensorpipe_agent', + ] +} + +runtest = 'cd test && PYTHONUNBUFFERED=1 %(python)s run_test.py --continue-through-error --verbose %(excluded_tests)s' + +# Especially test_quantization has a few corner cases that are triggered by the random input values, +# those cannot be easily avoided, see https://github.com/pytorch/pytorch/issues/107030 +# So allow a low number of tests to fail as the tests "usually" succeed +max_failed_tests = 2 + +tests = ['PyTorch-check-cpp-extension.py'] + +moduleclass = 'ai' diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_add-missing-vsx-vector-shift-functions.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_add-missing-vsx-vector-shift-functions.patch new file mode 100644 index 00000000000..0f30c6b98c5 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_add-missing-vsx-vector-shift-functions.patch @@ -0,0 +1,109 @@ +The `Vectorized` class template specializations for VSX are missing the +left and right shift operators. +Add a backported version of the fixed operators of https://github.com/pytorch/pytorch/pull/109886 + +Author: Alexander Grund (TU Dresden) + +diff --git a/aten/src/ATen/cpu/vec/vec256/vsx/vec256_int16_vsx.h b/aten/src/ATen/cpu/vec/vec256/vsx/vec256_int16_vsx.h +index 7c300c8087c..84c84286740 100644 +--- a/aten/src/ATen/cpu/vec/vec256/vsx/vec256_int16_vsx.h ++++ b/aten/src/ATen/cpu/vec/vec256/vsx/vec256_int16_vsx.h +@@ -348,6 +348,7 @@ Vectorized inline minimum( + return a.minimum(b); + } + ++DEFINE_SHIFT_FUNCS(int16_t) + + } // namespace + } // namespace vec +diff --git a/aten/src/ATen/cpu/vec/vec256/vsx/vec256_int32_vsx.h b/aten/src/ATen/cpu/vec/vec256/vsx/vec256_int32_vsx.h +index c98ab6215e6..e1e86d3b53a 100644 +--- a/aten/src/ATen/cpu/vec/vec256/vsx/vec256_int32_vsx.h ++++ b/aten/src/ATen/cpu/vec/vec256/vsx/vec256_int32_vsx.h +@@ -279,6 +279,8 @@ Vectorized inline minimum( + return a.minimum(b); + } + ++DEFINE_SHIFT_FUNCS(int32_t) ++ + } // namespace + } // namespace vec + } // namespace at +diff --git a/aten/src/ATen/cpu/vec/vec256/vsx/vec256_int64_vsx.h b/aten/src/ATen/cpu/vec/vec256/vsx/vec256_int64_vsx.h +index a4171026a2b..70613d90443 100644 +--- a/aten/src/ATen/cpu/vec/vec256/vsx/vec256_int64_vsx.h ++++ b/aten/src/ATen/cpu/vec/vec256/vsx/vec256_int64_vsx.h +@@ -231,6 +231,8 @@ Vectorized inline minimum( + return a.minimum(b); + } + ++DEFINE_SHIFT_FUNCS(int64_t) ++ + } // namespace + } // namespace vec + } // namespace at +diff --git a/aten/src/ATen/cpu/vec/vec256/vsx/vsx_helpers.h b/aten/src/ATen/cpu/vec/vec256/vsx/vsx_helpers.h +index dab38458184..52032cdd817 100644 +--- a/aten/src/ATen/cpu/vec/vec256/vsx/vsx_helpers.h ++++ b/aten/src/ATen/cpu/vec/vec256/vsx/vsx_helpers.h +@@ -2,6 +2,7 @@ + #include + #include + #include ++#include + + using vbool8 = __attribute__((altivec(vector__))) __attribute__((altivec(bool__))) char; + using vbool16 = __attribute__((altivec(vector__))) __attribute__((altivec(bool__))) short; +@@ -18,6 +19,11 @@ using vuint64 = __attribute__((altivec(vector__))) unsigned long long; + using vfloat32 = __attribute__((altivec(vector__))) float; + using vfloat64 = __attribute__((altivec(vector__))) double; + ++inline auto make_vuint(vint8 v){ return reinterpret_cast(v); } ++inline auto make_vuint(vint16 v){ return reinterpret_cast(v); } ++inline auto make_vuint(vint32 v){ return reinterpret_cast(v); } ++inline auto make_vuint(vint64 v){ return reinterpret_cast(v); } ++ + #if !defined(vec_float) + C10_ALWAYS_INLINE vfloat32 vec_float(const vint32& vec_in) { + vfloat32 vec_out; +@@ -448,6 +454,40 @@ const vfloat64 vd_imag_half = vfloat64{0.0, 0.5}; + const vfloat64 vd_sqrt2_2 = vfloat64{0.70710678118654757, 0.70710678118654757}; + const vfloat64 vd_pi_2 = vfloat64{M_PI / 2.0, 0.0}; + ++template ++Vectorized VsxShiftRightArith(const Vectorized& a, const Vectorized& b) { ++ const Vectorized max_shift(sizeof(T) * CHAR_BIT - std::is_signed_v); ++ const auto mask = (b < Vectorized(0)) | (b >= max_shift); ++ const auto shift = Vectorized::blendv(b, max_shift, mask); ++ return Vectorized{ ++ vec_sra(a.vec0(), make_vuint(shift.vec0())), ++ vec_sra(a.vec1(), make_vuint(shift.vec1()))}; ++} ++ ++template ++Vectorized VsxShiftLeftArith(const Vectorized& a, const Vectorized& b) { ++ const Vectorized max_shift(sizeof(T) * CHAR_BIT); ++ const auto mask = (b < Vectorized(0)) | (b >= max_shift); ++ Vectorized ret( ++ vec_sl(a.vec0(), make_vuint(b.vec0())), ++ vec_sl(a.vec1(), make_vuint(b.vec1()))); ++ return Vectorized::blendv(ret, Vectorized(0), mask); ++} ++ ++#define DEFINE_SHIFT_FUNCS(operand_type) \ ++ template <> \ ++ Vectorized C10_ALWAYS_INLINE operator>>( \ ++ const Vectorized& a, \ ++ const Vectorized& b) { \ ++ return VsxShiftRightArith(a, b); \ ++ } \ ++ template <> \ ++ Vectorized C10_ALWAYS_INLINE operator<<( \ ++ const Vectorized& a, \ ++ const Vectorized& b) { \ ++ return VsxShiftLeftArith(a, b); \ ++ } \ ++ + } // namespace + } // namespace vec + } // namespace at diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_avoid-test_quantization-failures.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_avoid-test_quantization-failures.patch new file mode 100644 index 00000000000..01a7e098c41 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_avoid-test_quantization-failures.patch @@ -0,0 +1,19 @@ +The quantized values returned by hypothesis as test inputs might still cause overflows. +Hence reduce their maximum value by a factor that should fix most such cases. +See e.g. https://github.com/pytorch/pytorch/issues/111471 + +Author: Alexander Grund (TU Dresden) + +diff --git a/torch/testing/_internal/hypothesis_utils.py b/torch/testing/_internal/hypothesis_utils.py +index 15e7b4512a4..67df4d74e9d 100644 +--- a/torch/testing/_internal/hypothesis_utils.py ++++ b/torch/testing/_internal/hypothesis_utils.py +@@ -36,6 +36,8 @@ _ENFORCED_ZERO_POINT = defaultdict(lambda: None, { + def _get_valid_min_max(qparams): + scale, zero_point, quantized_type = qparams + adjustment = 1 + torch.finfo(torch.float).eps ++ # provide some leeway for scaling values without overflowing long ++ adjustment *= 1e4 + _long_type_info = torch.iinfo(torch.long) + long_min, long_max = _long_type_info.min / adjustment, _long_type_info.max / adjustment + # make sure intermediate results are within the range of long diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_disable-test-sharding.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_disable-test-sharding.patch new file mode 100644 index 00000000000..525d9fda1dc --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_disable-test-sharding.patch @@ -0,0 +1,18 @@ +Our error checking doesn't work well with the parallel/sharded pytorch test. +As the overall gain is low, disable it and always run the full test suite in a single process. + +Author: Alexander Grund (TU Dresden) + +diff --git a/test/run_test.py b/test/run_test.py +index 9619cb2626e..ddfb200148f 100755 +--- a/test/run_test.py ++++ b/test/run_test.py +@@ -815,7 +815,7 @@ def run_test_ops(test_module, test_directory, options): + ] + default_unittest_args.extend(rerun_options) + +- if 'slow-gradcheck' in os.getenv("BUILD_ENVIRONMENT", ""): ++ if True: + extra_unittest_args = default_unittest_args.copy() + # there are a lot of tests that take up a lot of space in slowgrad check, so don't bother parallelizing + # it's also on periodic so we don't care about TTS as much diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_fix-numpy-compat.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_fix-numpy-compat.patch new file mode 100644 index 00000000000..99b3cc6b770 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_fix-numpy-compat.patch @@ -0,0 +1,237 @@ +From ae1ed277563a1ac887faef4370ad9933c883ab9e Mon Sep 17 00:00:00 2001 +From: Omkar Salpekar +Date: Wed, 21 Jun 2023 18:16:40 +0000 +Subject: [PATCH] [codemod][numpy] replace np.str with str (#103931) + +Summary: +`np.str` is removed from numpy 1.20.0. It was an alias to builtin `str` and it's safe to do the replacement. + +The whole changes is mechanical, generated using the following onliner: +``` +fbgr -sl 'np\.str\b' | xargs perl -pi -e 's,\bnp\.str\b,str,g' +``` + +Test Plan: sandcastle + +Differential Revision: D46586144 + +Pull Request resolved: https://github.com/pytorch/pytorch/pull/103931 +Approved by: https://github.com/huydhn +--- + caffe2/python/core.py | 2 +- + caffe2/python/hypothesis_test.py | 4 ++-- + caffe2/python/layer_model_helper.py | 2 +- + caffe2/python/operator_test/adagrad_test_helper.py | 2 +- + caffe2/python/operator_test/cast_op_test.py | 2 +- + caffe2/python/operator_test/detectron_keypoints.py | 4 ++-- + caffe2/python/operator_test/tile_op_test.py | 6 +++--- + caffe2/python/schema.py | 2 +- + caffe2/python/schema_test.py | 4 ++-- + caffe2/python/utils.py | 6 +++--- + .../examples/maml_omniglot/support/omniglot_loaders.py | 4 ++-- + test/quantization/core/test_quantized_op.py | 4 ++-- + 12 files changed, 21 insertions(+), 21 deletions(-) + +diff --git a/caffe2/python/core.py b/caffe2/python/core.py +index d9f97b6121fdd2..e69af5c0a482b1 100644 +--- a/caffe2/python/core.py ++++ b/caffe2/python/core.py +@@ -1636,7 +1636,7 @@ def do_set(operator): + return do_set(self.GivenTensorIntFill) + elif array.dtype == np.int64: + return do_set(self.GivenTensorInt64Fill) +- elif array.dtype == np.str: ++ elif array.dtype == str: + return do_set(self.GivenTensorStringFill) + elif array.dtype == np.bool: + return do_set(self.GivenTensorBoolFill) +diff --git a/caffe2/python/hypothesis_test.py b/caffe2/python/hypothesis_test.py +index 02200f8cf74f18..cb5d00064b6eda 100644 +--- a/caffe2/python/hypothesis_test.py ++++ b/caffe2/python/hypothesis_test.py +@@ -1629,8 +1629,8 @@ def test_tt_sls_layer(self, gc, dc): + c0 = np.ones([10, 1, 2, 16]).astype(np.float32) + c1 = np.ones([10, 16, 2, 16]).astype(np.float32) + c2 = np.ones([10, 16, 2, 1]).astype(np.float32) +- # index = np.array([0, 1, 2, 1, 4], dtype=np.int) +- # lengths = np.array([3, 2], dtype=np.int) ++ # index = np.array([0, 1, 2, 1, 4], dtype=int) ++ # lengths = np.array([3, 2], dtype=int) + index = np.array([0, 1, 2, 1, 4], np.int64) + lengths = np.array([3, 2], np.int32) + +diff --git a/caffe2/python/layer_model_helper.py b/caffe2/python/layer_model_helper.py +index 9a8e237e302143..f21b47e57c653a 100644 +--- a/caffe2/python/layer_model_helper.py ++++ b/caffe2/python/layer_model_helper.py +@@ -148,7 +148,7 @@ def _get_global_constant_initializer_op( + op_name = 'GivenTensorIntFill' + elif array.dtype == np.int64: + op_name = 'GivenTensorInt64Fill' +- elif array.dtype == np.str: ++ elif array.dtype == str: + op_name = 'GivenTensorStringFill' + elif array.dtype == np.bool: + op_name = 'GivenTensorBoolFill' +diff --git a/caffe2/python/operator_test/adagrad_test_helper.py b/caffe2/python/operator_test/adagrad_test_helper.py +index 08caf22b266178..1fd017c4d2ac5c 100644 +--- a/caffe2/python/operator_test/adagrad_test_helper.py ++++ b/caffe2/python/operator_test/adagrad_test_helper.py +@@ -98,7 +98,7 @@ def adagrad_sparse_test_helper( + # Create an indexing array containing values that are lists of indices, + # which index into grad + if grad.size == 0: +- indices = np.empty(shape=(0,), dtype=np.int) ++ indices = np.empty(shape=(0,), dtype=int) + else: + indices = np.random.choice( + np.arange(grad.shape[0]), +diff --git a/caffe2/python/operator_test/cast_op_test.py b/caffe2/python/operator_test/cast_op_test.py +index bf2a210086e691..95540a6121bcac 100644 +--- a/caffe2/python/operator_test/cast_op_test.py ++++ b/caffe2/python/operator_test/cast_op_test.py +@@ -37,7 +37,7 @@ def test_cast_int_to_string(self, data, gc, dc): + 'Cast', 'data', 'data_cast', to=core.DataType.STRING) + + def ref(data): +- ret = data.astype(dtype=np.str) ++ ret = data.astype(dtype=str) + # the string blob will be fetched as object, we feed and re-fetch + # to mimic this. + with hu.temp_workspace('tmp_ref_int_to_string'): +diff --git a/caffe2/python/operator_test/detectron_keypoints.py b/caffe2/python/operator_test/detectron_keypoints.py +index 1abff0675993ff..319e8b5bbffd5e 100644 +--- a/caffe2/python/operator_test/detectron_keypoints.py ++++ b/caffe2/python/operator_test/detectron_keypoints.py +@@ -32,8 +32,8 @@ def heatmaps_to_keypoints(maps, rois): + heights = rois[:, 3] - rois[:, 1] + widths = np.maximum(widths, 1) + heights = np.maximum(heights, 1) +- widths_ceil = np.ceil(widths).astype(np.int) +- heights_ceil = np.ceil(heights).astype(np.int) ++ widths_ceil = np.ceil(widths).astype(int) ++ heights_ceil = np.ceil(heights).astype(int) + + num_keypoints = np.maximum(maps.shape[1], _NUM_KEYPOINTS) + +diff --git a/caffe2/python/operator_test/tile_op_test.py b/caffe2/python/operator_test/tile_op_test.py +index d39dfeee0ad72a..fbb424fe058ccb 100644 +--- a/caffe2/python/operator_test/tile_op_test.py ++++ b/caffe2/python/operator_test/tile_op_test.py +@@ -32,7 +32,7 @@ def test_tile(self, M, K, N, tiles, axis, gc, dc): + ) + + def tile_ref(X, tiles, axis): +- dims = np.asarray([1, 1, 1], dtype=np.int) ++ dims = np.asarray([1, 1, 1], dtype=int) + dims[axis] = tiles + tiled_data = np.tile(X, dims) + return (tiled_data,) +@@ -61,7 +61,7 @@ def test_tile_grad(self, M, N, tiles, gc, dc): + ) + + def tile_ref(X, tiles, axis): +- dims = np.asarray([1, 1], dtype=np.int) ++ dims = np.asarray([1, 1], dtype=int) + dims[axis] = tiles + tiled_data = np.tile(X, dims) + return (tiled_data,) +@@ -99,7 +99,7 @@ def test_tilewinput(self, M, K, N, tiles, axis, gc, dc): + ) + + def tile_ref(X, tiles, axis): +- dims = np.asarray([1, 1, 1], dtype=np.int) ++ dims = np.asarray([1, 1, 1], dtype=int) + dims[axis] = tiles + tiled_data = np.tile(X, dims) + return (tiled_data,) +diff --git a/caffe2/python/schema.py b/caffe2/python/schema.py +index ab6ec29372e2ff..ecbcb2287dddea 100644 +--- a/caffe2/python/schema.py ++++ b/caffe2/python/schema.py +@@ -1252,7 +1252,7 @@ def InitEmptyRecord(net, schema_or_record, enforce_types=False): + + + _DATA_TYPE_FOR_DTYPE = [ +- (np.str, core.DataType.STRING), ++ (str, core.DataType.STRING), + (np.float16, core.DataType.FLOAT16), + (np.float32, core.DataType.FLOAT), + (np.float64, core.DataType.DOUBLE), +diff --git a/caffe2/python/schema_test.py b/caffe2/python/schema_test.py +index 8f3ed4415fd4f5..2f3eaf38dc138d 100644 +--- a/caffe2/python/schema_test.py ++++ b/caffe2/python/schema_test.py +@@ -94,12 +94,12 @@ def testTuple(self): + s = schema.Tuple(np.int32, str, np.float32) + s2 = schema.Struct( + ('field_0', schema.Scalar(dtype=np.int32)), +- ('field_1', schema.Scalar(dtype=np.str)), ++ ('field_1', schema.Scalar(dtype=str)), + ('field_2', schema.Scalar(dtype=np.float32)) + ) + self.assertEqual(s, s2) + self.assertEqual(s[0], schema.Scalar(dtype=np.int32)) +- self.assertEqual(s[1], schema.Scalar(dtype=np.str)) ++ self.assertEqual(s[1], schema.Scalar(dtype=str)) + self.assertEqual(s[2], schema.Scalar(dtype=np.float32)) + self.assertEqual( + s[2, 0], +diff --git a/caffe2/python/utils.py b/caffe2/python/utils.py +index 02a77e74681a93..8c82faee33a4c3 100644 +--- a/caffe2/python/utils.py ++++ b/caffe2/python/utils.py +@@ -67,7 +67,7 @@ def Caffe2TensorToNumpyArray(tensor): + tensor.int64_data, dtype=np.int64).reshape(tensor.dims) + elif tensor.data_type == caffe2_pb2.TensorProto.INT32: + return np.asarray( +- tensor.int32_data, dtype=np.int).reshape(tensor.dims) # pb.INT32=>np.int use int32_data ++ tensor.int32_data, dtype=int).reshape(tensor.dims) # pb.INT32=>int use int32_data + elif tensor.data_type == caffe2_pb2.TensorProto.INT16: + return np.asarray( + tensor.int32_data, dtype=np.int16).reshape(tensor.dims) # pb.INT16=>np.int16 use int32_data +@@ -100,9 +100,9 @@ def NumpyArrayToCaffe2Tensor(arr, name=None): + elif arr.dtype == np.int64: + tensor.data_type = caffe2_pb2.TensorProto.INT64 + tensor.int64_data.extend(list(arr.flatten().astype(np.int64))) +- elif arr.dtype == np.int or arr.dtype == np.int32: ++ elif arr.dtype == int or arr.dtype == np.int32: + tensor.data_type = caffe2_pb2.TensorProto.INT32 +- tensor.int32_data.extend(arr.flatten().astype(np.int).tolist()) ++ tensor.int32_data.extend(arr.flatten().astype(int).tolist()) + elif arr.dtype == np.int16: + tensor.data_type = caffe2_pb2.TensorProto.INT16 + tensor.int32_data.extend(list(arr.flatten().astype(np.int16))) # np.int16=>pb.INT16 use int32_data +diff --git a/functorch/examples/maml_omniglot/support/omniglot_loaders.py b/functorch/examples/maml_omniglot/support/omniglot_loaders.py +index cac99b2dfbb2aa..ce636ecca0b1b2 100644 +--- a/functorch/examples/maml_omniglot/support/omniglot_loaders.py ++++ b/functorch/examples/maml_omniglot/support/omniglot_loaders.py +@@ -271,10 +271,10 @@ def load_data_cache(self, data_pack): + + # [b, setsz, 1, 84, 84] + x_spts = np.array(x_spts).astype(np.float32).reshape(self.batchsz, setsz, 1, self.resize, self.resize) +- y_spts = np.array(y_spts).astype(np.int).reshape(self.batchsz, setsz) ++ y_spts = np.array(y_spts).astype(int).reshape(self.batchsz, setsz) + # [b, qrysz, 1, 84, 84] + x_qrys = np.array(x_qrys).astype(np.float32).reshape(self.batchsz, querysz, 1, self.resize, self.resize) +- y_qrys = np.array(y_qrys).astype(np.int).reshape(self.batchsz, querysz) ++ y_qrys = np.array(y_qrys).astype(int).reshape(self.batchsz, querysz) + + x_spts, y_spts, x_qrys, y_qrys = [ + torch.from_numpy(z).to(self.device) for z in +diff --git a/test/quantization/core/test_quantized_op.py b/test/quantization/core/test_quantized_op.py +index 252d7b92f77ebb..232150a0ba34a6 100644 +--- a/test/quantization/core/test_quantized_op.py ++++ b/test/quantization/core/test_quantized_op.py +@@ -3840,9 +3840,9 @@ def test_qlinear_with_input_q_dq_qweight_dq_output_fp32( + # xnnpack forces W_zp to 0 when using symmetric quantization + # ONEDNN only supports symmetric quantization of weight + if dtype == torch.qint8 or qengine_is_onednn(): +- W_zps = np.zeros(output_channels).astype(np.int) ++ W_zps = np.zeros(output_channels).astype(int) + else: +- W_zps = np.round(np.random.rand(output_channels) * 100 - 50).astype(np.int) ++ W_zps = np.round(np.random.rand(output_channels) * 100 - 50).astype(int) + # when using symmetric quantization + # special restriction for xnnpack fully connected op weight + # [-127, 127] instead of [-128, 127] diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_fix-shift-ops.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_fix-shift-ops.patch new file mode 100644 index 00000000000..f63f3cf4c5f --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_fix-shift-ops.patch @@ -0,0 +1,253 @@ +From d64fb24ee4a71d8cfe175cafc73c5f90fb26c9ac Mon Sep 17 00:00:00 2001 +From: BJ Hargrave +Date: Tue, 14 Mar 2023 15:30:41 -0400 +Subject: [PATCH 1/2] Fix operator>> for int64 vector in vec256 + +There is no vector instruction for shift right arithmetic for int64. +The operator>> implementation emulates this through other vector +instructions. It has been fixed to properly handle out-of-limit +shift values so that shift values <0 and >64 are set to 64 which +results in a value of -1 for negative inputs and 0 for non-negative +inputs (sign preserving). + +Fixes https://github.com/pytorch/pytorch/issues/70904 + +Signed-off-by: BJ Hargrave +--- + aten/src/ATen/cpu/vec/vec256/vec256_int.h | 16 +++++++++++----- + 1 file changed, 11 insertions(+), 5 deletions(-) + +diff --git a/aten/src/ATen/cpu/vec/vec256/vec256_int.h b/aten/src/ATen/cpu/vec/vec256/vec256_int.h +index 81e9d687d10a7b..784514f49e1d48 100644 +--- a/aten/src/ATen/cpu/vec/vec256/vec256_int.h ++++ b/aten/src/ATen/cpu/vec/vec256/vec256_int.h +@@ -1481,16 +1481,22 @@ Vectorized inline operator<<(const Vectorized& a, const Vector + + template <> + Vectorized inline operator>>(const Vectorized& a, const Vectorized& b) { +- // No vector instruction for right shifting int64_t, so emulating it ++ // No vector instruction for right arithmetic shifting int64_t, so emulating it + // instead. + ++ // Clamp the shift values such that shift values < 0 and > 64 are changed to 64 ++ // which results in -1 for negative input and 0 for non-negative input. ++ __m256i zero = _mm256_set1_epi64x(0); ++ __m256i max_shift = _mm256_set1_epi64x(64); ++ __m256i mask = _mm256_or_si256(_mm256_cmpgt_epi64(zero, b), _mm256_cmpgt_epi64(b, max_shift)); ++ __m256i shift = _mm256_blendv_epi8(b, max_shift, mask); + // Shift the number logically to the right, thus filling the most + // significant bits with 0s. Then, replace these bits with the sign + // bit. +- __m256i sign_bits = _mm256_cmpgt_epi64(_mm256_set1_epi64x(0), a); +- __m256i b_inv_mod_64 = _mm256_sub_epi64(_mm256_set1_epi64x(64), b); +- __m256i sign_ext = _mm256_sllv_epi64(sign_bits, b_inv_mod_64); +- __m256i c = _mm256_srlv_epi64(a, b); ++ __m256i sign_bits = _mm256_cmpgt_epi64(zero, a); ++ __m256i sign_shift = _mm256_sub_epi64(max_shift, shift); ++ __m256i sign_ext = _mm256_sllv_epi64(sign_bits, sign_shift); ++ __m256i c = _mm256_srlv_epi64(a, shift); + c = _mm256_or_si256(c, sign_ext); + + return c; + +From 734e2cea43ee782d756f04bc21c625b8fdd36d31 Mon Sep 17 00:00:00 2001 +From: BJ Hargrave +Date: Mon, 13 Mar 2023 10:56:00 -0400 +Subject: [PATCH 2/2] Fix CPU bitwise shifts for out-of-limit shift values + +Negative shift values and positive shift values greater than the +bit size of the dtype (limit 0..bits) now yield expected results +which are consistent with numpy. + +Left shift with an out-of-limit shift value result in a value of 0. +Right shift with an out-of-limit shift value results in a value of -1 +for negative inputs and 0 for non-negative inputs (sign preserving). + +Fixes https://github.com/pytorch/pytorch/issues/70904 + +Signed-off-by: BJ Hargrave +--- + aten/src/ATen/cpu/vec/vec_base.h | 18 ++++++++-- + aten/src/ATen/native/cpu/BinaryOpsKernel.cpp | 9 +++++ + test/functorch/test_vmap.py | 12 ------- + test/test_binary_ufuncs.py | 37 ++++++++++++++++++++ + 4 files changed, 62 insertions(+), 14 deletions(-) + +diff --git a/aten/src/ATen/cpu/vec/vec_base.h b/aten/src/ATen/cpu/vec/vec_base.h +index cb0e37054b4d32..8f006ae0f6634f 100644 +--- a/aten/src/ATen/cpu/vec/vec_base.h ++++ b/aten/src/ATen/cpu/vec/vec_base.h +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -803,17 +804,30 @@ inline Vectorized operator~(const Vectorized& a) { + } + + template Vectorized inline operator<<(const Vectorized &a, const Vectorized &b) { ++ constexpr T max_shift = sizeof(T) * CHAR_BIT; + Vectorized c; + for (int i = 0; i != Vectorized::size(); i++) { +- c[i] = a[i] << b[i]; ++ T shift = b[i]; ++ if ((static_cast>(shift) < 0) || (shift >= max_shift)) { ++ c[i] = 0; ++ } else { ++ c[i] = static_cast>(a[i]) << shift; ++ } + } + return c; + } + + template Vectorized inline operator>>(const Vectorized &a, const Vectorized &b) { ++ // right shift value to retain sign bit for signed and no bits for unsigned ++ constexpr T max_shift = sizeof(T) * CHAR_BIT - std::is_signed_v; + Vectorized c; + for (int i = 0; i != Vectorized::size(); i++) { +- c[i] = a[i] >> b[i]; ++ T shift = b[i]; ++ if ((static_cast>(shift) < 0) || (shift >= max_shift)) { ++ c[i] = a[i] >> max_shift; ++ } else { ++ c[i] = a[i] >> shift; ++ } + } + return c; + } +diff --git a/aten/src/ATen/native/cpu/BinaryOpsKernel.cpp b/aten/src/ATen/native/cpu/BinaryOpsKernel.cpp +index d0393aaf18bf8b..d2d0892d8ea956 100644 +--- a/aten/src/ATen/native/cpu/BinaryOpsKernel.cpp ++++ b/aten/src/ATen/native/cpu/BinaryOpsKernel.cpp +@@ -316,6 +316,10 @@ void lshift_kernel(TensorIteratorBase& iter) { + AT_DISPATCH_INTEGRAL_TYPES(iter.dtype(), "lshift_cpu", [&]() { + cpu_kernel_vec(iter, + [](scalar_t a, scalar_t b) -> scalar_t { ++ constexpr scalar_t max_shift = sizeof(scalar_t) * CHAR_BIT; ++ if ((static_cast>(b) < 0) || (b >= max_shift)) { ++ return 0; ++ } + return static_cast>(a) << b; + }, + [](Vectorized a, Vectorized b) { +@@ -385,6 +389,11 @@ void rshift_kernel(TensorIteratorBase& iter) { + AT_DISPATCH_INTEGRAL_TYPES(iter.dtype(), "rshift_cpu", [&]() { + cpu_kernel_vec(iter, + [](scalar_t a, scalar_t b) -> scalar_t { ++ // right shift value to retain sign bit for signed and no bits for unsigned ++ constexpr scalar_t max_shift = sizeof(scalar_t) * CHAR_BIT - std::is_signed_v; ++ if ((static_cast>(b) < 0) || (b >= max_shift)) { ++ return a >> max_shift; ++ } + return a >> b; + }, + [](Vectorized a, Vectorized b) { +diff --git a/test/functorch/test_vmap.py b/test/functorch/test_vmap.py +index a5fb144f881880..5c352cf8fdf6f0 100644 +--- a/test/functorch/test_vmap.py ++++ b/test/functorch/test_vmap.py +@@ -27,8 +27,6 @@ + instantiate_parametrized_tests, + subtest, + TEST_WITH_UBSAN, +- IS_MACOS, +- IS_X86 + ) + from torch.testing._internal.common_device_type import \ + toleranceOverride, tol +@@ -46,7 +44,6 @@ + compute_quantities_for_vmap_test, + is_valid_inplace_sample_input, + decorate, +- expectedFailureIf + ) + import types + from collections import namedtuple +@@ -3572,10 +3569,6 @@ def test(): + xfail('addcdiv'), + xfail('addcmul'), + xfail('clamp'), +- # AssertionError: Tensor-likes are not equal! +- xfail('bitwise_left_shift', device_type='cpu'), +- decorate('bitwise_right_shift', device_type='cpu', +- decorator=expectedFailureIf(not (IS_MACOS and IS_X86))), + + # UBSAN: runtime error: shift exponent -1 is negative + decorate('bitwise_left_shift', decorator=unittest.skipIf(TEST_WITH_UBSAN, "Fails with above error")), +@@ -3734,11 +3727,6 @@ def test_vmap_exhaustive(self, device, dtype, op): + xfail('linalg.lu', ''), + skip('linalg.ldl_solve', ''), + skip('_softmax_backward_data'), +- # AssertionError: Tensor-likes are not equal! +- # Issue: https://github.com/pytorch/pytorch/issues/70904 +- xfail('bitwise_left_shift', device_type='cpu'), +- decorate('bitwise_right_shift', device_type='cpu', +- decorator=expectedFailureIf(not (IS_MACOS and IS_X86))), + # UBSAN: runtime error: shift exponent -1 is negative + decorate('bitwise_left_shift', decorator=unittest.skipIf(TEST_WITH_UBSAN, "Fails with above error")), + decorate('bitwise_right_shift', decorator=unittest.skipIf(TEST_WITH_UBSAN, "Fails with above error")), +diff --git a/test/test_binary_ufuncs.py b/test/test_binary_ufuncs.py +index 52d7c7a4ffcb00..bf3e4d43494932 100644 +--- a/test/test_binary_ufuncs.py ++++ b/test/test_binary_ufuncs.py +@@ -4,6 +4,7 @@ + import numpy as np + + import itertools ++from itertools import chain + from itertools import product + import math + import random +@@ -53,6 +54,7 @@ + floating_types_and, + floating_and_complex_types, + get_all_math_dtypes, ++ get_all_int_dtypes, + ) + from torch.testing._internal.common_methods_invocations import ( + binary_ufuncs, +@@ -3139,6 +3141,41 @@ def test_signed_shift(self, device, dtype): + self.assertEqual(a >> 1, expected_r) + self.compare_with_numpy(lambda x: x >> 1, lambda x: np.right_shift(x, 1), a) + ++ @onlyCPU ++ @dtypes(*get_all_int_dtypes()) ++ def test_shift_limits(self, device, dtype): ++ "Ensure that CPU integer bit shifting works as expected with out-of-limits shift values." ++ # Issue #70904 ++ iinfo = torch.iinfo(dtype) ++ bits = iinfo.bits ++ low = iinfo.min ++ high = iinfo.max ++ exact_dtype = dtype != torch.uint8 # numpy changes dtype from uint8 to int16 for some out-of-limits shift values ++ for input in ( ++ torch.tensor([-1, 0, 1], device=device, dtype=dtype), # small for non-vectorized operation ++ torch.tensor([low, high], device=device, dtype=dtype), # small for non-vectorized operation ++ make_tensor((64, 64, 64), low=low, high=high, device=device, dtype=dtype), # large for vectorized operation ++ ): ++ shift_left_expected = torch.zeros_like(input) ++ shift_right_expected = torch.clamp(input, -1, 0) ++ for shift in chain(range(-100, -1), range(bits, 100)): ++ shift_left = input << shift ++ self.assertEqual(shift_left, shift_left_expected, msg=f"<< {shift}") ++ self.compare_with_numpy( ++ lambda x: x << shift, ++ lambda x: np.left_shift(x, shift), ++ input, ++ exact_dtype=exact_dtype, msg=f"<< {shift}" ++ ) ++ shift_right = input >> shift ++ self.assertEqual(shift_right, shift_right_expected, msg=f">> {shift}") ++ self.compare_with_numpy( ++ lambda x: x >> shift, ++ lambda x: np.right_shift(x, shift), ++ input, ++ exact_dtype=exact_dtype, msg=f">> {shift}" ++ ) ++ + @onlyNativeDeviceTypes + @dtypes( + *list( diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_fix-skip-decorators.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_fix-skip-decorators.patch new file mode 100644 index 00000000000..101849f4dbf --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_fix-skip-decorators.patch @@ -0,0 +1,122 @@ +The decorators are implemented to run when the function is called which is after +the test `setup` method spawned subprocesses which may use NCCL to sync failing when there are +not enough GPUs available. +So replace the custom code by calls to the `unittest` skip decorators. +See hhttps://github.com/pytorch/pytorch/pull/109491 + +Author: Alexander Grund (TU Dresden) + +diff --git a/torch/testing/_internal/common_distributed.py b/torch/testing/_internal/common_distributed.py +index 400aa80fdca..80a7375cfe1 100644 +--- a/torch/testing/_internal/common_distributed.py ++++ b/torch/testing/_internal/common_distributed.py +@@ -134,17 +134,7 @@ def skip_if_odd_worldsize(func): + + + def require_n_gpus_for_nccl_backend(n, backend): +- def decorator(func): +- @wraps(func) +- def wrapper(*args, **kwargs): +- if backend == "nccl" and torch.cuda.device_count() < n: +- sys.exit(TEST_SKIPS[f"multi-gpu-{n}"].exit_code) +- else: +- return func(*args, **kwargs) +- +- return wrapper +- +- return decorator ++ return skip_if_lt_x_gpu(n) if backend == "nccl" else unittest.skipIf(False, None) + + + def import_transformers_or_skip(): +@@ -167,32 +157,7 @@ def import_transformers_or_skip(): + + + def skip_if_lt_x_gpu(x): +- def decorator(func): +- @wraps(func) +- def wrapper(*args, **kwargs): +- if torch.cuda.is_available() and torch.cuda.device_count() >= x: +- return func(*args, **kwargs) +- sys.exit(TEST_SKIPS[f"multi-gpu-{x}"].exit_code) +- +- return wrapper +- +- return decorator +- +- +-# This decorator helps avoiding initializing cuda while testing other backends +-def nccl_skip_if_lt_x_gpu(backend, x): +- def decorator(func): +- @wraps(func) +- def wrapper(*args, **kwargs): +- if backend != "nccl": +- return func(*args, **kwargs) +- if torch.cuda.is_available() and torch.cuda.device_count() >= x: +- return func(*args, **kwargs) +- sys.exit(TEST_SKIPS[f"multi-gpu-{x}"].exit_code) +- +- return wrapper +- +- return decorator ++ return unittest.skipIf(torch.cuda.device_count() < x, TEST_SKIPS[f"multi-gpu-{x}"].message) + + + def verify_ddp_error_logged(model_DDP, err_substr): +diff --git a/torch/testing/_internal/distributed/distributed_test.py b/torch/testing/_internal/distributed/distributed_test.py +index eb5130f2963..25839618308 100644 +--- a/torch/testing/_internal/distributed/distributed_test.py ++++ b/torch/testing/_internal/distributed/distributed_test.py +@@ -56,7 +56,6 @@ from torch.testing._internal.common_distributed import ( + skip_if_small_worldsize, + skip_if_odd_worldsize, + skip_if_lt_x_gpu, +- nccl_skip_if_lt_x_gpu, + skip_if_no_gpu, + require_n_gpus_for_nccl_backend, + requires_nccl_version, +@@ -4960,7 +4959,7 @@ class DistributedTest: + BACKEND != "mpi" and BACKEND != "nccl" and BACKEND != "gloo", + "get_future is only supported on mpi, nccl and gloo", + ) +- @nccl_skip_if_lt_x_gpu(BACKEND, 2) ++ @require_n_gpus_for_nccl_backend(2, BACKEND) + def test_accumulate_gradients_no_sync(self): + """ + Runs _test_accumulate_gradients_no_sync using default inputs +@@ -4971,7 +4970,7 @@ class DistributedTest: + BACKEND != "mpi" and BACKEND != "nccl" and BACKEND != "gloo", + "get_future is only supported on mpi, nccl and gloo", + ) +- @nccl_skip_if_lt_x_gpu(BACKEND, 2) ++ @require_n_gpus_for_nccl_backend(2, BACKEND) + def test_accumulate_gradients_no_sync_grad_is_view(self): + """ + Runs _test_accumulate_gradients_no_sync using default inputs +@@ -4982,7 +4981,7 @@ class DistributedTest: + BACKEND != "mpi" and BACKEND != "nccl" and BACKEND != "gloo", + "get_future is only supported on mpi, nccl and gloo", + ) +- @nccl_skip_if_lt_x_gpu(BACKEND, 2) ++ @require_n_gpus_for_nccl_backend(2, BACKEND) + def test_accumulate_gradients_no_sync_allreduce_hook(self): + """ + Runs multiple iterations on _test_accumulate_gradients_no_sync +@@ -5010,7 +5009,7 @@ class DistributedTest: + BACKEND != "mpi" and BACKEND != "nccl" and BACKEND != "gloo", + "get_future is only supported on mpi, nccl and gloo", + ) +- @nccl_skip_if_lt_x_gpu(BACKEND, 2) ++ @require_n_gpus_for_nccl_backend(2, BACKEND) + def test_accumulate_gradients_no_sync_allreduce_with_then_hook(self): + """ + Runs multiple iterations on _test_accumulate_gradients_no_sync using allreduce +@@ -5044,7 +5043,7 @@ class DistributedTest: + BACKEND != "mpi" and BACKEND != "nccl" and BACKEND != "gloo", + "get_future is only supported on mpi, nccl and gloo", + ) +- @nccl_skip_if_lt_x_gpu(BACKEND, 2) ++ @require_n_gpus_for_nccl_backend(2, BACKEND) + def test_get_future(self): + def mult(fut): + return [t * 3 for t in fut.wait()] diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_fix-test-ops-conf.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_fix-test-ops-conf.patch new file mode 100644 index 00000000000..6f3977c99a4 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_fix-test-ops-conf.patch @@ -0,0 +1,26 @@ +From 8581301957b0018a32433f85163535709bc9d332 Mon Sep 17 00:00:00 2001 +From: Masaki Kozuki +Date: Fri, 7 Oct 2022 21:25:07 -0700 +Subject: [PATCH] try using a different group name + +ref: +https://github.com/pytorch/pytorch/issues/85923#issuecomment-1272220271 + +Signed-off-by: Masaki Kozuki +--- + test/conftest.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/test/conftest.py b/test/conftest.py +index e5af19b760a..c9755322d16 100644 +--- a/test/conftest.py ++++ b/test/conftest.py +@@ -18,7 +18,7 @@ xml_key = StashKey["LogXMLReruns"]() + + + def pytest_addoption(parser: Parser) -> None: +- group = parser.getgroup("terminal reporting") ++ group = parser.getgroup("terminal reporting functorch") + group.addoption( + "--junit-xml-reruns", + action="store", diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_fix-test_memory_profiler.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_fix-test_memory_profiler.patch new file mode 100644 index 00000000000..b11903a6de3 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_fix-test_memory_profiler.patch @@ -0,0 +1,19 @@ +The test seems to be too sensitive and may fail due to a small temporary allocation. +Increase the filter size to make it pass. +See https://github.com/pytorch/pytorch/issues/109592 + +Author: Alexander Grund (TU Dresden) + +diff --git a/test/profiler/test_memory_profiler.py b/test/profiler/test_memory_profiler.py +index 70b21b6b610..176fe153638 100644 +--- a/test/profiler/test_memory_profiler.py ++++ b/test/profiler/test_memory_profiler.py +@@ -1480,7 +1480,7 @@ class TestMemoryProfilerE2E(TestCase): + + # We generally don't care about tiny allocations during memory + # profiling and they add a lot of noise to the unit test. +- if size >= 256 ++ if size >= 1024 + ] + + self.assertExpectedInline( diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_fix-torch.compile-on-ppc.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_fix-torch.compile-on-ppc.patch new file mode 100644 index 00000000000..0b064c8b4c7 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_fix-torch.compile-on-ppc.patch @@ -0,0 +1,39 @@ +commit 9942a14e96c539cb0195475d2cd660dcdc274123 +Author: Nisanth M P +Date: Fri Jul 14 04:09:14 2023 +0000 + + Fix torch.compile g++ flag error on ppc64le (#104956) + + g++ flag -march is not recognised on ppc64le. So adding a check for platform machine to be ppc64le and using -mcpu flag instead. Other architectures will still use -march flag + + This fixes the torch.compile feature failure on ppc64le + + Pull Request resolved: https://github.com/pytorch/pytorch/pull/104956 + Approved by: https://github.com/jgong5, https://github.com/jansel + +diff --git a/torch/_inductor/codecache.py b/torch/_inductor/codecache.py +--- a/torch/_inductor/codecache.py ++++ b/torch/_inductor/codecache.py +@@ -7,6 +7,7 @@ import json + import logging + import multiprocessing + import os ++import platform + import re + import shutil + import signal +@@ -378,7 +379,14 @@ def optimization_flags(): + # Also, `-march=native` is unrecognized option on M1 + base_flags += " -Xclang -fopenmp" + else: +- base_flags += " -march=native -fopenmp" ++ if platform.machine() == "ppc64le": ++ base_flags += " -mcpu=native" ++ else: ++ base_flags += " -march=native" ++ ++ # Internal cannot find libgomp.so ++ if not config.is_fbcode(): ++ base_flags += " -fopenmp" + return base_flags + diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_fix-ub-in-inductor-codegen.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_fix-ub-in-inductor-codegen.patch new file mode 100644 index 00000000000..5651f8fbbcf --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_fix-ub-in-inductor-codegen.patch @@ -0,0 +1,34 @@ +Casting negative floats to unsigned integers is undefined behavior so results vary between +different invocations and platforms. +This causes failures on e.g. PPC with test_comprehensive_byte in inductor/test_torchinductor_opinfo +See https://github.com/pytorch/pytorch/issues/110077 + +Fix by using `c10::convert` which handles that case. + +Author: Alexander Grund (TU Dresden) + +diff --git a/torch/_inductor/codegen/cpp.py b/torch/_inductor/codegen/cpp.py +index de6a32421c1..d16ae4cd91c 100644 +--- a/torch/_inductor/codegen/cpp.py ++++ b/torch/_inductor/codegen/cpp.py +@@ -577,7 +577,7 @@ class CppOverrides(OpOverrides): + @staticmethod + def to_dtype(x, dtype): + assert dtype in DTYPE_TO_CPP, f"{dtype} missing from {__name__}.DTYPE_TO_CPP" +- return f"static_cast<{DTYPE_TO_CPP[dtype]}>({x})" ++ return f"c10::convert<{DTYPE_TO_CPP[dtype]}>({x})" + + @staticmethod + def abs(x): +diff --git a/torch/_inductor/codegen/cpp_prefix.h b/torch/_inductor/codegen/cpp_prefix.h +index e0dba663144..9e17e481a89 100644 +--- a/torch/_inductor/codegen/cpp_prefix.h ++++ b/torch/_inductor/codegen/cpp_prefix.h +@@ -12,6 +12,7 @@ + #endif + #include + #include ++#include + + typedef at::Half half; + typedef at::BFloat16 bfloat16; diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_fix-vsx-loadu.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_fix-vsx-loadu.patch new file mode 100644 index 00000000000..5d8afb76fe5 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_fix-vsx-loadu.patch @@ -0,0 +1,31 @@ +Fix access to unitialized memory on PPC +See https://github.com/pytorch/pytorch/issues/32502 & https://github.com/pytorch/pytorch/pull/109487 + +Author: Alexander Grund (TU Dresden) + +diff --git a/aten/src/ATen/cpu/vec/vec256/vsx/vec256_qint8_vsx.h b/aten/src/ATen/cpu/vec/vec256/vsx/vec256_qint8_vsx.h +index 806f6731abb..648ed06afa6 100644 +--- a/aten/src/ATen/cpu/vec/vec256/vsx/vec256_qint8_vsx.h ++++ b/aten/src/ATen/cpu/vec/vec256/vsx/vec256_qint8_vsx.h +@@ -91,7 +91,7 @@ struct Vectorized { + vec_vsx_ld(offset0, reinterpret_cast(ptr)), + vec_vsx_ld(offset16, reinterpret_cast(ptr))}; + } +- __at_align__ value_type tmp_values[size()]; ++ __at_align__ value_type tmp_values[size()] = {}; + std::memcpy(tmp_values, ptr, std::min(count, size()) * sizeof(value_type)); + return {vec_vsx_ld(offset0, tmp_values), vec_vsx_ld(offset16, tmp_values)}; + } +diff --git a/aten/src/ATen/cpu/vec/vec256/vsx/vec256_quint8_vsx.h b/aten/src/ATen/cpu/vec/vec256/vsx/vec256_quint8_vsx.h +index 891c56b53ec..db3698804a7 100644 +--- a/aten/src/ATen/cpu/vec/vec256/vsx/vec256_quint8_vsx.h ++++ b/aten/src/ATen/cpu/vec/vec256/vsx/vec256_quint8_vsx.h +@@ -94,7 +94,7 @@ struct Vectorized { + vec_vsx_ld(offset0, reinterpret_cast(ptr)), + vec_vsx_ld(offset16, reinterpret_cast(ptr))}; + } +- __at_align__ value_type tmp_values[size()]; ++ __at_align__ value_type tmp_values[size()] = {}; + std::memcpy(tmp_values, ptr, std::min(count, size()) * sizeof(value_type)); + return {vec_vsx_ld(offset0, tmp_values), vec_vsx_ld(offset16, tmp_values)}; + } diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_ignore_unexpected_success_in_test_torchinductor_opinfo.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_ignore_unexpected_success_in_test_torchinductor_opinfo.patch new file mode 100644 index 00000000000..db8aa200deb --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_ignore_unexpected_success_in_test_torchinductor_opinfo.patch @@ -0,0 +1,22 @@ +Some tests may succeed although they are not expected to. E.g.: +> FAILED inductor/test_torchinductor_opinfo.py::TestInductorOpInfoCPU::test_comprehensive_index_add_cpu_float16 - RuntimeError: unexpected success index_add, torch.float16, cpu +> FAILED inductor/test_torchinductor_opinfo.py::TestInductorOpInfoCPU::test_comprehensive_scatter_add_cpu_float16 - RuntimeError: unexpected success scatter_add, torch.float16, cpu +> FAILED inductor/test_torchinductor_opinfo.py::TestInductorOpInfoCPU::test_comprehensive_scatter_reduce_sum_cpu_float16 - RuntimeError: unexpected success scatter_reduce.sum, torch.float16, cpu + +Disable that unexpected success check. + +Author: Alexander Grund (TU Dresden) + +diff --git a/test/inductor/test_torchinductor_opinfo.py b/test/inductor/test_torchinductor_opinfo.py +index d91a27684ba..1e6d247c8d4 100644 +--- a/test/inductor/test_torchinductor_opinfo.py ++++ b/test/inductor/test_torchinductor_opinfo.py +@@ -66,7 +66,7 @@ _ops = partial( + TestExpect = Enum("TestExpect", ("SUCCESS", "XFAILURE", "SKIP")) + + COLLECT_EXPECT = os.getenv("PYTORCH_COLLECT_EXPECT", "0") == "1" +-FAIL_ON_SUCCESS = os.getenv("PYTORCH_FAIL_ON_SUCCESS", "1") == "1" ++FAIL_ON_SUCCESS = False + ALL_SAMPLES = os.getenv("PYTORCH_ALL_SAMPLES", "0") == "1" + START = os.getenv("PYTORCH_TEST_RANGE_START", None) + END = os.getenv("PYTORCH_TEST_RANGE_END", None) diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_no-cuda-stubs-rpath.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_no-cuda-stubs-rpath.patch new file mode 100644 index 00000000000..df699c5517e --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_no-cuda-stubs-rpath.patch @@ -0,0 +1,186 @@ +# PyTorch's CMAKE configuration by default sets RUNPATH on libraries if they link other libraries +# that are outside the build tree, which is done because of the CMAKE config on +# https://github.com/pytorch/pytorch/blob/v1.10.0/cmake/Dependencies.cmake#L10. +# This provides problems, since the cuda stubs library path then also gets added to the RUNPATH. +# As a result, at runtime, the stub version of things like libcuda.so.1 gets picked up, instead of the real drivers +# See https://github.com/easybuilders/easybuild-easyconfigs/issues/14359 +# This line https://github.com/pytorch/pytorch/blob/v1.10.0/cmake/Dependencies.cmake#L16 +# Makes sure that any path that is linked, is also added to the RUNPATH. +# This has been reported upstream in https://github.com/pytorch/pytorch/issues/35418 +# and a fix was attempted in https://github.com/pytorch/pytorch/pull/37737 but it was reverted +# +# This EasyBuild patch changes behavior for the libraries that were failing, i.e. the ones in this list: +# https://github.com/easybuilders/easybuild-easyconfigs/issues/14359#issuecomment-970479904 +# This is done by setting INSTALL_RPATH_USE_LINK_PATH to false, and instead, specifying the RPATH +# explicitely by defining INSTALL_RPATH, but only adding directories that do not match to the "stubs" regex +# +# Original patch: Caspar van Leeuwen +# Updated: Alexander Grund (TU Dresden) +# +# See https://github.com/pytorch/pytorch/pull/87593 + +diff --git a/caffe2/CMakeLists.txt b/caffe2/CMakeLists.txt +index 221e3f32b29..c3f24060f6a 100644 +--- a/caffe2/CMakeLists.txt ++++ b/caffe2/CMakeLists.txt +@@ -627,14 +627,13 @@ endif() + if(USE_CUDA) + list(APPEND Caffe2_GPU_CU_SRCS ${Caffe2_GPU_HIP_JIT_FUSERS_SRCS}) + add_library(caffe2_nvrtc SHARED ${ATen_NVRTC_STUB_SRCS}) ++ include(${Torch_SOURCE_DIR}/cmake/LinkCudaLibraries.cmake) ++ link_cuda_libraries(caffe2_nvrtc ${CUDA_NVRTC} ${CUDA_CUDA_LIB} ${CUDA_NVRTC_LIB}) + if(MSVC) + # Delay load nvcuda.dll so we can import torch compiled with cuda on a CPU-only machine +- set(DELAY_LOAD_FLAGS "-DELAYLOAD:nvcuda.dll;delayimp.lib") +- else() +- set(DELAY_LOAD_FLAGS "") ++ target_link_libraries(caffe2_nvrtc "-DELAYLOAD:nvcuda.dll;delayimp.lib") + endif() + +- target_link_libraries(caffe2_nvrtc ${CUDA_NVRTC} ${CUDA_CUDA_LIB} ${CUDA_NVRTC_LIB} ${DELAY_LOAD_FLAGS}) + target_include_directories(caffe2_nvrtc PRIVATE ${CUDA_INCLUDE_DIRS}) + install(TARGETS caffe2_nvrtc DESTINATION "${TORCH_INSTALL_LIB_DIR}") + if(USE_NCCL) +diff --git a/cmake/LinkCudaLibraries.cmake b/cmake/LinkCudaLibraries.cmake +new file mode 100644 +index 00000000000..005914ccc6f +--- /dev/null ++++ b/cmake/LinkCudaLibraries.cmake +@@ -0,0 +1,33 @@ ++# Link CUDA libraries to the given target, i.e.: `target_link_libraries(target )` ++# ++# Additionally makes sure CUDA stub libs don't end up being in RPath ++# ++# Example: link_cuda_libraries(mytarget PRIVATE ${CUDA_LIBRARIES}) ++function(link_cuda_libraries target) ++ set(libs ${ARGN}) ++ set(install_rpath "$ORIGIN") ++ set(filtered FALSE) ++ foreach(lib IN LISTS libs) ++ # CUDA stub libs are in form /prefix/lib/stubs/libcuda.so ++ # So extract the name of the parent folder, to check against "stubs" ++ # And the parent path which we need to add to the INSTALL_RPATH for non-stubs ++ get_filename_component(parent_path "${lib}" DIRECTORY) ++ get_filename_component(parent_name "${parent_path}" NAME) ++ if(parent_name STREQUAL "stubs") ++ message(STATUS "Filtering ${lib} from being set in ${target}'s RPATH, " ++ "because it appears to point to the CUDA stubs directory.") ++ set(filtered TRUE) ++ elseif(parent_path) ++ list(APPEND install_rpath ${parent_path}) ++ endif() ++ endforeach() ++ ++ # Regular link command ++ target_link_libraries(${target} ${libs}) ++ # Manually set INSTALL_RPATH when there were any stub libs ++ if(filtered) ++ list(REMOVE_DUPLICATES install_rpath) ++ set_target_properties(${target} PROPERTIES INSTALL_RPATH_USE_LINK_PATH FALSE) ++ set_target_properties(${target} PROPERTIES INSTALL_RPATH "${install_rpath}") ++ endif() ++endfunction() +diff --git a/test/cpp/api/CMakeLists.txt b/test/cpp/api/CMakeLists.txt +index 6b801a07318..6ac92870479 100644 +--- a/test/cpp/api/CMakeLists.txt ++++ b/test/cpp/api/CMakeLists.txt +@@ -54,7 +54,8 @@ if(NOT MSVC) + endif() + + if(USE_CUDA) +- target_link_libraries(test_api PRIVATE ++ include(${Torch_SOURCE_DIR}/cmake/LinkCudaLibraries.cmake) ++ link_cuda_libraries(test_api PRIVATE + ${CUDA_LIBRARIES} + ${CUDA_NVRTC_LIB} + ${CUDA_CUDA_LIB} +diff --git a/test/cpp/dist_autograd/CMakeLists.txt b/test/cpp/dist_autograd/CMakeLists.txt +index 9969c63e16d..356ba5be55c 100644 +--- a/test/cpp/dist_autograd/CMakeLists.txt ++++ b/test/cpp/dist_autograd/CMakeLists.txt +@@ -10,7 +10,8 @@ if(USE_DISTRIBUTED AND NOT WIN32) + target_link_libraries(test_dist_autograd PRIVATE torch gtest) + + if(USE_CUDA) +- target_link_libraries(test_dist_autograd PRIVATE ++ include(${Torch_SOURCE_DIR}/cmake/LinkCudaLibraries.cmake) ++ link_cuda_libraries(test_dist_autograd PRIVATE + ${CUDA_LIBRARIES} + ${CUDA_NVRTC_LIB} + ${CUDA_CUDA_LIB} +diff --git a/test/cpp/jit/CMakeLists.txt b/test/cpp/jit/CMakeLists.txt +index 2376f1bc43b..30fbb99fa6d 100644 +--- a/test/cpp/jit/CMakeLists.txt ++++ b/test/cpp/jit/CMakeLists.txt +@@ -139,7 +139,8 @@ if(LINUX) + endif() + + if(USE_CUDA) +- target_link_libraries(test_jit PRIVATE ++ include(${Torch_SOURCE_DIR}/cmake/LinkCudaLibraries.cmake) ++ link_cuda_libraries(test_jit PRIVATE + ${CUDA_LIBRARIES} + ${CUDA_NVRTC_LIB} + ${CUDA_CUDA_LIB} +diff --git a/test/cpp/rpc/CMakeLists.txt b/test/cpp/rpc/CMakeLists.txt +index 3997f8753e5..21fddbc645d 100644 +--- a/test/cpp/rpc/CMakeLists.txt ++++ b/test/cpp/rpc/CMakeLists.txt +@@ -33,7 +33,8 @@ target_include_directories( + target_link_libraries(test_cpp_rpc PRIVATE ${TORCH_RPC_TEST_DEPENDENCY_LIBS}) + + if(USE_CUDA) +- target_link_libraries(test_cpp_rpc PRIVATE ++ include(${Torch_SOURCE_DIR}/cmake/LinkCudaLibraries.cmake) ++ link_cuda_libraries(test_cpp_rpc PRIVATE + ${CUDA_LIBRARIES} + ${CUDA_NVRTC_LIB} + ${CUDA_CUDA_LIB} +diff --git a/test/cpp/tensorexpr/CMakeLists.txt b/test/cpp/tensorexpr/CMakeLists.txt +index 7dff70630d3..ecb83005492 100644 +--- a/test/cpp/tensorexpr/CMakeLists.txt ++++ b/test/cpp/tensorexpr/CMakeLists.txt +@@ -57,14 +57,15 @@ if(USE_PTHREADPOOL) + target_link_libraries(test_tensorexpr PRIVATE pthreadpool_interface) + endif() + if(USE_CUDA) +- target_link_libraries(test_tensorexpr PRIVATE ++ include(${Torch_SOURCE_DIR}/cmake/LinkCudaLibraries.cmake) ++ link_cuda_libraries(test_tensorexpr PRIVATE + ${CUDA_LIBRARIES} + ${CUDA_NVRTC_LIB} + ${CUDA_CUDA_LIB} + ${TORCH_CUDA_LIBRARIES}) + target_compile_definitions(test_tensorexpr PRIVATE USE_CUDA) + +- target_link_libraries(tutorial_tensorexpr PRIVATE ++ link_cuda_libraries(tutorial_tensorexpr PRIVATE + ${CUDA_LIBRARIES} + ${CUDA_NVRTC_LIB} + ${CUDA_CUDA_LIB} +diff --git a/test/test_torch.py b/test/test_torch.py +index c86535e22c0..6859311d806 100644 +--- a/test/test_torch.py ++++ b/test/test_torch.py +@@ -8833,6 +8833,21 @@ def add_neg_dim_tests(): + assert not hasattr(TestTorch, test_name), "Duplicated test name: " + test_name + setattr(TestTorch, test_name, make_neg_dim_test(name, tensor_arg, arg_constr, types, extra_dim)) + ++class TestRPATH(TestCase): ++ @unittest.skipIf(not sys.platform.startswith('linux'), "linux-only test") ++ def test_rpath(self): ++ """ ++ Make sure RPATH (or RUNPATH) in nvrtc does not contain a cuda stubs directory ++ issue gh-35418 ++ """ ++ libdir = os.path.join(os.path.dirname(torch._C.__file__), 'lib') ++ caffe2_nvrtc = os.path.join(libdir, 'libcaffe2_nvrtc.so') ++ if os.path.exists(caffe2_nvrtc): ++ output = subprocess.check_output(['objdump', '-x', caffe2_nvrtc]) ++ for line in output.split(b'\n'): ++ if b'RPATH' in line or b'RUNPATH' in line: ++ self.assertFalse(b'stubs' in line) ++ + # TODO: these empy classes are temporarily instantiated for XLA compatibility + # once XLA updates their test suite it should be removed + class TestViewOps(TestCase): diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_remove-test-requiring-online-access.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_remove-test-requiring-online-access.patch new file mode 100644 index 00000000000..4022d01c852 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_remove-test-requiring-online-access.patch @@ -0,0 +1,30 @@ +This downloads a Perl file from a Github repo which may fail in: + + File "test/test_cuda.py", line 4632, in test_memory_snapshot + torch.cuda.memory._save_segment_usage(f.name) + File "/torch/cuda/memory.py", line 610, in _save_segment_usage + f.write(_segments(snapshot)) + File "/torch/cuda/_memory_viz.py", line 60, in segments + return format_flamegraph(f.getvalue()) + File "/torch/cuda/_memory_viz.py", line 21, in format_flamegraph + urllib.request.urlretrieve( + +Author: Alexander Grund (TU Dresden) + +diff --git a/test/test_cuda.py b/test/test_cuda.py +index 7f2693b52c5..4bff69e5cad 100644 +--- a/test/test_cuda.py ++++ b/test/test_cuda.py +@@ -4993,12 +4993,6 @@ class TestCudaComm(TestCase): + found_it = True + self.assertTrue(found_it) + +- if not IS_WINDOWS: +- with tempfile.NamedTemporaryFile() as f: +- torch.cuda.memory._save_segment_usage(f.name) +- with open(f.name, 'r') as f2: +- self.assertTrue('test_cuda.py' in f2.read()) +- + del x + torch.cuda.empty_cache() + ss = torch.cuda.memory._snapshot() diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_skip-diff-test-on-ppc.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_skip-diff-test-on-ppc.patch new file mode 100644 index 00000000000..41d0da2eb03 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_skip-diff-test-on-ppc.patch @@ -0,0 +1,26 @@ +The workaround for over/underflow isn't implemented for PPC yet. +So skip the test. +See https://github.com/pytorch/pytorch/issues/109870 + +Author: Alexander Grund (TU Dresden) + +diff --git a/test/test_binary_ufuncs.py b/test/test_binary_ufuncs.py +index 57fc1b76f18..06c129e007a 100644 +--- a/test/test_binary_ufuncs.py ++++ b/test/test_binary_ufuncs.py +@@ -27,6 +27,7 @@ from torch.testing._internal.common_utils import ( + numpy_to_torch_dtype_dict, + TEST_SCIPY, + set_default_dtype, ++ IS_PPC, + ) + from torch.testing._internal.common_device_type import ( + expectedFailureMeta, +@@ -1091,6 +1092,7 @@ class TestBinaryUfuncs(TestCase): + ) + + @dtypes(*complex_types()) ++ @skipIf(IS_PPC, "Vectorized div fails on PPC: #109870") + def test_complex_div_underflow_overflow(self, device, dtype): + # test to make sure the complex division does not produce underflow or overflow + # in the intermediate of its calculations diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_skip-failing-gradtest.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_skip-failing-gradtest.patch new file mode 100644 index 00000000000..19d427b3049 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_skip-failing-gradtest.patch @@ -0,0 +1,16 @@ +test_fn_grad_linalg_det_singular_cpu_float64 fails not only on macos + +Author: Alexander Grund (TU Dresden) + +diff --git a/torch/testing/_internal/opinfo/definitions/linalg.py b/torch/testing/_internal/opinfo/definitions/linalg.py +index 616c8cf42f4..3a07d19df46 100644 +--- a/torch/testing/_internal/opinfo/definitions/linalg.py ++++ b/torch/testing/_internal/opinfo/definitions/linalg.py +@@ -1135,7 +1135,6 @@ op_db: List[OpInfo] = [ + "test_fn_grad", + device_type="cpu", + dtypes=(torch.float64,), +- active_if=IS_MACOS, + ), + DecorateInfo( + unittest.skip("Gradients are incorrect on macos"), diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_skip-test_shuffle_reproducibility.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_skip-test_shuffle_reproducibility.patch new file mode 100644 index 00000000000..f02e5d3ab0d --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_skip-test_shuffle_reproducibility.patch @@ -0,0 +1,20 @@ +The test fails on some systems with +> RuntimeError: Too many open files. Communication with the workers is no longer possible. +> Please increase the limit using `ulimit -n` in the shell or change the sharing strategy by calling `torch.multiprocessing.set_sharing_strategy('file_system')` at the beginning of your code + +So just skip it. + +Author: Alexander Grund (TU Dresden) + +diff --git a/test/test_dataloader.py b/test/test_dataloader.py +index 39d91876f0b..aff47063344 100644 +--- a/test/test_dataloader.py ++++ b/test/test_dataloader.py +@@ -1542,6 +1542,7 @@ except RuntimeError as e: + def test_shuffle_batch(self): + self._test_shuffle(self._get_data_loader(self.dataset, batch_size=2, shuffle=True)) + ++ @unittest.skip("May cause 'Too many open files' error due to potential `ulimit -n` restrictions") + def test_shuffle_reproducibility(self): + for fn in ( + lambda: DataLoader(self.dataset, shuffle=True, num_workers=0, generator=torch.Generator().manual_seed(42)), diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_skip-tests-skipped-in-subprocess.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_skip-tests-skipped-in-subprocess.patch new file mode 100644 index 00000000000..8e80dec749f --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.0.1_skip-tests-skipped-in-subprocess.patch @@ -0,0 +1,34 @@ +Use unittest.skip to skip tests skipped by subprocesses as otherwise skipped tests +marked as expectedFailure may succeed unexpectatly failing the testsuite. +E.g.: +> INFO:torch.testing._internal.common_distributed:Thread 0 skipping test > for following reason: PyTorch is built without MKL support +> INFO:torch.testing._internal.common_distributed:Thread 1 skipping test > for following reason: PyTorch is built without MKL support +> INFO:torch.testing._internal.common_distributed:Skipping > on sandcastle for the following reason: Test skipped at subprocess level, look at subprocess log for skip reason +> u +> ... +> FAILED (unexpected successes=1) + +Author: Alexander Grund (TU Dresden) + +diff --git a/torch/testing/_internal/common_distributed.py b/torch/testing/_internal/common_distributed.py +index 400aa80fdca..afea4a8f89f 100644 +--- a/torch/testing/_internal/common_distributed.py ++++ b/torch/testing/_internal/common_distributed.py +@@ -828,7 +828,7 @@ class MultiProcessTestCase(TestCase): + ) + for skip in TEST_SKIPS.values(): + if first_process.exitcode == skip.exit_code: +- if IS_SANDCASTLE: ++ if False: + # Don't use unittest.skip to skip the test on sandcastle + # since it creates tasks for skipped tests assuming there + # is some follow-up needed. Instead just "pass" the test +@@ -1123,7 +1123,7 @@ class MultiThreadedTestCase(TestCase): + if skip_code > 0: + for skip in TEST_SKIPS.values(): + if skip_code == skip.exit_code: +- if IS_SANDCASTLE: ++ if False: + # "pass" the test with an appropriate message. + logger.info( + f"Skipping {fn} on sandcastle for the following reason: {skip.message}" diff --git a/easybuild/easyconfigs/p/PyYAML/PyYAML-5.4.1-GCCcore-11.2.0-Python-2.7.18.eb b/easybuild/easyconfigs/p/PyYAML/PyYAML-5.4.1-GCCcore-11.2.0-Python-2.7.18.eb new file mode 100644 index 00000000000..1e3db0a9e7f --- /dev/null +++ b/easybuild/easyconfigs/p/PyYAML/PyYAML-5.4.1-GCCcore-11.2.0-Python-2.7.18.eb @@ -0,0 +1,28 @@ +easyblock = 'PythonPackage' + +name = 'PyYAML' +version = '5.4.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = "https://github.com/yaml/pyyaml" +description = """PyYAML is a YAML parser and emitter for the Python programming language.""" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e'] + +builddependencies = [('binutils', '2.37')] + +dependencies = [ + ('Python', '2.7.18'), + ('libyaml', '0.2.5'), +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +options = {'modulename': 'yaml'} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/PyYAML/PyYAML-6.0.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/p/PyYAML/PyYAML-6.0.1-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..caa66c5b231 --- /dev/null +++ b/easybuild/easyconfigs/p/PyYAML/PyYAML-6.0.1-GCCcore-13.2.0.eb @@ -0,0 +1,27 @@ +easyblock = 'PythonPackage' + +name = 'PyYAML' +version = '6.0.1' + +homepage = 'https://github.com/yaml/pyyaml' +description = "PyYAML is a YAML parser and emitter for the Python programming language." + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43'] + +builddependencies = [ + ('binutils', '2.40'), +] +dependencies = [ + ('Python', '3.11.5'), + ('libyaml', '0.2.5'), +] + +download_dep_fail = True +sanity_pip_check = True +use_pip = True +options = {'modulename': 'yaml'} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/PyZMQ/PyZMQ-25.1.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/p/PyZMQ/PyZMQ-25.1.0-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..e3ee288bac1 --- /dev/null +++ b/easybuild/easyconfigs/p/PyZMQ/PyZMQ-25.1.0-GCCcore-12.2.0.eb @@ -0,0 +1,28 @@ +easyblock = 'PythonPackage' + +name = 'PyZMQ' +version = '25.1.0' + +homepage = 'https://www.zeromq.org/bindings:python' +description = """Python bindings for ZeroMQ""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +source_urls = [PYPI_LOWER_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['80c41023465d36280e801564a69cbfce8ae85ff79b080e1913f6e90481fb8957'] + +builddependencies = [('binutils', '2.39')] + +dependencies = [ + ('Python', '3.10.8'), + ('ZeroMQ', '4.3.4'), +] + +options = {'modulename': 'zmq'} + +download_dep_fail = True +sanity_pip_check = True +use_pip = True + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/p/Pysam/Pysam-0.17.0-GCC-11.2.0-Python-2.7.18.eb b/easybuild/easyconfigs/p/Pysam/Pysam-0.17.0-GCC-11.2.0-Python-2.7.18.eb new file mode 100644 index 00000000000..2b1c61cd8ce --- /dev/null +++ b/easybuild/easyconfigs/p/Pysam/Pysam-0.17.0-GCC-11.2.0-Python-2.7.18.eb @@ -0,0 +1,41 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics +# 0.9.1.4: +# Modified by: Adam Huffman +# The Francis Crick Institute +# Modified by: Erich Birngruber +# Gregor Mendel Institute +# updated to 0.1.0. +# J. Sassmannshausen / GSTT +# +easyblock = 'PythonPackage' + +name = 'Pysam' +version = '0.17.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/pysam-developers/pysam' +description = """Pysam is a python module for reading and manipulating Samfiles. + It's a lightweight wrapper of the samtools C-API. Pysam also includes an interface for tabix.""" + +toolchain = {'name': 'GCC', 'version': '11.2.0'} + +source_urls = ['https://github.com/pysam-developers/pysam/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['f4d697e322d12f239c96c263374bad2b40fd95bff34841ab9515e3de9e3e7cca'] + +dependencies = [ + ('Python', '2.7.18'), + ('ncurses', '6.2'), + ('cURL', '7.78.0'), + ('XZ', '5.2.5'), +] + +download_dep_fail = True +use_pip = True + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/Python/Python-3.11.5-GCCcore-13.2.0.eb b/easybuild/easyconfigs/p/Python/Python-3.11.5-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..2a132b97595 --- /dev/null +++ b/easybuild/easyconfigs/p/Python/Python-3.11.5-GCCcore-13.2.0.eb @@ -0,0 +1,58 @@ +name = 'Python' +version = '3.11.5' + +homepage = 'https://python.org/' +description = """Python is a programming language that lets you work more quickly and integrate your systems + more effectively.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] +checksums = ['a12a0a013a30b846c786c010f2c19dd36b7298d888f7c4bd1581d90ce18b5e58'] + +builddependencies = [ + ('UnZip', '6.0'), + ('pkgconf', '2.0.3'), +] + +dependencies = [ + ('binutils', '2.40'), + ('bzip2', '1.0.8'), # required for bz2 package in Python stdlib + ('zlib', '1.2.13'), + ('libreadline', '8.2'), + ('ncurses', '6.4'), + ('SQLite', '3.43.1'), + ('XZ', '5.4.4'), + ('libffi', '3.4.4'), + ('OpenSSL', '1.1', '', SYSTEM), +] + +install_pip = True + +exts_default_options = { + 'download_dep_fail': True, + 'sanity_pip_check': True, + 'source_urls': [PYPI_SOURCE], + 'use_pip': True, +} + +# order is important! +# package versions updated 2023-09-28 +exts_list = [ + ('flit_core', '3.9.0', { + 'checksums': ['72ad266176c4a3fcfab5f2930d76896059851240570ce9a98733b658cb786eba'], + }), + ('wheel', '0.41.2', { + 'checksums': ['0c5ac5ff2afb79ac23ab82bab027a0be7b5dbcf2e54dc50efe4bf507de1f7985'], + }), + ('setuptools', '68.2.2', { + 'checksums': ['4ac1475276d2f1c48684874089fefcd83bd7162ddaafb81fac866ba0db282a87'], + }), + ('pip', '23.2.1', { + 'checksums': ['fb0bd5435b3200c602b5bf61d2d43c2f13c02e29c1707567ae7fbc514eb9faf2'], + }), +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/p7zip/p7zip-17.04-GCCcore-12.3.0.eb b/easybuild/easyconfigs/p/p7zip/p7zip-17.04-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..6a37b555e9e --- /dev/null +++ b/easybuild/easyconfigs/p/p7zip/p7zip-17.04-GCCcore-12.3.0.eb @@ -0,0 +1,47 @@ +easyblock = 'MakeCp' + +name = 'p7zip' +version = '17.04' + +homepage = 'https://github.com/p7zip-project/p7zip/' +description = """p7zip is a quick port of 7z.exe and 7za.exe (CLI version of +7zip) for Unix. 7-Zip is a file archiver with highest compression ratio.""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +github_account = 'p7zip-project' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['ea029a2e21d2d6ad0a156f6679bd66836204aa78148a4c5e498fe682e77127ef'] + +builddependencies = [ + ('binutils', '2.40'), +] + +prebuildopts = "cp makefile.linux_amd64 makefile.linux &&" +buildopts = 'all3 CC="$CC" CXX="$CXX" OPTFLAGS="$CFLAGS"' + +files_to_copy = [ + (['bin/7za', 'bin/7zr', 'bin/7zCon.sfx'], 'bin'), # stand-alone binaries + (['bin/7z', 'bin/7z.%s' % SHLIB_EXT, 'bin/Codecs'], 'libexec'), # 7z requires 7z.so plugin in same directory +] + +# put script in place for 7z, since it *must* be called full path, to ensure that 7z.so is found in the same directory +# see also http://sourceforge.net/p/p7zip/discussion/383044/thread/5e4085ab/ +postinstallcmds = [ + "echo '#!/bin/sh\n%(installdir)s/libexec/7z $@' > %(installdir)s/bin/7z", + "chmod +x %(installdir)s/bin/7z", # set execution bits according to current umask +] + +sanity_check_paths = { + 'files': ['bin/7z', 'bin/7za', 'bin/7zCon.sfx', 'bin/7zr', 'libexec/7z', 'libexec/7z.%s' % SHLIB_EXT], + 'dirs': ['libexec/Codecs'], +} + +sanity_check_commands = [ + '7z --help', + '7z x || test $? -gt 0', + "! 7z i | grep -q \"Can't load\" ", +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/p/patchelf/patchelf-0.18.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/p/patchelf/patchelf-0.18.0-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..62d26c800db --- /dev/null +++ b/easybuild/easyconfigs/p/patchelf/patchelf-0.18.0-GCCcore-13.2.0.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'patchelf' +version = '0.18.0' + +homepage = 'https://github.com/NixOS/patchelf' +description = """PatchELF is a small utility to modify the dynamic linker and RPATH of ELF executables.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://github.com/NixOS/patchelf/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = ['1451d01ee3a21100340aed867d0b799f46f0b1749680028d38c3f5d0128fb8a7'] + +builddependencies = [ + ('binutils', '2.40'), + ('Autotools', '20220317'), +] + +preconfigopts = "sh bootstrap.sh && " + +sanity_check_paths = { + 'files': ['bin/patchelf'], + 'dirs': ['share'], +} + +sanity_check_commands = ["patchelf --help"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/p/photontorch/photontorch-0.4.1-foss-2022a.eb b/easybuild/easyconfigs/p/photontorch/photontorch-0.4.1-foss-2022a.eb new file mode 100644 index 00000000000..e43677fa77d --- /dev/null +++ b/easybuild/easyconfigs/p/photontorch/photontorch-0.4.1-foss-2022a.eb @@ -0,0 +1,38 @@ +easyblock = 'PythonBundle' + +name = 'photontorch' +version = '0.4.1' + +homepage = 'https://docs.photontorch.com/' +description = """ +Photontorch is a photonic simulator for highly parallel simulation and optimization of photonic circuits in time and +frequency domain. Photontorch features CUDA enabled simulation and optimization of photonic circuits. It leverages the +deep learning framework PyTorch to view the photonic circuit as essentially a recurrent neural network. This enables the +use of native PyTorch optimizers to optimize the (physical) parameters of the circuit. +""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('PyTorch', '1.12.0'), + ('tqdm', '4.64.0'), + ('networkx', '2.8.4'), + ('matplotlib', '3.5.2'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('torch-lfilter', '0.0.3', { + 'source_tmpl': 'torch_lfilter-%(version)s.tar.gz', + 'checksums': ['aa613725b73e7b6e7efd63c30580a906d7bb23206b5d045b8452ab770f7a50df'], + }), + (name, version, { + 'checksums': ['50d2e2c8a24c914cc7afee1eea6efb8bccfbc19ff9652a9af46efad28caa6381'], + }), +] + +moduleclass = 'phys' diff --git a/easybuild/easyconfigs/p/pkgconf/pkgconf-1.8.0-GCCcore-10.3.0.eb b/easybuild/easyconfigs/p/pkgconf/pkgconf-1.8.0-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..fa7cf70d46b --- /dev/null +++ b/easybuild/easyconfigs/p/pkgconf/pkgconf-1.8.0-GCCcore-10.3.0.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'pkgconf' +version = '1.8.0' + +homepage = 'https://github.com/pkgconf/pkgconf' + +description = """pkgconf is a program which helps to configure compiler and linker flags for development libraries. + It is similar to pkg-config from freedesktop.org.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://distfiles.ariadne.space/pkgconf/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['d7b6fdb522d81c11f5a0e0a0629a9f5480809ec90e595058674c1517822dfb8c'] + +builddependencies = [('binutils', '2.36.1')] + +postinstallcmds = ["cd %(installdir)s/bin && ln -s pkgconf pkg-config"] + +sanity_check_paths = { + 'files': ['bin/pkg-config', 'bin/pkgconf'], + 'dirs': [], +} + +sanity_check_commands = [ + "pkg-config --help", + "pkgconf --help", +] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/p/plot1cell/plot1cell-0.0.1-foss-2022b-R-4.2.2.eb b/easybuild/easyconfigs/p/plot1cell/plot1cell-0.0.1-foss-2022b-R-4.2.2.eb new file mode 100644 index 00000000000..d25d694958d --- /dev/null +++ b/easybuild/easyconfigs/p/plot1cell/plot1cell-0.0.1-foss-2022b-R-4.2.2.eb @@ -0,0 +1,28 @@ +easyblock = 'RPackage' + +name = 'plot1cell' +version = '0.0.1' +versionsuffix = '-R-%(rver)s' + +homepage = 'https://github.com/HaojiaWu/plot1cell' +description = "plot1cell: a package for advanced single cell data visualization" + +toolchain = {'name': 'foss', 'version': '2022b'} + +source_urls = ['https://github.com/HaojiaWu/plot1cell/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['ac39a21e8530d7eb489ac64d8e56d19dcbf3f904b99fc91cf0746bb230f37a10'] + +dependencies = [ + ('R', '4.2.2'), + ('R-bundle-Bioconductor', '3.16', versionsuffix), + ('DoubletFinder', '2.0.3-20230819', versionsuffix), + ('loomR', '0.2.0-20180425', versionsuffix), +] + +sanity_check_paths = { + 'files': [], + 'dirs': [name], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/plotutils/plotutils-2.6-GCC-11.3.0.eb b/easybuild/easyconfigs/p/plotutils/plotutils-2.6-GCC-11.3.0.eb new file mode 100644 index 00000000000..76c7003655d --- /dev/null +++ b/easybuild/easyconfigs/p/plotutils/plotutils-2.6-GCC-11.3.0.eb @@ -0,0 +1,60 @@ +# J. Sassmannshausen (Imperial College London/UK) + +easyblock = 'ConfigureMake' + +name = 'plotutils' +version = '2.6' + +homepage = 'https://www.gnu.org/software/plotutils/' +description = """The GNU plotutils package contains software for both programmers and +technical users. Its centerpiece is libplot, a powerful C/C++ function library for +exporting 2-D vector graphics in many file formats, both vector and bitmap. On the +X Window System, it can also do 2-D vector graphics animations. + +libplot is device-independent, in the sense that its API (application programming interface) +does not depend on the type of graphics file to be exported. A Postscript-like API +is used both for file export and for graphics animations. A libplot programmer needs +to learn only one API: not the details of many graphics file formats.""" + +toolchain = {'name': 'GCC', 'version': '11.3.0'} + +source_urls = ['https://ftp.gnu.org/gnu/plotutils'] +sources = ['%(name)s-%(version)s.tar.gz'] +patches = ['%(name)s-%(version)s-png.patch'] + +checksums = [ + '4f4222820f97ca08c7ea707e4c53e5a3556af4d8f1ab51e0da6ff1627ff433ab', # plotutils-2.6.tar.gz + 'd60997b0608db37d494f60394a468cd5491e200862d8d9af32ba1dbc3c178aaa', # plotutils-2.6-png.patch +] + +builddependencies = [ + ('gawk', '5.1.1'), + ('Bison', '3.8.2'), + ('flex', '2.6.4'), +] + +dependencies = [ + ('X11', '20220504'), +] + +configopts = '--enable-libxmi --enable-ps-fonts-in-pcl --enable-libplotter ' +configopts += '--enable-lj-fonts-in-ps ' + +runtest = 'check' + +local_bin = [ + 'double', 'graph', 'hersheydemo', 'ode', 'pic2plot', 'plot', + 'plotfont', 'spline', 'tek2plot' +] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in local_bin] + + ['lib/libplot.a', 'lib/libplot.%s' % SHLIB_EXT] + + ['lib/libplotter.a', 'lib/libplotter.%s' % SHLIB_EXT] + + ['lib/libxmi.a', 'lib/libxmi.%s' % SHLIB_EXT], + 'dirs': ['include', 'share'], +} + +sanity_check_commands = ["%s --help" % x for x in local_bin] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/p/plotutils/plotutils-2.6-png.patch b/easybuild/easyconfigs/p/plotutils/plotutils-2.6-png.patch new file mode 100644 index 00000000000..abb18420d29 --- /dev/null +++ b/easybuild/easyconfigs/p/plotutils/plotutils-2.6-png.patch @@ -0,0 +1,40 @@ +Patch to ensure png-1.5 and higher can be used, taken from +https://lists.gnu.org/archive/html/bug-plotutils/2011-01/msg00000.html +Author: J. Sassmannshausen (Imperial College London/UK) +diff --git a/plotutils-2.6.orig/libplot/z_write.c b/plotutils-2.6/libplot/z_write.c +index d76a7cc..173d4a9 100644 +--- a/plotutils-2.6.orig/libplot/z_write.c ++++ b/plotutils-2.6/libplot/z_write.c +@@ -164,7 +164,7 @@ _pl_z_maybe_output_image (S___(Plotter *_plotter)) + } + + /* cleanup after libpng errors (error handler does a longjmp) */ +- if (setjmp (png_ptr->jmpbuf)) ++ if (setjmp (png_jmpbuf (png_ptr))) + { + png_destroy_write_struct (&png_ptr, (png_info **)NULL); + return -1; +@@ -444,7 +444,11 @@ _our_error_fn_stdio (png_struct *png_ptr, const char *data) + #endif + } + ++#if (PNG_LIBPNG_VER < 10500) + longjmp (png_ptr->jmpbuf, 1); ++#else ++ png_longjmp (png_ptr, 1); ++#endif + } + + static void +@@ -515,7 +519,11 @@ _our_error_fn_stream (png_struct *png_ptr, const char *data) + #endif + } + ++#if (PNG_LIBPNG_VER < 10500) + longjmp (png_ptr->jmpbuf, 1); ++#else ++ png_longjmp (png_ptr, 1); ++#endif + } + + static void diff --git a/easybuild/easyconfigs/p/poppler/poppler-23.09.0-GCC-12.3.0.eb b/easybuild/easyconfigs/p/poppler/poppler-23.09.0-GCC-12.3.0.eb new file mode 100644 index 00000000000..a5162ef7ca5 --- /dev/null +++ b/easybuild/easyconfigs/p/poppler/poppler-23.09.0-GCC-12.3.0.eb @@ -0,0 +1,59 @@ +easyblock = 'Bundle' + +name = 'poppler' +version = '23.09.0' + +homepage = 'https://poppler.freedesktop.org' +description = "Poppler is a PDF rendering library" + +toolchain = {'name': 'GCC', 'version': '12.3.0'} + +builddependencies = [ + ('CMake', '3.26.3'), + ('pkgconf', '1.9.5'), + ('Python', '3.11.3'), +] + +dependencies = [ + ('freetype', '2.13.0'), + ('fontconfig', '2.14.2'), + ('libjpeg-turbo', '2.1.5.1'), + ('libpng', '1.6.39'), + ('NSS', '3.89.1'), + ('LibTIFF', '4.5.0'), + ('Qt5', '5.15.10'), + ('Boost', '1.82.0'), + ('cairo', '1.17.8'), + ('OpenJPEG', '2.5.0'), + ('zlib', '1.2.13'), +] + +default_easyblock = 'CMakeMake' + +default_component_specs = { + 'start_dir': '%(name)s-%(version)s', +} + +components = [ + (name, version, { + 'source_urls': ['https://poppler.freedesktop.org/'], + 'sources': [SOURCE_TAR_XZ], + 'checksums': ['80d1d44dd8bdf4ac1a47d56c5065075eb9991790974b1ed7d14b972acde88e55'], + 'configopts': "-DENABLE_BOOST=ON", + }), + ('poppler-data', '0.4.12', { + 'source_urls': ['https://poppler.freedesktop.org/'], + 'sources': [SOURCE_TAR_GZ], + 'checksums': ['c835b640a40ce357e1b83666aabd95edffa24ddddd49b8daff63adb851cdab74'], + }), +] + +sanity_check_paths = { + 'files': ['bin/pdfinfo', 'lib/libpoppler.%s' % SHLIB_EXT, 'lib/libpoppler-cpp.%s' % SHLIB_EXT, + 'lib/libpoppler-glib.%s' % SHLIB_EXT, 'lib/libpoppler-qt5.%s' % SHLIB_EXT], + 'dirs': ['include/poppler', 'lib/pkgconfig', 'share'], +} + +sanity_check_commands = ["pdfinfo --help"] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/preCICE/preCICE-2.5.0-foss-2022a.eb b/easybuild/easyconfigs/p/preCICE/preCICE-2.5.0-foss-2022a.eb new file mode 100644 index 00000000000..1cfa3f80e8b --- /dev/null +++ b/easybuild/easyconfigs/p/preCICE/preCICE-2.5.0-foss-2022a.eb @@ -0,0 +1,70 @@ +easyblock = 'CMakeMake' + +name = 'preCICE' +version = '2.5.0' + +homepage = 'https://www.precice.org/' +description = """preCICE (Precise Code Interaction Coupling Environment) +is a coupling library for partitioned multi-physics simulations, +including, but not restricted to fluid-structure interaction and +conjugate heat transfer simulations. Partitioned means that preCICE +couples existing programs (solvers) capable of simulating a subpart of +the complete physics involved in a simulation. This allows for the high +flexibility that is needed to keep a decent time-to-solution for complex +multi-physics scenarios.""" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'usempi': True} + +source_urls = ['https://github.com/precice/precice/archive'] +sources = ['v%(version)s.tar.gz'] +patches = [ + 'preCICE-2.5.0_link_with_statics.patch', +] +checksums = [ + {'v2.5.0.tar.gz': '76ec6ee0d1a66f6f3d3d2d11f03cfc5aa7ef4d9e5deb9b7a4b4455ec7f796c00'}, + {'preCICE-2.5.0_link_with_statics.patch': '38de293a94e9029b60b262ee23e45f0e9098f7d00ba0d0f7278b7109a50e21f6'}, +] + +builddependencies = [ + ('CMake', '3.23.1'), + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('Boost', '1.79.0'), + ('Eigen', '3.4.0'), + ('libxml2', '2.9.13'), + ('PETSc', '3.17.4'), + ('SciPy-bundle', '2022.05'), +] + +separate_build_dir = True +build_shared_libs = True + +# Tell pkg-config to keep flags available in CPATH and others because it prevents CMake from finding PETSc correctly +preconfigopts = 'PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 ' +# Make sure MPI support is enabled +configopts = '-DPRECICE_MPICommunication=ON ' +# Make sure PETSc support is enabled +configopts += '-DPRECICE_PETScMapping=ON ' +# Make sure PythonActions support is enabled +configopts += "-DPYTHON_INCLUDE_DIR=$EBROOTPYTHON/include/python%(pyshortver)s " +configopts += "-DPYTHON_LIBRARY=$EBROOTPYTHON/lib/libpython%%(pyshortver)s.%s " % SHLIB_EXT +configopts += '-DPRECICE_PythonActions=ON ' +# force Eigen include directory which is not found correctly otherwise +configopts += '-DEIGEN3_INCLUDE_DIR="$EBROOTEIGEN/include"' + +# Run basic tests +runtest = ' test_base' + +sanity_check_paths = { + 'files': ['bin/binprecice'] + + ['include/precice/%s' % x for x in ['SolverInterfaceC.h', 'Version.h', + 'SolverInterfaceFortran.hpp', 'SolverInterface.hpp']] + + ['lib/libprecice.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/p/preCICE/preCICE-2.5.0_link_with_statics.patch b/easybuild/easyconfigs/p/preCICE/preCICE-2.5.0_link_with_statics.patch new file mode 100644 index 00000000000..01efdbc69fc --- /dev/null +++ b/easybuild/easyconfigs/p/preCICE/preCICE-2.5.0_link_with_statics.patch @@ -0,0 +1,22 @@ +# Adds static SCOTCH library for PETSc component +# +# Author: Jiri Furst +# +--- cmake/modules/FindPETSc.cmake.orig 2023-02-27 15:04:41.282052238 +0100 ++++ cmake/modules/FindPETSc.cmake 2023-02-27 16:10:09.140875043 +0100 +@@ -182,6 +182,15 @@ + endif() + endforeach() + ++ # Add missing static liraries (easybuild specific?) ++ foreach(_next_lib IN LISTS PC_PETSc_STATIC_LIBRARIES) ++ if(_next_lib STREQUAL "ptscotch") ++ list(APPEND _petsc_libs "$ENV{EBROOTSCOTCH}/lib/libptscotch.a") ++ elseif(_next_lib STREQUAL "scotch") ++ list(APPEND _petsc_libs "$ENV{EBROOTSCOTCH}/lib/libscotch.a") ++ endif() ++ endforeach() ++ + # Link against MPI if it is used. + # This adds all required link directories. + foreach(_next_lib IN LISTS PC_PETSc_STATIC_LIBRARIES) diff --git a/easybuild/easyconfigs/p/pretty-yaml/pretty-yaml-23.9.5-GCCcore-11.3.0.eb b/easybuild/easyconfigs/p/pretty-yaml/pretty-yaml-23.9.5-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..3990756639a --- /dev/null +++ b/easybuild/easyconfigs/p/pretty-yaml/pretty-yaml-23.9.5-GCCcore-11.3.0.eb @@ -0,0 +1,33 @@ +easyblock = 'PythonPackage' + +name = 'pretty-yaml' +local_mod = 'pyaml' +version = '23.9.5' + +homepage = 'https://github.com/mk-fg/pretty-yaml' +description = """ +PyYAML-based python module to produce pretty and readable YAML-serialized data. +This module is for serialization only, see ruamel.yaml module for literate YAML +parsing (keeping track of comments, spacing, line/column numbers of values, etc). +""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['https://pypi.python.org/packages/source/p/%s/' % local_mod] +sources = ['%s-%%(version)s.tar.gz' % local_mod] +checksums = ['9b903a1185eefdf85499cb856b70b12245988db990bfd6af596d3521ece306a4'] + +builddependencies = [('binutils', '2.38')] + +dependencies = [ + ('Python', '3.10.4'), + ('PyYAML', '6.0'), +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +options = {'modulename': local_mod} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/pyEGA3/pyEGA3-5.0.2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/p/pyEGA3/pyEGA3-5.0.2-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..2c867a3ef22 --- /dev/null +++ b/easybuild/easyconfigs/p/pyEGA3/pyEGA3-5.0.2-GCCcore-12.3.0.eb @@ -0,0 +1,50 @@ +easyblock = 'PythonBundle' + +name = 'pyEGA3' +version = '5.0.2' + +homepage = 'https://github.com/EGA-archive/ega-download-client' +description = """ A basic Python-based EGA download client """ + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +builddependencies = [ + ('binutils', '2.40'), + ('hatchling', '1.18.0'), +] + +dependencies = [ + ('Python', '3.11.3'), + ('tqdm', '4.66.1'), + ('Python-bundle-PyPI', '2023.06'), +] + +use_pip = True + +exts_list = [ + ('humanize', '4.8.0', { + 'checksums': ['9783373bf1eec713a770ecaa7c2d7a7902c98398009dfa3d8a2df91eec9311e8'], + }), + ('htsget', '0.2.6', { + 'checksums': ['84816534e2740d3bcc4fb44a6d703b387b8a392209be098752466c35ff253884'], + }), + ('urllib3', '1.26.18', { + 'checksums': ['f8ecc1bba5667413457c529ab955bf8c67b45db799d159066261719e328580a0'], + }), + (name, version, { + 'preinstallopts': "sed -i 's/==/>=/g' setup.py && ", + 'sources': ['%(namelower)s-%(version)s.tar.gz'], + 'checksums': ['677f49564ff3178291ce14a7dcd4032a10bf8505d3f5c07ded13565302a89336'], + }), +] + +sanity_pip_check = True + +sanity_check_paths = { + 'files': ['bin/pyega3'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'] +} + +sanity_check_commands = ["pyega3 -h"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/pybedtools/pybedtools-0.8.2-GCC-11.2.0-Python-2.7.18.eb b/easybuild/easyconfigs/p/pybedtools/pybedtools-0.8.2-GCC-11.2.0-Python-2.7.18.eb new file mode 100644 index 00000000000..62c0c429372 --- /dev/null +++ b/easybuild/easyconfigs/p/pybedtools/pybedtools-0.8.2-GCC-11.2.0-Python-2.7.18.eb @@ -0,0 +1,26 @@ +easyblock = 'PythonPackage' + +name = 'pybedtools' +version = '0.8.2' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://daler.github.io/pybedtools' +description = "pybedtools wraps and extends BEDTools and offers feature-level manipulations from within Python." + +toolchain = {'name': 'GCC', 'version': '11.2.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['a184a36099458627e7ef52ea88218f7c00dc9c505b4256ece9ede58b1efa8771'] + +dependencies = [ + ('Python', '2.7.18'), + ('BEDTools', '2.30.0'), + ('Pysam', '0.17.0', versionsuffix), +] + +download_dep_fail = True +use_pip = True + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/pybind11/pybind11-2.10.3-GCCcore-12.2.0.eb b/easybuild/easyconfigs/p/pybind11/pybind11-2.10.3-GCCcore-12.2.0.eb index dc6dd0aead4..d3655ac1928 100644 --- a/easybuild/easyconfigs/p/pybind11/pybind11-2.10.3-GCCcore-12.2.0.eb +++ b/easybuild/easyconfigs/p/pybind11/pybind11-2.10.3-GCCcore-12.2.0.eb @@ -9,15 +9,23 @@ toolchain = {'name': 'GCCcore', 'version': '12.2.0'} source_urls = ['https://github.com/pybind/pybind11/archive/'] sources = ['v%(version)s.tar.gz'] -checksums = ['5d8c4c5dda428d3a944ba3d2a5212cb988c2fae4670d58075a5a49075a6ca315'] +patches = [ + 'pybind11-2.10.3_fix-nvcc-compat.patch', + 'pybind11-2.10.3_require-catch.patch', +] +checksums = [ + {'v2.10.3.tar.gz': '5d8c4c5dda428d3a944ba3d2a5212cb988c2fae4670d58075a5a49075a6ca315'}, + {'pybind11-2.10.3_fix-nvcc-compat.patch': '510a23dac47b8b440c06c101d269451c95e09907d9034b6b8a16aeb8b89364ae'}, + {'pybind11-2.10.3_require-catch.patch': '4a27ba3ef1d5c535d120d6178a6e876ae678e4899a07500aab37908357b0b60b'}, +] builddependencies = [ ('binutils', '2.39'), ('CMake', '3.24.3'), + # Test dependencies ('Eigen', '3.4.0'), + ('Catch2', '2.13.9', '', SYSTEM), ] dependencies = [('Python', '3.10.8')] -configopts = "-DPYTHON_EXECUTABLE=$EBROOTPYTHON/bin/python" - moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/pybind11/pybind11-2.10.3_fix-nvcc-compat.patch b/easybuild/easyconfigs/p/pybind11/pybind11-2.10.3_fix-nvcc-compat.patch new file mode 100644 index 00000000000..f6f0d60071f --- /dev/null +++ b/easybuild/easyconfigs/p/pybind11/pybind11-2.10.3_fix-nvcc-compat.patch @@ -0,0 +1,34 @@ +NVCC of CUDA 12 (and seemingly also CUDA 11.7 in some configureations) +fail to parse the expression and fail with +> pybind11/detail/../cast.h: In function ‘typename pybind11::detail::type_caster::type +> ::cast_op_type pybind11::detail::cast_op(make_caster&)’: +> pybind11/detail/../cast.h:45:120: error: expected template-name before ‘<’ token +> 45 | return caster.operator typename make_caster::template cast_op_type(); + +See https://github.com/pybind/pybind11/issues/4606 +Disambiguate the expression to workaround this. + +Author: Alexander Grund (TU Dresden) + +diff --git a/include/pybind11/cast.h b/include/pybind11/cast.h +index 3a404602..1eefd0f1 100644 +--- a/include/pybind11/cast.h ++++ b/include/pybind11/cast.h +@@ -42,13 +42,14 @@ using make_caster = type_caster>; + // Shortcut for calling a caster's `cast_op_type` cast operator for casting a type_caster to a T + template + typename make_caster::template cast_op_type cast_op(make_caster &caster) { +- return caster.operator typename make_caster::template cast_op_type(); ++ using result_t = typename make_caster::template cast_op_type; ++ return caster.operator result_t(); + } + template + typename make_caster::template cast_op_type::type> + cast_op(make_caster &&caster) { +- return std::move(caster).operator typename make_caster:: +- template cast_op_type::type>(); ++ using result_t = typename make_caster::template cast_op_type::type>; ++ return std::move(caster).operator result_t(); + } + + template diff --git a/easybuild/easyconfigs/p/pybind11/pybind11-2.10.3_require-catch.patch b/easybuild/easyconfigs/p/pybind11/pybind11-2.10.3_require-catch.patch new file mode 100644 index 00000000000..dc0b6c18e77 --- /dev/null +++ b/easybuild/easyconfigs/p/pybind11/pybind11-2.10.3_require-catch.patch @@ -0,0 +1,21 @@ +Error out if Catch2 is not found instead of silently skipping. + +Author: Alexander Grund (TU Dresden) + +diff --git a/tools/FindCatch.cmake b/tools/FindCatch.cmake +index 57bba58b..41f82e5c 100644 +--- a/tools/FindCatch.cmake ++++ b/tools/FindCatch.cmake +@@ -60,9 +60,10 @@ if(NOT CATCH_VERSION OR CATCH_VERSION VERSION_LESS ${Catch_FIND_VERSION}) + if(DOWNLOAD_CATCH) + _download_catch(${Catch_FIND_VERSION} "${PROJECT_BINARY_DIR}/catch/") + _get_catch_version() ++ elseif(CATCH_INCLUDE_DIR) ++ message(FATAL_ERROR "Catch (${CATCH_INCLUDE_DIR}) version to low: ${CATCH_VERSION} < ${Catch_FIND_VERSION}") + else() +- set(CATCH_FOUND FALSE) +- return() ++ message(FATAL_ERROR "Catch not found") + endif() + endif() + diff --git a/easybuild/easyconfigs/p/pybind11/pybind11-2.11.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/p/pybind11/pybind11-2.11.1-GCCcore-12.3.0.eb index b05186f3338..ef87962e756 100644 --- a/easybuild/easyconfigs/p/pybind11/pybind11-2.11.1-GCCcore-12.3.0.eb +++ b/easybuild/easyconfigs/p/pybind11/pybind11-2.11.1-GCCcore-12.3.0.eb @@ -9,18 +9,24 @@ toolchain = {'name': 'GCCcore', 'version': '12.3.0'} source_urls = ['https://github.com/pybind/pybind11/archive/'] sources = ['v%(version)s.tar.gz'] -checksums = ['d475978da0cdc2d43b73f30910786759d593a9d8ee05b1b6846d1eb16c6d2e0c'] +patches = [ + 'pybind11-2.10.3_fix-nvcc-compat.patch', + 'pybind11-2.10.3_require-catch.patch', +] +checksums = [ + {'v2.11.1.tar.gz': 'd475978da0cdc2d43b73f30910786759d593a9d8ee05b1b6846d1eb16c6d2e0c'}, + {'pybind11-2.10.3_fix-nvcc-compat.patch': '510a23dac47b8b440c06c101d269451c95e09907d9034b6b8a16aeb8b89364ae'}, + {'pybind11-2.10.3_require-catch.patch': '4a27ba3ef1d5c535d120d6178a6e876ae678e4899a07500aab37908357b0b60b'}, +] builddependencies = [ ('binutils', '2.40'), ('CMake', '3.26.3'), + # Test dependencies ('Eigen', '3.4.0'), + ('Catch2', '2.13.9', '', SYSTEM), ('Python-bundle-PyPI', '2023.06'), # to provide pytest ] -dependencies = [ - ('Python', '3.11.3'), -] - -configopts = "-DPYTHON_EXECUTABLE=$EBROOTPYTHON/bin/python" +dependencies = [('Python', '3.11.3')] moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/pygraphviz/pygraphviz-1.11-GCCcore-12.3.0.eb b/easybuild/easyconfigs/p/pygraphviz/pygraphviz-1.11-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..152d35266b7 --- /dev/null +++ b/easybuild/easyconfigs/p/pygraphviz/pygraphviz-1.11-GCCcore-12.3.0.eb @@ -0,0 +1,33 @@ +easyblock = 'PythonBundle' + +name = 'pygraphviz' +version = '1.11' + +homepage = 'https://pygraphviz.github.io' +description = """PyGraphviz is a Python interface to the Graphviz graph layout and visualization package. +With PyGraphviz you can create, edit, read, write, and draw graphs using Python to access the Graphviz +graph data structure and layout algorithms.""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('Python', '3.11.3'), + ('Graphviz', '8.1.0'), +] + +use_pip = True + +exts_list = [ + (name, version, { + 'sources': ['%(namelower)s-%(version)s.zip'], + 'checksums': ['a97eb5ced266f45053ebb1f2c6c6d29091690503e3a5c14be7f908b37b06f2d4'], + }), +] + +sanity_pip_check = True + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/pyro-ppl/pyro-ppl-1.8.0-foss-2021a-CUDA-11.3.1.eb b/easybuild/easyconfigs/p/pyro-ppl/pyro-ppl-1.8.0-foss-2021a-CUDA-11.3.1.eb new file mode 100644 index 00000000000..2bf1ab424b3 --- /dev/null +++ b/easybuild/easyconfigs/p/pyro-ppl/pyro-ppl-1.8.0-foss-2021a-CUDA-11.3.1.eb @@ -0,0 +1,48 @@ +# Author: Denis Krišťák (INU) +# Updated to 1.8.2, pyro-api as extension added +# Author: J. Sassmannshausen (Imperial College London/UK) + +easyblock = 'PythonBundle' + +name = 'pyro-ppl' +version = '1.8.0' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://github.com/pyro-ppl/pyro' +description = "Pyro is a flexible, scalable deep probabilistic programming library built on PyTorch." + +toolchain = {'name': 'foss', 'version': '2021a'} + +dependencies = [ + ('CUDA', '11.3.1', '', SYSTEM), + ('Python', '3.9.5'), + ('SciPy-bundle', '2021.05'), + ('PyTorch', '1.10.0', versionsuffix), + ('tqdm', '4.61.2'), +] + +use_pip = True + +exts_list = [ + ('opt_einsum', '3.3.0', { + 'checksums': ['59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549'], + }), + ('pyro-api', '0.1.2', { + 'modulename': 'pyroapi', + 'checksums': ['a1b900d9580aa1c2fab3b123ab7ff33413744da7c5f440bd4aadc4d40d14d920'], + }), + (name, version, { + 'modulename': 'pyro', + 'checksums': ['68e4ea30f219227dd88e55de2550d3f8c20a20adbdb67ad1e13b50868bb2ac0c'], + }), +] + +sanity_pip_check = True + +sanity_check_commands = [ + "python -c 'from pyroapi import distributions as dist'", + "python -c 'from pyroapi import infer, ops, optim, pyro, pyro_backend'", + "python -c 'from pyro import infer, nn, distributions'", +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/p/pytest-rerunfailures/pytest-rerunfailures-12.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/p/pytest-rerunfailures/pytest-rerunfailures-12.0-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..eefd52471b1 --- /dev/null +++ b/easybuild/easyconfigs/p/pytest-rerunfailures/pytest-rerunfailures-12.0-GCCcore-12.2.0.eb @@ -0,0 +1,21 @@ +easyblock = 'PythonPackage' + +name = 'pytest-rerunfailures' +version = '12.0' + +homepage = 'https://github.com/pytest-dev/pytest-rerunfailures' +description = """pytest plugin to re-run tests to eliminate flaky failures.""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +builddependencies = [('binutils', '2.39')] +dependencies = [('Python', '3.10.8')] + +use_pip = True +sanity_pip_check = True +download_dep_fail = False + +sources = [SOURCE_TAR_GZ] +checksums = ['784f462fa87fe9bdf781d0027d856b47a4bfe6c12af108f6bd887057a917b48e'] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/p/pytest-rerunfailures/pytest-rerunfailures-12.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/p/pytest-rerunfailures/pytest-rerunfailures-12.0-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..19666ba283e --- /dev/null +++ b/easybuild/easyconfigs/p/pytest-rerunfailures/pytest-rerunfailures-12.0-GCCcore-12.3.0.eb @@ -0,0 +1,25 @@ +easyblock = 'PythonPackage' + +name = 'pytest-rerunfailures' +version = '12.0' + +homepage = 'https://github.com/pytest-dev/pytest-rerunfailures' +description = """pytest plugin to re-run tests to eliminate flaky failures.""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +builddependencies = [('binutils', '2.40')] + +dependencies = [ + ('Python', '3.11.3'), + ('Python-bundle-PyPI', '2023.06'), # It checks for it after installed +] + +use_pip = True +sanity_pip_check = True +download_dep_fail = False + +sources = [SOURCE_TAR_GZ] +checksums = ['784f462fa87fe9bdf781d0027d856b47a4bfe6c12af108f6bd887057a917b48e'] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/p/pytest-shard/pytest-shard-0.1.2-GCCcore-12.2.0.eb b/easybuild/easyconfigs/p/pytest-shard/pytest-shard-0.1.2-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..bd08dfe54d6 --- /dev/null +++ b/easybuild/easyconfigs/p/pytest-shard/pytest-shard-0.1.2-GCCcore-12.2.0.eb @@ -0,0 +1,28 @@ +easyblock = 'PythonPackage' + +name = 'pytest-shard' +version = '0.1.2' + +homepage = 'https://github.com/AdamGleave/pytest-shard' +description = """pytest plugin to support parallelism across multiple machines. + +Shards tests based on a hash of their test name enabling easy parallelism across machines, +suitable for a wide variety of continuous integration services. +Tests are split at the finest level of granularity, individual test cases, +enabling parallelism even if all of your tests are in a single file +(or even single parameterized test method). +""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +builddependencies = [('binutils', '2.39')] +dependencies = [('Python', '3.10.8')] + +use_pip = True +sanity_pip_check = True +download_dep_fail = False + +sources = [SOURCE_TAR_GZ] +checksums = ['b86a967fbfd1c8e50295095ccda031b7e890862ee06531d5142844f4c1d1cd67'] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/q/QCG-PilotJob/QCG-PilotJob-0.13.1-gfbf-2022b.eb b/easybuild/easyconfigs/q/QCG-PilotJob/QCG-PilotJob-0.13.1-gfbf-2022b.eb new file mode 100644 index 00000000000..4040a8b8488 --- /dev/null +++ b/easybuild/easyconfigs/q/QCG-PilotJob/QCG-PilotJob-0.13.1-gfbf-2022b.eb @@ -0,0 +1,56 @@ +easyblock = 'PythonBundle' + +name = 'QCG-PilotJob' +version = '0.13.1' + +homepage = 'https://qcg-pilotjob.readthedocs.org' +description = """A python service for easy execution of many tasks inside a single allocation.""" + +toolchain = {'name': 'gfbf', 'version': '2022b'} + +dependencies = [ + ('Python', '3.10.8'), + ('SciPy-bundle', '2023.02'), + ('PyZMQ', '25.1.0'), + ('Kaleido', '0.2.1'), + ('statsmodels', '0.14.0'), + ('plotly.py', '5.13.1'), +] + +use_pip = True + +exts_list = [ + ('patsy', '0.5.3', { + 'checksums': ['bdc18001875e319bc91c812c1eb6a10be4bb13cb81eb763f466179dca3b67277'], + }), + ('plotly_express', '0.4.1', { + 'checksums': ['ff73a41ce02fb43d1d8e8fa131ef3e6589857349ca216b941b8f3f862bce0278'], + }), + ('prompt_toolkit', '3.0.39', { + 'checksums': ['04505ade687dc26dc4284b1ad19a83be2f2afe83e7a828ace0c72f3a1df72aac'], + }), + ('termcolor', '2.3.0', { + 'checksums': ['b5b08f68937f138fe92f6c089b99f1e2da0ae56c52b78bf7075fd95420fd9a5a'], + }), + ('qcg-pilotjob', version, { + 'modulename': 'qcg.pilotjob', + 'patches': ['QCG-PilotJob-0.12.3_rename_zmq.patch'], + 'checksums': [ + {'qcg-pilotjob-0.13.1.tar.gz': '6aff74436edde78e8f584066a732298731e8ce1190f7fe69edfaab64a3ecc29d'}, + {'QCG-PilotJob-0.12.3_rename_zmq.patch': + '51cba1bfe1dcd33180dffe65941acdfa70823d6cae4b81182fd16a7debf907cd'}, + ], + }), + ('qcg-pilotjob-cmds', version, { + 'modulename': 'qcg.pilotjob.cmds', + 'checksums': ['dc7d4a30b65f2194cf68ec876401581647f683d766215a4fef32b438ec4cbffe'], + }), + ('qcg-pilotjob-executor-api', version, { + 'modulename': 'qcg.pilotjob.api', + 'checksums': ['9d7303199bcce1de35d480f96bc2da93b5259a5cac31476c486f790ccbdeebdf'], + }), +] + +sanity_pip_check = True + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/q/Qt5/Qt5-5.15.10-GCCcore-12.3.0.eb b/easybuild/easyconfigs/q/Qt5/Qt5-5.15.10-GCCcore-12.3.0.eb index 7897dbe6736..53c92a6b3ea 100644 --- a/easybuild/easyconfigs/q/Qt5/Qt5-5.15.10-GCCcore-12.3.0.eb +++ b/easybuild/easyconfigs/q/Qt5/Qt5-5.15.10-GCCcore-12.3.0.eb @@ -22,6 +22,11 @@ patches = [ 'Qt5-5.15.10_fix-OF-Gentoo.patch', 'Qt5-5.15.10_fix-qtwebengine-breakpad-glibc-2.34.patch', 'Qt5-5.15.7_GCC-12.patch', + 'Qt5-5.15.10_webengine-chromium-drop-catapult.patch', + 'Qt5-5.15.10_webengine-chromium-python3.patch', + 'Qt5-5.15.10_webengine-drop-catapult.patch', + 'Qt5-5.15.10_webengine-python3.patch', + 'Qt5-5.15.10_webengine-python3.11.patch', ] checksums = [ {'qt-everywhere-opensource-src-5.15.10.tar.xz': 'b545cb83c60934adc9a6bbd27e2af79e5013de77d46f5b9f5bb2a3c762bf55ca'}, @@ -31,6 +36,13 @@ checksums = [ {'Qt5-5.15.10_fix-qtwebengine-breakpad-glibc-2.34.patch': '3b536de3b2da9115d96323a00275fc6066bb048f3747f8e6971facd78ed4e2e2'}, {'Qt5-5.15.7_GCC-12.patch': '9a5bde91b223a3e2e90d3d6bec107af69a1a0f18d789593738a953080473fa68'}, + {'Qt5-5.15.10_webengine-chromium-drop-catapult.patch': + '6325c6f63b144755fcf040614178923406d7526517d58b29d99b100919acec54'}, + {'Qt5-5.15.10_webengine-chromium-python3.patch': + '128d58c1e83f551daec6e9122fc1cea07be76b79d4e99222969649be24334e1e'}, + {'Qt5-5.15.10_webengine-drop-catapult.patch': '7a488a0d73b7a9f33a2bdb87996f0a16938f5f882385190833679d1d17684907'}, + {'Qt5-5.15.10_webengine-python3.patch': '0e35606506cb218841e05d38214ec6a442f7481630c2d856a09b7863af304023'}, + {'Qt5-5.15.10_webengine-python3.11.patch': '8486fc234de2cdf8a600b204bac5d8eb2bc0bc9b1b1d365505f801c4a201f9c3'}, ] builddependencies = [ @@ -41,7 +53,7 @@ builddependencies = [ ('flex', '2.6.4'), ('gperf', '3.1'), ('Ninja', '1.11.1'), - ('Python', '2.7.18'), + ('Python', '3.11.3'), ('re2c', '3.1'), ] diff --git a/easybuild/easyconfigs/q/Qt5/Qt5-5.15.10_webengine-chromium-drop-catapult.patch b/easybuild/easyconfigs/q/Qt5/Qt5-5.15.10_webengine-chromium-drop-catapult.patch new file mode 100644 index 00000000000..ce717404021 --- /dev/null +++ b/easybuild/easyconfigs/q/Qt5/Qt5-5.15.10_webengine-chromium-drop-catapult.patch @@ -0,0 +1,489 @@ +From b0581c62625e57a63e56369f7eb24a141687cc7a Mon Sep 17 00:00:00 2001 +From: Jimi Huotari +Date: Wed, 6 Apr 2022 14:35:14 +0300 +Subject: [PATCH] Remove dependency on catapult + +Signed-off-by: Andreas Sturmlechner +--- + chromium/BUILD.gn | 11 ---- + chromium/chrome/chrome_paks.gni | 2 - + chromium/chrome/test/BUILD.gn | 6 --- + chromium/content/browser/BUILD.gn | 1 - + chromium/content/browser/tracing/BUILD.gn | 51 ------------------- + .../content/browser/tracing/tracing_ui.cc | 3 -- + chromium/content/shell/BUILD.gn | 2 - + chromium/fuchsia/engine/BUILD.gn | 2 - + chromium/headless/BUILD.gn | 2 - + chromium/mojo/public/tools/BUILD.gn | 1 - + chromium/testing/BUILD.gn | 1 - + chromium/third_party/webrtc/test/BUILD.gn | 5 -- + chromium/tools/binary_size/BUILD.gn | 1 - + chromium/tools/grit/BUILD.gn | 1 - + chromium/tools/gritsettings/resource_ids.spec | 6 --- + chromium/tools/metrics/BUILD.gn | 1 - + .../perf/chrome_telemetry_build/BUILD.gn | 3 -- + .../perf/core/perfetto_binary_roller/BUILD.gn | 1 - + chromium/tools/polymer/BUILD.gn | 1 - + chromium/v8/tools/BUILD.gn | 4 -- + chromium/weblayer/shell/BUILD.gn | 2 - + 21 files changed, 107 deletions(-) + delete mode 100644 chromium/content/browser/tracing/BUILD.gn + +diff --git a/chromium/BUILD.gn b/chromium/BUILD.gn +index 8d9657d545c..59e9447f456 100644 +--- a/qtwebengine/src/3rdparty/chromium/BUILD.gn ++++ b/qtwebengine/src/3rdparty/chromium/BUILD.gn +@@ -239,7 +239,6 @@ group("gn_all") { + "//media/capture:capture_unittests", + "//media/cast:cast_unittests", + "//third_party/angle/src/tests:angle_white_box_tests", +- "//third_party/catapult/telemetry:bitmaptools($host_toolchain)", + ] + } else if (is_ios && !use_qt) { + deps += [ +@@ -354,7 +353,6 @@ group("gn_all") { + "//net/android:net_junit_tests", + "//services:services_junit_tests", + "//testing/android/junit:junit_unit_tests", +- "//third_party/catapult/devil", + "//third_party/smhasher:murmurhash3", + "//tools/android:android_tools", + "//tools/android:memconsumer", +@@ -959,7 +957,6 @@ if (is_chromeos) { + "//third_party/dawn/src/tests:dawn_unittests", + + # Blocked on https://github.com/catapult-project/catapult/issues/2297 +- #"//third_party/catapult/telemetry:bitmaptools", + "//tools/perf/clear_system_cache", + "//ui/ozone/gl:ozone_gl_unittests", + ] +@@ -1037,7 +1034,6 @@ if (!is_ios && !use_qt) { + data_deps = [ + "//chrome:chrome", + "//chrome/test/chromedriver", +- "//third_party/catapult/third_party/typ", + ] + if (is_win) { + data_deps += [ "//build/win:copy_cdb_to_output" ] +@@ -1084,7 +1080,6 @@ if (!is_ios && !use_qt) { + "//third_party/blink/public:blink_devtools_inspector_resources", + "//third_party/blink/public/mojom:mojom_platform_js_data_deps", + "//third_party/blink/renderer/core/html:js_files_for_form_controls_web_tests", +- "//third_party/catapult/third_party/typ", + "//third_party/mesa_headers", + "//tools/imagediff", + ] +@@ -1152,7 +1147,6 @@ if (!is_ios && !use_qt) { + + if (is_android) { + data += [ +- "//third_party/catapult/", + "//build/android/", + ] + } +@@ -1259,11 +1253,6 @@ if (!is_ios && !use_qt) { + "//third_party/blink/web_tests/StaleTestExpectations", + "//third_party/blink/web_tests/TestExpectations", + "//third_party/blink/web_tests/VirtualTestSuites", +- "//third_party/catapult/common/py_utils/", +- "//third_party/catapult/devil/", +- "//third_party/catapult/dependency_manager/", +- "//third_party/catapult/third_party/zipfile/", +- "//third_party/catapult/third_party/typ/", + "//third_party/depot_tools/pylint", + "//third_party/depot_tools/pylint-1.5", + "//third_party/depot_tools/pylint_main.py", +diff --git a/chromium/chrome/chrome_paks.gni b/chromium/chrome/chrome_paks.gni +index 9323a774a56..0362b6501aa 100644 +--- a/qtwebengine/src/3rdparty/chromium/chrome/chrome_paks.gni ++++ b/qtwebengine/src/3rdparty/chromium/chrome/chrome_paks.gni +@@ -94,7 +94,6 @@ template("chrome_extra_paks") { + "$root_gen_dir/chrome/common_resources.pak", + "$root_gen_dir/components/autofill/core/browser/autofill_address_rewriter_resources.pak", + "$root_gen_dir/components/components_resources.pak", +- "$root_gen_dir/content/browser/tracing/tracing_resources.pak", + "$root_gen_dir/content/content_resources.pak", + "$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak", + "$root_gen_dir/net/net_resources.pak", +@@ -110,7 +109,6 @@ template("chrome_extra_paks") { + "//components/autofill/core/browser:autofill_address_rewriter_resources", + "//components/resources", + "//content:content_resources", +- "//content/browser/tracing:resources", + "//mojo/public/js:resources", + "//net:net_resources", + "//skia:skia_resources", +diff --git a/chromium/chrome/test/BUILD.gn b/chromium/chrome/test/BUILD.gn +index 1a369fa56d2..eb5bc9676fb 100644 +--- a/qtwebengine/src/3rdparty/chromium/chrome/test/BUILD.gn ++++ b/qtwebengine/src/3rdparty/chromium/chrome/test/BUILD.gn +@@ -7103,8 +7103,6 @@ if (!is_fuchsia && !is_android) { + "//chrome/test/data/password/captured_sites/", + "//chrome/test/data/web_page_replay_go_helper_scripts/automation_helper.js", + "//components/test/data/autofill/web_page_replay_support_files/", +- "//third_party/catapult/telemetry/telemetry/bin/", +- "//third_party/catapult/web_page_replay_go/deterministic.js", + ] + + if (is_linux || is_chromeos || is_win) { +@@ -7141,7 +7139,6 @@ if (!is_fuchsia && !is_android) { + + # TODO(uwyiming@chromium.org) create a gn target for Web Page Replay Go (WPR Go) and only WPR Go. + # So that test targets requiring WPR Go does not pull down the whole telemetry tool chain. +- "//third_party/catapult:telemetry_chrome_test_support", + "//third_party/hunspell", + "//third_party/icu", + "//third_party/libpng", +@@ -7171,7 +7168,6 @@ if (!is_fuchsia && !is_android) { + deps = [ "//tools/perf/chrome_telemetry_build:telemetry_chrome_test" ] + + data = [ +- "//third_party/catapult/telemetry/telemetry/internal/bin/", + "//tools/perf/run_telemetry_tests", + + # For isolate contract. +@@ -7189,7 +7185,6 @@ if (!is_fuchsia && !is_android) { + group("telemetry_gpu_unittests") { + testonly = true + deps = [ +- "//third_party/catapult:telemetry_chrome_test_support", + "//tools/metrics:metrics_python_tests", + ] + data = [ +@@ -7313,7 +7308,6 @@ if (is_mac || is_win || is_android) { + "//testing/scripts", + "//testing/test_env.py", + "//testing/xvfb.py", +- "//third_party/catapult", + "//tools", + ] + } +diff --git a/chromium/content/browser/BUILD.gn b/chromium/content/browser/BUILD.gn +index 1466f33d462..51039e0da19 100644 +--- a/qtwebengine/src/3rdparty/chromium/content/browser/BUILD.gn ++++ b/qtwebengine/src/3rdparty/chromium/content/browser/BUILD.gn +@@ -2169,7 +2169,6 @@ jumbo_static_library("browser") { + if (!is_android) { + deps += [ + "//components/vector_icons", +- "//content/browser/tracing:resources", + ] + } + +diff --git a/chromium/content/browser/tracing/BUILD.gn b/chromium/content/browser/tracing/BUILD.gn +deleted file mode 100644 +index eac05999fac..00000000000 +--- a/qtwebengine/src/3rdparty/chromium/content/browser/tracing/BUILD.gn ++++ /dev/null +@@ -1,51 +0,0 @@ +-# Copyright 2014 The Chromium Authors. All rights reserved. +-# Use of this source code is governed by a BSD-style license that can be +-# found in the LICENSE file. +- +-import("//tools/grit/grit_rule.gni") +- +-# generate_about_tracing puts its files in this directory +-tracing_gen_dir = "$root_gen_dir/content/browser/tracing" +- +-# The script just writes filename with no dirs to the .grd, so we always need +-# this file to be in the same directory as the inputs. +-tracing_grd = "$tracing_gen_dir/tracing_resources.grd" +- +-action("generate_tracing_grd") { +- visibility = [ ":*" ] # Depend on ":resources" to get this. +- script = "generate_trace_viewer_grd.py" +- +- input_pages = [ +- "$tracing_gen_dir/about_tracing.html", +- "$tracing_gen_dir/about_tracing.js", +- ] +- inputs = input_pages +- outputs = [ tracing_grd ] +- +- args = rebase_path(input_pages, target_gen_dir) + [ +- "--output", +- rebase_path(tracing_grd, root_build_dir), +- ] +- +- deps = [ "//third_party/catapult/tracing:generate_about_tracing" ] +-} +- +-grit("resources") { +- source = tracing_grd +- +- # Required because the .grd is generated. +- enable_input_discovery_for_gn_analyze = false +- +- outputs = [ +- "grit/tracing_resources.h", +- "tracing_resources.pak", +- ] +- +- # resource_ids has an entry for our .grd file that looks like: +- # "<(SHARED_INTERMEDIATE_DIR)/content/browser/tracing/tracing_resources.grd" +- # and what we pass here should make that resolve to our .grd file. +- defines = +- [ "SHARED_INTERMEDIATE_DIR=" + rebase_path(root_gen_dir, root_build_dir) ] +- +- deps = [ ":generate_tracing_grd" ] +-} +diff --git a/chromium/content/browser/tracing/tracing_ui.cc b/chromium/content/browser/tracing/tracing_ui.cc +index 2bffb5eb3b0..8965922dfba 100644 +--- a/qtwebengine/src/3rdparty/chromium/content/browser/tracing/tracing_ui.cc ++++ b/qtwebengine/src/3rdparty/chromium/content/browser/tracing/tracing_ui.cc +@@ -27,7 +27,6 @@ + #include "base/strings/stringprintf.h" + #include "base/trace_event/trace_event.h" + #include "base/values.h" +-#include "content/browser/tracing/grit/tracing_resources.h" + #include "content/browser/tracing/tracing_controller_impl.h" + #include "content/public/browser/browser_context.h" + #include "content/public/browser/browser_thread.h" +@@ -242,8 +241,6 @@ TracingUI::TracingUI(WebUI* web_ui) + WebUIDataSource* source = WebUIDataSource::Create(kChromeUITracingHost); + source->DisableTrustedTypesCSP(); + source->UseStringsJs(); +- source->SetDefaultResource(IDR_TRACING_HTML); +- source->AddResourcePath("tracing.js", IDR_TRACING_JS); + source->SetRequestFilter(base::BindRepeating(OnShouldHandleRequest), + base::BindRepeating(OnTracingRequest)); + WebUIDataSource::Add(browser_context, source); +diff --git a/chromium/content/shell/BUILD.gn b/chromium/content/shell/BUILD.gn +index 56c0e8b48e3..6e4ffbe962d 100644 +--- a/qtwebengine/src/3rdparty/chromium/content/shell/BUILD.gn ++++ b/qtwebengine/src/3rdparty/chromium/content/shell/BUILD.gn +@@ -390,7 +390,6 @@ repack("pak") { + sources = [ + "$root_gen_dir/content/app/resources/content_resources_100_percent.pak", + "$root_gen_dir/content/browser/resources/media/media_internals_resources.pak", +- "$root_gen_dir/content/browser/tracing/tracing_resources.pak", + "$root_gen_dir/content/browser/webrtc/resources/webrtc_internals_resources.pak", + "$root_gen_dir/content/content_resources.pak", + "$root_gen_dir/content/dev_ui_content_resources.pak", +@@ -413,7 +412,6 @@ repack("pak") { + "//content:dev_ui_content_resources", + "//content/app/resources", + "//content/browser/resources/media:media_internals_resources", +- "//content/browser/tracing:resources", + "//content/browser/webrtc/resources", + "//mojo/public/js:resources", + "//net:net_resources", +diff --git a/chromium/fuchsia/engine/BUILD.gn b/chromium/fuchsia/engine/BUILD.gn +index a502b7fc273..39df2a7028a 100644 +--- a/qtwebengine/src/3rdparty/chromium/fuchsia/engine/BUILD.gn ++++ b/qtwebengine/src/3rdparty/chromium/fuchsia/engine/BUILD.gn +@@ -43,7 +43,6 @@ repack("web_engine_pak") { + "$root_gen_dir/components/components_resources.pak", + "$root_gen_dir/components/strings/components_strings_en-US.pak", + "$root_gen_dir/content/app/resources/content_resources_100_percent.pak", +- "$root_gen_dir/content/browser/tracing/tracing_resources.pak", + "$root_gen_dir/content/content_resources.pak", + "$root_gen_dir/content/dev_ui_content_resources.pak", + "$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak", +@@ -66,7 +65,6 @@ repack("web_engine_pak") { + "//content:content_resources", + "//content:dev_ui_content_resources", + "//content/app/resources", +- "//content/browser/tracing:resources", + "//gpu/command_buffer/service", + "//mojo/public/js:resources", + "//net:net_resources", +diff --git a/chromium/headless/BUILD.gn b/chromium/headless/BUILD.gn +index d2ab76aed32..15e4b78009d 100644 +--- a/qtwebengine/src/3rdparty/chromium/headless/BUILD.gn ++++ b/qtwebengine/src/3rdparty/chromium/headless/BUILD.gn +@@ -37,7 +37,6 @@ repack("pak") { + "$root_gen_dir/components/components_resources.pak", + "$root_gen_dir/components/strings/components_strings_en-US.pak", + "$root_gen_dir/content/app/resources/content_resources_100_percent.pak", +- "$root_gen_dir/content/browser/tracing/tracing_resources.pak", + "$root_gen_dir/content/content_resources.pak", + "$root_gen_dir/content/dev_ui_content_resources.pak", + "$root_gen_dir/headless/headless_lib_resources.pak", +@@ -65,7 +64,6 @@ repack("pak") { + "//content:content_resources", + "//content:dev_ui_content_resources", + "//content/app/resources", +- "//content/browser/tracing:resources", + "//mojo/public/js:resources", + "//net:net_resources", + "//third_party/blink/public:resources", +diff --git a/chromium/mojo/public/tools/BUILD.gn b/chromium/mojo/public/tools/BUILD.gn +index 4c68350b399..1cc01256f00 100644 +--- a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/BUILD.gn ++++ b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/BUILD.gn +@@ -14,5 +14,4 @@ group("mojo_python_unittests") { + "//testing/xvfb.py", + ] + deps = [ "//mojo/public/tools/mojom/mojom:tests" ] +- data_deps = [ "//third_party/catapult/third_party/typ/" ] + } +diff --git a/chromium/testing/BUILD.gn b/chromium/testing/BUILD.gn +index 56ebf8d46c9..7d51bc0ccf7 100644 +--- a/qtwebengine/src/3rdparty/chromium/testing/BUILD.gn ++++ b/qtwebengine/src/3rdparty/chromium/testing/BUILD.gn +@@ -27,7 +27,6 @@ group("run_perf_test") { + + data_deps = [ + ":test_scripts_shared", +- "//third_party/catapult/tracing:convert_chart_json", + ] + + if (is_android) { +diff --git a/chromium/third_party/webrtc/test/BUILD.gn b/chromium/third_party/webrtc/test/BUILD.gn +index 58d3dab5219..48328298d2e 100644 +--- a/qtwebengine/src/3rdparty/chromium/third_party/webrtc/test/BUILD.gn ++++ b/qtwebengine/src/3rdparty/chromium/third_party/webrtc/test/BUILD.gn +@@ -258,10 +258,6 @@ rtc_library("perf_test") { + absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] + if (rtc_enable_protobuf) { + sources += [ "testsupport/perf_test_histogram_writer.cc" ] +- deps += [ +- "//third_party/catapult/tracing/tracing:histogram", +- "//third_party/catapult/tracing/tracing:reserved_infos", +- ] + } else { + sources += [ "testsupport/perf_test_histogram_writer_no_protobuf.cc" ] + } +@@ -566,7 +562,6 @@ if (rtc_include_tests) { + + if (rtc_enable_protobuf) { + sources += [ "testsupport/perf_test_histogram_writer_unittest.cc" ] +- deps += [ "//third_party/catapult/tracing/tracing:histogram" ] + } + + data = test_support_unittests_resources +diff --git a/chromium/tools/binary_size/BUILD.gn b/chromium/tools/binary_size/BUILD.gn +index e6806bf7754..2c985d15fab 100644 +--- a/qtwebengine/src/3rdparty/chromium/tools/binary_size/BUILD.gn ++++ b/qtwebengine/src/3rdparty/chromium/tools/binary_size/BUILD.gn +@@ -18,7 +18,6 @@ python_library("binary_size_trybot_py") { + python_library("sizes_py") { + testonly = true + pydeps_file = "sizes.pydeps" +- data_deps = [ "//third_party/catapult/tracing:convert_chart_json" ] + } + + if (is_linux || is_chromeos) { +diff --git a/chromium/tools/grit/BUILD.gn b/chromium/tools/grit/BUILD.gn +index 1cd3c75b553..60c4cf2f77a 100644 +--- a/qtwebengine/src/3rdparty/chromium/tools/grit/BUILD.gn ++++ b/qtwebengine/src/3rdparty/chromium/tools/grit/BUILD.gn +@@ -33,7 +33,6 @@ group("grit_python_unittests") { + "//testing/scripts/run_isolated_script_test.py", + "//testing/xvfb.py", + "//tools/grit/", +- "//third_party/catapult/third_party/typ/", + ] + } + +diff --git a/chromium/tools/gritsettings/resource_ids.spec b/chromium/tools/gritsettings/resource_ids.spec +index d0a4545514c..80b0bf1737b 100644 +--- a/qtwebengine/src/3rdparty/chromium/tools/gritsettings/resource_ids.spec ++++ b/qtwebengine/src/3rdparty/chromium/tools/gritsettings/resource_ids.spec +@@ -499,12 +499,6 @@ + "content/shell/shell_resources.grd": { + "includes": [2940], + }, +- +- # This file is generated during the build. +- "<(SHARED_INTERMEDIATE_DIR)/content/browser/tracing/tracing_resources.grd": { +- "META": {"sizes": {"includes": [20],}}, +- "includes": [2960], +- }, + # END content/ section. + + # START ios/web/ section. +diff --git a/chromium/tools/metrics/BUILD.gn b/chromium/tools/metrics/BUILD.gn +index 846d5248bfa..cb57d2bdae1 100644 +--- a/qtwebengine/src/3rdparty/chromium/tools/metrics/BUILD.gn ++++ b/qtwebengine/src/3rdparty/chromium/tools/metrics/BUILD.gn +@@ -56,7 +56,6 @@ group("metrics_python_tests") { + "//testing/scripts/common.py", + "//testing/xvfb.py", + "//testing/test_env.py", +- "//third_party/catapult/third_party/typ/", + + # Scripts we depend on. Their unit tests are also included. + "//tools/json_comment_eater/json_comment_eater.py", +diff --git a/chromium/tools/perf/chrome_telemetry_build/BUILD.gn b/chromium/tools/perf/chrome_telemetry_build/BUILD.gn +index 280bb754c2c..c287fdcebb3 100644 +--- a/qtwebengine/src/3rdparty/chromium/tools/perf/chrome_telemetry_build/BUILD.gn ++++ b/qtwebengine/src/3rdparty/chromium/tools/perf/chrome_telemetry_build/BUILD.gn +@@ -107,7 +107,6 @@ group("telemetry_chrome_test_without_chrome") { + "//tools/perf/core/", # chrome_telemetry_build/ depends on core/ + ] + data_deps = [ +- "//third_party/catapult:telemetry_chrome_test_support", + "//tools/metrics:metrics_python_tests", + ] + +@@ -151,7 +150,5 @@ group("telemetry_chrome_test_without_chrome") { + "//build/android:devil_chromium_py", + "//build/android:stack_tools", + ] +- } else if (!is_fuchsia) { +- data_deps += [ "//third_party/catapult/telemetry:bitmaptools" ] + } + } +diff --git a/chromium/tools/perf/core/perfetto_binary_roller/BUILD.gn b/chromium/tools/perf/core/perfetto_binary_roller/BUILD.gn +index 7fe48cba143..e9c7f0261a5 100644 +--- a/qtwebengine/src/3rdparty/chromium/tools/perf/core/perfetto_binary_roller/BUILD.gn ++++ b/qtwebengine/src/3rdparty/chromium/tools/perf/core/perfetto_binary_roller/BUILD.gn +@@ -7,7 +7,6 @@ import("//build/util/generate_wrapper.gni") + generate_wrapper("upload_trace_processor") { + testonly = true + data_deps = [ +- "//third_party/catapult:telemetry_chrome_test_support", + "//third_party/perfetto/src/trace_processor:trace_processor_shell", + ] + data = [ +diff --git a/chromium/tools/polymer/BUILD.gn b/chromium/tools/polymer/BUILD.gn +index 092066b7c04..d115144cd61 100644 +--- a/qtwebengine/src/3rdparty/chromium/tools/polymer/BUILD.gn ++++ b/qtwebengine/src/3rdparty/chromium/tools/polymer/BUILD.gn +@@ -10,6 +10,5 @@ group("polymer_tools_python_unittests") { + "//testing/scripts/run_isolated_script_test.py", + "//testing/xvfb.py", + "//tools/polymer/", +- "//third_party/catapult/third_party/typ/", + ] + } +diff --git a/chromium/v8/tools/BUILD.gn b/chromium/v8/tools/BUILD.gn +index 2f8197dd369..83304b6342b 100644 +--- a/qtwebengine/src/3rdparty/chromium/v8/tools/BUILD.gn ++++ b/qtwebengine/src/3rdparty/chromium/v8/tools/BUILD.gn +@@ -31,10 +31,6 @@ group("v8_android_test_runner_deps") { + + if (is_android && !build_with_chromium) { + data_deps = [ "//build/android:test_runner_py" ] +- data = [ +- # This is used by android.py, but not included by test_runner_py above. +- "//third_party/catapult/devil/devil/android/perf/", +- ] + } + } + +diff --git a/chromium/weblayer/shell/BUILD.gn b/chromium/weblayer/shell/BUILD.gn +index 66984a7da54..1815fad623d 100644 +--- a/qtwebengine/src/3rdparty/chromium/weblayer/shell/BUILD.gn ++++ b/qtwebengine/src/3rdparty/chromium/weblayer/shell/BUILD.gn +@@ -161,7 +161,6 @@ repack("support_pak") { + "$root_gen_dir/components/strings/components_locale_settings_en-US.pak", + "$root_gen_dir/components/strings/components_strings_en-US.pak", + "$root_gen_dir/content/app/resources/content_resources_100_percent.pak", +- "$root_gen_dir/content/browser/tracing/tracing_resources.pak", + "$root_gen_dir/content/content_resources.pak", + "$root_gen_dir/content/dev_ui_content_resources.pak", + "$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak", +@@ -182,7 +181,6 @@ repack("support_pak") { + "//content:content_resources", + "//content:dev_ui_content_resources", + "//content/app/resources", +- "//content/browser/tracing:resources", + "//mojo/public/js:resources", + "//net:net_resources", + "//third_party/blink/public:resources", +-- +2.35.1 + diff --git a/easybuild/easyconfigs/q/Qt5/Qt5-5.15.10_webengine-chromium-python3.patch b/easybuild/easyconfigs/q/Qt5/Qt5-5.15.10_webengine-chromium-python3.patch new file mode 100644 index 00000000000..af9769225b3 --- /dev/null +++ b/easybuild/easyconfigs/q/Qt5/Qt5-5.15.10_webengine-chromium-python3.patch @@ -0,0 +1,1883 @@ +From 3c26c6214f675d170718df6bd54e61743620166a Mon Sep 17 00:00:00 2001 +From: Antonio Rojas +Date: Sat, 16 Oct 2021 20:17:35 +0000 +Subject: [PATCH 1/3] Build without python 2 + +--- + chromium/build/print_python_deps.py | 6 +- + .../protobufs/binary_proto_generator.py | 8 +- + .../tracing/generate_trace_viewer_grd.py | 2 +- + chromium/mojo/public/tools/bindings/BUILD.gn | 2 + + .../tools/bindings/gen_data_files_list.py | 8 +- + .../generators/mojom_java_generator.py | 4 + + .../tools/mojom/mojom/generate/generator.py | 14 ++-- + .../tools/mojom/mojom/generate/module.py | 3 +- + .../mojom/mojom/generate/template_expander.py | 12 +-- + .../scripts/bind_gen/blink_v8_bridge.py | 6 +- + .../scripts/bind_gen/callback_interface.py | 2 +- + .../bindings/scripts/bind_gen/code_node.py | 10 +-- + .../bindings/scripts/bind_gen/codegen_expr.py | 15 ++-- + .../scripts/bind_gen/codegen_format.py | 2 +- + .../scripts/bind_gen/codegen_utils.py | 2 +- + .../bindings/scripts/bind_gen/dictionary.py | 2 +- + .../bindings/scripts/bind_gen/interface.py | 82 +++++++++++-------- + .../scripts/bind_gen/mako_renderer.py | 2 +- + .../bindings/scripts/bind_gen/style_format.py | 9 +- + .../bindings/scripts/bind_gen/task_queue.py | 5 +- + .../bindings/scripts/code_generator.py | 10 +++ + .../scripts/generate_origin_trial_features.py | 4 +- + .../bindings/scripts/idl_definitions.py | 8 +- + .../renderer/bindings/scripts/idl_reader.py | 4 +- + .../renderer/bindings/scripts/idl_types.py | 2 +- + .../renderer/bindings/scripts/utilities.py | 28 +++---- + .../renderer/bindings/scripts/v8_interface.py | 9 +- + .../renderer/bindings/scripts/v8_methods.py | 4 + + .../renderer/bindings/scripts/v8_utilities.py | 2 +- + .../scripts/web_idl/callback_interface.py | 12 +-- + .../bindings/scripts/web_idl/database.py | 2 +- + .../bindings/scripts/web_idl/exposure.py | 5 +- + .../bindings/scripts/web_idl/function_like.py | 28 +++---- + .../bindings/scripts/web_idl/idl_compiler.py | 21 ++--- + .../bindings/scripts/web_idl/interface.py | 45 +++++----- + .../bindings/scripts/web_idl/ir_builder.py | 29 ++++--- + .../bindings/scripts/web_idl/make_copy.py | 7 ++ + .../bindings/scripts/web_idl/namespace.py | 12 +-- + .../bindings/templates/dictionary_v8.cc.tmpl | 8 +- + .../scripts/core/css/make_style_shorthands.py | 23 +++--- + .../properties/make_css_property_instances.py | 4 +- + .../blink/renderer/build/scripts/gperf.py | 2 +- + .../blink/renderer/build/scripts/in_file.py | 2 +- + .../renderer/build/scripts/in_generator.py | 5 ++ + .../build/scripts/make_runtime_features.py | 2 +- + .../scripts/templates/element_factory.cc.tmpl | 4 +- + .../templates/element_type_helpers.cc.tmpl | 4 +- + .../templates/element_type_helpers.h.tmpl | 2 +- + .../build/scripts/templates/macros.tmpl | 4 +- + .../templates/make_qualified_names.h.tmpl | 4 +- + .../dawn/generator/generator_lib.py | 4 + + .../devtools-frontend/src/BUILD.gn | 2 + + .../scripts/build/build_inspector_overlay.py | 3 +- + .../build/build_release_applications.py | 9 +- + .../scripts/build/generate_devtools_grd.py | 4 +- + .../src/scripts/build/modular_build.py | 6 +- + chromium/third_party/jinja2/tests.py | 2 +- + chromium/tools/metrics/ukm/gen_builders.py | 5 +- + .../ui/ozone/generate_constructor_list.py | 13 ++- + .../ui/ozone/generate_ozone_platform_list.py | 26 ++++-- + 60 files changed, 334 insertions(+), 232 deletions(-) + +diff --git a/chromium/build/print_python_deps.py b/chromium/build/print_python_deps.py +index fd29c0972c9..69af247094b 100755 +--- a/qtwebengine/src/3rdparty/chromium/chromium/build/print_python_deps.py ++++ b/qtwebengine/src/3rdparty/chromium/build/print_python_deps.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python2.7 ++#!/usr/bin/python + # Copyright 2016 The Chromium Authors. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. +@@ -80,7 +80,7 @@ def _GetTargetPythonVersion(module): + if shebang.startswith('#!'): + # Examples: + # '#!/usr/bin/python' +- # '#!/usr/bin/python2.7' ++ # '#!/usr/bin/python' + # '#!/usr/bin/python3' + # '#!/usr/bin/env python3' + # '#!/usr/bin/env vpython' +@@ -152,7 +152,7 @@ def main(): + + # Trybots run with vpython as default Python, but with a different config + # from //.vpython. To make the is_vpython test work, and to match the behavior +- # of dev machines, the shebang line must be run with python2.7. ++ # of dev machines, the shebang line must be run with python. + # + # E.g. $HOME/.vpython-root/dd50d3/bin/python + # E.g. /b/s/w/ir/cache/vpython/ab5c79/bin/python +diff --git a/chromium/components/resources/protobufs/binary_proto_generator.py b/chromium/components/resources/protobufs/binary_proto_generator.py +index 7422ead9697..16365515f26 100755 +--- a/qtwebengine/src/3rdparty/chromium/chromium/components/resources/protobufs/binary_proto_generator.py ++++ b/qtwebengine/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py +@@ -7,7 +7,7 @@ + Converts a given ASCII proto into a binary resource. + + """ +- ++from __future__ import print_function + import abc + import imp + import optparse +@@ -196,12 +196,12 @@ class BinaryProtoGenerator: + self._ImportProtoModules(opts.path) + + if not self.VerifyArgs(opts): +- print "Wrong arguments" ++ print("Wrong arguments") + return 1 + + try: + self._GenerateBinaryProtos(opts) + except Exception as e: +- print "ERROR: Failed to render binary version of %s:\n %s\n%s" % ( +- opts.infile, str(e), traceback.format_exc()) ++ print("ERROR: Failed to render binary version of %s:\n %s\n%s" % ++ (opts.infile, str(e), traceback.format_exc())) + return 1 +diff --git a/chromium/content/browser/tracing/generate_trace_viewer_grd.py b/chromium/content/browser/tracing/generate_trace_viewer_grd.py +index 037f9497dc2..be393d21f90 100755 +--- a/qtwebengine/src/3rdparty/chromium/chromium/content/browser/tracing/generate_trace_viewer_grd.py ++++ b/qtwebengine/src/3rdparty/chromium/content/browser/tracing/generate_trace_viewer_grd.py +@@ -74,7 +74,7 @@ def main(argv): + for filename in parsed_args.source_files: + add_file_to_grd(doc, os.path.basename(filename)) + +- with open(parsed_args.output_filename, 'w') as output_file: ++ with open(parsed_args.output_filename, 'wb') as output_file: + output_file.write(doc.toxml(encoding='UTF-8')) + + +diff --git a/chromium/mojo/public/tools/bindings/BUILD.gn b/chromium/mojo/public/tools/bindings/BUILD.gn +index fc04b5dd0b1..708958e438b 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/mojo/public/tools/bindings/BUILD.gn ++++ b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/bindings/BUILD.gn +@@ -2,9 +2,11 @@ + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. + ++import("//build/config/python.gni") + import("//mojo/public/tools/bindings/mojom.gni") + import("//third_party/jinja2/jinja2.gni") + ++# TODO(crbug.com/1194274): Investigate nondeterminism in Py3 builds. + action("precompile_templates") { + sources = mojom_generator_sources + sources += [ +diff --git a/chromium/mojo/public/tools/bindings/gen_data_files_list.py b/chromium/mojo/public/tools/bindings/gen_data_files_list.py +index 79c9e50efce..8b78d092418 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/mojo/public/tools/bindings/gen_data_files_list.py ++++ b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/bindings/gen_data_files_list.py +@@ -18,7 +18,6 @@ import os + import re + import sys + +-from cStringIO import StringIO + from optparse import OptionParser + + sys.path.insert( +@@ -41,12 +40,9 @@ def main(): + pattern = re.compile(options.pattern) + files = [f for f in os.listdir(options.directory) if pattern.match(f)] + +- stream = StringIO() +- for f in files: +- print(f, file=stream) ++ contents = '\n'.join(f for f in files) + '\n' ++ WriteFile(contents, options.output) + +- WriteFile(stream.getvalue(), options.output) +- stream.close() + + if __name__ == '__main__': + sys.exit(main()) +diff --git a/chromium/mojo/public/tools/bindings/generators/mojom_java_generator.py b/chromium/mojo/public/tools/bindings/generators/mojom_java_generator.py +index 96b2fdfae0c..00b9dccd00c 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/mojo/public/tools/bindings/generators/mojom_java_generator.py ++++ b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/bindings/generators/mojom_java_generator.py +@@ -25,6 +25,10 @@ sys.path.append(os.path.join(os.path.dirname(__file__), os.pardir, + 'build', 'android', 'gyp')) + from util import build_utils + ++# TODO(crbug.com/1174969): Remove this once Python2 is obsoleted. ++if sys.version_info.major != 2: ++ basestring = str ++ long = int + + GENERATOR_PREFIX = 'java' + +diff --git a/chromium/mojo/public/tools/mojom/mojom/generate/generator.py b/chromium/mojo/public/tools/mojom/mojom/generate/generator.py +index de62260a5c9..4a1c73fcf82 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/mojo/public/tools/mojom/mojom/generate/generator.py ++++ b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/generator.py +@@ -136,9 +136,14 @@ class Stylizer(object): + + def WriteFile(contents, full_path): + # If |contents| is same with the file content, we skip updating. ++ if not isinstance(contents, bytes): ++ data = contents.encode('utf8') ++ else: ++ data = contents ++ + if os.path.isfile(full_path): + with open(full_path, 'rb') as destination_file: +- if destination_file.read() == contents: ++ if destination_file.read() == data: + return + + # Make sure the containing directory exists. +@@ -146,11 +151,8 @@ def WriteFile(contents, full_path): + fileutil.EnsureDirectoryExists(full_dir) + + # Dump the data to disk. +- with open(full_path, "wb") as f: +- if not isinstance(contents, bytes): +- f.write(contents.encode('utf-8')) +- else: +- f.write(contents) ++ with open(full_path, 'wb') as f: ++ f.write(data) + + + def AddComputedData(module): +diff --git a/chromium/mojo/public/tools/mojom/mojom/generate/module.py b/chromium/mojo/public/tools/mojom/mojom/generate/module.py +index ebbc9b322ea..3d026429bbc 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/mojo/public/tools/mojom/mojom/generate/module.py ++++ b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/module.py +@@ -398,7 +398,8 @@ class Field(object): + + + class StructField(Field): +- pass ++ def __hash__(self): ++ return super(Field, self).__hash__() + + + class UnionField(Field): +diff --git a/chromium/mojo/public/tools/mojom/mojom/generate/template_expander.py b/chromium/mojo/public/tools/mojom/mojom/generate/template_expander.py +index 7a300560246..8d9e26fb7f6 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/mojo/public/tools/mojom/mojom/generate/template_expander.py ++++ b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/template_expander.py +@@ -75,9 +75,9 @@ def PrecompileTemplates(generator_modules, output_dir): + os.path.dirname(module.__file__), generator.GetTemplatePrefix()) + ])) + jinja_env.filters.update(generator.GetFilters()) +- jinja_env.compile_templates( +- os.path.join(output_dir, "%s.zip" % generator.GetTemplatePrefix()), +- extensions=["tmpl"], +- zip="stored", +- py_compile=True, +- ignore_errors=False) ++ jinja_env.compile_templates(os.path.join( ++ output_dir, "%s.zip" % generator.GetTemplatePrefix()), ++ extensions=["tmpl"], ++ zip="stored", ++ py_compile=sys.version_info.major < 3, ++ ignore_errors=False) +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py +index 3225ecca6e4..fc078d31b55 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py +@@ -344,7 +344,7 @@ def make_default_value_expr(idl_type, default_value): + """ + assert default_value.is_type_compatible_with(idl_type) + +- class DefaultValueExpr: ++ class DefaultValueExpr(object): + _ALLOWED_SYMBOLS_IN_DEPS = ("isolate") + + def __init__(self, initializer_expr, initializer_deps, +@@ -502,7 +502,7 @@ def make_v8_to_blink_value(blink_var_name, + assert isinstance(blink_var_name, str) + assert isinstance(v8_value_expr, str) + assert isinstance(idl_type, web_idl.IdlType) +- assert (argument_index is None or isinstance(argument_index, (int, long))) ++ assert (argument_index is None or isinstance(argument_index, int)) + assert (default_value is None + or isinstance(default_value, web_idl.LiteralConstant)) + +@@ -622,7 +622,7 @@ def make_v8_to_blink_value_variadic(blink_var_name, v8_array, + """ + assert isinstance(blink_var_name, str) + assert isinstance(v8_array, str) +- assert isinstance(v8_array_start_index, (int, long)) ++ assert isinstance(v8_array_start_index, int) + assert isinstance(idl_type, web_idl.IdlType) + + pattern = ("auto&& ${{{_1}}} = " +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/callback_interface.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/callback_interface.py +index 4a6df513068..8b51f23a409 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/callback_interface.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/callback_interface.py +@@ -177,7 +177,7 @@ def generate_callback_interface(callback_interface_identifier): + prop_install_mode=PropInstallMode.UNCONDITIONAL, + trampoline_var_name=None, + attribute_entries=[], +- constant_entries=filter(is_unconditional, constant_entries), ++ constant_entries=list(filter(is_unconditional, constant_entries)), + exposed_construct_entries=[], + operation_entries=[]) + (install_interface_template_decl, install_interface_template_def, +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/code_node.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/code_node.py +index 52972fefe20..e5ae9d9629e 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/code_node.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/code_node.py +@@ -503,13 +503,13 @@ class CompositeNode(CodeNode): + gensym_kwargs = {} + template_vars = {} + for arg in args: +- assert isinstance(arg, (CodeNode, int, long, str)) ++ assert isinstance(arg, (CodeNode, int, str)) + gensym = CodeNode.gensym() + gensym_args.append("${{{}}}".format(gensym)) + template_vars[gensym] = arg + for key, value in kwargs.items(): +- assert isinstance(key, (int, long, str)) +- assert isinstance(value, (CodeNode, int, long, str)) ++ assert isinstance(key, (int, str)) ++ assert isinstance(value, (CodeNode, int, str)) + gensym = CodeNode.gensym() + gensym_kwargs[key] = "${{{}}}".format(gensym) + template_vars[gensym] = value +@@ -602,7 +602,7 @@ class ListNode(CodeNode): + def insert(self, index, node): + if node is None: + return +- assert isinstance(index, (int, long)) ++ assert isinstance(index, int) + assert isinstance(node, CodeNode) + assert node.outer is None and node.prev is None + +@@ -721,7 +721,7 @@ class SymbolScopeNode(SequenceNode): + if not scope_chains: + return counts + +- self_index = iter(scope_chains).next().index(self) ++ self_index = next(iter(scope_chains)).index(self) + scope_chains = map( + lambda scope_chain: scope_chain[self_index + 1:], scope_chains) + scope_to_likeliness = {} +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_expr.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_expr.py +index a229a6c71c9..5fa288dabf2 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_expr.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_expr.py +@@ -109,7 +109,7 @@ def expr_and(terms): + + if any(term.is_always_false for term in terms): + return _Expr(False) +- terms = filter(lambda x: not x.is_always_true, terms) ++ terms = list(filter(lambda x: not x.is_always_true, terms)) + if not terms: + return _Expr(True) + if len(terms) == 1: +@@ -124,7 +124,7 @@ def expr_or(terms): + + if any(term.is_always_true for term in terms): + return _Expr(True) +- terms = filter(lambda x: not x.is_always_false, terms) ++ terms = list(filter(lambda x: not x.is_always_false, terms)) + if not terms: + return _Expr(False) + if len(terms) == 1: +@@ -222,7 +222,7 @@ def expr_from_exposure(exposure, + elif exposure.only_in_secure_contexts is False: + secure_context_term = _Expr(True) + else: +- terms = map(ref_enabled, exposure.only_in_secure_contexts) ++ terms = list(map(ref_enabled, exposure.only_in_secure_contexts)) + secure_context_term = expr_or( + [_Expr("${is_in_secure_context}"), + expr_not(expr_and(terms))]) +@@ -275,10 +275,11 @@ def expr_from_exposure(exposure, + + # [ContextEnabled] + if exposure.context_enabled_features: +- terms = map( +- lambda feature: _Expr( +- "${{context_feature_settings}}->is{}Enabled()".format( +- feature)), exposure.context_enabled_features) ++ terms = list( ++ map( ++ lambda feature: _Expr( ++ "${{context_feature_settings}}->is{}Enabled()".format( ++ feature)), exposure.context_enabled_features)) + context_enabled_terms.append( + expr_and([_Expr("${context_feature_settings}"), + expr_or(terms)])) +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_format.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_format.py +index 87d26eec3ca..f3e9d38247e 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_format.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_format.py +@@ -23,7 +23,7 @@ class _TemplateFormatter(string.Formatter): + self._template_formatter_indexing_count_ = 0 + + def get_value(self, key, args, kwargs): +- if isinstance(key, (int, long)): ++ if isinstance(key, int): + return args[key] + assert isinstance(key, str) + if not key: +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py +index 2bcc4fed49a..e72282aa696 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py +@@ -116,4 +116,4 @@ def write_code_node_to_file(code_node, filepath): + # stderr=format_result.error_message)) + # + # web_idl.file_io.write_to_file_if_changed(filepath, format_result.contents) +- web_idl.file_io.write_to_file_if_changed(filepath, rendered_text) ++ web_idl.file_io.write_to_file_if_changed(filepath, rendered_text.encode('utf-8')) +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/dictionary.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/dictionary.py +index b39f0100410..4d68202296b 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/dictionary.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/dictionary.py +@@ -993,7 +993,7 @@ def make_dict_trace_func(cg_context): + _2 = _blink_member_name(member).value_var + return TextNode(_format(pattern, _1=_1, _2=_2)) + +- body.extend(map(make_trace_member_node, own_members)) ++ body.extend(list(map(make_trace_member_node, own_members))) + body.append(TextNode("BaseClass::Trace(visitor);")) + + return func_decl, func_def +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py +index 10ff30656ad..bfdf7128aac 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py +@@ -582,7 +582,7 @@ def _make_blink_api_call(code_node, + overriding_args=None): + assert isinstance(code_node, SymbolScopeNode) + assert isinstance(cg_context, CodeGenContext) +- assert num_of_args is None or isinstance(num_of_args, (int, long)) ++ assert num_of_args is None or isinstance(num_of_args, int) + assert (overriding_args is None + or (isinstance(overriding_args, (list, tuple)) + and all(isinstance(arg, str) for arg in overriding_args))) +@@ -1196,8 +1196,10 @@ def make_overload_dispatcher(cg_context): + did_use_break = did_use_break or can_fail + + conditional = expr_or( +- map(lambda item: expr_from_exposure(item.function_like.exposure), +- items)) ++ list( ++ map( ++ lambda item: expr_from_exposure(item.function_like.exposure ++ ), items))) + if not conditional.is_always_true: + node = CxxUnlikelyIfNode(cond=conditional, body=node) + +@@ -4642,7 +4644,7 @@ class _PropEntryConstructorGroup(_PropEntryBase): + def __init__(self, is_context_dependent, exposure_conditional, world, + constructor_group, ctor_callback_name, ctor_func_length): + assert isinstance(ctor_callback_name, str) +- assert isinstance(ctor_func_length, (int, long)) ++ assert isinstance(ctor_func_length, int) + + _PropEntryBase.__init__(self, is_context_dependent, + exposure_conditional, world, constructor_group) +@@ -4670,7 +4672,7 @@ class _PropEntryOperationGroup(_PropEntryBase): + op_func_length, + no_alloc_direct_callback_name=None): + assert isinstance(op_callback_name, str) +- assert isinstance(op_func_length, (int, long)) ++ assert isinstance(op_func_length, int) + + _PropEntryBase.__init__(self, is_context_dependent, + exposure_conditional, world, operation_group) +@@ -5175,9 +5177,9 @@ def make_install_interface_template(cg_context, function_name, class_name, api_c + ]) + + if class_like.identifier == "CSSStyleDeclaration": +- css_properties = filter( +- lambda attr: "CSSProperty" in attr.extended_attributes, +- class_like.attributes) ++ css_properties = list( ++ filter(lambda attr: "CSSProperty" in attr.extended_attributes, ++ class_like.attributes)) + if css_properties: + prop_name_list = "".join( + map(lambda attr: "\"{}\", ".format(attr.identifier), +@@ -5567,8 +5569,8 @@ ${instance_object} = ${v8_context}->Global()->GetPrototype().As();\ + "V8DOMConfiguration::InstallConstants(${isolate}, " + "${interface_template}, ${prototype_template}, " + "kConstantCallbackTable, base::size(kConstantCallbackTable));") +- constant_callback_entries = filter(lambda entry: entry.const_callback_name, +- constant_entries) ++ constant_callback_entries = list(filter(lambda entry: entry.const_callback_name, ++ constant_entries)) + install_properties(table_name, constant_callback_entries, + _make_constant_callback_registration_table, + installer_call_text) +@@ -5584,8 +5586,8 @@ ${instance_object} = ${v8_context}->Global()->GetPrototype().As();\ + "V8DOMConfiguration::InstallConstants(${isolate}, " + "${interface_template}, ${prototype_template}, " + "kConstantValueTable, base::size(kConstantValueTable));") +- constant_value_entries = filter( +- lambda entry: not entry.const_callback_name, constant_entries) ++ constant_value_entries = list(filter( ++ lambda entry: not entry.const_callback_name, constant_entries)) + install_properties(table_name, constant_value_entries, + _make_constant_value_registration_table, + installer_call_text) +@@ -6336,8 +6338,8 @@ def make_v8_context_snapshot_api(cg_context, component, attribute_entries, + assert isinstance(component, web_idl.Component) + + derived_interfaces = cg_context.interface.deriveds +- derived_names = map(lambda interface: interface.identifier, +- derived_interfaces) ++ derived_names = list( ++ map(lambda interface: interface.identifier, derived_interfaces)) + derived_names.append(cg_context.interface.identifier) + if not ("Window" in derived_names or "HTMLDocument" in derived_names): + return None, None +@@ -6411,9 +6413,11 @@ def _make_v8_context_snapshot_get_reference_table_function( + collect_callbacks(named_properties_object_callback_defs) + collect_callbacks(cross_origin_property_callback_defs) + +- entry_nodes = map( +- lambda name: TextNode("reinterpret_cast({}),".format(name)), +- filter(None, callback_names)) ++ entry_nodes = list( ++ map( ++ lambda name: TextNode("reinterpret_cast({}),".format(name ++ )), ++ filter(None, callback_names))) + table_node = ListNode([ + TextNode("using namespace ${class_name}Callbacks;"), + TextNode("static const intptr_t kReferenceTable[] = {"), +@@ -6451,10 +6455,11 @@ def _make_v8_context_snapshot_install_props_per_context_function( + class_name=None, + prop_install_mode=PropInstallMode.V8_CONTEXT_SNAPSHOT, + trampoline_var_name=None, +- attribute_entries=filter(selector, attribute_entries), +- constant_entries=filter(selector, constant_entries), +- exposed_construct_entries=filter(selector, exposed_construct_entries), +- operation_entries=filter(selector, operation_entries)) ++ attribute_entries=list(filter(selector, attribute_entries)), ++ constant_entries=list(filter(selector, constant_entries)), ++ exposed_construct_entries=list( ++ filter(selector, exposed_construct_entries)), ++ operation_entries=list(filter(selector, operation_entries))) + + return func_decl, func_def + +@@ -6810,11 +6815,11 @@ def generate_interface(interface_identifier): + class_name=impl_class_name, + prop_install_mode=PropInstallMode.UNCONDITIONAL, + trampoline_var_name=tp_install_unconditional_props, +- attribute_entries=filter(is_unconditional, attribute_entries), +- constant_entries=filter(is_unconditional, constant_entries), +- exposed_construct_entries=filter(is_unconditional, +- exposed_construct_entries), +- operation_entries=filter(is_unconditional, operation_entries)) ++ attribute_entries=list(filter(is_unconditional, attribute_entries)), ++ constant_entries=list(filter(is_unconditional, constant_entries)), ++ exposed_construct_entries=list( ++ filter(is_unconditional, exposed_construct_entries)), ++ operation_entries=list(filter(is_unconditional, operation_entries))) + (install_context_independent_props_decl, + install_context_independent_props_def, + install_context_independent_props_trampoline) = make_install_properties( +@@ -6823,11 +6828,14 @@ def generate_interface(interface_identifier): + class_name=impl_class_name, + prop_install_mode=PropInstallMode.CONTEXT_INDEPENDENT, + trampoline_var_name=tp_install_context_independent_props, +- attribute_entries=filter(is_context_independent, attribute_entries), +- constant_entries=filter(is_context_independent, constant_entries), +- exposed_construct_entries=filter(is_context_independent, +- exposed_construct_entries), +- operation_entries=filter(is_context_independent, operation_entries)) ++ attribute_entries=list( ++ filter(is_context_independent, attribute_entries)), ++ constant_entries=list(filter(is_context_independent, ++ constant_entries)), ++ exposed_construct_entries=list( ++ filter(is_context_independent, exposed_construct_entries)), ++ operation_entries=list( ++ filter(is_context_independent, operation_entries))) + (install_context_dependent_props_decl, install_context_dependent_props_def, + install_context_dependent_props_trampoline) = make_install_properties( + cg_context, +@@ -6835,11 +6843,13 @@ def generate_interface(interface_identifier): + class_name=impl_class_name, + prop_install_mode=PropInstallMode.CONTEXT_DEPENDENT, + trampoline_var_name=tp_install_context_dependent_props, +- attribute_entries=filter(is_context_dependent, attribute_entries), +- constant_entries=filter(is_context_dependent, constant_entries), +- exposed_construct_entries=filter(is_context_dependent, +- exposed_construct_entries), +- operation_entries=filter(is_context_dependent, operation_entries)) ++ attribute_entries=list(filter(is_context_dependent, ++ attribute_entries)), ++ constant_entries=list(filter(is_context_dependent, constant_entries)), ++ exposed_construct_entries=list( ++ filter(is_context_dependent, exposed_construct_entries)), ++ operation_entries=list(filter(is_context_dependent, ++ operation_entries))) + (install_interface_template_decl, install_interface_template_def, + install_interface_template_trampoline) = make_install_interface_template( + cg_context, +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/mako_renderer.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/mako_renderer.py +index b4c70553863..f3a2fcd772d 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/mako_renderer.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/mako_renderer.py +@@ -105,7 +105,7 @@ class MakoRenderer(object): + on_error = self._caller_stack_on_error + if (len(current) <= len(on_error) + and all(current[i] == on_error[i] +- for i in xrange(len(current)))): ++ for i in range(len(current)))): + pass # Error happened in a deeper caller. + else: + self._caller_stack_on_error = list(self._caller_stack) +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py +index dc3493cc394..017d3d47bb3 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py +@@ -70,8 +70,13 @@ def gn_format(contents, filename=None): + + + def _invoke_format_command(command_line, filename, contents): +- proc = subprocess.Popen( +- command_line, stdin=subprocess.PIPE, stdout=subprocess.PIPE) ++ kwargs = {} ++ if sys.version_info.major != 2: ++ kwargs['encoding'] = 'utf-8' ++ proc = subprocess.Popen(command_line, ++ stdin=subprocess.PIPE, ++ stdout=subprocess.PIPE, ++ **kwargs) + stdout_output, stderr_output = proc.communicate(input=contents) + exit_code = proc.wait() + +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/task_queue.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/task_queue.py +index 0d8f4c0f303..e666a9b668e 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/task_queue.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/task_queue.py +@@ -2,6 +2,7 @@ + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. + ++import functools + import multiprocessing + + from .package_initializer import package_initializer +@@ -76,7 +77,7 @@ class TaskQueue(object): + if not report_progress: + return + +- done_count = reduce( ++ done_count = functools.reduce( + lambda count, worker_task: count + bool(worker_task.ready()), + self._worker_tasks, 0) + report_progress(len(self._worker_tasks), done_count) +@@ -85,4 +86,4 @@ class TaskQueue(object): + def _task_queue_run_tasks(tasks): + for task in tasks: + func, args, kwargs = task +- apply(func, args, kwargs) ++ func(*args, **kwargs) +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/code_generator.py b/chromium/third_party/blink/renderer/bindings/scripts/code_generator.py +index e8280be7213..e49e6eb965e 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/code_generator.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/code_generator.py +@@ -13,6 +13,7 @@ import re + import sys + + from idl_types import set_ancestors, IdlType ++from itertools import groupby + from v8_globals import includes + from v8_interface import constant_filters + from v8_types import set_component_dirs +@@ -43,6 +44,7 @@ TEMPLATES_DIR = os.path.normpath( + # after path[0] == invoking script dir + sys.path.insert(1, THIRD_PARTY_DIR) + import jinja2 ++from jinja2.filters import make_attrgetter, environmentfilter + + + def generate_indented_conditional(code, conditional): +@@ -88,6 +90,13 @@ def runtime_enabled_if(code, name): + return generate_indented_conditional(code, function) + + ++@environmentfilter ++def do_stringify_key_group_by(environment, value, attribute): ++ expr = make_attrgetter(environment, attribute) ++ key = lambda item: '' if expr(item) is None else str(expr(item)) ++ return groupby(sorted(value, key=key), expr) ++ ++ + def initialize_jinja_env(cache_dir): + jinja_env = jinja2.Environment( + loader=jinja2.FileSystemLoader(TEMPLATES_DIR), +@@ -117,6 +126,7 @@ def initialize_jinja_env(cache_dir): + }) + jinja_env.filters.update(constant_filters()) + jinja_env.filters.update(method_filters()) ++ jinja_env.filters["stringifykeygroupby"] = do_stringify_key_group_by + return jinja_env + + +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/generate_origin_trial_features.py b/chromium/third_party/blink/renderer/bindings/scripts/generate_origin_trial_features.py +index 130004eae83..04c0fabcef2 100755 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/generate_origin_trial_features.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/generate_origin_trial_features.py +@@ -80,7 +80,7 @@ def read_idl_file(reader, idl_filename): + assert len(interfaces) == 1, ( + "Expected one interface in file %r, found %d" % + (idl_filename, len(interfaces))) +- return (interfaces.values()[0], includes) ++ return (list(interfaces.values())[0], includes) + + + def interface_is_global(interface): +@@ -281,7 +281,7 @@ def main(): + + info_provider = create_component_info_provider( + os.path.normpath(options.info_dir), options.target_component) +- idl_filenames = map(str.strip, open(options.idl_files_list)) ++ idl_filenames = list(map(str.strip, open(options.idl_files_list))) + + generate_origin_trial_features(info_provider, options, idl_filenames) + return 0 +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/idl_definitions.py b/chromium/third_party/blink/renderer/bindings/scripts/idl_definitions.py +index 14e6e9d3f87..b027818aef2 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/idl_definitions.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/idl_definitions.py +@@ -394,7 +394,8 @@ class IdlInterface(object): + else: + raise ValueError('Unrecognized node class: %s' % child_class) + +- if len(filter(None, [self.iterable, self.maplike, self.setlike])) > 1: ++ if len(list(filter(None, ++ [self.iterable, self.maplike, self.setlike]))) > 1: + raise ValueError( + 'Interface can only have one of iterable<>, maplike<> and setlike<>.' + ) +@@ -512,6 +513,9 @@ class IdlAttribute(TypedObject): + def accept(self, visitor): + visitor.visit_attribute(self) + ++ def __lt__(self, other): ++ return self.name < other.name ++ + + ################################################################################ + # Constants +@@ -852,7 +856,7 @@ class IdlIncludes(object): + ################################################################################ + + +-class Exposure: ++class Exposure(object): + """An Exposure holds one Exposed or RuntimeEnabled condition. + Each exposure has two properties: exposed and runtime_enabled. + Exposure(e, r) corresponds to [Exposed(e r)]. Exposure(e) corresponds to +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/idl_reader.py b/chromium/third_party/blink/renderer/bindings/scripts/idl_reader.py +index 8d72865a6ca..b80eebdcd61 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/idl_reader.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/idl_reader.py +@@ -55,8 +55,8 @@ def validate_blink_idl_definitions(idl_filename, idl_file_basename, + definitions. There is no filename convention in this case. + - Otherwise, an IDL file is invalid. + """ +- targets = ( +- definitions.interfaces.values() + definitions.dictionaries.values()) ++ targets = (list(definitions.interfaces.values()) + ++ list(definitions.dictionaries.values())) + number_of_targets = len(targets) + if number_of_targets > 1: + raise Exception( +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/idl_types.py b/chromium/third_party/blink/renderer/bindings/scripts/idl_types.py +index cd4f0c3513b..ab95e9c0b08 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/idl_types.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/idl_types.py +@@ -349,7 +349,7 @@ class IdlUnionType(IdlTypeBase): + return True + + def single_matching_member_type(self, predicate): +- matching_types = filter(predicate, self.flattened_member_types) ++ matching_types = list(filter(predicate, self.flattened_member_types)) + if len(matching_types) > 1: + raise ValueError('%s is ambiguous.' % self.name) + return matching_types[0] if matching_types else None +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/utilities.py b/chromium/third_party/blink/renderer/bindings/scripts/utilities.py +index e1677ee7bd6..3c5006f064f 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/utilities.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/utilities.py +@@ -196,8 +196,9 @@ class ComponentInfoProviderModules(ComponentInfoProvider): + + @property + def callback_functions(self): +- return dict(self._component_info_core['callback_functions'].items() + +- self._component_info_modules['callback_functions'].items()) ++ return dict( ++ list(self._component_info_core['callback_functions'].items()) + ++ list(self._component_info_modules['callback_functions'].items())) + + @property + def specifier_for_export(self): +@@ -209,8 +210,8 @@ class ComponentInfoProviderModules(ComponentInfoProvider): + + + def load_interfaces_info_overall_pickle(info_dir): +- with open(os.path.join(info_dir, +- 'interfaces_info.pickle')) as interface_info_file: ++ with open(os.path.join(info_dir, 'interfaces_info.pickle'), ++ mode='rb') as interface_info_file: + return pickle.load(interface_info_file) + + +@@ -236,23 +237,20 @@ def merge_dict_recursively(target, diff): + + def create_component_info_provider_core(info_dir): + interfaces_info = load_interfaces_info_overall_pickle(info_dir) +- with open( +- os.path.join(info_dir, 'core', +- 'component_info_core.pickle')) as component_info_file: ++ with open(os.path.join(info_dir, 'core', 'component_info_core.pickle'), ++ mode='rb') as component_info_file: + component_info = pickle.load(component_info_file) + return ComponentInfoProviderCore(interfaces_info, component_info) + + + def create_component_info_provider_modules(info_dir): + interfaces_info = load_interfaces_info_overall_pickle(info_dir) +- with open( +- os.path.join(info_dir, 'core', +- 'component_info_core.pickle')) as component_info_file: ++ with open(os.path.join(info_dir, 'core', 'component_info_core.pickle'), ++ mode='rb') as component_info_file: + component_info_core = pickle.load(component_info_file) +- with open( +- os.path.join( +- info_dir, 'modules', +- 'component_info_modules.pickle')) as component_info_file: ++ with open(os.path.join(info_dir, 'modules', ++ 'component_info_modules.pickle'), ++ mode='rb') as component_info_file: + component_info_modules = pickle.load(component_info_file) + return ComponentInfoProviderModules(interfaces_info, component_info_core, + component_info_modules) +@@ -356,7 +354,7 @@ def write_pickle_file(pickle_filename, data): + pickle_filename = abs(pickle_filename) + # If |data| is same with the file content, we skip updating. + if os.path.isfile(pickle_filename): +- with open(pickle_filename) as pickle_file: ++ with open(pickle_filename, 'rb') as pickle_file: + try: + if pickle.load(pickle_file) == data: + return +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/v8_interface.py b/chromium/third_party/blink/renderer/bindings/scripts/v8_interface.py +index a43260414db..a85b03abe75 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/v8_interface.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/v8_interface.py +@@ -189,7 +189,7 @@ def context_enabled_features(attributes): + return sorted([ + member for member in members + if member.get(KEY) and not member.get('exposed_test') +- ]) ++ ], key=lambda item: item['name']) + + def member_filter_by_name(members, name): + return [member for member in members if member[KEY] == name] +@@ -612,7 +612,8 @@ def interface_context(interface, interfaces, component_info): + sorted( + origin_trial_features(interface, context['constants'], + context['attributes'], context['methods']) + +- context_enabled_features(context['attributes'])), ++ context_enabled_features(context['attributes']), ++ key=lambda item: item['name']), + }) + if context['optional_features']: + includes.add('platform/bindings/v8_per_context_data.h') +@@ -1356,9 +1357,9 @@ def resolution_tests_methods(effective_overloads): + + # Extract argument and IDL type to simplify accessing these in each loop. + arguments = [method['arguments'][index] for method in methods] +- arguments_methods = zip(arguments, methods) ++ arguments_methods = list(zip(arguments, methods)) + idl_types = [argument['idl_type_object'] for argument in arguments] +- idl_types_methods = zip(idl_types, methods) ++ idl_types_methods = list(zip(idl_types, methods)) + + # We can’t do a single loop through all methods or simply sort them, because + # a method may be listed in multiple steps of the resolution algorithm, and +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/v8_methods.py b/chromium/third_party/blink/renderer/bindings/scripts/v8_methods.py +index 5f1f89a3def..6ee8a407798 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/v8_methods.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/v8_methods.py +@@ -46,6 +46,10 @@ import v8_types + import v8_utilities + from v8_utilities import (has_extended_attribute_value, is_unforgeable) + ++# TODO: Remove this once Python2 is obsoleted. ++if sys.version_info.major != 2: ++ basestring = str ++ + + def method_is_visible(method, interface_is_partial): + if 'overloads' in method: +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/v8_utilities.py b/chromium/third_party/blink/renderer/bindings/scripts/v8_utilities.py +index 2ecd6923320..fcfc48371b1 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/v8_utilities.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/v8_utilities.py +@@ -271,7 +271,7 @@ EXPOSED_WORKERS = set([ + ]) + + +-class ExposureSet: ++class ExposureSet(object): + """An ExposureSet is a collection of Exposure instructions.""" + + def __init__(self, exposures=None): +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/callback_interface.py b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/callback_interface.py +index 13fb7c7068d..b73b7710687 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/web_idl/callback_interface.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/callback_interface.py +@@ -91,11 +91,13 @@ class CallbackInterface(UserDefinedType, WithExtendedAttributes, + for operation_ir in ir.operations + ]) + self._operation_groups = tuple([ +- OperationGroup( +- operation_group_ir, +- filter(lambda x: x.identifier == operation_group_ir.identifier, +- self._operations), +- owner=self) for operation_group_ir in ir.operation_groups ++ OperationGroup(operation_group_ir, ++ list( ++ filter( ++ lambda x: x.identifier == operation_group_ir ++ .identifier, self._operations)), ++ owner=self) ++ for operation_group_ir in ir.operation_groups + ]) + + @property +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/database.py b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/database.py +index c92cf48eb2a..f5d59129449 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/web_idl/database.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/database.py +@@ -156,4 +156,4 @@ class Database(object): + return self._view_by_kind(Database._Kind.UNION) + + def _view_by_kind(self, kind): +- return self._impl.find_by_kind(kind).values() ++ return list(self._impl.find_by_kind(kind).values()) +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/exposure.py b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/exposure.py +index abaeef39c30..e36cf7439ae 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/web_idl/exposure.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/exposure.py +@@ -8,8 +8,11 @@ from .runtime_enabled_features import RuntimeEnabledFeatures + class _Feature(str): + """Represents a runtime-enabled feature.""" + ++ def __new__(cls, value): ++ return str.__new__(cls, value) ++ + def __init__(self, value): +- str.__init__(self, value) ++ str.__init__(self) + self._is_context_dependent = ( + RuntimeEnabledFeatures.is_context_dependent(self)) + +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/function_like.py b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/function_like.py +index 648c70d803d..1712f19c672 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/web_idl/function_like.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/function_like.py +@@ -71,8 +71,9 @@ class FunctionLike(WithIdentifier): + def num_of_required_arguments(self): + """Returns the number of required arguments.""" + return len( +- filter(lambda arg: not (arg.is_optional or arg.is_variadic), +- self.arguments)) ++ list( ++ filter(lambda arg: not (arg.is_optional or arg.is_variadic), ++ self.arguments))) + + + class OverloadGroup(WithIdentifier): +@@ -171,8 +172,7 @@ class OverloadGroup(WithIdentifier): + Returns the effective overload set. + https://heycam.github.io/webidl/#compute-the-effective-overload-set + """ +- assert argument_count is None or isinstance(argument_count, +- (int, long)) ++ assert argument_count is None or isinstance(argument_count, int) + + N = argument_count + S = [] +@@ -188,21 +188,21 @@ class OverloadGroup(WithIdentifier): + + S.append( + OverloadGroup.EffectiveOverloadItem( +- X, map(lambda arg: arg.idl_type, X.arguments), +- map(lambda arg: arg.optionality, X.arguments))) ++ X, list(map(lambda arg: arg.idl_type, X.arguments)), ++ list(map(lambda arg: arg.optionality, X.arguments)))) + + if X.is_variadic: +- for i in xrange(n, max(maxarg, N)): +- t = map(lambda arg: arg.idl_type, X.arguments) +- o = map(lambda arg: arg.optionality, X.arguments) +- for _ in xrange(n, i + 1): ++ for i in range(n, max(maxarg, N)): ++ t = list(map(lambda arg: arg.idl_type, X.arguments)) ++ o = list(map(lambda arg: arg.optionality, X.arguments)) ++ for _ in range(n, i + 1): + t.append(X.arguments[-1].idl_type) + o.append(X.arguments[-1].optionality) + S.append(OverloadGroup.EffectiveOverloadItem(X, t, o)) + +- t = map(lambda arg: arg.idl_type, X.arguments) +- o = map(lambda arg: arg.optionality, X.arguments) +- for i in xrange(n - 1, -1, -1): ++ t = list(map(lambda arg: arg.idl_type, X.arguments)) ++ o = list(map(lambda arg: arg.optionality, X.arguments)) ++ for i in range(n - 1, -1, -1): + if X.arguments[i].optionality == IdlType.Optionality.REQUIRED: + break + S.append(OverloadGroup.EffectiveOverloadItem(X, t[:i], o[:i])) +@@ -222,7 +222,7 @@ class OverloadGroup(WithIdentifier): + for item in items) + assert len(items) > 1 + +- for index in xrange(len(items[0].type_list)): ++ for index in range(len(items[0].type_list)): + # Assume that the given items are valid, and we only need to test + # the two types. + if OverloadGroup.are_distinguishable_types( +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/idl_compiler.py b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/idl_compiler.py +index c5ee2bd8a3d..58315072480 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/web_idl/idl_compiler.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/idl_compiler.py +@@ -149,8 +149,8 @@ class IdlCompiler(object): + for old_ir in old_irs: + new_ir = make_copy(old_ir) + self._ir_map.add(new_ir) +- new_ir.attributes = filter(not_disabled, new_ir.attributes) +- new_ir.operations = filter(not_disabled, new_ir.operations) ++ new_ir.attributes = list(filter(not_disabled, new_ir.attributes)) ++ new_ir.operations = list(filter(not_disabled, new_ir.operations)) + + def _record_defined_in_partial_and_mixin(self): + old_irs = self._ir_map.irs_of_kinds( +@@ -231,7 +231,7 @@ class IdlCompiler(object): + only_to_members_of_partial_or_mixin=False) + propagate_to_exposure(propagate) + +- map(process_member_like, ir.iter_all_members()) ++ list(map(process_member_like, ir.iter_all_members())) + + def process_member_like(ir): + propagate = functools.partial(propagate_extattr, ir=ir) +@@ -257,7 +257,7 @@ class IdlCompiler(object): + + self._ir_map.move_to_new_phase() + +- map(process_interface_like, old_irs) ++ list(map(process_interface_like, old_irs)) + + def _determine_blink_headers(self): + irs = self._ir_map.irs_of_kinds( +@@ -422,9 +422,9 @@ class IdlCompiler(object): + assert not new_interface.deriveds + derived_set = identifier_to_derived_set.get( + new_interface.identifier, set()) +- new_interface.deriveds = map( +- lambda id_: self._ref_to_idl_def_factory.create(id_), +- sorted(derived_set)) ++ new_interface.deriveds = list( ++ map(lambda id_: self._ref_to_idl_def_factory.create(id_), ++ sorted(derived_set))) + + def _supplement_missing_html_constructor_operation(self): + # Temporary mitigation of misuse of [HTMLConstructor] +@@ -553,7 +553,8 @@ class IdlCompiler(object): + self._ir_map.add(new_ir) + + for group in new_ir.iter_all_overload_groups(): +- exposures = map(lambda overload: overload.exposure, group) ++ exposures = list(map(lambda overload: overload.exposure, ++ group)) + + # [Exposed] + if any(not exposure.global_names_and_features +@@ -653,8 +654,8 @@ class IdlCompiler(object): + constructs = set() + for global_name in global_names: + constructs.update(exposed_map.get(global_name, [])) +- new_ir.exposed_constructs = map( +- self._ref_to_idl_def_factory.create, sorted(constructs)) ++ new_ir.exposed_constructs = list( ++ map(self._ref_to_idl_def_factory.create, sorted(constructs))) + + assert not new_ir.legacy_window_aliases + if new_ir.identifier != 'Window': +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/interface.py b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/interface.py +index 65d24e529d1..067ef2eb0b2 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/web_idl/interface.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/interface.py +@@ -180,8 +180,9 @@ class Interface(UserDefinedType, WithExtendedAttributes, WithCodeGeneratorInfo, + self._constructor_groups = tuple([ + ConstructorGroup( + group_ir, +- filter(lambda x: x.identifier == group_ir.identifier, +- self._constructors), ++ list( ++ filter(lambda x: x.identifier == group_ir.identifier, ++ self._constructors)), + owner=self) for group_ir in ir.constructor_groups + ]) + assert len(self._constructor_groups) <= 1 +@@ -192,8 +193,9 @@ class Interface(UserDefinedType, WithExtendedAttributes, WithCodeGeneratorInfo, + self._named_constructor_groups = tuple([ + ConstructorGroup( + group_ir, +- filter(lambda x: x.identifier == group_ir.identifier, +- self._named_constructors), ++ list( ++ filter(lambda x: x.identifier == group_ir.identifier, ++ self._named_constructors)), + owner=self) for group_ir in ir.named_constructor_groups + ]) + self._operations = tuple([ +@@ -203,22 +205,23 @@ class Interface(UserDefinedType, WithExtendedAttributes, WithCodeGeneratorInfo, + self._operation_groups = tuple([ + OperationGroup( + group_ir, +- filter(lambda x: x.identifier == group_ir.identifier, +- self._operations), ++ list( ++ filter(lambda x: x.identifier == group_ir.identifier, ++ self._operations)), + owner=self) for group_ir in ir.operation_groups + ]) + self._exposed_constructs = tuple(ir.exposed_constructs) + self._legacy_window_aliases = tuple(ir.legacy_window_aliases) + self._indexed_and_named_properties = None +- indexed_and_named_property_operations = filter( +- lambda x: x.is_indexed_or_named_property_operation, +- self._operations) ++ indexed_and_named_property_operations = list( ++ filter(lambda x: x.is_indexed_or_named_property_operation, ++ self._operations)) + if indexed_and_named_property_operations: + self._indexed_and_named_properties = IndexedAndNamedProperties( + indexed_and_named_property_operations, owner=self) + self._stringifier = None +- stringifier_operation_irs = filter(lambda x: x.is_stringifier, +- ir.operations) ++ stringifier_operation_irs = list( ++ filter(lambda x: x.is_stringifier, ir.operations)) + if stringifier_operation_irs: + assert len(stringifier_operation_irs) == 1 + op_ir = make_copy(stringifier_operation_irs[0]) +@@ -231,8 +234,9 @@ class Interface(UserDefinedType, WithExtendedAttributes, WithCodeGeneratorInfo, + attribute = None + if operation.stringifier_attribute: + attr_id = operation.stringifier_attribute +- attributes = filter(lambda x: x.identifier == attr_id, +- self._attributes) ++ attributes = list( ++ filter(lambda x: x.identifier == attr_id, ++ self._attributes)) + assert len(attributes) == 1 + attribute = attributes[0] + self._stringifier = Stringifier(operation, attribute, owner=self) +@@ -578,8 +582,9 @@ class Iterable(WithDebugInfo): + self._operation_groups = tuple([ + OperationGroup( + group_ir, +- filter(lambda x: x.identifier == group_ir.identifier, +- self._operations), ++ list( ++ filter(lambda x: x.identifier == group_ir.identifier, ++ self._operations)), + owner=owner) for group_ir in ir.operation_groups + ]) + +@@ -666,8 +671,9 @@ class Maplike(WithDebugInfo): + self._operation_groups = tuple([ + OperationGroup( + group_ir, +- filter(lambda x: x.identifier == group_ir.identifier, +- self._operations), ++ list( ++ filter(lambda x: x.identifier == group_ir.identifier, ++ self._operations)), + owner=owner) for group_ir in ir.operation_groups + ]) + +@@ -755,8 +761,9 @@ class Setlike(WithDebugInfo): + self._operation_groups = tuple([ + OperationGroup( + group_ir, +- filter(lambda x: x.identifier == group_ir.identifier, +- self._operations), ++ list( ++ filter(lambda x: x.identifier == group_ir.identifier, ++ self._operations)), + owner=owner) for group_ir in ir.operation_groups + ]) + +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/ir_builder.py b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/ir_builder.py +index e9aeff4ab82..d80554d603e 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/web_idl/ir_builder.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/ir_builder.py +@@ -2,6 +2,8 @@ + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. + ++import sys ++ + from .argument import Argument + from .ast_group import AstGroup + from .attribute import Attribute +@@ -30,6 +32,11 @@ from .operation import Operation + from .typedef import Typedef + + ++# TODO: Remove this once Python2 is obsoleted. ++if sys.version_info.major != 2: ++ long = int ++ ++ + def load_and_register_idl_definitions(filepaths, register_ir, + create_ref_to_idl_def, idl_type_factory): + """ +@@ -160,7 +167,7 @@ class _IRBuilder(object): + child_nodes = list(node.GetChildren()) + extended_attributes = self._take_extended_attributes(child_nodes) + +- members = map(self._build_interface_member, child_nodes) ++ members = list(map(self._build_interface_member, child_nodes)) + attributes = [] + constants = [] + operations = [] +@@ -302,7 +309,7 @@ class _IRBuilder(object): + child_nodes = list(node.GetChildren()) + inherited = self._take_inheritance(child_nodes) + extended_attributes = self._take_extended_attributes(child_nodes) +- own_members = map(self._build_dictionary_member, child_nodes) ++ own_members = list(map(self._build_dictionary_member, child_nodes)) + + return Dictionary.IR( + identifier=Identifier(node.GetName()), +@@ -336,7 +343,7 @@ class _IRBuilder(object): + + child_nodes = list(node.GetChildren()) + extended_attributes = self._take_extended_attributes(child_nodes) +- members = map(self._build_interface_member, child_nodes) ++ members = list(map(self._build_interface_member, child_nodes)) + constants = [] + operations = [] + for member in members: +@@ -456,8 +463,8 @@ class _IRBuilder(object): + assert len(child_nodes) == 1 + child = child_nodes[0] + if child.GetClass() == 'Arguments': +- arguments = map(build_extattr_argument, +- child.GetChildren()) ++ arguments = list( ++ map(build_extattr_argument, child.GetChildren())) + elif child.GetClass() == 'Call': + assert len(child.GetChildren()) == 1 + grand_child = child.GetChildren()[0] +@@ -486,7 +493,9 @@ class _IRBuilder(object): + + assert node.GetClass() == 'ExtAttributes' + return ExtendedAttributes( +- filter(None, map(build_extended_attribute, node.GetChildren()))) ++ list( ++ filter(None, map(build_extended_attribute, ++ node.GetChildren())))) + + def _build_inheritance(self, node): + assert node.GetClass() == 'Inherit' +@@ -506,7 +515,7 @@ class _IRBuilder(object): + + def _build_iterable(self, node): + assert node.GetClass() == 'Iterable' +- types = map(self._build_type, node.GetChildren()) ++ types = list(map(self._build_type, node.GetChildren())) + assert len(types) == 1 or len(types) == 2 + if len(types) == 1: # value iterator + key_type, value_type = (None, types[0]) +@@ -584,7 +593,7 @@ class _IRBuilder(object): + def _build_maplike(self, node, interface_identifier): + assert node.GetClass() == 'Maplike' + assert isinstance(interface_identifier, Identifier) +- types = map(self._build_type, node.GetChildren()) ++ types = list(map(self._build_type, node.GetChildren())) + assert len(types) == 2 + key_type, value_type = types + is_readonly = bool(node.GetProperty('READONLY')) +@@ -676,7 +685,7 @@ class _IRBuilder(object): + def _build_setlike(self, node, interface_identifier): + assert node.GetClass() == 'Setlike' + assert isinstance(interface_identifier, Identifier) +- types = map(self._build_type, node.GetChildren()) ++ types = list(map(self._build_type, node.GetChildren())) + assert len(types) == 1 + value_type = types[0] + is_readonly = bool(node.GetProperty('READONLY')) +@@ -838,7 +847,7 @@ class _IRBuilder(object): + + def build_union_type(node, extended_attributes): + return self._idl_type_factory.union_type( +- member_types=map(self._build_type, node.GetChildren()), ++ member_types=list(map(self._build_type, node.GetChildren())), + is_optional=is_optional, + extended_attributes=extended_attributes, + debug_info=self._build_debug_info(node)) +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/make_copy.py b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/make_copy.py +index a7a2b11f3f0..2f6b61300ff 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/web_idl/make_copy.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/make_copy.py +@@ -3,6 +3,13 @@ + # found in the LICENSE file. + + ++import sys ++ ++# TODO: Remove this once Python2 is obsoleted. ++if sys.version_info.major != 2: ++ long = int ++ basestring = str ++ + def make_copy(obj, memo=None): + """ + Creates a copy of the given object, which should be an IR or part of IR. +diff --git a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/namespace.py b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/namespace.py +index eeabef97cbe..bd7e98907f3 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/scripts/web_idl/namespace.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/namespace.py +@@ -107,11 +107,13 @@ class Namespace(UserDefinedType, WithExtendedAttributes, WithCodeGeneratorInfo, + for operation_ir in ir.operations + ]) + self._operation_groups = tuple([ +- OperationGroup( +- operation_group_ir, +- filter(lambda x: x.identifier == operation_group_ir.identifier, +- self._operations), +- owner=self) for operation_group_ir in ir.operation_groups ++ OperationGroup(operation_group_ir, ++ list( ++ filter( ++ lambda x: x.identifier == operation_group_ir ++ .identifier, self._operations)), ++ owner=self) ++ for operation_group_ir in ir.operation_groups + ]) + + @property +diff --git a/chromium/third_party/blink/renderer/bindings/templates/dictionary_v8.cc.tmpl b/chromium/third_party/blink/renderer/bindings/templates/dictionary_v8.cc.tmpl +index 0add9c45a38..dc910f6d227 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/bindings/templates/dictionary_v8.cc.tmpl ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/templates/dictionary_v8.cc.tmpl +@@ -59,9 +59,9 @@ void {{v8_class}}::ToImpl(v8::Isolate* isolate, v8::Local v8_value, { + DCHECK(executionContext); + {% endif %}{# has_origin_trial_members #} + {% endif %}{# members #} +- {% for origin_trial_test, origin_trial_member_list in members | groupby('origin_trial_feature_name') %} ++ {% for origin_trial_test, origin_trial_member_list in members | stringifykeygroupby('origin_trial_feature_name') %} + {% filter origin_trial_enabled(origin_trial_test, "executionContext") %} +- {% for feature_name, member_list in origin_trial_member_list | groupby('runtime_enabled_feature_name') %} ++ {% for feature_name, member_list in origin_trial_member_list | stringifykeygroupby('runtime_enabled_feature_name') %} + {% filter runtime_enabled(feature_name) %} + {% for member in member_list %} + v8::Local {{member.v8_value}}; +@@ -147,9 +147,9 @@ bool toV8{{cpp_class}}(const {{cpp_class}}* impl, v8::Local dictiona + DCHECK(executionContext); + {% endif %}{# has_origin_trial_members #} + {% endif %}{# members #} +- {% for origin_trial_test, origin_trial_member_list in members | groupby('origin_trial_feature_name') %} ++ {% for origin_trial_test, origin_trial_member_list in members | stringifykeygroupby('origin_trial_feature_name') %} + {% filter origin_trial_enabled(origin_trial_test, "executionContext") %} +- {% for feature_name, member_list in origin_trial_member_list | groupby('runtime_enabled_feature_name') %} ++ {% for feature_name, member_list in origin_trial_member_list | stringifykeygroupby('runtime_enabled_feature_name') %} + {% filter runtime_enabled(feature_name) %} + {% for member in member_list %} + v8::Local {{member.v8_value}}; +diff --git a/chromium/third_party/blink/renderer/build/scripts/core/css/make_style_shorthands.py b/chromium/third_party/blink/renderer/build/scripts/core/css/make_style_shorthands.py +index 1799cd5a153..5f43ffabc26 100755 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/build/scripts/core/css/make_style_shorthands.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/core/css/make_style_shorthands.py +@@ -71,7 +71,7 @@ class Expansion(object): + def enabled_longhands(self): + include = lambda longhand: not longhand[ + 'runtime_flag'] or self.is_enabled(longhand['runtime_flag']) +- return filter(include, self._longhands) ++ return list(filter(include, self._longhands)) + + @property + def index(self): +@@ -87,8 +87,9 @@ class Expansion(object): + + def create_expansions(longhands): + flags = collect_runtime_flags(longhands) +- expansions = map(lambda mask: Expansion(longhands, flags, mask), +- range(1 << len(flags))) ++ expansions = list( ++ map(lambda mask: Expansion(longhands, flags, mask), ++ range(1 << len(flags)))) + assert len(expansions) > 0 + # We generate 2^N expansions for N flags, so enforce some limit. + assert len(flags) <= 4, 'Too many runtime flags for a single shorthand' +@@ -114,14 +115,14 @@ class StylePropertyShorthandWriter(json5_generator.Writer): + + self._longhand_dictionary = defaultdict(list) + for property_ in json5_properties.shorthands: +- property_['longhand_enum_keys'] = map(enum_key_for_css_property, +- property_['longhands']) +- property_['longhand_property_ids'] = map(id_for_css_property, +- property_['longhands']) +- +- longhands = map( +- lambda name: json5_properties.properties_by_name[name], +- property_['longhands']) ++ property_['longhand_enum_keys'] = list( ++ map(enum_key_for_css_property, property_['longhands'])) ++ property_['longhand_property_ids'] = list( ++ map(id_for_css_property, property_['longhands'])) ++ ++ longhands = list( ++ map(lambda name: json5_properties.properties_by_name[name], ++ property_['longhands'])) + property_['expansions'] = create_expansions(longhands) + for longhand_enum_key in property_['longhand_enum_keys']: + self._longhand_dictionary[longhand_enum_key].append(property_) +diff --git a/chromium/third_party/blink/renderer/build/scripts/core/css/properties/make_css_property_instances.py b/chromium/third_party/blink/renderer/build/scripts/core/css/properties/make_css_property_instances.py +index 75030ac577e..f72aadee17d 100755 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/build/scripts/core/css/properties/make_css_property_instances.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/core/css/properties/make_css_property_instances.py +@@ -42,8 +42,8 @@ class CSSPropertyInstancesWriter(json5_generator.Writer): + aliases = self._css_properties.aliases + + # Lists of PropertyClassData. +- self._property_classes_by_id = map(self.get_class, properties) +- self._alias_classes_by_id = map(self.get_class, aliases) ++ self._property_classes_by_id = list(map(self.get_class, properties)) ++ self._alias_classes_by_id = list(map(self.get_class, aliases)) + + # Sort by enum value. + self._property_classes_by_id.sort(key=lambda t: t.enum_value) +diff --git a/chromium/third_party/blink/renderer/build/scripts/gperf.py b/chromium/third_party/blink/renderer/build/scripts/gperf.py +index 5ee49056be4..db72660d471 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/build/scripts/gperf.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/gperf.py +@@ -95,7 +95,7 @@ def main(): + + open(args.output_file, 'wb').write( + generate_gperf(gperf_path, +- open(infile).read(), gperf_args)) ++ open(infile).read(), gperf_args).encode('utf-8')) + + + if __name__ == '__main__': +diff --git a/chromium/third_party/blink/renderer/build/scripts/in_file.py b/chromium/third_party/blink/renderer/build/scripts/in_file.py +index 28adc050f1e..58113483e57 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/build/scripts/in_file.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/in_file.py +@@ -66,7 +66,7 @@ class InFile(object): + self._defaults = defaults + self._valid_values = copy.deepcopy( + valid_values if valid_values else {}) +- self._parse(map(str.strip, lines)) ++ self._parse(list(map(str.strip, lines))) + + @classmethod + def load_from_files(self, file_paths, defaults, valid_values, +diff --git a/chromium/third_party/blink/renderer/build/scripts/in_generator.py b/chromium/third_party/blink/renderer/build/scripts/in_generator.py +index e46740a2e85..ab1981ad1e3 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/build/scripts/in_generator.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/in_generator.py +@@ -32,10 +32,15 @@ import os + import os.path + import shlex + import shutil ++import sys + import optparse + + from in_file import InFile + ++# TODO: Remove this once Python2 is obsoleted. ++if sys.version_info.major != 2: ++ basestring = str ++ + + ######################################################### + # This is now deprecated - use json5_generator.py instead +diff --git a/chromium/third_party/blink/renderer/build/scripts/make_runtime_features.py b/chromium/third_party/blink/renderer/build/scripts/make_runtime_features.py +index cafe8d94a8e..6925a4fa580 100755 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/build/scripts/make_runtime_features.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/make_runtime_features.py +@@ -138,7 +138,7 @@ class RuntimeFeatureWriter(BaseRuntimeFeatureWriter): + except Exception: + # If trouble unpickling, overwrite + pass +- with open(os.path.abspath(file_name), 'w') as pickle_file: ++ with open(os.path.abspath(file_name), 'wb') as pickle_file: + pickle.dump(features_map, pickle_file) + + def _template_inputs(self): +diff --git a/chromium/third_party/blink/renderer/build/scripts/templates/element_factory.cc.tmpl b/chromium/third_party/blink/renderer/build/scripts/templates/element_factory.cc.tmpl +index dc3f44c5b10..3eefcf9f0ee 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/build/scripts/templates/element_factory.cc.tmpl ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/templates/element_factory.cc.tmpl +@@ -26,7 +26,7 @@ using {{namespace}}FunctionMap = HashMapGetExecutionContext())) { +diff --git a/chromium/third_party/blink/renderer/build/scripts/templates/element_type_helpers.h.tmpl b/chromium/third_party/blink/renderer/build/scripts/templates/element_type_helpers.h.tmpl +index 1b5297d52dc..edecc81d9d4 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/build/scripts/templates/element_type_helpers.h.tmpl ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/templates/element_type_helpers.h.tmpl +@@ -15,7 +15,7 @@ namespace blink { + class Document; + + // Type checking. +-{% for tag in tags|sort if not tag.multipleTagNames and not tag.noTypeHelpers %} ++{% for tag in tags|sort(attribute='name') if not tag.multipleTagNames and not tag.noTypeHelpers %} + class {{tag.interface}}; + template <> + inline bool IsElementOfType(const Node& node) { +diff --git a/chromium/third_party/blink/renderer/build/scripts/templates/macros.tmpl b/chromium/third_party/blink/renderer/build/scripts/templates/macros.tmpl +index 0244433af2e..dcdbb02a56c 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/build/scripts/templates/macros.tmpl ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/templates/macros.tmpl +@@ -25,7 +25,7 @@ + + + {% macro trie_leaf(index, object, return_macro, lowercase_data) %} +-{% set name, value = object.items()[0] %} ++{% set name, value = (object.items()|list)[0] %} + {% if name|length %} + if ( + {%- for c in name -%} +@@ -45,7 +45,7 @@ return {{ return_macro(value) }}; + + + {% macro trie_switch(trie, index, return_macro, lowercase_data) %} +-{% if trie|length == 1 and trie.values()[0] is string %} ++{% if trie|length == 1 and (trie.values()|list)[0] is string %} + {{ trie_leaf(index, trie, return_macro, lowercase_data) -}} + {% else %} + {% if lowercase_data %} +diff --git a/chromium/third_party/blink/renderer/build/scripts/templates/make_qualified_names.h.tmpl b/chromium/third_party/blink/renderer/build/scripts/templates/make_qualified_names.h.tmpl +index cb05c6c4315..bd5566b03e7 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/blink/renderer/build/scripts/templates/make_qualified_names.h.tmpl ++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/templates/make_qualified_names.h.tmpl +@@ -24,12 +24,12 @@ namespace {{cpp_namespace}} { + {{symbol_export}}extern const WTF::AtomicString& {{namespace_prefix}}NamespaceURI; + + // Tags +-{% for tag in tags|sort %} ++{% for tag in tags|sort(attribute='name') %} + {{symbol_export}}extern const blink::{{namespace}}QualifiedName& {{tag|symbol}}Tag; + {% endfor %} + + // Attributes +-{% for attr in attrs|sort %} ++{% for attr in attrs|sort(attribute='name') %} + {{symbol_export}}extern const blink::QualifiedName& {{attr|symbol}}Attr; + {% endfor %} + +diff --git a/chromium/third_party/dawn/generator/generator_lib.py b/chromium/third_party/dawn/generator/generator_lib.py +index 5e3734d7833..e3d46bd194f 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/dawn/generator/generator_lib.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/dawn/generator/generator_lib.py +@@ -201,6 +201,10 @@ def _compute_python_dependencies(root_dir=None): + + paths = set() + for path in module_paths: ++ # Builtin/namespaced modules may return None for the file path. ++ if not path: ++ continue ++ + path = os.path.abspath(path) + + if not path.startswith(root_dir): +diff --git a/chromium/third_party/devtools-frontend/src/BUILD.gn b/chromium/third_party/devtools-frontend/src/BUILD.gn +index cd488e88b60..ea1dc3d9a79 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/devtools-frontend/src/BUILD.gn ++++ b/qtwebengine/src/3rdparty/chromium/third_party/devtools-frontend/src/BUILD.gn +@@ -2,6 +2,8 @@ + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. + ++import("//build/config/python.gni") ++ + import("//third_party/blink/public/public_features.gni") + import("./all_devtools_files.gni") + import("./all_devtools_modules.gni") +diff --git a/chromium/third_party/devtools-frontend/src/scripts/build/build_inspector_overlay.py b/chromium/third_party/devtools-frontend/src/scripts/build/build_inspector_overlay.py +index d6666e8b74f..0f7a661e632 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/devtools-frontend/src/scripts/build/build_inspector_overlay.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/devtools-frontend/src/scripts/build/build_inspector_overlay.py +@@ -45,7 +45,8 @@ def rollup(input_path, output_path, filename, max_size, rollup_plugin): + ['--format', 'iife', '-n', 'InspectorOverlay'] + ['--input', target] + + ['--plugin', rollup_plugin], + stdout=subprocess.PIPE, +- stderr=subprocess.PIPE) ++ stderr=subprocess.PIPE, ++ text=True) + out, error = rollup_process.communicate() + if not out: + raise Exception("rollup failed: " + error) +diff --git a/chromium/third_party/devtools-frontend/src/scripts/build/build_release_applications.py b/chromium/third_party/devtools-frontend/src/scripts/build/build_release_applications.py +index fa8e73d34af..7d0b84b2171 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/devtools-frontend/src/scripts/build/build_release_applications.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/devtools-frontend/src/scripts/build/build_release_applications.py +@@ -10,7 +10,7 @@ Builds applications in release mode: + and the application loader into a single script. + """ + +-from cStringIO import StringIO ++from io import StringIO + from os import path + from os.path import join + import copy +@@ -145,8 +145,7 @@ class ReleaseBuilder(object): + resource_content = read_file(path.join(self.application_dir, resource_name)) + if not (resource_name.endswith('.html') + or resource_name.endswith('md')): +- resource_content += resource_source_url(resource_name).encode( +- 'utf-8') ++ resource_content += resource_source_url(resource_name) + resource_content = resource_content.replace('\\', '\\\\') + resource_content = resource_content.replace('\n', '\\n') + resource_content = resource_content.replace('"', '\\"') +@@ -173,7 +172,9 @@ class ReleaseBuilder(object): + def _concatenate_application_script(self, output): + output.write('Root.allDescriptors.push(...%s);' % self._release_module_descriptors()) + if self.descriptors.extends: +- output.write('Root.applicationDescriptor.modules.push(...%s);' % json.dumps(self.descriptors.application.values())) ++ output.write( ++ 'Root.applicationDescriptor.modules.push(...%s);' % ++ json.dumps(list(self.descriptors.application.values()))) + else: + output.write('Root.applicationDescriptor = %s;' % self.descriptors.application_json()) + +diff --git a/chromium/third_party/devtools-frontend/src/scripts/build/generate_devtools_grd.py b/chromium/third_party/devtools-frontend/src/scripts/build/generate_devtools_grd.py +index be510c48d76..c6a59c90298 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/devtools-frontend/src/scripts/build/generate_devtools_grd.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/devtools-frontend/src/scripts/build/generate_devtools_grd.py +@@ -123,7 +123,7 @@ def main(argv): + + try: + os.makedirs(path.join(output_directory, 'Images')) +- except OSError, e: ++ except OSError as e: + if e.errno != errno.EEXIST: + raise e + +@@ -147,7 +147,7 @@ def main(argv): + shutil.copy(path.join(dirname, filename), path.join(output_directory, 'Images')) + add_file_to_grd(doc, path.join('Images', filename)) + +- with open(parsed_args.output_filename, 'w') as output_file: ++ with open(parsed_args.output_filename, 'wb') as output_file: + output_file.write(doc.toxml(encoding='UTF-8')) + + +diff --git a/chromium/third_party/devtools-frontend/src/scripts/build/modular_build.py b/chromium/third_party/devtools-frontend/src/scripts/build/modular_build.py +index 0ba695d3810..bb1da2f9f8d 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/devtools-frontend/src/scripts/build/modular_build.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/devtools-frontend/src/scripts/build/modular_build.py +@@ -7,6 +7,8 @@ + Utilities for the modular DevTools build. + """ + ++from __future__ import print_function ++ + import collections + from os import path + import os +@@ -40,7 +42,7 @@ def load_and_parse_json(filename): + try: + return json.loads(read_file(filename)) + except: +- print 'ERROR: Failed to parse %s' % filename ++ print('ERROR: Failed to parse %s' % filename) + raise + + class Descriptors: +@@ -57,7 +59,7 @@ class Descriptors: + + def application_json(self): + result = dict() +- result['modules'] = self.application.values() ++ result['modules'] = list(self.application.values()) + return json.dumps(result) + + def all_compiled_files(self): +diff --git a/chromium/third_party/jinja2/tests.py b/chromium/third_party/jinja2/tests.py +index 0adc3d4dbcb..b14f85ff148 100644 +--- a/qtwebengine/src/3rdparty/chromium/chromium/third_party/jinja2/tests.py ++++ b/qtwebengine/src/3rdparty/chromium/third_party/jinja2/tests.py +@@ -10,7 +10,7 @@ + """ + import operator + import re +-from collections import Mapping ++from collections.abc import Mapping + from jinja2.runtime import Undefined + from jinja2._compat import text_type, string_types, integer_types + import decimal +diff --git a/chromium/tools/metrics/ukm/gen_builders.py b/chromium/tools/metrics/ukm/gen_builders.py +index f9f61d90a56..44e46fae8cc 100755 +--- a/qtwebengine/src/3rdparty/chromium/chromium/tools/metrics/ukm/gen_builders.py ++++ b/qtwebengine/src/3rdparty/chromium/tools/metrics/ukm/gen_builders.py +@@ -48,9 +48,10 @@ def ReadFilteredData(path): + data = ukm_model.UKM_XML_TYPE.Parse(ukm_file.read()) + event_tag = ukm_model._EVENT_TYPE.tag + metric_tag = ukm_model._METRIC_TYPE.tag +- data[event_tag] = filter(ukm_model.IsNotObsolete, data[event_tag]) ++ data[event_tag] = list(filter(ukm_model.IsNotObsolete, data[event_tag])) + for event in data[event_tag]: +- event[metric_tag] = filter(ukm_model.IsNotObsolete, event[metric_tag]) ++ event[metric_tag] = list( ++ filter(ukm_model.IsNotObsolete, event[metric_tag])) + return data + + +diff --git a/chromium/ui/ozone/generate_constructor_list.py b/chromium/ui/ozone/generate_constructor_list.py +index 8d800636c97..04fa18e93df 100755 +--- a/qtwebengine/src/3rdparty/chromium/chromium/ui/ozone/generate_constructor_list.py ++++ b/qtwebengine/src/3rdparty/chromium/ui/ozone/generate_constructor_list.py +@@ -45,12 +45,15 @@ Example Output: ./ui/ozone/generate_constructor_list.py \ + } // namespace ui + """ + ++try: ++ from StringIO import StringIO # for Python 2 ++except ImportError: ++ from io import StringIO # for Python 3 + import optparse + import os + import collections + import re + import sys +-import string + + + def GetTypedefName(typename): +@@ -68,7 +71,7 @@ def GetConstructorName(typename, platform): + This is just "Create" + typename + platform. + """ + +- return 'Create' + typename + string.capitalize(platform) ++ return 'Create' + typename + platform.capitalize() + + + def GenerateConstructorList(out, namespace, export, typenames, platforms, +@@ -163,12 +166,14 @@ def main(argv): + sys.exit(1) + + # Write to standard output or file specified by --output_cc. +- out_cc = sys.stdout ++ out_cc = getattr(sys.stdout, 'buffer', sys.stdout) + if options.output_cc: + out_cc = open(options.output_cc, 'wb') + +- GenerateConstructorList(out_cc, options.namespace, options.export, ++ out_cc_str = StringIO() ++ GenerateConstructorList(out_cc_str, options.namespace, options.export, + typenames, platforms, includes, usings) ++ out_cc.write(out_cc_str.getvalue().encode('utf-8')) + + if options.output_cc: + out_cc.close() +diff --git a/chromium/ui/ozone/generate_ozone_platform_list.py b/chromium/ui/ozone/generate_ozone_platform_list.py +index d47c398259b..2702b68b9bd 100755 +--- a/qtwebengine/src/3rdparty/chromium/chromium/ui/ozone/generate_ozone_platform_list.py ++++ b/qtwebengine/src/3rdparty/chromium/ui/ozone/generate_ozone_platform_list.py +@@ -49,12 +49,15 @@ Example Output: ./generate_ozone_platform_list.py --default wayland dri wayland + + """ + ++try: ++ from StringIO import StringIO # for Python 2 ++except ImportError: ++ from io import StringIO # for Python 3 + import optparse + import os + import collections + import re + import sys +-import string + + + def GetConstantName(name): +@@ -63,7 +66,7 @@ def GetConstantName(name): + We just capitalize the platform name and prepend "CreateOzonePlatform". + """ + +- return 'kPlatform' + string.capitalize(name) ++ return 'kPlatform' + name.capitalize() + + + def GeneratePlatformListText(out, platforms): +@@ -149,9 +152,9 @@ def main(argv): + platforms.insert(0, options.default) + + # Write to standard output or file specified by --output_{cc,h}. +- out_cc = sys.stdout +- out_h = sys.stdout +- out_txt = sys.stdout ++ out_cc = getattr(sys.stdout, 'buffer', sys.stdout) ++ out_h = getattr(sys.stdout, 'buffer', sys.stdout) ++ out_txt = getattr(sys.stdout, 'buffer', sys.stdout) + if options.output_cc: + out_cc = open(options.output_cc, 'wb') + if options.output_h: +@@ -159,9 +162,16 @@ def main(argv): + if options.output_txt: + out_txt = open(options.output_txt, 'wb') + +- GeneratePlatformListText(out_txt, platforms) +- GeneratePlatformListHeader(out_h, platforms) +- GeneratePlatformListSource(out_cc, platforms) ++ out_txt_str = StringIO() ++ out_h_str = StringIO() ++ out_cc_str = StringIO() ++ ++ GeneratePlatformListText(out_txt_str, platforms) ++ out_txt.write(out_txt_str.getvalue().encode('utf-8')) ++ GeneratePlatformListHeader(out_h_str, platforms) ++ out_h.write(out_h_str.getvalue().encode('utf-8')) ++ GeneratePlatformListSource(out_cc_str, platforms) ++ out_cc.write(out_cc_str.getvalue().encode('utf-8')) + + if options.output_cc: + out_cc.close() +-- +2.35.1 + diff --git a/easybuild/easyconfigs/q/Qt5/Qt5-5.15.10_webengine-drop-catapult.patch b/easybuild/easyconfigs/q/Qt5/Qt5-5.15.10_webengine-drop-catapult.patch new file mode 100644 index 00000000000..db149389f03 --- /dev/null +++ b/easybuild/easyconfigs/q/Qt5/Qt5-5.15.10_webengine-drop-catapult.patch @@ -0,0 +1,32 @@ +From b60fc250d65144532cd47eac72279e93baaec2b8 Mon Sep 17 00:00:00 2001 +From: Jimi Huotari +Date: Wed, 6 Apr 2022 14:35:14 +0300 +Subject: [PATCH] Remove dependency on catapult + +--- + src/core/qtwebengine_resources.gni | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/src/core/qtwebengine_resources.gni b/src/core/qtwebengine_resources.gni +index 3bf1a5d57..29fd2603c 100644 +--- a/qtwebengine/src/core/qtwebengine_resources.gni ++++ b/qtwebengine/src/core/qtwebengine_resources.gni +@@ -27,7 +27,6 @@ repack("qtwebengine_repack_resources") { + "$root_gen_dir/components/components_resources.pak", + "$root_gen_dir/components/dev_ui_components_resources.pak", + "$root_gen_dir/content/browser/resources/media/media_internals_resources.pak", +- "$root_gen_dir/content/browser/tracing/tracing_resources.pak", + "$root_gen_dir/content/content_resources.pak", + "$root_gen_dir/content/dev_ui_content_resources.pak", + "$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak", +@@ -44,7 +43,6 @@ repack("qtwebengine_repack_resources") { + "//components/resources:components_resources_grit", + "//components/resources:dev_ui_components_resources_grit", + "//content/browser/resources/media:media_internals_resources", +- "//content/browser/tracing:resources", + "//content:content_resources_grit", + "//content:dev_ui_content_resources_grit", + "//mojo/public/js:resources", +-- +2.35.1 + diff --git a/easybuild/easyconfigs/q/Qt5/Qt5-5.15.10_webengine-python3.11.patch b/easybuild/easyconfigs/q/Qt5/Qt5-5.15.10_webengine-python3.11.patch new file mode 100644 index 00000000000..454dcfa3d89 --- /dev/null +++ b/easybuild/easyconfigs/q/Qt5/Qt5-5.15.10_webengine-python3.11.patch @@ -0,0 +1,46 @@ +Description: fix build with Python 3.11 +Author: Dmitry Shachnev +Last-Update: 2023-01-08 + +--- a/qtwebengine/src/3rdparty/chromium/tools/grit/grit/util.py ++++ b/qtwebengine/src/3rdparty/chromium/tools/grit/grit/util.py +@@ -211,7 +211,7 @@ def ReadFile(filename, encoding): + mode = 'rb' + encoding = None + else: +- mode = 'rU' ++ mode = 'r' + + with io.open(abs(filename), mode, encoding=encoding) as f: + return f.read() +--- a/qtwebengine/src/3rdparty/chromium/tools/metrics/structured/model.py ++++ b/qtwebengine/src/3rdparty/chromium/tools/metrics/structured/model.py +@@ -26,7 +26,7 @@ _METRIC_TYPE = models.ObjectNodeType( + 'metric', + attributes=[ + ('name', unicode, r'^[A-Za-z0-9_.]+$'), +- ('kind', unicode, r'^(?i)(|hashed-string|int)$'), ++ ('kind', unicode, r'(?i)^(|hashed-string|int)$'), + ], + alphabetization=[ + (_OBSOLETE_TYPE.tag, lambda _: 1), +--- a/qtwebengine/src/3rdparty/chromium/tools/metrics/ukm/ukm_model.py ++++ b/qtwebengine/src/3rdparty/chromium/tools/metrics/ukm/ukm_model.py +@@ -42,7 +42,7 @@ _INDEX_TYPE = models.ObjectNodeType( + _STATISTICS_TYPE = models.ObjectNodeType( + 'statistics', + attributes=[ +- ('export', str, r'^(?i)(|true|false)$'), ++ ('export', str, r'(?i)^(|true|false)$'), + ], + children=[ + models.ChildType(_QUANTILES_TYPE.tag, _QUANTILES_TYPE, multiple=False), +@@ -94,7 +94,7 @@ _EVENT_TYPE = models.ObjectNodeType( + 'event', + attributes=[ + ('name', str, r'^[A-Za-z0-9.]+$'), +- ('singular', str, r'^(?i)(|true|false)$'), ++ ('singular', str, r'(?i)^(|true|false)$'), + ], + alphabetization=[ + (_OBSOLETE_TYPE.tag, _KEEP_ORDER), diff --git a/easybuild/easyconfigs/q/Qt5/Qt5-5.15.10_webengine-python3.patch b/easybuild/easyconfigs/q/Qt5/Qt5-5.15.10_webengine-python3.patch new file mode 100644 index 00000000000..15451cd435b --- /dev/null +++ b/easybuild/easyconfigs/q/Qt5/Qt5-5.15.10_webengine-python3.patch @@ -0,0 +1,176 @@ +From cf6eb34ea064fc273bdb3de7646894b8df1f7bc8 Mon Sep 17 00:00:00 2001 +From: Antonio Rojas +Date: Sat, 16 Oct 2021 20:17:35 +0000 +Subject: [PATCH] Build without python 2 + +--- + configure.pri | 25 ++++++------------------- + mkspecs/features/functions.prf | 6 +++--- + src/buildtools/config/support.pri | 10 +++++----- + src/buildtools/configure.json | 18 +++++++++--------- + 4 files changed, 23 insertions(+), 36 deletions(-) + +diff --git a/configure.pri b/configure.pri +index 8705ad93f..94d41e9c4 100644 +--- a/qtwebengine/configure.pri ++++ b/qtwebengine/configure.pri +@@ -7,20 +7,7 @@ QTWEBENGINE_SOURCE_TREE = $$PWD + equals(QMAKE_HOST.os, Windows): EXE_SUFFIX = .exe + + defineTest(isPythonVersionSupported) { +- python = $$system_quote($$system_path($$1)) +- python_version = $$system('$$python -c "import sys; print(sys.version_info[0:3])"') +- python_version ~= s/[()]//g +- python_version = $$split(python_version, ',') +- python_major_version = $$first(python_version) +- greaterThan(python_major_version, 2) { +- qtLog("Python version 3 is not supported by Chromium.") +- return(false) +- } +- python_minor_version = $$member(python_version, 1) +- python_patch_version = $$member(python_version, 2) +- greaterThan(python_major_version, 1): greaterThan(python_minor_version, 6): greaterThan(python_patch_version, 4): return(true) +- qtLog("Unsupported python version: $${python_major_version}.$${python_minor_version}.$${python_patch_version}.") +- return(false) ++ return(true) + } + + defineTest(qtConfTest_detectJumboBuild) { +@@ -52,10 +39,10 @@ defineTest(qtConfReport_jumboBuild) { + qtConfReportPadded($${1}, $$mergeLimit) + } + +-defineTest(qtConfTest_detectPython2) { +- python = $$qtConfFindInPath("python2$$EXE_SUFFIX") ++defineTest(qtConfTest_detectPython) { ++ python = $$qtConfFindInPath("python$$EXE_SUFFIX") + isEmpty(python) { +- qtLog("'python2$$EXE_SUFFIX' not found in PATH. Checking for 'python$$EXE_SUFFIX'.") ++ qtLog("'python$$EXE_SUFFIX' not found in PATH. Checking for 'python$$EXE_SUFFIX'.") + python = $$qtConfFindInPath("python$$EXE_SUFFIX") + } + isEmpty(python) { +@@ -63,11 +50,11 @@ defineTest(qtConfTest_detectPython2) { + return(false) + } + !isPythonVersionSupported($$python) { +- qtLog("A suitable Python 2 executable could not be located.") ++ qtLog("A suitable Python executable could not be located.") + return(false) + } + +- # Make tests.python2.location available in configure.json. ++ # Make tests.python.location available in configure.json. + $${1}.location = $$clean_path($$python) + export($${1}.location) + $${1}.cache += location +diff --git a/mkspecs/features/functions.prf b/mkspecs/features/functions.prf +index 2750d7071..9fda13d08 100644 +--- a/qtwebengine/mkspecs/features/functions.prf ++++ b/qtwebengine/mkspecs/features/functions.prf +@@ -39,11 +39,11 @@ defineReplace(which) { + + # Returns the unquoted path to the python executable. + defineReplace(pythonPath) { +- isEmpty(QMAKE_PYTHON2) { ++ isEmpty(QMAKE_PYTHON) { + # Fallback for building QtWebEngine with Qt < 5.8 +- QMAKE_PYTHON2 = python ++ QMAKE_PYTHON = python + } +- return($$QMAKE_PYTHON2) ++ return($$QMAKE_PYTHON) + } + + # Returns the python executable for use with shell / make targets. +diff --git a/src/buildtools/config/support.pri b/src/buildtools/config/support.pri +index 7a07b1b5b..497a9e0e2 100644 +--- a/qtwebengine/src/buildtools/config/support.pri ++++ b/qtwebengine/src/buildtools/config/support.pri +@@ -21,7 +21,7 @@ defineReplace(qtwebengine_checkWebEngineCoreError) { + !qtwebengine_checkForGperf(QtWebEngine):return(false) + !qtwebengine_checkForBison(QtWebEngine):return(false) + !qtwebengine_checkForFlex(QtWebEngine):return(false) +- !qtwebengine_checkForPython2(QtWebEngine):return(false) ++ !qtwebengine_checkForPython(QtWebEngine):return(false) + !qtwebengine_checkForNodejs(QtWebEngine):return(false) + !qtwebengine_checkForSanitizer(QtWebEngine):return(false) + linux:!qtwebengine_checkForPkgCfg(QtWebEngine):return(false) +@@ -51,7 +51,7 @@ defineReplace(qtwebengine_checkPdfError) { + !qtwebengine_checkForGperf(QtPdf):return(false) + !qtwebengine_checkForBison(QtPdf):return(false) + !qtwebengine_checkForFlex(QtPdf):return(false) +- !qtwebengine_checkForPython2(QtPdf):return(false) ++ !qtwebengine_checkForPython(QtPdf):return(false) + !qtwebengine_checkForSanitizer(QtPdf):return(false) + linux:!qtwebengine_checkForPkgCfg(QtPdf):return(false) + linux:!qtwebengine_checkForHostPkgCfg(QtPdf):return(false) +@@ -147,10 +147,10 @@ defineTest(qtwebengine_checkForFlex) { + return(true) + } + +-defineTest(qtwebengine_checkForPython2) { ++defineTest(qtwebengine_checkForPython) { + module = $$1 +- !qtConfig(webengine-python2) { +- qtwebengine_skipBuild("Python version 2 (2.7.5 or later) is required to build $${module}.") ++ !qtConfig(webengine-python) { ++ qtwebengine_skipBuild("Python is required to build $${module}.") + return(false) + } + return(true) +diff --git a/src/buildtools/configure.json b/src/buildtools/configure.json +index 88d1790c1..032aa665f 100644 +--- a/qtwebengine/src/buildtools/configure.json ++++ b/qtwebengine/src/buildtools/configure.json +@@ -295,9 +295,9 @@ + "label": "system ninja", + "type": "detectNinja" + }, +- "webengine-python2": { +- "label": "python2", +- "type": "detectPython2", ++ "webengine-python": { ++ "label": "python", ++ "type": "detectPython", + "log": "location" + }, + "webengine-winversion": { +@@ -374,7 +374,7 @@ + && features.webengine-gperf + && features.webengine-bison + && features.webengine-flex +- && features.webengine-python2 ++ && features.webengine-python + && features.webengine-nodejs + && (!config.sanitizer || features.webengine-sanitizer) + && (!config.linux || features.pkg-config) +@@ -400,7 +400,7 @@ + && features.webengine-gperf + && features.webengine-bison + && features.webengine-flex +- && features.webengine-python2 ++ && features.webengine-python + && (!config.sanitizer || features.webengine-sanitizer) + && (!config.linux || features.pkg-config) + && (!config.linux || features.webengine-host-pkg-config) +@@ -423,12 +423,12 @@ + "autoDetect": "features.private_tests", + "output": [ "privateFeature" ] + }, +- "webengine-python2": { +- "label": "python2", +- "condition": "tests.webengine-python2", ++ "webengine-python": { ++ "label": "python", ++ "condition": "tests.webengine-python", + "output": [ + "privateFeature", +- { "type": "varAssign", "name": "QMAKE_PYTHON2", "value": "tests.webengine-python2.location" } ++ { "type": "varAssign", "name": "QMAKE_PYTHON", "value": "tests.webengine-python.location" } + ] + }, + "webengine-gperf": { +-- +2.35.1 + diff --git a/easybuild/easyconfigs/q/Qt6/Qt6-6.5.2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/q/Qt6/Qt6-6.5.2-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..ebbfe66572d --- /dev/null +++ b/easybuild/easyconfigs/q/Qt6/Qt6-6.5.2-GCCcore-12.3.0.eb @@ -0,0 +1,89 @@ +easyblock = 'CMakeNinja' + +name = 'Qt6' +version = '6.5.2' + +homepage = 'https://qt.io/' +description = "Qt is a comprehensive cross-platform C++ application framework." + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} +# disabling use of -ftree-vectorize is required to avoid compilation failures on some systems (e.g. Intel Skylake X) +toolchainopts = {'vectorize': False} + +source_urls = [ + 'https://download.qt.io/official_releases/qt/%(version_major_minor)s/%(version)s/single/', + 'https://download.qt.io/archive/qt/%(version_major_minor)s/%(version)s/single/', + 'https://download.qt.io/new_archive/qt/%(version_major_minor)s/%(version)s/single/', +] +sources = ['qt-everywhere-src-%(version)s.tar.xz'] +patches = [ + 'Qt6-6.5.2_fix_OF-Gentoo.patch', +] +checksums = [ + {'qt-everywhere-src-6.5.2.tar.xz': 'cde57be663d0f875759797298bdc37a936d517c39f2013e4e6ece5e12edeed12'}, + {'Qt6-6.5.2_fix_OF-Gentoo.patch': '62c4b1abdeac69f40fd48f5e46f470f9f9c328fdb02ab8aceb9aa1885ad8c601'}, +] + +builddependencies = [ + ('binutils', '2.40'), + ('pkgconf', '1.9.5'), + ('CMake', '3.26.3'), + ('Ninja', '1.11.1'), + # deps for QtWebEngine + ('Bison', '3.8.2'), + ('flex', '2.6.4'), + ('gperf', '3.1'), + ('re2c', '3.1'), +] + +dependencies = [ + ('double-conversion', '3.3.0'), + ('GLib', '2.77.1'), + ('PCRE2', '10.42'), + ('libpng', '1.6.39'), + ('LibTIFF', '4.5.0'), + ('libwebp', '1.3.1'), + ('JasPer', '4.0.0'), + ('HarfBuzz', '5.3.1'), + ('SQLite', '3.42.0'), + ('graphite2', '1.3.14'), + ('assimp', '5.2.5'), # for Qt 3D + ('FFmpeg', '6.0'), + ('X11', '20230603'), + ('fontconfig', '2.14.2'), + ('zlib', '1.2.13'), + ('Python', '3.11.3'), + ('Python-bundle-PyPI', '2023.06'), # WebEngine + ('freetype', '2.13.0'), # WebEngine + ('DBus', '1.15.4'), + ('libevent', '2.1.12'), # WebEngine + ('libGLU', '9.0.3'), + ('libjpeg-turbo', '2.1.5.1'), # WebEngine + ('NSS', '3.89.1'), # WebEngine, required + ('snappy', '1.1.10'), # WebEngine + ('OpenSSL', '1.1', '', SYSTEM), + ('ICU', '73.2'), # WebEngine, optional + ('nodejs', '18.17.1'), # WebEngine, required + # ('gRPC', '1.52.2'), # WebEngine needs older Abseil/gRPC/protobuf +] + +preconfigopts = 'sed -i "s/MultiMedia/Multimedia/g" ../qt-everywhere-src-%(version)s/qtcharts/CMakeLists.txt &&' # Typo +preconfigopts += 'sed -i "23i set(Python3_ROOT_DIR \\$ENV{EBROOTPYTHON})" ' \ + '../qt-everywhere-src-6.5.2/qtwebengine/src/gn/CMakeLists.txt &&' + +configopts = '-Wno-dev ' +configopts += '-DFEATURE_qtpdf_build=OFF ' # Requires CUPS +configopts += '-DQT_AVOID_CMAKE_ARCHIVING_API=ON ' +configopts += '-DPython3_ROOT_DIR=$EBROOTPYTHON ' +configopts += '-DBUILD_qtwayland=OFF ' # Does not work on CentOS 7 +# Removed from Qt6.0.0 but may be added back in the future +# configopts += '-DBUILD_qtgamepad=OFF ' # Does not work on CentOS 7 + +sanity_check_paths = { + 'files': ['bin/qmake6', 'lib/libQt6Core.%s' % SHLIB_EXT, 'lib/libQt6WebEngineCore.%s' % SHLIB_EXT], + 'dirs': ['include/QtCore', 'include/QtWebEngineCore'], +} + +sanity_check_commands = ['qmake6 --help'] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/q/Qt6/Qt6-6.5.2_fix_OF-Gentoo.patch b/easybuild/easyconfigs/q/Qt6/Qt6-6.5.2_fix_OF-Gentoo.patch new file mode 100644 index 00000000000..4a47501ebcf --- /dev/null +++ b/easybuild/easyconfigs/q/Qt6/Qt6-6.5.2_fix_OF-Gentoo.patch @@ -0,0 +1,48 @@ +############################################ +# Update from Qt5-5.14.1_fix-OF-Gentoo.patch +# 1. qt3d/..../unzip/ioapi.h and qtquick3d/..../unzip/ioapi.h do not use OF macro anymore +# 2. qtquick3d/..../minizip/ioapi.h is moved to qt3d/..../minizip/ioapi.h +############################################ +fix compilation on top of zlib provided by Gentoo, +where OF macro has been renamed to _Z_OF +see https://bugreports.qt.io/browse/QTBUG-68467 and https://bugs.gentoo.org/383179 +author: Kenneth Hoste (HPC-UGent) +diff --git a/qt3d/src/3rdparty/assimp/src/contrib/zlib/contrib/minizip/ioapi.h b/qt3d/src/3rdparty/assimp/src/contrib/zlib/contrib/minizip/ioapi.h +index 8dcbdb06e3..e9cc96914e 100644 +--- a/qt3d/src/3rdparty/assimp/src/contrib/zlib/contrib/minizip/ioapi.h ++++ b/qt3d/src/3rdparty/assimp/src/contrib/zlib/contrib/minizip/ioapi.h +@@ -130,6 +130,14 @@ extern "C" { + #endif + + ++// if OF macro is not defined but _Z_OF is, define OF as _Z_OF ++// required when building with zlib provided by Gentoo ++// see https://bugreports.qt.io/browse/QTBUG-68467 and https://bugs.gentoo.org/383179 ++#ifndef OF ++ #ifdef _Z_OF ++ #define OF _Z_OF ++ #endif ++#endif + + + typedef voidpf (ZCALLBACK *open_file_func) OF((voidpf opaque, const char* filename, int mode)); +diff --git a/qtwebengine/src/3rdparty/chromium/third_party/zlib/contrib/minizip/ioapi.h b/qtwebengine/src/3rdparty/chromium/third_party/zlib/contrib/minizip/ioapi.h +index c1b7a54847..c5546a26b9 100644 +--- a/qtwebengine/src/3rdparty/chromium/third_party/zlib/contrib/minizip/ioapi.h ++++ b/qtwebengine/src/3rdparty/chromium/third_party/zlib/contrib/minizip/ioapi.h +@@ -130,6 +130,14 @@ extern "C" { + #endif + + ++// if OF macro is not defined but _Z_OF is, define OF as _Z_OF ++// required when building with zlib provided by Gentoo ++// see https://bugreports.qt.io/browse/QTBUG-68467 and https://bugs.gentoo.org/383179 ++#ifndef OF ++ #ifdef _Z_OF ++ #define OF _Z_OF ++ #endif ++#endif + + + typedef voidpf (ZCALLBACK *open_file_func) OF((voidpf opaque, const char* filename, int mode)); + diff --git a/easybuild/easyconfigs/q/QuantumESPRESSO/QuantumESPRESSO-7.2-foss-2023a.eb b/easybuild/easyconfigs/q/QuantumESPRESSO/QuantumESPRESSO-7.2-foss-2023a.eb new file mode 100644 index 00000000000..4a79d7df97a --- /dev/null +++ b/easybuild/easyconfigs/q/QuantumESPRESSO/QuantumESPRESSO-7.2-foss-2023a.eb @@ -0,0 +1,53 @@ +name = 'QuantumESPRESSO' +version = '7.2' + +homepage = 'https://www.quantum-espresso.org' +description = """Quantum ESPRESSO is an integrated suite of computer codes +for electronic-structure calculations and materials modeling at the nanoscale. +It is based on density-functional theory, plane waves, and pseudopotentials +(both norm-conserving and ultrasoft). +""" + +toolchain = {'name': 'foss', 'version': '2023a'} +toolchainopts = {'usempi': True, 'openmp': True} + +sources = [ + { + 'filename': 'q-e-qe-%(version)s.tar.gz', + 'extract_cmd': 'mkdir -p %(builddir)s/qe-%(version)s && tar xzvf %s --strip-components=1 -C $_', + 'source_urls': ['https://gitlab.com/QEF/q-e/-/archive/qe-%(version)s'] + }, + { + 'filename': 'qe-gipaw-%(version)s.tar.gz', + 'source_urls': ['https://github.com/dceresoli/qe-gipaw/releases/download/%(version)s/']}, + { + 'filename': 'wannier90-3.1.0.tar.gz', + 'download_filename': 'v3.1.0.tar.gz', + 'source_urls': ['https://github.com/wannier-developers/wannier90/archive/'] + }, +] +checksums = [ + {'q-e-qe-%(version)s.tar.gz': 'b348a4a7348b66a73545d9ca317a2645755c98d343c1cfe8def475ad030808c0'}, + {'qe-gipaw-%(version)s.tar.gz': '3375e6e8242b9d0a1ebf9ff9ac1111f4cc5c95d3f654bc2534c396b3b4e59a2f'}, + {'wannier90-3.1.0.tar.gz': '40651a9832eb93dec20a8360dd535262c261c34e13c41b6755fa6915c936b254'}, +] + +builddependencies = [ + ('M4', '1.4.19'), +] +dependencies = [ + ('HDF5', '1.14.0'), + ('ELPA', '2023.05.001'), + ('libxc', '6.2.2'), +] + +# The third party packages should be installed separately and added as +# dependencies. The exception is w90, which is force built, and gipaw +# which depends on qe source +buildopts = "all gwl xspectra couple epw gipaw w90" + +# parallel build tends to fail +parallel = 1 + + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/q/QuickTree/QuickTree-2.5-GCC-12.2.0.eb b/easybuild/easyconfigs/q/QuickTree/QuickTree-2.5-GCC-12.2.0.eb new file mode 100644 index 00000000000..ac38c02ea44 --- /dev/null +++ b/easybuild/easyconfigs/q/QuickTree/QuickTree-2.5-GCC-12.2.0.eb @@ -0,0 +1,31 @@ +easyblock = 'MakeCp' + +name = 'QuickTree' +version = '2.5' + +description = """QuickTree is an efficient implementation of the Neighbor-Joining algorithm (PMID: 3447015), + capable of reconstructing phylogenies from huge alignments in time less than the age of the universe. + """ + +homepage = 'https://github.com/khowe/quicktree' + +toolchain = {'name': 'GCC', 'version': '12.2.0'} + +source_urls = ['https://github.com/khowe/quicktree/archive/refs/tags'] +sources = ['v%(version)s.tar.gz'] +checksums = ['731aa845ce3f1f0645bd0df2b54df75f78fce065d6a3ddc47fedf4bdcb11c248'] + +files_to_copy = [ + (["quicktree"], "bin/"), + 'README.md', + 'LICENSE', +] + +sanity_check_paths = { + 'files': ['bin/quicktree', 'README.md'], + 'dirs': [] +} + +sanity_check_commands = ["quicktree -h"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.16-foss-2022b-R-4.2.2.eb b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.16-foss-2022b-R-4.2.2.eb index 89dcfcf2697..ef1d97ba4c9 100644 --- a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.16-foss-2022b-R-4.2.2.eb +++ b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.16-foss-2022b-R-4.2.2.eb @@ -1277,6 +1277,36 @@ exts_list = [ ('RnBeads.rn5', '1.30.0', { 'checksums': ['e92ab6c298042f16cf0dbcf72fda8ab23877324598a9750cf98281ed0a453191'], }), + ('log4r', '0.4.3', { + 'checksums': ['dfe3d49d35a8d8f3ad63f156d18e860540a01bd0af0e343cbab3e31a2cf5904c'], + }), + ('MSstatsConvert', '1.8.3', { + 'checksums': ['3deafb978100695037f97bcb458cfd5c76034440435d104a096459190ddd0891'], + }), + ('MSstats', '4.6.5', { + 'checksums': ['9a573976fb0fcb4b9d3e6cce831770305205ff8c46e30af4f4e4ba12ccc9fd89'], + }), + ('MSstatsTMT', '2.6.1', { + 'checksums': ['f1bf45345b4c6e14b0977d50016dc5925ee154d63a4765e218d1453d9e6fbbc0'], + }), + ('MSstatsPTM', '2.0.3', { + 'checksums': ['fe0106c66311f47f4e391528939b4aa6a690e2049b3638c4f5055fdc7b7210d8'], + }), + ('factoextra', '1.0.7', { + 'checksums': ['624ff01c74933352aca55966f8a052b1ccc878f52c2c307e47f88e0665db94aa'], + }), + ('MSstatsLiP', '1.4.1', { + 'checksums': ['ccc5b10a7310c5197a21b88cbd365bbba34d799a948d7e120114dfd047064142'], + }), + ('babelgene', '22.9', { + 'checksums': ['ce6601dcb78352516d3b0355042c52a20e154b39d3b27b93ff52150a59c885e2'], + }), + ('msigdbr', '7.5.1', { + 'checksums': ['dc30487bdf3594425ae9faec1ca0d7d0cd7278f4f177689133f92880e74acaca'], + }), + ('escape', '1.8.0', { + 'checksums': ['4d80d2798f07885ae035dbb9d994c707ed3a94fbe6cef5f35da51a50cc4168f1'], + }), ] modextrapaths = {'R_LIBS_SITE': ''} diff --git a/easybuild/easyconfigs/r/R/R-4.2.2-foss-2022b.eb b/easybuild/easyconfigs/r/R/R-4.2.2-foss-2022b.eb index 598a3d2bb3e..5c533ecb998 100644 --- a/easybuild/easyconfigs/r/R/R-4.2.2-foss-2022b.eb +++ b/easybuild/easyconfigs/r/R/R-4.2.2-foss-2022b.eb @@ -3666,6 +3666,9 @@ exts_list = [ ('flextable', '0.9.2', { 'checksums': ['bccd53919ae58f1d26c4a8ee42da1f5e0b7333f8b4ee295b380ed256069f923d'], }), + ('ridge', '3.3', { + 'checksums': ['5c2daecf6f97aa099ef5fa54f8448518c4f2ed6e44dd29fc60621a70721c60f5'], + }), ] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/r/RAxML-NG/RAxML-NG-1.2.0-GCC-12.3.0.eb b/easybuild/easyconfigs/r/RAxML-NG/RAxML-NG-1.2.0-GCC-12.3.0.eb new file mode 100644 index 00000000000..c4d287c525b --- /dev/null +++ b/easybuild/easyconfigs/r/RAxML-NG/RAxML-NG-1.2.0-GCC-12.3.0.eb @@ -0,0 +1,43 @@ +# EasyBuild easyconfig +# +# Contributed from Fred Hutchinson Cancer Research Center, Seattle WA, US +# John Dey jfdey@fredhutch.org +# +easyblock = 'CMakeMake' + +name = 'RAxML-NG' +version = '1.2.0' + +homepage = 'https://github.com/amkozlov/raxml-ng' +description = """RAxML-NG is a phylogenetic tree inference tool which uses maximum-likelihood (ML) + optimality criterion. Its search heuristic is based on iteratively performing a series of Subtree + Pruning and Regrafting (SPR) moves, which allows to quickly navigate to the best-known ML tree.""" + +toolchain = {'name': 'GCC', 'version': '12.3.0'} + +sources = [{ + 'filename': '%(name)s-%(version)s.tar.gz', + 'git_config': { + 'url': 'https://github.com/amkozlov', + 'repo_name': '%(namelower)s', + 'tag': '%(version)s', + 'recursive': True, + 'keep_git_dir': True, + } +}] +checksums = [None] + +builddependencies = [ + ('CMake', '3.26.3'), + ('Bison', '3.8.2'), + ('flex', '2.6.4'), +] + +sanity_check_paths = { + 'files': ['bin/raxml-ng'], + 'dirs': [], +} + +sanity_check_commands = ["raxml-ng --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/r/RCall/RCall-0.13.17-disable_gpu_test.patch b/easybuild/easyconfigs/r/RCall/RCall-0.13.17-disable_gpu_test.patch new file mode 100644 index 00000000000..a86127ba3ce --- /dev/null +++ b/easybuild/easyconfigs/r/RCall/RCall-0.13.17-disable_gpu_test.patch @@ -0,0 +1,34 @@ +Removes a native test in RCall that uses GPU and therefore fails to install on machines without GPU. +Author: Orient Kružík (INUITS) +diff -ruN RCall_orig/test/basic.jl RCall/test/basic.jl +--- RCall_orig/test/basic.jl 2023-08-30 03:06:12.000000000 +0200 ++++ RCall/test/basic.jl 2023-10-11 18:54:35.664758000 +0200 +@@ -96,17 +96,17 @@ + @test_throws Exception t1[:x] = "a" + + # graphics +-RCall.rgui_init() +-let f = tempname() +- rcall(:png,f) +- rcall(:plot,1:10) +- rcall(Symbol("dev.off")) +- @test isfile(f) +- rm(f) +- @test !RCall.rgui_start(true) +- @test_throws ErrorException RCall.rgui_start() +- @test RCall.rgui_stop() +-end ++# RCall.rgui_init() ++# let f = tempname() ++# rcall(:png,f) ++# rcall(:plot,1:10) ++# rcall(Symbol("dev.off")) ++# @test isfile(f) ++# rm(f) ++# @test !RCall.rgui_start(true) ++# @test_throws ErrorException RCall.rgui_start() ++# @test RCall.rgui_stop() ++# end + + # S4 rprint + @test occursin("An object of class", diff --git a/easybuild/easyconfigs/r/RCall/RCall-0.13.17-foss-2022a-R-4.2.1-Julia-1.9.2.eb b/easybuild/easyconfigs/r/RCall/RCall-0.13.17-foss-2022a-R-4.2.1-Julia-1.9.2.eb new file mode 100644 index 00000000000..a7789bd8358 --- /dev/null +++ b/easybuild/easyconfigs/r/RCall/RCall-0.13.17-foss-2022a-R-4.2.1-Julia-1.9.2.eb @@ -0,0 +1,240 @@ +easyblock = 'JuliaBundle' + +name = 'RCall' +version = '0.13.17' +local_juliaver = '1.9.2' +versionsuffix = '-R-%%(rver)s-Julia-%s' % local_juliaver + +homepage = 'https://github.com/JuliaInterop/RCall.jl' +description = """This package facilitates communication between R and Julia and allows the + user to call R packages from within Julia, providing the best of both worlds.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('R', '4.2.1'), + ('Julia', local_juliaver, '-linux-%s' % ARCH, SYSTEM), +] + +preinstallopts = "export LD_LIBRARY_PATH=$EBROOTJULIA/lib/julia:$LD_LIBRARY_PATH && " + +exts_default_options = { + 'source_tmpl': 'v%(version)s.tar.gz', +} + +exts_list = [ + ('Preferences', '1.4.1', { + 'source_urls': ['https://github.com/JuliaPackaging/Preferences.jl/archive/'], + 'checksums': ['2240d5df55d69b22d27cb152c4abf8bf51106cd0b5910e194b5ab0ef8f260fcf'], + }), + ('PrecompileTools', '1.2.0', { + 'source_urls': ['https://github.com/JuliaLang/PrecompileTools.jl/archive/'], + 'checksums': ['8885c92380609bf077f316d454e92c75806353dbc22873c783207fc027401f2e'], + }), + ('Parsers', '2.7.2', { + 'source_urls': ['https://github.com/JuliaData/Parsers.jl/archive/'], + 'checksums': ['e8d837cfc5cdaec0eb692eb58c00fb1d476327a7dc79398d7ce711cf8e8e3fa1'], + }), + ('StructTypes', '1.10.0', { + 'source_urls': ['https://github.com/JuliaData/StructTypes.jl/archive/'], + 'checksums': ['f2d7edc4f21651f76ff21251bfe8ec417c5688ed56880654bfb1482f580ab072'], + }), + ('JSON', '0.21.4', { + 'source_urls': ['https://github.com/JuliaIO/JSON.jl/archive/'], + 'checksums': ['c6b620ad4150ec5a154367f50c9579af800e3a89a6d8f9cb5dd30215a5d3f552'], + }), + ('DataAPI', '1.15.0', { + 'source_urls': ['https://github.com/JuliaData/DataAPI.jl/archive/'], + 'checksums': ['c5d535c1a276ef6a0dc765eb720fd66321aa1e6fd944f78462276f1070c7bfa6'], + }), + ('Missings', '1.1.0', { + 'source_urls': ['https://github.com/JuliaData/Missings.jl/archive/'], + 'checksums': ['149c799f261e4f1645124c8f6957ccec16a5c59e03bea9fcc6b66c3038d8f757'], + }), + ('CategoricalArrays', '0.9.7', { + 'source_urls': ['https://github.com/JuliaData/CategoricalArrays.jl/archive/'], + 'checksums': ['57ad0322d613ba88dae8f05d41fcd30ffe381205d5f8dbbdaf5eafcd762a3f10'], + }), + ('WinReg', '1.0.0', { + 'source_urls': ['https://github.com/simonbyrne/WinReg.jl/archive/'], + 'checksums': ['79f5ac2c678501cc6c6a3b443c9bbbeb701efe335556c235e48da9002cdea97d'], + }), + ('ShiftedArrays', '2.0.0', { + 'source_urls': ['https://github.com/JuliaArrays/ShiftedArrays.jl/archive/'], + 'checksums': ['909f9b8bdef0fedf2202645e4a3147d4365dad8acab42853b0e0d804d5d0df38'], + }), + ('IrrationalConstants', '0.2.2', { + 'source_urls': ['https://github.com/JuliaMath/IrrationalConstants.jl/archive/'], + 'checksums': ['bece9a3643264a76bd625c3f9cf3b46bba0fd093f06e899e8d6167cf45d7e833'], + }), + ('DocStringExtensions', '0.9.3', { + 'source_urls': ['https://github.com/JuliaDocs/DocStringExtensions.jl/archive/'], + 'checksums': ['9c712789b1cbd367bced9fafb995dee026f931ac68b55e476d1c666210564ae6'], + }), + ('LogExpFunctions', '0.3.26', { + 'source_urls': ['https://github.com/JuliaStats/LogExpFunctions.jl/archive/'], + 'checksums': ['c78ff1b55a56ee6e5d4507d3ec762de7975e892350a204f8267fd0760d5f0a2f'], + }), + ('StatsAPI', '1.7.0', { + 'source_urls': ['https://github.com/JuliaStats/StatsAPI.jl/archive/'], + 'checksums': ['40a339e45e34266f60c9e806c8f5d3497a92a24c708024ed247a5bb3b7df1b99'], + }), + ('Compat', '4.10.0', { + 'source_urls': ['https://github.com/JuliaLang/Compat.jl/archive/'], + 'checksums': ['fff17f6648c8d26e5ad8058fbd78ae5583317ee78367062307b1205249c646b2'], + }), + ('OrderedCollections', '1.5.0', { + 'source_urls': ['https://github.com/JuliaCollections/OrderedCollections.jl/archive/'], + 'checksums': ['52489d9a431aa7087d02962112ea67d1be8ac17da1b7906a717d70588448975f'], + }), + ('DataStructures', '0.18.15', { + 'source_urls': ['https://github.com/JuliaCollections/DataStructures.jl/archive/'], + 'checksums': ['c37bf28d0105c2cba907d1301868e8701c862f180e3388229e42413fbbcc116c'], + }), + ('SortingAlgorithms', '1.1.0', { + 'source_urls': ['https://github.com/JuliaCollections/SortingAlgorithms.jl/archive/'], + 'checksums': ['bf9c1c1946c8eb058f9db66d59735cbf449407ab2dd301ccc561193057722cf3'], + }), + ('StatsBase', '0.34.0', { + 'source_urls': ['https://github.com/JuliaStats/StatsBase.jl/archive/'], + 'checksums': ['d6c12db91fadb484391529df5dabe06457c9aea0f27767958a5502f1d835fc8c'], + }), + ('Reexport', '1.2.2', { + 'source_urls': ['https://github.com/simonster/Reexport.jl/archive/'], + 'checksums': ['2566f7776aae9697cbf15765fc32187f46dd51200abc953a0266863ad67132b3'], + }), + ('JLLWrappers', '1.5.0', { + 'source_urls': ['https://github.com/JuliaPackaging/JLLWrappers.jl/archive/'], + 'checksums': ['6e83b81afd0c57636e80bcf52ad51f6ba43d98643cac999727b958d9ab3d4a01'], + }), + ('OpenSpecFun_jll', '0.5.5+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/OpenSpecFun_jll.jl/archive/'], + 'sources': ['OpenSpecFun-v%(version)s.tar.gz'], + 'checksums': ['6d1df617dd0a80fc0de5bc41a092e51f72782dbfd296c64e151707733cb57b6f'], + }), + ('SpecialFunctions', '2.3.1', { + 'source_urls': ['https://github.com/JuliaMath/SpecialFunctions.jl/archive/'], + 'checksums': ['c3197bfd8d2d90287a613c72b46ed04da69c6cf3870bae5ddbf9f4965f1f0823'], + }), + ('Calculus', '0.5.1', { + 'source_urls': ['https://github.com/JuliaMath/Calculus.jl/archive/'], + 'checksums': ['589a2b9ebdc9ccae98e2bb31b073f978e94d8e2125e14fd74aa1b3aa5746fe9a'], + }), + ('NaNMath', '1.0.2', { + 'source_urls': ['https://github.com/JuliaMath/NaNMath.jl/archive/'], + 'checksums': ['871f310dd1ad32f41e956f01d3149279e6b352fe459e40a334e9c076847fedd5'], + }), + ('DualNumbers', '0.6.8', { + 'source_urls': ['https://github.com/JuliaDiff/DualNumbers.jl/archive/'], + 'checksums': ['5d27ff5a2b0465377d6d3bc7ea9165ff31373e2909dcf786b0593fc8d6ddd31a'], + }), + ('HypergeometricFunctions', '0.3.23', { + 'source_urls': ['https://github.com/JuliaMath/HypergeometricFunctions.jl/archive/'], + 'checksums': ['54019965d08fa0097eaa418701ef3e271931aa9e76ae3b0d009d13a96c329b64'], + }), + ('Rmath_jll', '0.4.0+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/Rmath_jll.jl/archive/'], + 'sources': ['Rmath-v%(version)s.tar.gz'], + 'checksums': ['8cfe0bf37caa1297b3ea5d97bc29fae89bc41a25a723ef692f37d709f4e8c191'], + }), + ('Rmath', '0.7.1', { + 'source_urls': ['https://github.com/JuliaStats/Rmath.jl/archive/'], + 'checksums': ['4661107aca0c327849ec2635d282484d077518134ba69d741f2cb45efddd4b40'], + }), + ('StatsFuns', '1.3.0', { + 'source_urls': ['https://github.com/JuliaStats/StatsFuns.jl/archive/'], + 'checksums': ['0b1a8707b02cfd175c3d1e5b411625b380ffb4f280f05d177167515dbad3e007'], + }), + ('IteratorInterfaceExtensions', '1.0.0', { + 'source_urls': ['https://github.com/queryverse/IteratorInterfaceExtensions.jl/archive/'], + 'checksums': ['c43dc43fc29c0c7aa738793c5a847ce29491c5fca1a0f0e434fff1bb1c5c7994'], + }), + ('TableTraits', '1.0.1', { + 'source_urls': ['https://github.com/queryverse/TableTraits.jl/archive/'], + 'checksums': ['a69811f66cd1b7a6d91a0da30bf8a3ab796138615c4ada2d0f4ec044313b32e2'], + }), + ('DataValueInterfaces', '1.0.0', { + 'source_urls': ['https://github.com/queryverse/DataValueInterfaces.jl/archive/'], + 'checksums': ['7f70be7cf1e49f7ce45bca8452193d08c2e75378f6b473205395c01010929825'], + }), + ('Tables', '1.11.0', { + 'source_urls': ['https://github.com/JuliaData/Tables.jl/archive/'], + 'checksums': ['663cfcd724a0388231f181c8be714fa53415dbe7c044cc2526721d6f3cec73b3'], + }), + ('StatsModels', '0.7.3', { + 'source_urls': ['https://github.com/JuliaStats/StatsModels.jl/archive/'], + 'checksums': ['6d9d14ab9dc25a74003e381dad48d74cc7e8547dbef875ef6dc9b4d672b0fc3d'], + }), + ('VersionParsing', '1.3.0', { + 'source_urls': ['https://github.com/JuliaInterop/VersionParsing.jl/archive/'], + 'checksums': ['f90fe419e1a40ef0eccfaaed1d1b7792d9115a059a82d0c23e3c04c944d0f8ca'], + }), + ('Conda', '1.9.1', { + 'source_urls': ['https://github.com/JuliaPy/Conda.jl/archive/'], + 'checksums': ['2a5e7074a36f885ee6020a077f55ba4d73963fdfcfe29d2567853dd9245f93de'], + }), + ('StringManipulation', '0.3.4', { + 'source_urls': ['https://github.com/ronisbr/StringManipulation.jl/archive/'], + 'checksums': ['5b2a606e8136a9b335ef4d62199a252b73b3ded614d519227929769542586cc0'], + }), + ('Crayons', '4.1.1', { + 'source_urls': ['https://github.com/KristofferC/Crayons.jl/archive/'], + 'checksums': ['ea708df14bd15293cb311978c9cd6b232f39d10f1d06c9e6bbecde7d4a0aa81a'], + }), + ('LaTeXStrings', '1.3.0', { + 'source_urls': ['https://github.com/JuliaStrings/LaTeXStrings.jl/archive/'], + 'checksums': ['9754cee3991d3a92827112b60064b381bec62e383634984dc0cad1fbc3301bda'], + }), + ('PrettyTables', '2.2.7', { + 'source_urls': ['https://github.com/ronisbr/PrettyTables.jl/archive/'], + 'checksums': ['6f38d8530c8da33e77bd6085b40c8daa2abf697a2bcbfdeeaa6b9f5a84eff72b'], + }), + ('PooledArrays', '1.4.3', { + 'source_urls': ['https://github.com/JuliaData/PooledArrays.jl/archive/'], + 'checksums': ['5500196c2d17233a35abb4c28a36e55d3ebba0940b1f8356ae5463f7e4c744da'], + }), + ('InvertedIndices', '1.3.0', { + 'source_urls': ['https://github.com/JuliaData/InvertedIndices.jl/archive/'], + 'checksums': ['86d6fed34f734811dc6878fdeab7e84f96963342839a2c355b25babbf1fb980a'], + }), + ('InlineStrings', '1.4.0', { + 'source_urls': ['https://github.com/JuliaStrings/InlineStrings.jl/archive/'], + 'checksums': ['700fbfaa7df0b6fead63a340d1c1f9033fc8d721a80b5bb8769eb399d3a4698d'], + }), + ('SentinelArrays', '1.4.0', { + 'source_urls': ['https://github.com/JuliaData/SentinelArrays.jl/archive/'], + 'checksums': ['816f12904041709aefb6b1fbfcaf4e21ac5e4dfb2bb3240fa68899f2023bea6e'], + }), + ('DataFrames', '1.6.1', { + 'source_urls': ['https://github.com/JuliaData/DataFrames.jl/archive/'], + 'checksums': ['2a72341a40860b45952ac7c2efee41e0f0ffb5faf7a59fbeb092dd49927d26c8'], + }), + ('Requires', '1.3.0', { + 'source_urls': ['https://github.com/JuliaPackaging/Requires.jl/archive/'], + 'checksums': ['8af4dac29839e796a651b8cb6a325b6f9c7eee5d5620b3e366b64f58325ebeb7'], + }), + (name, version, { + 'patches': ['RCall-0.13.17-disable_gpu_test.patch'], + 'source_urls': ['https://github.com/JuliaInterop/RCall.jl/archive/'], + 'checksums': [ + {'RCall-0.13.17.tar.gz': '0f706f4c0ac8739096ac2f3f032286b9a2b7419fa80443ec8f1a61817b61e51d'}, + {'RCall-0.13.17-disable_gpu_test.patch': + '2e66a68a62017f40eb7a3c00ab63482a4eed495d24fa9b5fc807baca72222d20'}, + ], + }), +] + +sanity_check_commands = ["julia -e 'using Pkg;Pkg.test(\"%(name)s\")'"] + +sanity_check_paths = { + 'files': [], + 'dirs': ['packages/%(name)s'], +} + +# When loading R and Julia, there seems to be a library collision and Julia (namely Pkg module) doesn't work properly +# This is a workaround to make Julia find the correct libraries +modluafooter = """ +prepend_path("LD_LIBRARY_PATH", os.getenv("EBROOTJULIA") .. "/lib/julia") +""" + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/r/RDFlib/RDFlib-7.0.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/r/RDFlib/RDFlib-7.0.0-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..340bf45219e --- /dev/null +++ b/easybuild/easyconfigs/r/RDFlib/RDFlib-7.0.0-GCCcore-12.3.0.eb @@ -0,0 +1,32 @@ +easyblock = 'PythonBundle' + +name = 'RDFlib' +version = '7.0.0' + +homepage = 'https://github.com/RDFLib/rdflib' +description = """RDFLib is a Python library for working with RDF, a simple yet powerful language + for representing information.""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +builddependencies = [('binutils', '2.40'), + ('poetry', '1.5.1'), + ] + +dependencies = [('Python', '3.11.3'), + ('Python-bundle-PyPI', '2023.06')] + +use_pip = True + +exts_list = [ + ('isodate', '0.6.1', { + 'checksums': ['48c5881de7e8b0a0d648cb024c8062dc84e7b840ed81e864c7614fd3c127bde9'], + }), + ('rdflib', version, { + 'checksums': ['9995eb8569428059b8c1affd26b25eac510d64f5043d9ce8c84e0d0036e995ae'], + }), +] + +sanity_pip_check = True + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/r/RDKit/RDKit-2023.03.3-foss-2021a.eb b/easybuild/easyconfigs/r/RDKit/RDKit-2023.03.3-foss-2021a.eb new file mode 100644 index 00000000000..c9222722632 --- /dev/null +++ b/easybuild/easyconfigs/r/RDKit/RDKit-2023.03.3-foss-2021a.eb @@ -0,0 +1,77 @@ +easyblock = 'CMakeMake' + +name = 'RDKit' +version = '2023.03.3' + +homepage = 'https://www.rdkit.org' +description = "RDKit is a collection of cheminformatics and machine-learning software written in C++ and Python." + +toolchain = {'name': 'foss', 'version': '2021a'} +# avoid failing tests on skylake CPUs. comment out this line when building on CPUs that don't support AVX2 +# see also: https://github.com/rdkit/rdkit/issues/1674 +toolchainopts = {'optarch': 'mavx2', 'cstd': 'c++11'} + +source_urls = ['https://github.com/rdkit/rdkit/archive/'] +sources = ['Release_%s.tar.gz' % version.replace('.', '_')] +patches = [ + 'RDKit-2021.03.4_skip-broken-test.patch', +] +checksums = [ + {'Release_2023_03_3.tar.gz': 'bdbf9a2e6988526bfeb8c56ce3cdfe2998d60ac289078e2215374288185e8c8d'}, + {'RDKit-2021.03.4_skip-broken-test.patch': '45869e01461b66e42c9305f5e8a65f696417e4777c2da60ef81d1e26e57d1b2e'}, +] + +# Dependencies varies from version to version +# https://rdkit.readthedocs.io/en/latest/Install.html#installing-prerequisites-from-source +builddependencies = [ + ('CMake', '3.20.1'), + ('Eigen', '3.3.9'), + ('pkg-config', '0.29.2'), +] +dependencies = [ + ('Python', '3.9.5'), + ('SciPy-bundle', '2021.05'), + ('SQLite', '3.35.4'), + ('matplotlib', '3.4.2'), + ('Pillow', '8.2.0'), + ('Boost.Python', '1.76.0'), + ('cairo', '1.16.0'), +] + +separate_build_dir = True + +configopts = "-DPy_ENABLE_SHARED=1 -DRDK_INSTALL_STATIC_LIBS=OFF -DRDK_INSTALL_INTREE=OFF " +configopts += "-DRDK_BUILD_INCHI_SUPPORT=ON " +configopts += "-DBoost_INCLUDE_DIR=$EBROOTBOOST/include -DBoost_LIBRARY_DIR_RELEASE=$EBROOTBOOST/lib " + +# merge source directory into build directory in order to run the tests +buildopts = '&& cp -RT %(builddir)s/%(namelower)s-*/ ./ && ' +buildopts += 'export RDBASE=$PWD && export PYTHONPATH=$PWD:$PYTHONPATH && ' + +# Specify path for libraries so that they are found during the tests when the module is built with --rpath flag. +buildopts += 'export LD_LIBRARY_PATH=%(builddir)s/easybuild_obj/lib:${LD_LIBRARY_PATH} && ' + +# 'ctest' allows to pass additional arguments opposed to 'make test' +buildopts += 'ctest --output-on-failure' + +local_libs = ['Alignment', 'Catalogs', 'ChemicalFeatures', 'ChemReactions', 'ChemTransforms', 'coordgen', 'DataStructs', + 'Depictor', 'Descriptors', 'DistGeometry', 'DistGeomHelpers', 'EigenSolvers', 'FileParsers', + 'FilterCatalog', 'Fingerprints', 'FMCS', 'ForceFieldHelpers', 'ForceField', 'FragCatalog', 'GraphMol', + 'hc', 'InfoTheory', 'maeparser', 'MMPA', 'MolAlign', 'MolCatalog', 'MolChemicalFeatures', 'MolDraw2D', + 'MolHash', 'MolInterchange', 'MolStandardize', 'MolTransforms', 'Optimizer', 'PartialCharges', 'RDBoost', + 'RDGeneral', 'RDGeometryLib', 'RDStreams', 'ReducedGraphs', 'RGroupDecomposition', 'RingDecomposerLib', + 'ScaffoldNetwork', 'ShapeHelpers', 'SimDivPickers', 'SLNParse', 'SmilesParse', 'Subgraphs', + 'SubstructLibrary', 'SubstructMatch', 'Trajectory'] + +sanity_check_paths = { + 'files': ['lib/libRDKit%s.%s' % (x, SHLIB_EXT) for x in local_libs], + 'dirs': ['include/rdkit', 'lib/python%(pyshortver)s/site-packages/rdkit'], +} + +sanity_check_commands = [ + "python -c 'import rdkit.rdBase'", +] + +modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/r/RMBlast/RMBlast-2.14.0-gompi-2021a.eb b/easybuild/easyconfigs/r/RMBlast/RMBlast-2.14.0-gompi-2021a.eb new file mode 100644 index 00000000000..0a3059df10a --- /dev/null +++ b/easybuild/easyconfigs/r/RMBlast/RMBlast-2.14.0-gompi-2021a.eb @@ -0,0 +1,63 @@ +## +# EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos , Kenneth Hoste (UGent) +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of +# the policy: https://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-94.html +## + +easyblock = 'ConfigureMake' + +name = 'RMBlast' +version = '2.14.0' + +homepage = 'https://www.repeatmasker.org/rmblast/' +description = """RMBlast is a RepeatMasker compatible version of the standard NCBI BLAST suite. The primary + difference between this distribution and the NCBI distribution is the addition of a new program 'rmblastn' + for use with RepeatMasker and RepeatModeler.""" + +toolchain = {'name': 'gompi', 'version': '2021a'} +toolchainopts = {'usempi': True} + +# RMBlast is distributed as a patch that applies on top of BLAST+ +source_urls = ['https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/%(version)s/'] +sources = ['ncbi-blast-%(version)s+-src.tar.gz'] +patches = [('https://www.repeatmasker.org/%(namelower)s/isb-%(version)s+-%(namelower)s.patch.gz', 2)] +checksums = [ + {'ncbi-blast-2.14.0+-src.tar.gz': 'bf477f1b0c3b82f0b7a7094bf003a9a83e37e3b0716c1df799060c4feab17500'}, + {'isb-2.14.0+-rmblast.patch.gz': '9de0e67467a4cffdde0c5f67e3658fb52ed313e4550f9a36a251bddb2ba33f49'}, +] + +dependencies = [ + ('zlib', '1.2.11'), + ('bzip2', '1.0.8'), + ('PCRE', '8.44'), + ('Boost.MPI', '1.76.0'), + ('GMP', '6.2.1'), + ('libpng', '1.6.37'), + ('libjpeg-turbo', '2.0.6'), + ('LMDB', '0.9.28'), +] + +# Disable auto-vectorization for the API on CPUs with AVX512 (Intel Skylake and onwards) +# Compilation fails on src/algo/blast/api/prelim_stage.cpp +local_apimake = 'src/algo/blast/api/Makefile.xblast.lib' +preconfigopts = "sed -i 's/FAST_CXXFLAGS)/FAST_CXXFLAGS) -fno-tree-vectorize/g' %s &&" % local_apimake + +configopts = "--with-64 --with-z=$EBROOTZLIB --with-bz2=$EBROOTBZIP2 " +configopts += "--with-pcre=$EBROOTPCRE --with-boost=$EBROOTBOOST " +configopts += "--with-gmp=$EBROOTGMP --with-png=$EBROOTLIBPNG " +configopts += "--with-jpeg=$EBROOTLIBJPEGMINTURBO --with-lmdb=$EBROOTLMDB" + +prebuildopts = "sed -i 's/LIBS =/LIBS = $(BLAST_THIRD_PARTY_LIBS)/' src/app/rmblastn/Makefile.rmblastn.app && " + +sanity_check_paths = { + 'files': ['bin/blastp', 'bin/blastn', 'bin/deltablast', 'bin/rmblastn'], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/r/RagTag/RagTag-2.1.0-foss-2022a.eb b/easybuild/easyconfigs/r/RagTag/RagTag-2.1.0-foss-2022a.eb new file mode 100644 index 00000000000..d6ffda0d23c --- /dev/null +++ b/easybuild/easyconfigs/r/RagTag/RagTag-2.1.0-foss-2022a.eb @@ -0,0 +1,52 @@ +easyblock = 'PythonPackage' + +name = 'RagTag' +version = '2.1.0' + +homepage = 'https://github.com/malonge/RagTag' +description = """RagTag is a collection of software tools for scaffolding and +improving modern genome assemblies. Tasks include: homology-based misassembly +correction, homology-based assembly scaffolding and patching, and scaffold +merging. RagTag also provides command line utilities for working with common +genome assembly file formats.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +source_urls = ['https://github.com/malonge/RagTag/archive/'] +sources = ['v%(version)s.tar.gz'] +patches = ['ragtag-2.0.1-scripts.patch'] +checksums = [ + {'v2.1.0.tar.gz': 'b044b5e4305219ed1d9f05ffb9e7635e2ab61a4f72ab49660feede1a502aa419'}, + {'ragtag-2.0.1-scripts.patch': '01d1623fade21fb838904334fc2afc93351e66241c612939c619714658f43687'}, +] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('Pysam', '0.19.1'), + ('networkx', '2.8.4'), + ('MUMmer', '4.0.0rc1'), + ('minimap2', '2.24'), + ('unimap', '0.1'), +] + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +sanity_check_paths = { + 'files': ['bin/ragtag.py'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + 'ragtag.py updategff --help', + # Ragtag exec()s these commands + 'nucmer --help', + 'minimap2 --help', + 'unimap --help', +] + +options = {'modulename': 'ragtag_utilities'} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/r/Raptor/Raptor-2.0.16-GCCcore-10.3.0.eb b/easybuild/easyconfigs/r/Raptor/Raptor-2.0.16-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..91c9deedba1 --- /dev/null +++ b/easybuild/easyconfigs/r/Raptor/Raptor-2.0.16-GCCcore-10.3.0.eb @@ -0,0 +1,47 @@ +## +# This is a contribution from SIB Swiss Institute of Bioinformatics +# Homepage: https://www.sib.swiss/research-infrastructure/competence-centers/vital-it +# +# Authors:: Sebastien Moretti +# +# Based on Raptor2 RPM spec file: +# https://git.rockylinux.org/staging/rpms/raptor2/-/blob/r8/SPECS/raptor2.spec +# The RPM patches have been integrated in the version 2.0.16 +## +easyblock = 'ConfigureMake' + +name = 'Raptor' +version = '2.0.16' +homepage = 'https://librdf.org/raptor/' +description = """Set of parsers and serializers that generate Resource Description Framework +(RDF) triples by parsing syntaxes or serialize the triples into a syntax.""" +# software_license = 'LicenseLGPLv2.1 + LicenseGPLv2 + LicenseApachev2' + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://download.librdf.org/source'] +sources = ['raptor2-%(version)s.tar.gz'] +checksums = ['089db78d7ac982354bdbf39d973baf09581e6904ac4c92a98c5caadb3de44680'] + +builddependencies = [ + ('Autotools', '20210128'), + ('make', '4.3'), + ('binutils', '2.36.1'), +] +dependencies = [ + ('libxml2', '2.9.10'), + ('libxslt', '1.1.34'), + ('cURL', '7.76.0'), + ('ICU', '69.1'), +] + +configopts = "--disable-static --enable-release --disable-gtk-doc --with-yajl=no" + +sanity_check_paths = { + 'files': ['bin/rapper', 'lib/libraptor2.so'], + 'dirs': ['include/raptor2/'] +} + +sanity_check_commands = ["rapper --help"] + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/r/ReFrame/ReFrame-4.3.2.eb b/easybuild/easyconfigs/r/ReFrame/ReFrame-4.3.2.eb new file mode 100644 index 00000000000..b8237231c17 --- /dev/null +++ b/easybuild/easyconfigs/r/ReFrame/ReFrame-4.3.2.eb @@ -0,0 +1,66 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'PythonBundle' + +name = 'ReFrame' +version = '4.3.2' + +homepage = 'https://github.com/reframe-hpc/reframe' +description = '''ReFrame is a framework for writing regression tests for HPC systems.''' + +toolchain = SYSTEM + +allow_system_deps = [('Python', SYS_PYTHON_VERSION)] + +req_py_majver = 3 +req_py_minver = 6 + +use_pip = True + +exts_list = [ + ('pip', '21.3.1', { + 'use_pip': False, + 'checksums': ['fd11ba3d0fdb4c07fbc5ecbba0b1b719809420f25038f8ee3cd913d3faa3033a'], + }), + ('wheel', '0.37.1', { + 'source_tmpl': 'wheel-%(version)s-py2.py3-none-any.whl', + 'checksums': ['4bdcd7d840138086126cd09254dc6195fb4fc6f01c050a1d7236f2630db1d22a'], + }), + ('reframe', version, { + 'preinstallopts': "export PATH=%(installdir)s/bin:$PATH && " + "./bootstrap.sh +docs +pygelf && cp -r external %(installdir)s && " + "PYTHONPATH=%(builddir)s/reframe/reframe-%(version)s/external:$PYTHONPATH ", + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/reframe-hpc/reframe/archive/'], + 'checksums': ['b4e42915cf3d6c7c0f975f12eecd609ae5f165b764989f4ee066a209ff0150ae'], + }), +] + +postinstallcmds = [ + "cp -a tools tutorials %(installdir)s", + # Adding hpctestlib separately to the external directory so that it can be + # imported and is in the PYTHONPATH + "cp -a hpctestlib %(installdir)s/external", + "mkdir -p %(installdir)s/share && cp -a share/completions %(installdir)s/share/completions", + r"sed -i 's@/\(python[0-9.]*\)$@/\1 -S@g' %(installdir)s/bin/reframe", +] + +sanity_check_paths = { + 'files': ['bin/reframe', + 'share/completions/reframe.bash', + 'share/completions/reframe.fish', + 'share/completions/reframe.tcsh'], + 'dirs': ['external', 'lib', 'tools', 'tutorials'] +} + +sanity_check_commands = ['reframe -V'] + +sanity_pip_check = True + +modextrapaths = { + # bootstrap script installs required dependencies to 'external' subdirectory + 'PYTHONPATH': 'external', +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/r/ReFrame/ReFrame-4.3.3.eb b/easybuild/easyconfigs/r/ReFrame/ReFrame-4.3.3.eb new file mode 100644 index 00000000000..af6b22f4846 --- /dev/null +++ b/easybuild/easyconfigs/r/ReFrame/ReFrame-4.3.3.eb @@ -0,0 +1,67 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'PythonBundle' + +name = 'ReFrame' +version = '4.3.3' + +homepage = 'https://github.com/reframe-hpc/reframe' +description = '''ReFrame is a framework for writing regression tests for HPC systems.''' + +toolchain = SYSTEM + +allow_system_deps = [('Python', SYS_PYTHON_VERSION)] + +req_py_majver = 3 +req_py_minver = 6 + +use_pip = True + +exts_list = [ + # stick to pip 21.3.1 and wheel 0.37.1, which are compatible with Python 3.6 + ('pip', '21.3.1', { + 'use_pip': False, + 'checksums': ['fd11ba3d0fdb4c07fbc5ecbba0b1b719809420f25038f8ee3cd913d3faa3033a'], + }), + ('wheel', '0.37.1', { + 'source_tmpl': 'wheel-%(version)s-py2.py3-none-any.whl', + 'checksums': ['4bdcd7d840138086126cd09254dc6195fb4fc6f01c050a1d7236f2630db1d22a'], + }), + ('reframe', version, { + 'preinstallopts': "export PATH=%(installdir)s/bin:$PATH && " + "./bootstrap.sh +docs +pygelf && cp -r external %(installdir)s && " + "PYTHONPATH=%(builddir)s/reframe/reframe-%(version)s/external:$PYTHONPATH ", + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/reframe-hpc/reframe/archive/'], + 'checksums': ['3d1a1a6d2c8e3b362dadc47f642f23f7574fb81b03be31055040afe9738829c2'], + }), +] + +postinstallcmds = [ + "cp -a tools tutorials %(installdir)s", + # Adding hpctestlib separately to the external directory so that it can be + # imported and is in the PYTHONPATH + "cp -a hpctestlib %(installdir)s/external", + "mkdir -p %(installdir)s/share && cp -a share/completions %(installdir)s/share/completions", + r"sed -i 's@/\(python[0-9.]*\)$@/\1 -S@g' %(installdir)s/bin/reframe", +] + +sanity_check_paths = { + 'files': ['bin/reframe', + 'share/completions/reframe.bash', + 'share/completions/reframe.fish', + 'share/completions/reframe.tcsh'], + 'dirs': ['external', 'lib', 'tools', 'tutorials'] +} + +sanity_check_commands = ['reframe -V'] + +sanity_pip_check = True + +modextrapaths = { + # bootstrap script installs required dependencies to 'external' subdirectory + 'PYTHONPATH': 'external', +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/r/RepeatMasker/RepeatMasker-4.1.5-foss-2021a.eb b/easybuild/easyconfigs/r/RepeatMasker/RepeatMasker-4.1.5-foss-2021a.eb new file mode 100644 index 00000000000..85b04e1a138 --- /dev/null +++ b/easybuild/easyconfigs/r/RepeatMasker/RepeatMasker-4.1.5-foss-2021a.eb @@ -0,0 +1,57 @@ +easyblock = 'Tarball' + +name = 'RepeatMasker' +version = '4.1.5' + +homepage = 'https://www.repeatmasker.org/' +description = """RepeatMasker is a program that screens DNA sequences for interspersed repeats + and low complexity DNA sequences.""" + +toolchain = {'name': 'foss', 'version': '2021a'} + +source_urls = ['https://www.repeatmasker.org/%(name)s'] +sources = [ + SOURCE_TAR_GZ, + # optional but recommended: RepBase RepeatMasker Edition + # requires subscription and academic license, download from here: https://www.girinst.org/server/RepBase/index.php + # { + # 'filename': 'RepBaseRepeatMaskerEdition-20181026.tar.gz', + # 'extract_cmd': "tar -xzf %s -C %(builddir)s/%(name)s/Libraries --strip-components 1", + # }, +] +checksums = ['16e07f9efd99adf15f4492b0e334df5ad4ea6ca38ddf62bdd180d257f2f4753f'] + +dependencies = [ + ('Python', '3.9.5'), + ('Perl', '5.32.1'), + ('TRF', '4.09.1'), + ('h5py', '3.2.1'), + # At least one search engine of: RMBlast, HMMER, ABBlast/WUBlast, Cross_Match + ('HMMER', '3.3.2'), + ('RMBlast', '2.14.0'), +] + +local_default_search_engine = 'RMBlast' + +local_config_command = 'cd %(installdir)s &&' +local_config_command += './configure -perlbin "$EBROOTPERL/bin/perl" -trf_prgm "$EBROOTTRF/bin/trf" ' +local_config_command += '-hmmer_dir "$EBROOTHMMER/bin" -rmblast_dir "$EBROOTRMBLAST/bin" ' +local_config_command += '-default_search_engine %s' % local_default_search_engine.lower() + +postinstallcmds = [local_config_command] + +fix_perl_shebang_for = ['RepeatMasker'] + +sanity_check_paths = { + 'files': ['RepeatMasker', 'RepeatMaskerConfig.pm'], + 'dirs': ['Libraries', 'util'], +} + +sanity_check_commands = ['RepeatMasker -help'] + +modextrapaths = { + 'PATH': '', + 'PERL5LIB': '', +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/r/ResistanceGA/JuliaCall-0.17.5-top_level_macro.patch b/easybuild/easyconfigs/r/ResistanceGA/JuliaCall-0.17.5-top_level_macro.patch new file mode 100644 index 00000000000..9b7e5180190 --- /dev/null +++ b/easybuild/easyconfigs/r/ResistanceGA/JuliaCall-0.17.5-top_level_macro.patch @@ -0,0 +1,20 @@ +diff -ruN JuliaCall_orig/inst/julia/JuliaObject.jl JuliaCall/inst/julia/JuliaObject.jl +--- JuliaCall_orig/inst/julia/JuliaObject.jl 2023-10-06 15:50:37.057320040 +0200 ++++ JuliaCall/inst/julia/JuliaObject.jl 2023-10-09 16:21:42.293384419 +0200 +@@ -74,14 +74,14 @@ + ## we should use JuliaObject for general AbstractArray + @static if julia07 + @suppress_err begin +- JuliaCall.sexpclass(x :: AbstractArray{T}) where {T} = RClass{:JuliaObject} ++ @eval JuliaCall.sexpclass(x :: AbstractArray{T}) where {T} = RClass{:JuliaObject} + end + + ## AbstractArray{Any} should be converted to R List + sexpclass(x :: AbstractArray{Any}) = RClass{:list} + else + @suppress_err begin +- JuliaCall.sexp(x :: AbstractArray{T}) where {T} = sexp(JuliaObject(x)) ++ @eval JuliaCall.sexp(x :: AbstractArray{T}) where {T} = sexp(JuliaObject(x)) + end + + ## AbstractArray{Any} should be converted to R List diff --git a/easybuild/easyconfigs/r/ResistanceGA/ResistanceGA-4.2-5-foss-2022a-R-4.2.1-Julia-1.9.2.eb b/easybuild/easyconfigs/r/ResistanceGA/ResistanceGA-4.2-5-foss-2022a-R-4.2.1-Julia-1.9.2.eb new file mode 100644 index 00000000000..83987de1e5a --- /dev/null +++ b/easybuild/easyconfigs/r/ResistanceGA/ResistanceGA-4.2-5-foss-2022a-R-4.2.1-Julia-1.9.2.eb @@ -0,0 +1,87 @@ +easyblock = 'Bundle' + +name = 'ResistanceGA' +version = '4.2-5' +local_commit = '04326a8' +local_juliaver = '1.9.2' +versionsuffix = '-R-%%(rver)s-Julia-%s' % local_juliaver + +homepage = 'https://github.com/wpeterman/ResistanceGA' +description = "An R package to optimize resistance surfaces using Genetic Algorithms." + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('R', '4.2.1'), + ('Julia', local_juliaver, '-linux-%s' % ARCH, SYSTEM), + ('Circuitscape', '5.12.3', '-Julia-%s' % local_juliaver, SYSTEM), + ('RCall', '0.13.17', versionsuffix), +] + +exts_defaultclass = 'RPackage' +exts_filter = ("R -q --no-save", "library(%(ext_name)s)") + +exts_default_options = { + 'source_urls': [ + 'https://cran.r-project.org/src/contrib/', + 'https://cran.rstudio.com/src/contrib/', + 'https://cran.r-project.org/src/contrib/Archive/%(name)s/', + ], + 'source_tmpl': '%(name)s_%(version)s.tar.gz', +} + +exts_list = [ + ('Suppressor', '0.2.4', { + 'easyblock': 'JuliaPackage', + 'exts_filter': ("julia -e 'using %(ext_name)s'", ''), + 'preinstallopts': "export LD_LIBRARY_PATH=$EBROOTJULIA/lib/julia:$LD_LIBRARY_PATH && ", + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/JuliaIO/Suppressor.jl/archive/'], + 'checksums': ['5075b06ed6aa0956c786e5b5fe3d77571a4dd34e6d63b45e113c312729384cf4'], + }), + ('GA', '3.2.2', { + 'checksums': ['6245c634a11b8414bde7ed326b8c615512645489b19969619484c865e900bf8c'], + }), + ('MuMIn', '1.47.1', { + 'checksums': ['1223b5ada6f7d58220ac0267fa3473993190742646cbbb3dfe63895e61621af6'], + }), + ('spdep', '1.2-7', { + 'checksums': ['9dac594825bf2d0aa31e845bfec05d8ce206327840fe455391741dbbdf9c9eea'], + }), + ('JuliaCall', '0.17.5', { + 'patches': ['JuliaCall-0.17.5-top_level_macro.patch'], + 'checksums': [ + {'JuliaCall_0.17.5.tar.gz': '92542f9f02fe43702c18cf6c5a52fcbfc5ef3da6a2f73bfded773f4fc5edd90c'}, + {'JuliaCall-0.17.5-top_level_macro.patch': + '68508176c44fab479bce2a1a4e0302f835bd0d6a980abf860d713bb71f12145a'}, + ], + }), + ('XR', '0.7.2', { + 'checksums': ['7fc35f607d68095f861711fda9acbd8804829ad3915a22a407ab1e9fb89c1949'], + }), + ('XRJulia', '0.9.0', { + 'checksums': ['f59fddbe7ab65562f6e019ca7016417fff81f5b7e5f0ddeb00129aaaa6336f68'], + }), + (name, version, { + 'source_urls': ['https://github.com/wpeterman/ResistanceGA/archive/'], + 'sources': [{'download_filename': '04326a8.tar.gz', 'filename': '%(name)s-%(version)s.tar.gz'}], + 'checksums': ['6791c8b42559c0abe94b7a326961f45af2939905021cb9da7220383bf2ea3d75'], + }), +] + +modextrapaths = { + 'R_LIBS_SITE': '', +} + +# When loading R and Julia, there seems to be a library collision and Julia (namely Pkg module) doesn't work properly +# This is a workaround to make Julia find the correct libraries +modluafooter = """ +prepend_path("LD_LIBRARY_PATH", os.getenv("EBROOTJULIA") .. "/lib/julia") +""" + +sanity_check_paths = { + 'files': [], + 'dirs': ['%(name)s'], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/r/Rust/Rust-1.73.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/r/Rust/Rust-1.73.0-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..156414a7c55 --- /dev/null +++ b/easybuild/easyconfigs/r/Rust/Rust-1.73.0-GCCcore-13.2.0.eb @@ -0,0 +1,31 @@ +name = 'Rust' +version = '1.73.0' + +homepage = 'https://www.rust-lang.org' +description = """Rust is a systems programming language that runs blazingly fast, prevents segfaults, + and guarantees thread safety.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://static.rust-lang.org/dist/'] +sources = ['rustc-%(version)s-src.tar.gz'] +patches = ['Rust-1.70_sysroot-fix-interpreter.patch'] +checksums = [ + {'rustc-1.73.0-src.tar.gz': '96d62e6d1f2d21df7ac8acb3b9882411f9e7c7036173f7f2ede9e1f1f6b1bb3a'}, + {'Rust-1.70_sysroot-fix-interpreter.patch': '220129db55e022a98d25028da5dcc9f26b252dd995c3ac92f6312dbb1e362cb1'}, +] + +builddependencies = [ + ('binutils', '2.40'), + ('CMake', '3.27.6'), + ('Python', '3.11.5'), + ('Ninja', '1.11.1'), + ('pkgconf', '2.0.3'), + ('patchelf', '0.18.0'), # only required when RPATH linking is enabled +] + +dependencies = [ + ('OpenSSL', '1.1', '', SYSTEM), +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/r/rapidcsv/rapidcsv-8.62-GCCcore-11.2.0.eb b/easybuild/easyconfigs/r/rapidcsv/rapidcsv-8.62-GCCcore-11.2.0.eb new file mode 100644 index 00000000000..47457d665d6 --- /dev/null +++ b/easybuild/easyconfigs/r/rapidcsv/rapidcsv-8.62-GCCcore-11.2.0.eb @@ -0,0 +1,35 @@ +# Contribution from Imperial College London/UK +# uploaded: J. Sassmannshausen + +easyblock = 'CMakeMake' + +name = 'rapidcsv' +version = '8.62' + +homepage = 'https://github.com/d99kris/rapidcsv' +description = """ +Rapidcsv is a C++ header-only library for CSV parsing. +While the name admittedly was inspired by the rapidjson project, +the objectives are not the same. The goal of rapidcsv is to be +an easy-to-use CSV library enabling rapid development. +For optimal performance (be it CPU or memory usage) a CSV parser +implemented for the specific use-case is likely to be more performant. +""" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} + +source_urls = ['https://github.com/d99kris/rapidcsv/archive'] +sources = ['v%(version)s.tar.gz'] +checksums = ['a7efda6324420f2b69d3448672a9553dc91520632409661f9f83ac0425faa31d'] + +builddependencies = [ + ('CMake', '3.22.1'), + ('binutils', '2.37') +] + +sanity_check_paths = { + 'files': ['include/rapidcsv.h'], + 'dirs': [], +} + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/r/rapidcsv/rapidcsv-8.64-GCCcore-11.3.0.eb b/easybuild/easyconfigs/r/rapidcsv/rapidcsv-8.64-GCCcore-11.3.0.eb index 3ce9bf655e9..18ccedd9a55 100644 --- a/easybuild/easyconfigs/r/rapidcsv/rapidcsv-8.64-GCCcore-11.3.0.eb +++ b/easybuild/easyconfigs/r/rapidcsv/rapidcsv-8.64-GCCcore-11.3.0.eb @@ -29,7 +29,7 @@ builddependencies = [ sanity_check_paths = { 'files': ['include/rapidcsv.h'], - 'dirs': [''], + 'dirs': [], } moduleclass = 'data' diff --git a/easybuild/easyconfigs/r/rasterstats/rasterstats-0.19.0-foss-2022a.eb b/easybuild/easyconfigs/r/rasterstats/rasterstats-0.19.0-foss-2022a.eb new file mode 100644 index 00000000000..a2c9fc437b6 --- /dev/null +++ b/easybuild/easyconfigs/r/rasterstats/rasterstats-0.19.0-foss-2022a.eb @@ -0,0 +1,35 @@ +easyblock = 'PythonBundle' + +name = 'rasterstats' +version = '0.19.0' + +homepage = 'https://github.com/perrygeo/python-rasterstats' +description = "rasterstats is a Python module for summarizing geospatial raster datasets based on vector geometries." + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('Shapely', '1.8.2'), + ('Fiona', '1.8.21'), + ('rasterio', '1.3.4'), +] + +use_pip = True + +exts_list = [ + ('affine', '2.3.1', { + 'checksums': ['d676de66157ad6af99ffd94e0f54e89dfc35b0fb7252ead2ed0ad2dca431bdd0'], + }), + ('cligj', '0.7.2', { + 'checksums': ['a4bc13d623356b373c2c27c53dbd9c68cae5d526270bfa71f6c6fa69669c6b27'], + }), + (name, version, { + 'checksums': ['066c44feb6f3936804a0c79d112271fa5bf5de0d5058823ab5c1e0047ab7bbbc'], + }), +] + +sanity_pip_check = True + +moduleclass = 'geo' diff --git a/easybuild/easyconfigs/r/rpy2/rpy2-3.4.5-foss-2021a.eb b/easybuild/easyconfigs/r/rpy2/rpy2-3.4.5-foss-2021a.eb new file mode 100644 index 00000000000..242df18ed71 --- /dev/null +++ b/easybuild/easyconfigs/r/rpy2/rpy2-3.4.5-foss-2021a.eb @@ -0,0 +1,62 @@ +# Author: Pavel Grochal (INUITS) +# Updated: Denis Kristak (INUITS) +# License: GPLv2 + +easyblock = 'PythonBundle' + +name = 'rpy2' +version = '3.4.5' + +homepage = 'https://rpy2.bitbucket.io/' +description = """rpy2 is an interface to R running embedded in a Python process.""" + +toolchain = {'name': 'foss', 'version': '2021a'} + +dependencies = [ + ('Python', '3.9.5'), + ('R', '4.1.0'), + ('IPython', '7.25.0'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('simplegeneric', '0.8.1', { + 'source_tmpl': '%(name)s-%(version)s.zip', + 'checksums': ['dc972e06094b9af5b855b3df4a646395e43d1c9d0d39ed345b7393560d0b9173'], + }), + # stick to tzlocal < 3.0 to avoid test errors in rpy2 like + # AttributeError: 'NoneType' object has no attribute 'total_seconds' + ('tzlocal', '2.1', { + 'checksums': ['643c97c5294aedc737780a49d9df30889321cbe1204eac2c2ec6134035a92e44'], + }), + ('cffi', '1.15.1', { + 'checksums': ['d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9'], + }), + ('tzdata', '2023.3', { + 'checksums': ['11ef1e08e54acb0d4f95bdb1be05da659673de4acbd21bf9c69e94cc5e907a3a'], + }), + ('backports-zoneinfo', '0.2.1', { + 'modulename': 'backports.zoneinfo', + 'source_tmpl': 'backports.zoneinfo-%(version)s.tar.gz', + 'checksums': ['fadbfe37f74051d024037f223b8e001611eac868b5c5b06144ef4d8b799862f2'], + }), + ('pytz-deprecation-shim', '0.1.0.post0', { + 'source_tmpl': 'pytz_deprecation_shim-%(version)s.tar.gz', + 'checksums': ['af097bae1b616dde5c5744441e2ddc69e74dfdcb0c263129610d85b87445a59d'], + }), + (name, version, { + 'patches': ['rpy2-3.4.5_disable_gui_tests.patch'], + 'checksums': [ + {'rpy2-3.4.5.tar.gz': '5d31a5ea43f5a59f6dec30faca87edb01fc9b8affa0beae96a99be923bd7dab3'}, + {'rpy2-3.4.5_disable_gui_tests.patch': '7424fed4bc9edb246944ad54fcb434a1ae5f2db086679b1a53d44cf5d3b98d8b'}, + ], + }), +] + +sanity_check_commands = [ + "pytest --pyargs rpy2 " +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/r/ruamel.yaml/ruamel.yaml-0.17.32-GCCcore-12.3.0.eb b/easybuild/easyconfigs/r/ruamel.yaml/ruamel.yaml-0.17.32-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..cb4385ee456 --- /dev/null +++ b/easybuild/easyconfigs/r/ruamel.yaml/ruamel.yaml-0.17.32-GCCcore-12.3.0.eb @@ -0,0 +1,57 @@ +easyblock = 'PythonBundle' + +name = 'ruamel.yaml' +version = '0.17.32' + +homepage = 'https://sourceforge.net/projects/ruamel-yaml' +description = "ruamel.yaml is a YAML 1.2 loader/dumper package for Python." + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +builddependencies = [ + ('binutils', '2.40'), + ('poetry', '1.5.1'), +] + +dependencies = [ + ('Python', '3.11.3'), + ('Python-bundle-PyPI', '2023.06'), +] + +use_pip = True + +exts_list = [ + ('ruamel.yaml.clib', '0.2.7', { + 'modulename': False, + 'checksums': ['1f08fd5a2bea9c4180db71678e850b995d2a5f4537be0e94557668cf0f5f9497'], + }), + (name, version, { + 'checksums': ['ec939063761914e14542972a5cba6d33c23b0859ab6342f61cf070cfc600efc2'], + }), + ('configobj', '5.0.8', { + 'checksums': ['6f704434a07dc4f4dc7c9a745172c1cad449feb548febd9f7fe362629c627a97'], + }), + ('lz4', '4.3.2', { + 'checksums': ['e1431d84a9cfb23e6773e72078ce8e65cad6745816d4cbf9ae67da5ea419acda'], + }), + ('ruamel.yaml.base', '0.3.2', { + 'checksums': ['88b6edc8ace60c12d98f05fda22e5d9d69ba9a4b531cf54783142151145b0372'], + }), + ('ruamel.yaml.convert', '0.3.2', { + 'checksums': ['065ed9492a3189291d5bc0256709afc0231b52e4a01376fc91cf1757560ac9c4'], + }), + ('ruamel.yaml.cmd', '0.6.5', { + 'checksums': ['49af59514cb87d7637d1186e31c9345c9947120a9ce49cf6975435aa7abd5aa8'], + }), +] + +sanity_check_paths = { + 'files': ['bin/yaml'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["yaml --help"] + +sanity_pip_check = True + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/s/SCOTCH/SCOTCH-6.0.9-gompi-2020a.eb b/easybuild/easyconfigs/s/SCOTCH/SCOTCH-6.0.9-gompi-2020a.eb index 34dfc411449..6a312d8ebca 100644 --- a/easybuild/easyconfigs/s/SCOTCH/SCOTCH-6.0.9-gompi-2020a.eb +++ b/easybuild/easyconfigs/s/SCOTCH/SCOTCH-6.0.9-gompi-2020a.eb @@ -11,6 +11,7 @@ toolchainopts = {'pic': True} source_urls = ['https://gforge.inria.fr/frs/download.php/file/38187/'] sources = ['%(namelower)s_%(version)s.tar.gz'] checksums = ['622b4143cf01c480bb15708b3651b29c25e4aeb00c8c6447ff196aca2eca5c93'] +threadedmpi = False dependencies = [ ('zlib', '1.2.11'), diff --git a/easybuild/easyconfigs/s/SCOTCH/SCOTCH-6.1.0-gompi-2020b.eb b/easybuild/easyconfigs/s/SCOTCH/SCOTCH-6.1.0-gompi-2020b.eb index 82ed7faf684..ce355224a7e 100644 --- a/easybuild/easyconfigs/s/SCOTCH/SCOTCH-6.1.0-gompi-2020b.eb +++ b/easybuild/easyconfigs/s/SCOTCH/SCOTCH-6.1.0-gompi-2020b.eb @@ -11,6 +11,7 @@ toolchainopts = {'pic': True} source_urls = ['https://gitlab.inria.fr/scotch/scotch/-/archive/v%(version)s/'] sources = ['%(namelower)s-v%(version)s.tar.gz'] checksums = ['4fe537f608f0fe39ec78807f90203f9cca1181deb16bfa93b7d4cd440e01bbd1'] +threadedmpi = False builddependencies = [ ('Bison', '3.7.1'), diff --git a/easybuild/easyconfigs/s/SCOTCH/SCOTCH-6.1.0-gompi-2021a.eb b/easybuild/easyconfigs/s/SCOTCH/SCOTCH-6.1.0-gompi-2021a.eb index ff933dd4d5c..7f0edffee3a 100644 --- a/easybuild/easyconfigs/s/SCOTCH/SCOTCH-6.1.0-gompi-2021a.eb +++ b/easybuild/easyconfigs/s/SCOTCH/SCOTCH-6.1.0-gompi-2021a.eb @@ -14,6 +14,7 @@ toolchainopts = {'pic': True} source_urls = ['https://gitlab.inria.fr/scotch/scotch/-/archive/v%(version)s/'] sources = ['%(namelower)s-v%(version)s.tar.gz'] checksums = ['4fe537f608f0fe39ec78807f90203f9cca1181deb16bfa93b7d4cd440e01bbd1'] +threadedmpi = False builddependencies = [ ('Bison', '3.7.6'), diff --git a/easybuild/easyconfigs/s/SCOTCH/SCOTCH-6.1.2-gompi-2021b.eb b/easybuild/easyconfigs/s/SCOTCH/SCOTCH-6.1.2-gompi-2021b.eb index 08afa4bdeb2..c98ffbdf7ef 100644 --- a/easybuild/easyconfigs/s/SCOTCH/SCOTCH-6.1.2-gompi-2021b.eb +++ b/easybuild/easyconfigs/s/SCOTCH/SCOTCH-6.1.2-gompi-2021b.eb @@ -14,6 +14,7 @@ toolchainopts = {'pic': True} source_urls = ['https://gitlab.inria.fr/scotch/scotch/-/archive/v%(version)s/'] sources = ['%(namelower)s-v%(version)s.tar.gz'] checksums = ['9c2c75c75f716914a2bd1c15dffac0e29a2f8069b2df1ad2b6207c984b699450'] +threadedmpi = False builddependencies = [ ('Bison', '3.7.6'), diff --git a/easybuild/easyconfigs/s/SCOTCH/SCOTCH-7.0.1-gompi-2022a.eb b/easybuild/easyconfigs/s/SCOTCH/SCOTCH-7.0.1-gompi-2022a.eb index 9313e21231d..7c425335e82 100644 --- a/easybuild/easyconfigs/s/SCOTCH/SCOTCH-7.0.1-gompi-2022a.eb +++ b/easybuild/easyconfigs/s/SCOTCH/SCOTCH-7.0.1-gompi-2022a.eb @@ -11,6 +11,7 @@ toolchainopts = {'pic': True} source_urls = ['https://gitlab.inria.fr/scotch/scotch/-/archive/v%(version)s/'] sources = ['%(namelower)s-v%(version)s.tar.gz'] checksums = ['0618e9bc33c02172ea7351600fce4fccd32fe00b3359c4aabb5e415f17c06fed'] +threadedmpi = False builddependencies = [ ('Bison', '3.8.2'), diff --git a/easybuild/easyconfigs/s/SCOTCH/SCOTCH-7.0.3-gompi-2023a.eb b/easybuild/easyconfigs/s/SCOTCH/SCOTCH-7.0.3-gompi-2023a.eb index 645ce6e0e4f..7505a418741 100644 --- a/easybuild/easyconfigs/s/SCOTCH/SCOTCH-7.0.3-gompi-2023a.eb +++ b/easybuild/easyconfigs/s/SCOTCH/SCOTCH-7.0.3-gompi-2023a.eb @@ -11,6 +11,7 @@ toolchainopts = {'pic': True} source_urls = ['https://gitlab.inria.fr/scotch/scotch/-/archive/v%(version)s/'] sources = ['%(namelower)s-v%(version)s.tar.gz'] checksums = ['5b5351f0ffd6fcae9ae7eafeccaa5a25602845b9ffd1afb104db932dd4d4f3c5'] +threadedmpi = False builddependencies = [ ('Bison', '3.8.2'), diff --git a/easybuild/easyconfigs/s/SCons/SCons-4.5.2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/s/SCons/SCons-4.5.2-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..5e9d1a00cc2 --- /dev/null +++ b/easybuild/easyconfigs/s/SCons/SCons-4.5.2-GCCcore-12.3.0.eb @@ -0,0 +1,37 @@ +easyblock = 'PythonBundle' + +name = 'SCons' +version = '4.5.2' + +homepage = 'https://www.scons.org' +description = "SCons is a software construction tool." + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +builddependencies = [('binutils', '2.40')] + +dependencies = [('Python', '3.11.3')] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + (name, version, { + 'modulename': False, + 'patches': ['SCons-4.4.0_install_man_pages_correctly.patch'], + 'checksums': [ + {'SCons-4.5.2.tar.gz': '813360b2bce476bc9cc12a0f3a22d46ce520796b352557202cb07d3e402f5458'}, + {'SCons-4.4.0_install_man_pages_correctly.patch': + '9d216c2ea8e152ae1531593b17adc4042eb88f1d9524d7f3b08ace5137d6d5e7'}, + ], + }), +] + +sanity_check_paths = { + 'files': ['bin/scons', 'bin/sconsign'], + 'dirs': ['lib/python%(pyshortver)s/site-packages/%(name)s'], +} + +sanity_check_commands = ["scons --help"] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/s/SHAP/SHAP-0.42.1-foss-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/s/SHAP/SHAP-0.42.1-foss-2019b-Python-3.7.4.eb new file mode 100644 index 00000000000..1b6ae4e2e39 --- /dev/null +++ b/easybuild/easyconfigs/s/SHAP/SHAP-0.42.1-foss-2019b-Python-3.7.4.eb @@ -0,0 +1,48 @@ +easyblock = 'PythonBundle' + +name = 'SHAP' +version = '0.42.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = "https://github.com/slundberg/shap" +description = """SHAP (SHapley Additive exPlanations) is a game theoretic approach to explain the output of any + machine learning model. It connects optimal credit allocation with local explanations using the classic Shapley + values from game theory and their related extensions.""" + +toolchain = {'name': 'foss', 'version': '2019b'} + +dependencies = [ + ('Python', '3.7.4'), + ('SciPy-bundle', '2019.10', versionsuffix), + ('scikit-learn', '0.21.3', versionsuffix), + ('tqdm', '4.41.1'), + ('numba', '0.47.0', versionsuffix), +] + +sanity_pip_check = True +use_pip = True + +# ignore too strict requirement for 'packaging' Python package +local_preinstallopts = "sed -i 's/packaging>[0-9.]*/packaging/g' pyproject.toml && " +# fix compatibility with numba 0.47.0 +local_preinstallopts += "sed -i 's/from numba.core.errors import/from numba.errors import/g' shap/maskers/_image.py && " + +exts_list = [ + # recent setuptools required to avoid UNKNOWN and 0.0.0 in SHAP installation + ('setuptools', '67.8.0', { + 'checksums': ['62642358adc77ffa87233bc4d2354c4b2682d214048f500964dbe760ccedf102'], + }), + ('cloudpickle', '2.2.1', { + 'checksums': ['d89684b8de9e34a2a43b3460fbca07d09d6e25ce858df4d5a44240403b6178f5'], + }), + ('slicer', '0.0.7', { + 'checksums': ['f5d5f7b45f98d155b9c0ba6554fa9770c6b26d5793a3e77a1030fb56910ebeec'], + }), + (name, version, { + 'sources': [SOURCELOWER_TAR_GZ], + 'checksums': ['64403915e4a07d2951e7eee4af0e835b1b519367b11806fe1aa4bd6d81adb626'], + 'preinstallopts': local_preinstallopts, + }), +] + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/s/SHAP/SHAP-0.42.1-foss-2022a.eb b/easybuild/easyconfigs/s/SHAP/SHAP-0.42.1-foss-2022a.eb new file mode 100644 index 00000000000..7323215b67f --- /dev/null +++ b/easybuild/easyconfigs/s/SHAP/SHAP-0.42.1-foss-2022a.eb @@ -0,0 +1,39 @@ +easyblock = 'PythonBundle' + +name = 'SHAP' +version = '0.42.1' + +homepage = "https://github.com/slundberg/shap" +description = """SHAP (SHapley Additive exPlanations) is a game theoretic approach to explain the output of any + machine learning model. It connects optimal credit allocation with local explanations using the classic Shapley + values from game theory and their related extensions.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('scikit-learn', '1.1.2'), + ('tqdm', '4.64.0'), + ('numba', '0.56.4'), +] + +sanity_pip_check = True +use_pip = True + +exts_list = [ + ('cloudpickle', '2.2.1', { + 'checksums': ['d89684b8de9e34a2a43b3460fbca07d09d6e25ce858df4d5a44240403b6178f5'], + }), + ('slicer', '0.0.7', { + 'checksums': ['f5d5f7b45f98d155b9c0ba6554fa9770c6b26d5793a3e77a1030fb56910ebeec'], + }), + (name, version, { + 'sources': [SOURCELOWER_TAR_GZ], + 'checksums': ['64403915e4a07d2951e7eee4af0e835b1b519367b11806fe1aa4bd6d81adb626'], + # ignore too strict requirement for 'packaging' Python package + 'preinstallopts': "sed -i 's/packaging>[0-9.]*/packaging/g' pyproject.toml && ", + }), +] + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/s/SMRT-Link/SMRT-Link-12.0.0.177059-cli-tools-only.eb b/easybuild/easyconfigs/s/SMRT-Link/SMRT-Link-12.0.0.177059-cli-tools-only.eb new file mode 100644 index 00000000000..3169b1073f5 --- /dev/null +++ b/easybuild/easyconfigs/s/SMRT-Link/SMRT-Link-12.0.0.177059-cli-tools-only.eb @@ -0,0 +1,44 @@ +# This file is an EasyBuild reciPY as per https://easybuilders.github.io/easybuild/ +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'Binary' + +name = "SMRT-Link" +version = "12.0.0.177059" +versionsuffix = '-cli-tools-only' + +homepage = 'https://www.pacb.com/support/software-downloads/' +description = """PacBio’s open-source SMRT Analysis software suite is designed for use with Single Molecule, + Real-Time (SMRT) Sequencing data. You can analyze, visualize, and manage your data through an intuitive GUI + or command-line interface. You can also integrate SMRT Analysis in your existing data workflow through + the extensive set of APIs provided""" + +toolchain = SYSTEM + +download_instructions = """The download is a password protected zip file +Download it from https://www.pacb.com/support/software-downloads/ and uncompress +the .run file to your sources folder""" +sources = ['smrtlink_%(version)s.run'] +checksums = ['95dadf8c5435d55724e43a290144322c32c9c9cf8b4f1e54c1a7a6f3ec368fbe'] + +install_cmd = "%(builddir)s/smrtlink_%(version)s.run --rootdir %(installdir)s --smrttools-only" + +cleanupoldinstall = True +dontcreateinstalldir = True + +modextravars = { + 'SMRT_ROOT': '%(installdir)s', +} + +modextrapaths = { + 'PATH': ['smrtcmds/bin', 'smrtcmds/developer/bin', 'admin/bin'], +} + +sanity_check_paths = { + 'files': [], + 'dirs': ['install', 'userdata'] +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/SNAP-ESA-python/SNAP-ESA-python-8.0-GCCcore-10.2.0-Java-1.8-Python-2.7.18.eb b/easybuild/easyconfigs/s/SNAP-ESA-python/SNAP-ESA-python-8.0-GCCcore-10.2.0-Java-1.8-Python-2.7.18.eb new file mode 100644 index 00000000000..410cd5034da --- /dev/null +++ b/easybuild/easyconfigs/s/SNAP-ESA-python/SNAP-ESA-python-8.0-GCCcore-10.2.0-Java-1.8-Python-2.7.18.eb @@ -0,0 +1,52 @@ +easyblock = 'Bundle' + +name = 'SNAP-ESA-python' +version = '8.0' +local_javasuffix = '-Java-%(javaver)s' +versionsuffix = local_javasuffix + '-Python-%(pyver)s' + +homepage = 'https://step.esa.int/main/toolboxes/snap/' +description = "Python interface to the Sentinel Application Platform (SNAP) API" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +dependencies = [ + ('Java', '1.8', '', SYSTEM), + ('SNAP-ESA', version, local_javasuffix, SYSTEM), + ('Python', '2.7.18'), +] + +local_pysite = 'lib/python%(pyshortver)s/site-packages' +local_pyinstalldir = '%%(installdir)s/%s' % local_pysite + +postinstallcmds = [ + # Install snappy from SNAP-ESA + # snappy-conf is buggy and it hangs after doing the installation of snappy, + # start snappy-conf in a new SID and kill all processes of its PGID + # whenever it prints the final line starting with "or copy" + "mkdir -p %s" % local_pyinstalldir, + ('LOG="$(mktemp -d)/snappy-conf.log"; mkfifo $LOG; trap "rm -f $LOG" EXIT;' + 'setsid snappy-conf $EBROOTPYTHON/bin/python %s 2>&1 > $LOG & CONFPID=$!;' + 'while read line; do echo "$line"; [ -z "${line##or copy*}" ] && kill -- -$CONFPID; done < $LOG;') + % local_pyinstalldir, +] + +sanity_check_paths = { + 'files': [], + 'dirs': [local_pysite], +} + +sanity_check_commands = ["python -c 'import snappy'"] + +modextrapaths = {'PYTHONPATH': [local_pysite]} + +local_javaopts = " -Dsnap.pythonExecutable=python" +local_javaopts += " -Dsnap.pythonModuleDir=%s" % local_pyinstalldir + +# update $JAVA_TOOL_OPTIONS when module is loaded, use empty string as default value if $JAVA_TOOL_OPTIONS is not set +modluafooter = 'setenv("JAVA_TOOL_OPTIONS", (os.getenv("JAVA_TOOL_OPTIONS") or "") .. "%s")' % local_javaopts +# likewise, but when using Tcl as module syntax +local_tcl_JAVA_TOOL_OPTIONS = '[expr {[info exists ::env(JAVA_TOOL_OPTIONS)] ? $::env(JAVA_TOOL_OPTIONS) : ""}]' +modtclfooter = 'setenv JAVA_TOOL_OPTIONS [concat %s "%s"]' % (local_tcl_JAVA_TOOL_OPTIONS, local_javaopts) + +moduleclass = 'geo' diff --git a/easybuild/easyconfigs/s/SNAP-ESA-python/SNAP-ESA-python-9.0.0-GCCcore-11.2.0-Java-11-Python-2.7.18.eb b/easybuild/easyconfigs/s/SNAP-ESA-python/SNAP-ESA-python-9.0.0-GCCcore-11.2.0-Java-11-Python-2.7.18.eb new file mode 100644 index 00000000000..dd347b88d0e --- /dev/null +++ b/easybuild/easyconfigs/s/SNAP-ESA-python/SNAP-ESA-python-9.0.0-GCCcore-11.2.0-Java-11-Python-2.7.18.eb @@ -0,0 +1,52 @@ +easyblock = 'Bundle' + +name = 'SNAP-ESA-python' +version = '9.0.0' +local_javasuffix = '-Java-%(javaver)s' +versionsuffix = local_javasuffix + '-Python-%(pyver)s' + +homepage = 'https://step.esa.int/main/toolboxes/snap/' +description = "Python interface to the Sentinel Application Platform (SNAP) API" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} + +dependencies = [ + ('Java', '11', '', SYSTEM), + ('SNAP-ESA', version, local_javasuffix, SYSTEM), + ('Python', '2.7.18'), +] + +local_pysite = 'lib/python%(pyshortver)s/site-packages' +local_pyinstalldir = '%%(installdir)s/%s' % local_pysite + +postinstallcmds = [ + # Install snappy from SNAP-ESA + # snappy-conf is buggy and it hangs after doing the installation of snappy, + # start snappy-conf in a new SID and kill all processes of its PGID + # whenever it prints the final line starting with "or copy" + "mkdir -p %s" % local_pyinstalldir, + ('LOG="$(mktemp -d)/snappy-conf.log"; mkfifo $LOG; trap "rm -f $LOG" EXIT;' + 'setsid snappy-conf $EBROOTPYTHON/bin/python %s 2>&1 > $LOG & CONFPID=$!;' + 'while read line; do echo "$line"; [ -z "${line##or copy*}" ] && kill -- -$CONFPID; done < $LOG;') + % local_pyinstalldir, +] + +sanity_check_paths = { + 'files': [], + 'dirs': [local_pysite], +} + +sanity_check_commands = ["python -c 'import snappy'"] + +modextrapaths = {'PYTHONPATH': [local_pysite]} + +local_javaopts = " -Dsnap.pythonExecutable=python" +local_javaopts += " -Dsnap.pythonModuleDir=%s" % local_pyinstalldir + +# update $JAVA_TOOL_OPTIONS when module is loaded, use empty string as default value if $JAVA_TOOL_OPTIONS is not set +modluafooter = 'setenv("JAVA_TOOL_OPTIONS", (os.getenv("JAVA_TOOL_OPTIONS") or "") .. "%s")' % local_javaopts +# likewise, but when using Tcl as module syntax +local_tcl_JAVA_TOOL_OPTIONS = '[expr {[info exists ::env(JAVA_TOOL_OPTIONS)] ? $::env(JAVA_TOOL_OPTIONS) : ""}]' +modtclfooter = 'setenv JAVA_TOOL_OPTIONS [concat %s "%s"]' % (local_tcl_JAVA_TOOL_OPTIONS, local_javaopts) + +moduleclass = 'geo' diff --git a/easybuild/easyconfigs/s/SNAP-ESA/SNAP-ESA-8.0-Java-1.8.eb b/easybuild/easyconfigs/s/SNAP-ESA/SNAP-ESA-8.0-Java-1.8.eb new file mode 100644 index 00000000000..b8dfab0c0fe --- /dev/null +++ b/easybuild/easyconfigs/s/SNAP-ESA/SNAP-ESA-8.0-Java-1.8.eb @@ -0,0 +1,71 @@ +easyblock = 'Binary' + +name = 'SNAP-ESA' +version = '8.0' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'https://step.esa.int/main/toolboxes/snap/' +description = """ +The Sentinel Application Platform (SNAP) is a common architecture for all +Sentinel Toolboxes being jointly developed by Brockmann Consult, SkyWatch and +C-S. +The SNAP architecture is ideal for Earth Observation processing and analysis +due to the following technological innovations: Extensibility, Portability, +Modular Rich Client Platform, Generic EO Data Abstraction, Tiled Memory +Management, and a Graph Processing Framework.""" + +toolchain = SYSTEM + +local_installer = 'esa-snap_all_unix_%s.sh' % version.replace('.', '_') +local_varfile = '%(name)s-%(version)s-response.varfile' + +source_urls = [ + 'https://download.esa.int/step/snap/%(version)s/installers', + 'https://step.esa.int/downloads/%(version)s/installers', +] +sources = [local_installer] +patches = [(local_varfile, '.')] +checksums = [ + 'b49d6795f55bbe9ecb46f9c289ac245626243d3fcd32211b47a54b26b508798e', # esa-snap_all_unix_8_0.sh + '5ea98e3376bb3df52b9c4c99ab4986015296b815021e16486b58e4aad58e21a4', # SNAP-ESA-8.0-response.varfile +] + +# The installation is executed with the bundled JRE 1.8.0_242 (Zulu) +# At runtime we switch to an external JDK (SNAP developers recommend any OpenJDK distribution) +dependencies = [ + ('Java', '1.8'), +] + +install_cmd = "INSTALL4J_TEMP='%(builddir)s' " +install_cmd += "bash %s -dir '%%(installdir)s'" % local_installer +install_cmd += " -q -varfile '%s'" % local_varfile + +postinstallcmds = [ + # set paths + 'sed -i "s|jdkhome.*|jdkhome=$JAVA_HOME|" %(installdir)s/etc/snap.conf', + 'sed -i "s|#snap.home.*|snap.home=%(installdir)s|" %(installdir)s/etc/snap.properties', + # remove default maximum memory allocation pool + 'sed -i "s|-J-Xmx[0-9G]* ||" %(installdir)s/etc/snap.conf', + # disable update checks + "echo 'snap.versionCheck.interval=NEVER' >> %(installdir)s/etc/snap.properties", + "sed -i 's|dpiaware=false|& -J-Dplugin.manager.check.interval=NEVER|' %(installdir)s/etc/snap.conf", + # (optional) update all modules to latest version + # the update command is buggy and it hangs after doing the update, kill it whenever it prints "updates=0" + # see issue https://senbox.atlassian.net/browse/SNAP-927 + # ('LOG="$(mktemp -d)/snap-update.log"; mkfifo $LOG; trap "rm -f $LOG" EXIT;' + # 'SNAPCMD="%(installdir)s/bin/snap --nosplash --nogui --userdir "%(builddir)s/snap" --modules --update-all";' + # '$SNAPCMD 2>&1 > $LOG & SNAPPID=$!;' + # 'while read line; do echo "$line"; [ "$line" = "updates=0" ] && kill $SNAPPID; done < $LOG;'), +] + +sanity_check_paths = { + 'files': ['bin/snap', 'bin/gpt'], + 'dirs': ['probavbox', 'rstb', 's1tbx', 's2tbx', 's3tbx', 'smos', 'snap'], +} + +sanity_check_commands = [ + "snap --nosplash --nogui --modules --list", + "gpt -h", +] + +moduleclass = 'geo' diff --git a/easybuild/easyconfigs/s/SNAP-ESA/SNAP-ESA-8.0-response.varfile b/easybuild/easyconfigs/s/SNAP-ESA/SNAP-ESA-8.0-response.varfile new file mode 100644 index 00000000000..e5b052bbfce --- /dev/null +++ b/easybuild/easyconfigs/s/SNAP-ESA/SNAP-ESA-8.0-response.varfile @@ -0,0 +1,15 @@ +# install4j response file for ESA SNAP 8.0 +deleteSnapDir=DESKTOP +executeLauncherWithPythonAction$Boolean=false +forcePython$Boolean=true +pythonExecutable=python +sys.adminRights$Boolean=false +sys.component.3109$Boolean=true +sys.component.RSTB$Boolean=true +sys.component.S1TBX$Boolean=true +sys.component.S2TBX$Boolean=true +sys.component.S3TBX$Boolean=true +sys.component.SMOS$Boolean=true +sys.component.SNAP$Boolean=true +sys.languageId=en +sys.programGroupDisabled$Boolean=true diff --git a/easybuild/easyconfigs/s/SNAP-ESA/SNAP-ESA-9.0.0-Java-11.eb b/easybuild/easyconfigs/s/SNAP-ESA/SNAP-ESA-9.0.0-Java-11.eb new file mode 100644 index 00000000000..5c8f6e3138e --- /dev/null +++ b/easybuild/easyconfigs/s/SNAP-ESA/SNAP-ESA-9.0.0-Java-11.eb @@ -0,0 +1,71 @@ +easyblock = 'Binary' + +name = 'SNAP-ESA' +version = '9.0.0' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'https://step.esa.int/main/toolboxes/snap/' +description = """ +The Sentinel Application Platform (SNAP) is a common architecture for all +Sentinel Toolboxes being jointly developed by Brockmann Consult, SkyWatch and +C-S. +The SNAP architecture is ideal for Earth Observation processing and analysis +due to the following technological innovations: Extensibility, Portability, +Modular Rich Client Platform, Generic EO Data Abstraction, Tiled Memory +Management, and a Graph Processing Framework.""" + +toolchain = SYSTEM + +local_installer = 'esa-snap_all_unix_%s.sh' % version.replace('.', '_') +local_varfile = 'SNAP-ESA-8.0-response.varfile' + +source_urls = [ + 'https://download.esa.int/step/snap/%(version_major_minor)s/installers', + 'https://step.esa.int/downloads/%(version_major_minor)s/installers', +] +sources = [local_installer] +patches = [(local_varfile, '.')] +checksums = [ + {'esa-snap_all_unix_9_0_0.sh': 'ad6ef8c679c80c58660fe23ab5fb4974f9cd3ff4b119ad8e7e40dc79dbe03896'}, + {'SNAP-ESA-8.0-response.varfile': '5ea98e3376bb3df52b9c4c99ab4986015296b815021e16486b58e4aad58e21a4'}, +] + +# The installation is executed with the bundled JRE 1.8.0_242 (Zulu) +# At runtime we switch to an external JDK (SNAP developers recommend any OpenJDK distribution) +dependencies = [ + ('Java', '11'), +] + +install_cmd = "INSTALL4J_TEMP='%(builddir)s' " +install_cmd += "bash %s -dir '%%(installdir)s'" % local_installer +install_cmd += " -q -varfile '%s'" % local_varfile + +postinstallcmds = [ + # set paths + 'sed -i "s|jdkhome.*|jdkhome=$JAVA_HOME|" %(installdir)s/etc/snap.conf', + 'sed -i "s|#snap.home.*|snap.home=%(installdir)s|" %(installdir)s/etc/snap.properties', + # remove default maximum memory allocation pool + 'sed -i "s|-J-Xmx[0-9G]* ||" %(installdir)s/etc/snap.conf', + # disable update checks + "echo 'snap.versionCheck.interval=NEVER' >> %(installdir)s/etc/snap.properties", + "sed -i 's|dpiaware=false|& -J-Dplugin.manager.check.interval=NEVER|' %(installdir)s/etc/snap.conf", + # (optional) update all modules to latest version + # the update command is buggy and it hangs after doing the update, kill it whenever it prints "updates=0" + # see issue https://senbox.atlassian.net/browse/SNAP-927 + # ('LOG="$(mktemp -d)/snap-update.log"; mkfifo $LOG; trap "rm -f $LOG" EXIT;' + # 'SNAPCMD="%(installdir)s/bin/snap --nosplash --nogui --userdir "%(builddir)s/snap" --modules --update-all";' + # '$SNAPCMD 2>&1 > $LOG & SNAPPID=$!;' + # 'while read line; do echo "$line"; [ "$line" = "updates=0" ] && kill $SNAPPID; done < $LOG;'), +] + +sanity_check_paths = { + 'files': ['bin/snap', 'bin/gpt'], + 'dirs': ['probavbox', 'rstb', 's1tbx', 's2tbx', 's3tbx', 'smos', 'snap'], +} + +sanity_check_commands = [ + "snap --nosplash --nogui --modules --help | grep 'Additional module options'", + "gpt -h", +] + +moduleclass = 'geo' diff --git a/easybuild/easyconfigs/s/SQLite/SQLite-3.43.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/s/SQLite/SQLite-3.43.1-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..d2b70cc4ec2 --- /dev/null +++ b/easybuild/easyconfigs/s/SQLite/SQLite-3.43.1-GCCcore-13.2.0.eb @@ -0,0 +1,39 @@ +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.43.1' +local_filename_version = '3430100' + +homepage = 'https://www.sqlite.org/' +description = "SQLite: SQL Database Engine in a C Library" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://www.sqlite.org/2023/'] +sources = ['%%(namelower)s-autoconf-%s.tar.gz' % (local_filename_version)] +checksums = ['39116c94e76630f22d54cd82c3cea308565f1715f716d1b2527f1c9c969ba4d9'] + +builddependencies = [ + ('binutils', '2.40'), +] +dependencies = [ + ('libreadline', '8.2'), + ('Tcl', '8.6.13'), +] + +# enable additional APIs that provide access to meta-data about tables and queries +# needed for GDAL when it used as a dep for QGIS +buildopts = 'CC="$CC" CFLAGS="$CFLAGS -DSQLITE_ENABLE_COLUMN_METADATA"' + +sanity_check_paths = { + 'files': ['bin/sqlite3', 'include/sqlite3ext.h', 'include/sqlite3.h', + 'lib/libsqlite3.a', 'lib/libsqlite3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +sanity_check_commands = [ + 'sqlite3 --version | grep ^%(version)s', +] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-6.6.0-foss-2023a.eb b/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-6.6.0-foss-2023a.eb new file mode 100644 index 00000000000..02bb2f3f2fd --- /dev/null +++ b/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-6.6.0-foss-2023a.eb @@ -0,0 +1,33 @@ +easyblock = 'CMakeMake' + +name = 'SUNDIALS' +version = '6.6.0' + +homepage = 'https://computing.llnl.gov/projects/sundials' + +description = "SUNDIALS: SUite of Nonlinear and DIfferential/ALgebraic Equation Solvers" + +toolchain = {'name': 'foss', 'version': '2023a'} +toolchainopts = {'openmp': True, 'usempi': True, 'pic': True} + +source_urls = ['https://github.com/LLNL/sundials/releases/download/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['f90029b8da846c8faff5530fd1fa4847079188d040554f55c1d5d1e04743d29d'] + +builddependencies = [('CMake', '3.26.3')] + +configopts = "-DMPI_ENABLE=ON -DOPENMP_ENABLE=ON -DLAPACK_ENABLE=ON" + +local_solvers = ['arkode', 'cvode', 'cvodes', 'ida', 'idas', 'kinsol'] + +sanity_check_paths = { + 'files': ['lib/libsundials_%s.a' % s for s in local_solvers + + ['nvecopenmp', 'nvecparallel', 'nvecserial']] + + ['lib/libsundials_%s.%s' % (s, SHLIB_EXT) for s in local_solvers + + ['nvecopenmp', 'nvecparallel', 'nvecserial']], + 'dirs': ['examples/%s' % s for s in local_solvers] + + ['include/%s' % s for s in local_solvers] + + ['examples/nvector', 'include/nvector', 'include/sundials'], +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/s/SVG/SVG-2.87-GCC-12.2.0.eb b/easybuild/easyconfigs/s/SVG/SVG-2.87-GCC-12.2.0.eb new file mode 100644 index 00000000000..70425b6ecb3 --- /dev/null +++ b/easybuild/easyconfigs/s/SVG/SVG-2.87-GCC-12.2.0.eb @@ -0,0 +1,26 @@ +easyblock = 'PerlModule' + +name = 'SVG' +version = '2.87' + +homepage = 'https://metacpan.org/pod/SVG' +description = "Perl binding for SVG" + +toolchain = {'name': 'GCC', 'version': '12.2.0'} + +source_urls = ['https://cpan.metacpan.org/authors/id/M/MA/MANWAR/'] +sources = [SOURCE_TAR_GZ] +checksums = ['b3fa58c1c59942b4ebef003da97c3e01e531480ca29e8efbe327ff0589c0bd3c'] + +dependencies = [ + ('Perl', '5.36.0'), +] + +options = {'modulename': 'SVG'} + +sanity_check_paths = { + 'files': ['lib/perl5/site_perl/%(perlver)s/SVG.pm'], + 'dirs': ['lib/perl5/site_perl/%(perlver)s/SVG'], +} + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/s/SWIG/SWIG-4.1.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/s/SWIG/SWIG-4.1.1-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..f3cfdc6154a --- /dev/null +++ b/easybuild/easyconfigs/s/SWIG/SWIG-4.1.1-GCCcore-13.2.0.eb @@ -0,0 +1,27 @@ +name = 'SWIG' +version = '4.1.1' + +homepage = 'http://www.swig.org/' +description = """SWIG is a software development tool that connects programs written in C and C++ with + a variety of high-level programming languages.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['2af08aced8fcd65cdb5cc62426768914bedc735b1c250325203716f78e39ac9b'] + +builddependencies = [ + ('binutils', '2.40'), + ('Bison', '3.8.2'), +] + +dependencies = [ + ('zlib', '1.2.13'), + ('PCRE2', '10.42'), +] + +configopts = '--without-alllang --with-boost=no' + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.2.0-gompi-2023.09-fb.eb b/easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.2.0-gompi-2023.09-fb.eb new file mode 100644 index 00000000000..f9ef3a1331c --- /dev/null +++ b/easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.2.0-gompi-2023.09-fb.eb @@ -0,0 +1,40 @@ +name = 'ScaLAPACK' +version = '2.2.0' +versionsuffix = '-fb' + +homepage = 'https://www.netlib.org/scalapack/' +description = """The ScaLAPACK (or Scalable LAPACK) library includes a subset of LAPACK routines + redesigned for distributed memory MIMD parallel computers.""" + +toolchain = {'name': 'gompi', 'version': '2023.09'} +toolchainopts = {'extra_fflags': '-lpthread', 'openmp': True, 'pic': True, 'usempi': True} + +source_urls = [homepage] +sources = [SOURCELOWER_TGZ] +patches = ['ScaLAPACK-%(version)s_fix-GCC-10.patch'] +checksums = [ + '40b9406c20735a9a3009d863318cb8d3e496fb073d201c5463df810e01ab2a57', # scalapack-2.2.0.tgz + 'f6bc3c6dee012ba4a696548a2e12b6aae932ce4fd5a142153b338839f52b5906', # ScaLAPACK-2.2.0_fix-GCC-10.patch +] + +builddependencies = [ + ('CMake', '3.27.6'), +] + +dependencies = [ + ('FlexiBLAS', '3.3.1'), +] + +# Config Opts based on AOCL User Guide: +# https://developer.amd.com/wp-content/resources/AOCL_User%20Guide_2.2.pdf + +configopts = '-DBUILD_SHARED_LIBS=ON ' +configopts += '-DBLAS_LIBRARIES="$EBROOTFLEXIBLAS/lib/libflexiblas.%s" ' % SHLIB_EXT +configopts += '-DLAPACK_LIBRARIES="$EBROOTFLEXIBLAS/lib/libflexiblas.%s" ' % SHLIB_EXT + +sanity_check_paths = { + 'files': ['lib/libscalapack.%s' % SHLIB_EXT, 'lib64/libscalapack.%s' % SHLIB_EXT], + 'dirs': ["lib", "lib64"], +} + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/s/Scalene/Scalene-1.5.20-GCCcore-11.3.0.eb b/easybuild/easyconfigs/s/Scalene/Scalene-1.5.20-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..e21b689e3da --- /dev/null +++ b/easybuild/easyconfigs/s/Scalene/Scalene-1.5.20-GCCcore-11.3.0.eb @@ -0,0 +1,54 @@ +easyblock = 'PythonBundle' + +name = 'Scalene' +version = '1.5.20' + +homepage = 'https://github.com/plasma-umass/scalene' +description = """Scalene is a high-performance CPU, GPU and memory profiler for Python that does a number of things +that other Python profilers do not and cannot do. It runs orders of magnitude faster than other profilers while +delivering far more detailed information.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +builddependencies = [ + ('binutils', '2.38'), +] + +dependencies = [ + ('Python', '3.10.4'), +] + +use_pip = True + +exts_list = [ + ('cloudpickle', '2.2.1', { + 'checksums': ['d89684b8de9e34a2a43b3460fbca07d09d6e25ce858df4d5a44240403b6178f5'], + }), + ('pynvml', '11.4.1', { + 'checksums': ['b2e4a33b80569d093b513f5804db0c7f40cfc86f15a013ae7a8e99c5e175d5dd'], + }), + ('commonmark', '0.9.1', { + 'checksums': ['452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60'], + }), + ('rich', '13.1.0', { + 'checksums': ['81c73a30b144bbcdedc13f4ea0b6ffd7fdc3b0d3cc259a9402309c8e4aee1964'], + }), + ('astunparse', '1.6.3', { + 'checksums': ['5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872'], + }), + (name, version, { + 'source_tmpl': '%(namelower)s-%(version)s.tar.gz', + 'checksums': ['dd424e96dc1ea7eb58e5cbe34e2dae1cedf50f62c031a9b1391a2fd4213d9915'], + }), +] + +sanity_check_paths = { + 'files': ['bin/scalene'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["scalene --help"] + +sanity_pip_check = True + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/Scalene/Scalene-1.5.26-GCCcore-12.2.0.eb b/easybuild/easyconfigs/s/Scalene/Scalene-1.5.26-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..56523a8e099 --- /dev/null +++ b/easybuild/easyconfigs/s/Scalene/Scalene-1.5.26-GCCcore-12.2.0.eb @@ -0,0 +1,45 @@ +easyblock = 'PythonBundle' + +name = 'Scalene' +version = '1.5.26' + +homepage = 'https://github.com/plasma-umass/scalene' +description = """Scalene is a high-performance CPU, GPU and memory profiler for Python that does a number of things +that other Python profilers do not and cannot do. It runs orders of magnitude faster than other profilers while +delivering far more detailed information.""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +builddependencies = [ + ('binutils', '2.39'), +] + +dependencies = [ + ('Python', '3.10.8'), +] + +use_pip = True + +exts_list = [ + ('cloudpickle', '2.2.1', { + 'checksums': ['d89684b8de9e34a2a43b3460fbca07d09d6e25ce858df4d5a44240403b6178f5'], + }), + ('pynvml', '11.4.1', { + 'checksums': ['b2e4a33b80569d093b513f5804db0c7f40cfc86f15a013ae7a8e99c5e175d5dd'], + }), + (name, version, { + 'source_tmpl': '%(namelower)s-%(version)s.tar.gz', + 'checksums': ['dfff2232193f5fe8d414adb2b01acc0d10bbf67d4c0df7a94465ec726fd9e32c'], + }), +] + +sanity_check_paths = { + 'files': ['bin/scalene'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["scalene --help"] + +sanity_pip_check = True + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/SignalP/SignalP-6.0h-foss-2022b-fast.eb b/easybuild/easyconfigs/s/SignalP/SignalP-6.0h-foss-2022b-fast.eb new file mode 100644 index 00000000000..59b117b9c68 --- /dev/null +++ b/easybuild/easyconfigs/s/SignalP/SignalP-6.0h-foss-2022b-fast.eb @@ -0,0 +1,52 @@ +# This file is an EasyBuild reciPY as per https://easybuilders.github.io/easybuild/ +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'PythonPackage' + +name = 'SignalP' +version = '6.0h' +_suffix = 'fast' +versionsuffix = '-' + _suffix + +homepage = 'https://services.healthtech.dtu.dk/software.php' +description = """SignalP predicts the presence and location of signal peptide cleavage sites +in amino acid sequences from different organisms""" + +toolchain = {'name': 'foss', 'version': '2022b'} + +download_instructions = """ +SignalP requires registration and acceptance of licence terms (academic use only). + [1] go to: https://services.healthtech.dtu.dk/service.php?SignalP-6.0 + [2] navigate to the "Downloads" tab + [3] select "%s" type under version "%%(version)s" + [4] complete the form; you should receive a download link via email +""" % _suffix + +sources = ['%%(namelower)s-%%(version)s.%s.tar.gz' % _suffix] +checksums = ['4afe3c004e23a1d6518cefb23448b4d5ede5f1c5b276db541f839f0615822125'] + +unpack_options = '--strip-components=1' + +dependencies = [ + ('Python', '3.10.8'), + ('SciPy-bundle', '2023.02'), # numpy > 1.19.2 + ('tqdm', '4.64.1'), # tqdm > 4.46.1 + ('PyTorch', '1.13.1'), # torch > 1.7.0 + ('matplotlib', '3.7.0'), # matplotlib > 3.3.2 +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +_bin = '%%(namelower)s%s' % version[0] +sanity_check_paths = { + 'files': ['bin/%s' % _bin], + 'dirs': ['lib/python%(pyshortver)s/site-packages/%(namelower)s'], +} + +sanity_check_commands = ['%s --help' % _bin] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/StringTie/StringTie-2.2.1-GCC-11.2.0-Python-2.7.18.eb b/easybuild/easyconfigs/s/StringTie/StringTie-2.2.1-GCC-11.2.0-Python-2.7.18.eb new file mode 100644 index 00000000000..e5106af9959 --- /dev/null +++ b/easybuild/easyconfigs/s/StringTie/StringTie-2.2.1-GCC-11.2.0-Python-2.7.18.eb @@ -0,0 +1,50 @@ +# This file is an EasyBuild reciPY as per https://easybuilders.github.io/easybuild/ +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = 'StringTie' +version = '2.2.1' +versionsuffix = "-Python-%(pyver)s" + +homepage = 'https://ccb.jhu.edu/software/stringtie/' +description = 'StringTie is a fast and highly efficient assembler of RNA-Seq alignments into potential transcripts' + +toolchain = {'name': 'GCC', 'version': '11.2.0'} + +source_urls = ['https://github.com/gpertea/%(namelower)s/releases/download/v%(version)s'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['ce4eec532bbbe39af462be844afa6395ab38fa3418ef5fc2431e2d6194129527'] + +dependencies = [ + ('bzip2', '1.0.8'), + ('libdeflate', '1.8'), + ('XZ', '5.2.5'), + ('zlib', '1.2.11'), + ('HTSlib', '1.14'), + ('Python', '2.7.18'), +] + +local_libs = 'HTSLIB="$EBROOTHTSLIB/lib" LIBS="-lhts -lbz2 -llzma -ldeflate -lz $LIBS"' +buildopts = 'release ' + local_libs + +# the test script downloads some test data from the internet +runtest = 'test' +testopts = local_libs + +files_to_copy = [ + (['%(namelower)s', 'prepDE.py3'], 'bin'), + 'README.md', + 'LICENSE' +] + +sanity_check_paths = { + 'files': ['bin/%(namelower)s'], + 'dirs': [], +} + +sanity_check_commands = ['%(namelower)s --help', 'prepDE.py3 --help'] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/scCODA/scCODA-0.1.9-foss-2021a.eb b/easybuild/easyconfigs/s/scCODA/scCODA-0.1.9-foss-2021a.eb new file mode 100644 index 00000000000..8109d113cb5 --- /dev/null +++ b/easybuild/easyconfigs/s/scCODA/scCODA-0.1.9-foss-2021a.eb @@ -0,0 +1,36 @@ +easyblock = 'PythonBundle' + +name = 'scCODA' +version = '0.1.9' + +homepage = 'https://github.com/theislab/scCODA' +description = """scCODA allows for identification of compositional changes in high-throughput sequencing count data, +especially cell compositions from scRNA-seq.""" + +toolchain = {'name': 'foss', 'version': '2021a'} + +dependencies = [ + ('Python', '3.9.5'), + ('SciPy-bundle', '2021.05'), + ('matplotlib', '3.4.2'), + ('TensorFlow', '2.6.0'), + ('tensorflow-probability', '0.14.0'), + ('scanpy', '1.8.1'), + ('scikit-bio', '0.5.7'), + ('rpy2', '3.4.5'), + ('ArviZ', '0.12.1'), +] + +use_pip = True + +exts_list = [ + (name, version, { + 'checksums': ['786692a5ca546985583784179a6b2d535a54b37b30892fb9e264c5e854585dac'], + # strip out too strict version requirements for Python packages required as dependencies + 'preinstallopts': "sed -i 's/>=[0-9.]*//g' setup.py && ", + }), +] + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/scikit-bio/scikit-bio-0.5.7-foss-2021a.eb b/easybuild/easyconfigs/s/scikit-bio/scikit-bio-0.5.7-foss-2021a.eb new file mode 100644 index 00000000000..a0f9491eb9e --- /dev/null +++ b/easybuild/easyconfigs/s/scikit-bio/scikit-bio-0.5.7-foss-2021a.eb @@ -0,0 +1,47 @@ +easyblock = 'PythonBundle' + +name = 'scikit-bio' +version = '0.5.7' + +homepage = 'http://scikit-bio.org' +description = """scikit-bio is an open-source, BSD-licensed Python 3 package providing data structures, algorithms +and educational resources for bioinformatics.""" + +toolchain = {'name': 'foss', 'version': '2021a'} + +dependencies = [ + ('Python', '3.9.5'), + ('SciPy-bundle', '2021.05'), + ('matplotlib', '3.4.2'), + ('scikit-learn', '0.24.2'), + ('IPython', '7.25.0'), + ('h5py', '3.2.1'), + ('Pillow', '8.2.0'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('msgpack', '1.0.5', { + 'checksums': ['c075544284eadc5cddc70f4757331d99dcbc16b2bbd4849d15f8aae4cf36d31c'], + }), + ('CacheControl', '0.12.14', { + 'checksums': ['d1087f45781c0e00616479bfd282c78504371ca71da017b49df9f5365a95feba'], + }), + ('hdmedians', '0.14.2', { + 'checksums': ['b47aecb16771e1ba0736557255d80ae0240b09156bff434321de559b359ac2d6'], + }), + ('lockfile', '0.12.2', { + 'checksums': ['6aed02de03cba24efabcd600b30540140634fc06cfa603822d508d5361e9f799'], + }), + ('natsort', '8.4.0', { + 'checksums': ['45312c4a0e5507593da193dedd04abb1469253b601ecaf63445ad80f0a1ea581'], + }), + (name, version, { + 'modulename': 'skbio', + 'checksums': ['6343ca0c621e2fcc5d1c042c8be3200664c5325956a83bea751cf1bcc75d1da9'], + }), +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/scikit-build-core/scikit-build-core-0.5.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/s/scikit-build-core/scikit-build-core-0.5.0-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..672a73b4031 --- /dev/null +++ b/easybuild/easyconfigs/s/scikit-build-core/scikit-build-core-0.5.0-GCCcore-12.3.0.eb @@ -0,0 +1,33 @@ +easyblock = 'PythonBundle' + +name = 'scikit-build-core' +version = '0.5.0' + +homepage = 'https://scikit-build.readthedocs.io/en/latest/' +description = """Scikit-build-core is a complete ground-up rewrite of scikit-build on top of +modern packaging APIs. It provides a bridge between CMake and the Python build +system, allowing you to make Python modules with CMake.""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +builddependencies = [ + ('binutils', '2.40'), + ('hatchling', '1.18.0'), +] + +dependencies = [ + ('Python', '3.11.3'), + ('Python-bundle-PyPI', '2023.06'), + ('CMake', '3.26.3'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('scikit_build_core', version, { + 'checksums': ['a42a95029b34b5cf892855342d9b9445c774cb797fcb24c8fc4c2fb42b18dfca'], + }), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/s/scikit-learn/scikit-learn-0.20.3_fix-cd_fast.patch b/easybuild/easyconfigs/s/scikit-learn/scikit-learn-0.20.3_fix-cd_fast.patch new file mode 100644 index 00000000000..46ddfdbb9e7 --- /dev/null +++ b/easybuild/easyconfigs/s/scikit-learn/scikit-learn-0.20.3_fix-cd_fast.patch @@ -0,0 +1,44 @@ +fix "error: type of formal parameter 1 is incomplete" +see also https://bugs.gentoo.org/630294 +--- scikit-learn-0.20.3.orig/sklearn/linear_model/cd_fast.c 2019-08-09 03:05:05.351926119 +0500 ++++ scikit-learn-0.20.3.orig/sklearn/linear_model/cd_fast.c 2019-08-09 03:05:35.022926006 +0500 +@@ -4889,7 +4889,7 @@ + + static PyObject *__pyx_pf_7sklearn_12linear_model_7cd_fast_8enet_coordinate_descent(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_w, float __pyx_v_alpha, float __pyx_v_beta, __Pyx_memviewslice __pyx_v_X, __Pyx_memviewslice __pyx_v_y, int __pyx_v_max_iter, float __pyx_v_tol, PyObject *__pyx_v_rng, int __pyx_v_random, int __pyx_v_positive) { + PyObject *__pyx_v_dtype = NULL; +- void (*__pyx_v_gemv)(enum CBLAS_ORDER, enum CBLAS_TRANSPOSE, int, int, float, float *, int, float *, int, float, float *, int); ++ void (*__pyx_v_gemv)(CBLAS_ORDER, CBLAS_TRANSPOSE, int, int, float, float *, int, float *, int, float, float *, int); + float (*__pyx_v_dot)(int, float *, int, float *, int); + void (*__pyx_v_axpy)(int, float, float *, int, float *, int); + float (*__pyx_v_asum)(int, float *, int); +@@ -6279,7 +6279,7 @@ + + static PyObject *__pyx_pf_7sklearn_12linear_model_7cd_fast_10enet_coordinate_descent(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_w, double __pyx_v_alpha, double __pyx_v_beta, __Pyx_memviewslice __pyx_v_X, __Pyx_memviewslice __pyx_v_y, int __pyx_v_max_iter, double __pyx_v_tol, PyObject *__pyx_v_rng, int __pyx_v_random, int __pyx_v_positive) { + PyObject *__pyx_v_dtype = NULL; +- void (*__pyx_v_gemv)(enum CBLAS_ORDER, enum CBLAS_TRANSPOSE, int, int, double, double *, int, double *, int, double, double *, int); ++ void (*__pyx_v_gemv)(CBLAS_ORDER, CBLAS_TRANSPOSE, int, int, double, double *, int, double *, int, double, double *, int); + double (*__pyx_v_dot)(int, double *, int, double *, int); + void (*__pyx_v_axpy)(int, double, double *, int, double *, int); + double (*__pyx_v_asum)(int, double *, int); +@@ -16246,8 +16246,8 @@ + CYTHON_UNUSED float (*__pyx_v_asum)(int, float *, int); + void (*__pyx_v_copy)(int, float *, int, float *, int); + void (*__pyx_v_scal)(int, float, float *, int); +- void (*__pyx_v_ger)(enum CBLAS_ORDER, int, int, float, float *, int, float *, int, float *, int); +- void (*__pyx_v_gemv)(enum CBLAS_ORDER, enum CBLAS_TRANSPOSE, int, int, float, float *, int, float *, int, float, float *, int); ++ void (*__pyx_v_ger)(CBLAS_ORDER, int, int, float, float *, int, float *, int, float *, int); ++ void (*__pyx_v_gemv)(CBLAS_ORDER, CBLAS_TRANSPOSE, int, int, float, float *, int, float *, int, float, float *, int); + unsigned int __pyx_v_n_samples; + unsigned int __pyx_v_n_features; + unsigned int __pyx_v_n_tasks; +@@ -17965,8 +17965,8 @@ + CYTHON_UNUSED double (*__pyx_v_asum)(int, double *, int); + void (*__pyx_v_copy)(int, double *, int, double *, int); + void (*__pyx_v_scal)(int, double, double *, int); +- void (*__pyx_v_ger)(enum CBLAS_ORDER, int, int, double, double *, int, double *, int, double *, int); +- void (*__pyx_v_gemv)(enum CBLAS_ORDER, enum CBLAS_TRANSPOSE, int, int, double, double *, int, double *, int, double, double *, int); ++ void (*__pyx_v_ger)(CBLAS_ORDER, int, int, double, double *, int, double *, int, double *, int); ++ void (*__pyx_v_gemv)(CBLAS_ORDER, CBLAS_TRANSPOSE, int, int, double, double *, int, double *, int, double, double *, int); + unsigned int __pyx_v_n_samples; + unsigned int __pyx_v_n_features; + unsigned int __pyx_v_n_tasks; diff --git a/easybuild/easyconfigs/s/scikit-learn/scikit-learn-0.20.4-foss-2021b-Python-2.7.18.eb b/easybuild/easyconfigs/s/scikit-learn/scikit-learn-0.20.4-foss-2021b-Python-2.7.18.eb new file mode 100644 index 00000000000..2e978bde2c2 --- /dev/null +++ b/easybuild/easyconfigs/s/scikit-learn/scikit-learn-0.20.4-foss-2021b-Python-2.7.18.eb @@ -0,0 +1,38 @@ +easyblock = 'PythonBundle' + +name = 'scikit-learn' +version = '0.20.4' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://scikit-learn.org/stable/index.html' +description = """Scikit-learn integrates machine learning algorithms in the tightly-knit scientific Python world, +building upon numpy, scipy, and matplotlib. As a machine-learning module, +it provides versatile tools for data mining and analysis in any field of science and engineering. +It strives to be simple and efficient, accessible to everybody, and reusable in various contexts.""" + +toolchain = {'name': 'foss', 'version': '2021b'} + +dependencies = [ + ('Python', '2.7.18'), + ('SciPy-bundle', '2021.10', versionsuffix) +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + (name, version, { + 'patches': ['scikit-learn-0.20.3_fix-cd_fast.patch'], + 'checksums': [ + {'scikit-learn-0.20.4.tar.gz': 'dfa8a3f33907614030cdfbc8b6f553dacbecaf09f922244f128af3060a137cfc'}, + {'scikit-learn-0.20.3_fix-cd_fast.patch': + '9a98785a99bde000a58048ccbe382ea362aa8cf644171097e8ae755cddddeb75'}, + ], + 'modulename': 'sklearn', + }), + ('sklearn', '0.0', { + 'checksums': ['e23001573aa194b834122d2b9562459bf5ae494a2d59ca6b8aa22c85a44c0e31'], + }), +] + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/s/scikit-learn/scikit-learn-1.3.1-gfbf-2023a.eb b/easybuild/easyconfigs/s/scikit-learn/scikit-learn-1.3.1-gfbf-2023a.eb new file mode 100644 index 00000000000..e4e1fa10b81 --- /dev/null +++ b/easybuild/easyconfigs/s/scikit-learn/scikit-learn-1.3.1-gfbf-2023a.eb @@ -0,0 +1,33 @@ +easyblock = 'PythonBundle' + +name = 'scikit-learn' +version = '1.3.1' + +homepage = 'https://scikit-learn.org/stable/index.html' +description = """Scikit-learn integrates machine learning algorithms in the tightly-knit scientific Python world, +building upon numpy, scipy, and matplotlib. As a machine-learning module, +it provides versatile tools for data mining and analysis in any field of science and engineering. +It strives to be simple and efficient, accessible to everybody, and reusable in various contexts.""" + +toolchain = {'name': 'gfbf', 'version': '2023a'} + +dependencies = [ + ('Python', '3.11.3'), + ('Python-bundle-PyPI', '2023.06'), + ('SciPy-bundle', '2023.07'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + (name, version, { + 'modulename': 'sklearn', + 'checksums': ['1a231cced3ee3fa04756b4a7ab532dc9417acd581a330adff5f2c01ac2831fcf'], + }), + ('sklearn', '0.0', { + 'checksums': ['e23001573aa194b834122d2b9562459bf5ae494a2d59ca6b8aa22c85a44c0e31'], + }), +] + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/s/scikit-optimize/scikit-optimize-0.9.0-foss-2022a.eb b/easybuild/easyconfigs/s/scikit-optimize/scikit-optimize-0.9.0-foss-2022a.eb new file mode 100644 index 00000000000..84e68863420 --- /dev/null +++ b/easybuild/easyconfigs/s/scikit-optimize/scikit-optimize-0.9.0-foss-2022a.eb @@ -0,0 +1,31 @@ +easyblock = 'PythonPackage' + +name = 'scikit-optimize' +version = '0.9.0' + +homepage = 'https://scikit-optimize.github.io' +description = """ +Scikit-Optimize, or skopt, is a simple and efficient library to minimize (very) expensive +and noisy black-box functions. +""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +sources = [SOURCE_TAR_GZ] +checksums = ['77d8c9e64947fc9f5cc05bbc6aed7b8a9907871ae26fe11997fd67be90f26008'] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('scikit-learn', '1.1.2'), + ('matplotlib', '3.5.2'), + ('pretty-yaml', '23.9.5'), +] + +options = {'modulename': 'skopt'} + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/s/segemehl/segemehl-0.3.4-GCC-10.2.0.eb b/easybuild/easyconfigs/s/segemehl/segemehl-0.3.4-GCC-10.2.0.eb index f6c29cfd247..80454f74e01 100644 --- a/easybuild/easyconfigs/s/segemehl/segemehl-0.3.4-GCC-10.2.0.eb +++ b/easybuild/easyconfigs/s/segemehl/segemehl-0.3.4-GCC-10.2.0.eb @@ -14,7 +14,7 @@ description = """segemehl is a software to map short sequencer reads to referenc toolchain = {'name': 'GCC', 'version': '10.2.0'} -source_urls = ['https://www.bioinf.uni-leipzig.de/Software/segemehl/downloads/'] +source_urls = ['http://legacy.bioinf.uni-leipzig.de/Software/segemehl/downloads/'] sources = [SOURCE_TAR_GZ] checksums = ['e4336f03d0d15126dbb1c6368c7e80421b0c7354f4a6b492d54d7d14cf5a7f51'] diff --git a/easybuild/easyconfigs/s/segemehl/segemehl-0.3.4-GCC-10.3.0.eb b/easybuild/easyconfigs/s/segemehl/segemehl-0.3.4-GCC-10.3.0.eb index 38fb0cbe9c3..9b5f304a8f3 100644 --- a/easybuild/easyconfigs/s/segemehl/segemehl-0.3.4-GCC-10.3.0.eb +++ b/easybuild/easyconfigs/s/segemehl/segemehl-0.3.4-GCC-10.3.0.eb @@ -14,7 +14,7 @@ description = """segemehl is a software to map short sequencer reads to referenc toolchain = {'name': 'GCC', 'version': '10.3.0'} -source_urls = ['https://www.bioinf.uni-leipzig.de/Software/%(name)s/downloads/'] +source_urls = ['http://legacy.bioinf.uni-leipzig.de/Software/segemehl/downloads/'] sources = [SOURCE_TAR_GZ] checksums = ['e4336f03d0d15126dbb1c6368c7e80421b0c7354f4a6b492d54d7d14cf5a7f51'] diff --git a/easybuild/easyconfigs/s/segemehl/segemehl-0.3.4-GCC-11.2.0.eb b/easybuild/easyconfigs/s/segemehl/segemehl-0.3.4-GCC-11.2.0.eb index d97799dd2d0..6bcb70c71ca 100644 --- a/easybuild/easyconfigs/s/segemehl/segemehl-0.3.4-GCC-11.2.0.eb +++ b/easybuild/easyconfigs/s/segemehl/segemehl-0.3.4-GCC-11.2.0.eb @@ -14,7 +14,7 @@ description = """segemehl is a software to map short sequencer reads to referenc toolchain = {'name': 'GCC', 'version': '11.2.0'} -source_urls = ['https://www.bioinf.uni-leipzig.de/Software/%(name)s/downloads/'] +source_urls = ['http://legacy.bioinf.uni-leipzig.de/Software/segemehl/downloads/'] sources = [SOURCE_TAR_GZ] checksums = ['e4336f03d0d15126dbb1c6368c7e80421b0c7354f4a6b492d54d7d14cf5a7f51'] diff --git a/easybuild/easyconfigs/s/segemehl/segemehl-0.3.4-GCC-8.3.0.eb b/easybuild/easyconfigs/s/segemehl/segemehl-0.3.4-GCC-8.3.0.eb index ba8b90537df..24a9d475ca2 100644 --- a/easybuild/easyconfigs/s/segemehl/segemehl-0.3.4-GCC-8.3.0.eb +++ b/easybuild/easyconfigs/s/segemehl/segemehl-0.3.4-GCC-8.3.0.eb @@ -14,7 +14,7 @@ description = """segemehl is a software to map short sequencer reads to referenc toolchain = {'name': 'GCC', 'version': '8.3.0'} -source_urls = ['https://www.bioinf.uni-leipzig.de/Software/segemehl/downloads/'] +source_urls = ['http://legacy.bioinf.uni-leipzig.de/Software/segemehl/downloads/'] sources = [SOURCE_TAR_GZ] checksums = ['e4336f03d0d15126dbb1c6368c7e80421b0c7354f4a6b492d54d7d14cf5a7f51'] diff --git a/easybuild/easyconfigs/s/segemehl/segemehl-0.3.4-foss-2018b.eb b/easybuild/easyconfigs/s/segemehl/segemehl-0.3.4-foss-2018b.eb index aa8fab696d1..6079ca070ef 100644 --- a/easybuild/easyconfigs/s/segemehl/segemehl-0.3.4-foss-2018b.eb +++ b/easybuild/easyconfigs/s/segemehl/segemehl-0.3.4-foss-2018b.eb @@ -16,7 +16,7 @@ description = """ segemehl is a software to map short sequencer reads to referen toolchain = {'name': 'foss', 'version': '2018b'} -source_urls = ['http://www.bioinf.uni-leipzig.de/Software/segemehl/downloads/'] +source_urls = ['http://legacy.bioinf.uni-leipzig.de/Software/segemehl/downloads/'] sources = [SOURCE_TAR_GZ] checksums = ['e4336f03d0d15126dbb1c6368c7e80421b0c7354f4a6b492d54d7d14cf5a7f51'] diff --git a/easybuild/easyconfigs/s/segemehl/segemehl-0.3.4-iccifort-2020.4.304.eb b/easybuild/easyconfigs/s/segemehl/segemehl-0.3.4-iccifort-2020.4.304.eb index 1dba3da2387..e9ae1cd8875 100644 --- a/easybuild/easyconfigs/s/segemehl/segemehl-0.3.4-iccifort-2020.4.304.eb +++ b/easybuild/easyconfigs/s/segemehl/segemehl-0.3.4-iccifort-2020.4.304.eb @@ -14,7 +14,7 @@ description = """segemehl is a software to map short sequencer reads to referenc toolchain = {'name': 'iccifort', 'version': '2020.4.304'} -source_urls = ['https://www.bioinf.uni-leipzig.de/Software/segemehl/downloads/'] +source_urls = ['http://legacy.bioinf.uni-leipzig.de/Software/segemehl/downloads/'] sources = [SOURCE_TAR_GZ] checksums = ['e4336f03d0d15126dbb1c6368c7e80421b0c7354f4a6b492d54d7d14cf5a7f51'] diff --git a/easybuild/easyconfigs/s/segmentation-models-pytorch/segmentation-models-pytorch-0.3.3-foss-2022a.eb b/easybuild/easyconfigs/s/segmentation-models-pytorch/segmentation-models-pytorch-0.3.3-foss-2022a.eb new file mode 100644 index 00000000000..8562db1e66e --- /dev/null +++ b/easybuild/easyconfigs/s/segmentation-models-pytorch/segmentation-models-pytorch-0.3.3-foss-2022a.eb @@ -0,0 +1,44 @@ +easyblock = 'PythonBundle' + +name = 'segmentation-models-pytorch' +version = '0.3.3' + +homepage = 'https://github.com/qubvel/segmentation_models.pytorch' +description = "Python library with Neural Networks for Image Segmentation based on PyTorch." + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('PyTorch', '1.12.0'), + ('torchvision', '0.13.1'), + ('Safetensors', '0.3.1'), + ('tqdm', '4.64.0'), +] + +use_pip = True + +exts_list = [ + ('munch', '2.5.0', { + 'checksums': ['2d735f6f24d4dba3417fa448cae40c6e896ec1fdab6cdb5e6510999758a4dbd2'], + }), + ('pretrainedmodels', '0.7.4', { + 'checksums': ['7e77ead4619a3e11ab3c41982c8ad5b86edffe37c87fd2a37ec3c2cc6470b98a'], + }), + ('efficientnet_pytorch', '0.7.1', { + 'checksums': ['00b9b261effce59d2d47aae2ad238c29a2a65175470f41ada7ecac439b7c1ee1'], + }), + ('huggingface_hub', '0.15.1', { + 'checksums': ['a61b7d1a7769fe10119e730277c72ab99d95c48d86a3d6da3e9f3d0f632a4081'], + }), + ('timm', '0.9.2', { + 'checksums': ['d0977cc5e02c69bda979fca8b52aa315a5f2cb64ebf8ad2c4631b1e452762c14'], + }), + ('segmentation_models_pytorch', version, { + 'checksums': ['b3b21ab4cd26a6b2b9e7a6ed466ace6452eb26ed3c31ae491ea2d7cbb01e384b'], + }), +] + +sanity_pip_check = True + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/s/spglib-python/spglib-python-2.1.0-gfbf-2023a.eb b/easybuild/easyconfigs/s/spglib-python/spglib-python-2.1.0-gfbf-2023a.eb new file mode 100644 index 00000000000..1e0edd77069 --- /dev/null +++ b/easybuild/easyconfigs/s/spglib-python/spglib-python-2.1.0-gfbf-2023a.eb @@ -0,0 +1,32 @@ +easyblock = 'PythonBundle' + +name = 'spglib-python' +version = '2.1.0' + +homepage = 'https://pypi.python.org/pypi/spglib' +description = "Spglib for Python. Spglib is a library for finding and handling crystal symmetries written in C." + +toolchain = {'name': 'gfbf', 'version': '2023a'} + +builddependencies = [ + ('scikit-build-core', '0.5.0'), +] + +dependencies = [ + ('Python', '3.11.3'), + ('SciPy-bundle', '2023.07'), +] + +sanity_pip_check = True +use_pip = True + +exts_list = [ + ('pyproject-metadata', '0.7.1', { + 'checksums': ['0a94f18b108b9b21f3a26a3d541f056c34edcb17dc872a144a15618fed7aef67'], + }), + ('spglib', version, { + 'checksums': ['8143545fdffc11fbcda4d705a6b6bcd4889de9bc3524b78df866a36dd0de0a4b'], + }), +] + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/s/starparser/starparser-1.49-foss-2022a.eb b/easybuild/easyconfigs/s/starparser/starparser-1.49-foss-2022a.eb new file mode 100644 index 00000000000..8757a5fc6a5 --- /dev/null +++ b/easybuild/easyconfigs/s/starparser/starparser-1.49-foss-2022a.eb @@ -0,0 +1,38 @@ +# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2023/10 +easyblock = 'PythonBundle' + +name = 'starparser' +version = '1.49' + +homepage = 'https://github.com/sami-chaaban/starparser' +description = """Use this package to manipulate Relion star files, including counting, modifying, +plotting, and sifting the data. At the very least, this is a useful alternative +to awk commands, which can get awkward. Below is a description of the command- +line options with some examples. Alternatively, use starparser within Relion or +load the modules in your own Python scripts.""" + +toolchain = {'name': 'foss', 'version': '2022a'} +use_pip = True + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('matplotlib', '3.5.2'), +] + +exts_list = [ + (name, version, { + 'checksums': ['6d7e2c11d1887970b66c08b2b7876a210f9c544cf13580320e841fb587167a68'], + }), +] + +sanity_pip_check = True + +sanity_check_commands = ['starparser -h'] + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/%(name)s'], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/sympy/sympy-1.12-gfbf-2022b.eb b/easybuild/easyconfigs/s/sympy/sympy-1.12-gfbf-2022b.eb new file mode 100644 index 00000000000..f532c554390 --- /dev/null +++ b/easybuild/easyconfigs/s/sympy/sympy-1.12-gfbf-2022b.eb @@ -0,0 +1,21 @@ +name = 'sympy' +version = '1.12' + +homepage = 'https://sympy.org/' +description = """SymPy is a Python library for symbolic mathematics. It aims to + become a full-featured computer algebra system (CAS) while keeping the code as + simple as possible in order to be comprehensible and easily extensible. SymPy + is written entirely in Python and does not require any external libraries.""" + +toolchain = {'name': 'gfbf', 'version': '2022b'} + +sources = [SOURCE_TAR_GZ] +checksums = ['ebf595c8dac3e0fdc4152c51878b498396ec7f30e7a914d6071e674d49420fb8'] + +dependencies = [ + ('Python', '3.10.8'), + ('SciPy-bundle', '2023.02'), + ('gmpy2', '2.1.5'), +] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/s/synapseclient/synapseclient-3.0.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/s/synapseclient/synapseclient-3.0.0-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..9efa6975683 --- /dev/null +++ b/easybuild/easyconfigs/s/synapseclient/synapseclient-3.0.0-GCCcore-12.2.0.eb @@ -0,0 +1,51 @@ +easyblock = 'PythonBundle' + +name = 'synapseclient' +version = '3.0.0' + +homepage = 'https://help.synapse.org/docs/' +description = """The synapseclient package provides an interface to Synapse, a collaborative, open-source + research platform that allows teams to share data, track analyses, and collaborate, providing support for: + + integrated presentation of data, code and text + fine grained access control + provenance tracking + The synapseclient package lets you communicate with the cloud-hosted Synapse service to access data and + create shared data analysis projects from within Python scripts or at the interactive Python console. + Other Synapse clients exist for R, Java, and the web. The Python client can also be used from the command line.""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +builddependencies = [ + ('binutils', '2.39'), +] +dependencies = [ + ('Python', '3.10.8'), +] + +use_pip = True + +exts_list = [ + ('wrapt', '1.14.1', { + 'checksums': ['380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d'], + }), + ('Deprecated', '1.2.14', { + 'checksums': ['e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3'], + }), + ('cryptography', '3.3.2', { + 'checksums': ['5a60d3780149e13b7a6ff7ad6526b38846354d11a15e21068e57073e29e19bed'], + }), + ('keyring', '23.4.1', { + 'checksums': ['89cbd74d4683ed164c8082fb38619341097741323b3786905c6dac04d6915a55'], + }), + ('keyrings.alt', '3.1', { + 'checksums': ['b59c86b67b9027a86e841a49efc41025bcc3b1b0308629617b66b7011e52db5a'], + }), + (name, version, { + 'checksums': ['788289dc42a51a974efda747b75c634b6a6b38c089a4263affb8ca4ed75a0d04'], + }), +] + +sanity_pip_check = True + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.13-GCCcore-13.2.0.eb b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.13-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..d23dd269e1d --- /dev/null +++ b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.13-GCCcore-13.2.0.eb @@ -0,0 +1,41 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.13' + +homepage = 'https://www.tcl.tk/' +description = """ + Tcl (Tool Command Language) is a very powerful but easy to learn dynamic + programming language, suitable for a very wide range of uses, including web + and desktop applications, networking, administration, testing and many more. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['http://prdownloads.sourceforge.net/%(namelower)s'] +sources = ['%(namelower)s%(version)s-src.tar.gz'] +checksums = ['43a1fae7412f61ff11de2cfd05d28cfc3a73762f354a417c62370a54e2caf066'] + +builddependencies = [ + ('binutils', '2.40'), +] +dependencies = [ + ('zlib', '1.2.13'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +postinstallcmds = ['ln -s %(installdir)s/bin/tclsh%(version_major)s.%(version_minor)s %(installdir)s/bin/tclsh'] + +sanity_check_paths = { + 'files': ['bin/tclsh%(version_major)s.%(version_minor)s', 'bin/tclsh', + 'include/tcl.h', 'lib/libtcl%%(version_major)s.%%(version_minor)s.%s' % SHLIB_EXT, + 'lib/tclConfig.sh', 'man/man1/tclsh.1'], + 'dirs': ['share'], +} + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/t/TensorRT/TensorRT-8.6.1-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/t/TensorRT/TensorRT-8.6.1-foss-2022a-CUDA-11.7.0.eb new file mode 100644 index 00000000000..d3862ffba61 --- /dev/null +++ b/easybuild/easyconfigs/t/TensorRT/TensorRT-8.6.1-foss-2022a-CUDA-11.7.0.eb @@ -0,0 +1,26 @@ + +name = 'TensorRT' +version = '8.6.1' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://developer.nvidia.com/tensorrt' +description = """NVIDIA TensorRT is a platform for high-performance deep learning inference""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +download_instructions = "Manual download from https://developer.nvidia.com/nvidia-tensorrt-8x-download " +sources = ['%(name)s-%(version)s.6.Linux.x86_64-gnu.cuda-11.8.tar.gz'] +checksums = ['15bfe6053d45feec45ecc7123a9106076b0b43fa0435f242d89dca0778337759'] + +builddependencies = [ + ('protobuf', '3.19.4'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('CUDA', '11.7.0', '', SYSTEM), + ('cuDNN', '8.4.1.50', '-CUDA-%(cudaver)s', SYSTEM), + ('protobuf-python', '3.19.4'), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.13-GCCcore-12.3.0.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.13-GCCcore-12.3.0.eb index f4a7cfcf052..bfdd55b8d55 100644 --- a/easybuild/easyconfigs/t/Tk/Tk-8.6.13-GCCcore-12.3.0.eb +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.13-GCCcore-12.3.0.eb @@ -11,8 +11,10 @@ toolchain = {'name': 'GCCcore', 'version': '12.3.0'} source_urls = ["https://prdownloads.sourceforge.net/tcl"] sources = ['%(namelower)s%(version)s-src.tar.gz'] +patches = ['Tk-8.6.13_different-prefix-with-tcl.patch'] checksums = [ {'tk8.6.13-src.tar.gz': '2e65fa069a23365440a3c56c556b8673b5e32a283800d8d9b257e3f584ce0675'}, + {'Tk-8.6.13_different-prefix-with-tcl.patch': 'e136ff60dfe7fc4b14d98af00cf89522fbfd106e75b0a9259f410a8bfa732534'}, ] builddependencies = [('binutils', '2.40')] diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.13-GCCcore-13.2.0.eb b/easybuild/easyconfigs/t/Tk/Tk-8.6.13-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..966857de663 --- /dev/null +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.13-GCCcore-13.2.0.eb @@ -0,0 +1,40 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.13' + +homepage = 'https://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for + building a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ["https://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] +patches = ['Tk-8.6.13_different-prefix-with-tcl.patch'] +checksums = [ + {'tk8.6.13-src.tar.gz': '2e65fa069a23365440a3c56c556b8673b5e32a283800d8d9b257e3f584ce0675'}, + {'Tk-8.6.13_different-prefix-with-tcl.patch': 'e136ff60dfe7fc4b14d98af00cf89522fbfd106e75b0a9259f410a8bfa732534'}, +] + +builddependencies = [('binutils', '2.40')] +dependencies = [ + ('Tcl', version), + ('X11', '20231019'), + ('zlib', '1.2.13'), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib CFLAGS="-I$EBROOTTCL/include"' + +installopts = "&& make install-private-headers" + +postinstallcmds = ["ln -s wish%(version_major_minor)s %(installdir)s/bin/wish"] + +sanity_check_paths = { + 'files': ["bin/wish", "lib/tkConfig.sh", "include/tkInt.h"], + 'dirs': [], +} + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/t/Tk/Tk-8.6.13_different-prefix-with-tcl.patch b/easybuild/easyconfigs/t/Tk/Tk-8.6.13_different-prefix-with-tcl.patch new file mode 100644 index 00000000000..2e249803b28 --- /dev/null +++ b/easybuild/easyconfigs/t/Tk/Tk-8.6.13_different-prefix-with-tcl.patch @@ -0,0 +1,31 @@ +fix for: + _tkinter.TclError: Can't find a usable tk.tcl in the following directories: ... +based on https://github.com/NixOS/nixpkgs/commit/decd2feb0a1bc80940e697fa66e3b25383360c30 +see also https://github.com/NixOS/nixpkgs/issues/1479 +author: Kenneth Hoste (HPC-UGent) + +Ported to 8.6.13 by Alexander Grund (TU Dresden) + +diff -ru tk8.6.13-orig/generic/tkWindow.c tk8.6.13/generic/tkWindow.c +--- tk8.6.13-orig/generic/tkWindow.c 2023-09-26 10:56:34.715911109 +0200 ++++ tk8.6.13/generic/tkWindow.c 2023-09-26 10:53:01.033046206 +0200 +@@ -1045,6 +1045,7 @@ + + Tcl_SetVar2(interp, "tk_patchLevel", NULL, TK_PATCH_LEVEL, TCL_GLOBAL_ONLY); + Tcl_SetVar2(interp, "tk_version", NULL, TK_VERSION, TCL_GLOBAL_ONLY); ++ Tcl_SetVar2(interp, "tk_library", NULL, TK_LIBRARY, TCL_GLOBAL_ONLY); + + tsdPtr->numMainWindows++; + return tkwin; +diff -ru tk8.6.13-orig/unix/Makefile.in tk8.6.13/unix/Makefile.in +--- tk8.6.13-orig/unix/Makefile.in 2023-09-26 10:54:29.370096346 +0200 ++++ tk8.6.13/unix/Makefile.in 2023-09-26 10:55:16.768513560 +0200 +@@ -1033,7 +1033,7 @@ + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkVisual.c + + tkWindow.o: $(GENERIC_DIR)/tkWindow.c tkUuid.h +- $(CC) -c $(CC_SWITCHES) -I. $(GENERIC_DIR)/tkWindow.c ++ $(CC) -c $(CC_SWITCHES) -DTK_LIBRARY=\"${TK_LIBRARY}\" -I. $(GENERIC_DIR)/tkWindow.c + + tkButton.o: $(GENERIC_DIR)/tkButton.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkButton.c diff --git a/easybuild/easyconfigs/t/Tkinter/Tkinter-3.11.5-GCCcore-13.2.0.eb b/easybuild/easyconfigs/t/Tkinter/Tkinter-3.11.5-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..0b58e634a69 --- /dev/null +++ b/easybuild/easyconfigs/t/Tkinter/Tkinter-3.11.5-GCCcore-13.2.0.eb @@ -0,0 +1,25 @@ +name = 'Tkinter' +version = '3.11.5' + +homepage = 'https://python.org/' +description = "Tkinter module, built with the Python buildsystem" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://www.python.org/ftp/python/%(version)s/'] +sources = ['Python-%(version)s.tgz'] +checksums = ['a12a0a013a30b846c786c010f2c19dd36b7298d888f7c4bd1581d90ce18b5e58'] + +builddependencies = [ + ('binutils', '2.40'), + ('libffi', '3.4.4'), +] + +dependencies = [ + ('Python', '3.11.5'), + ('Tk', '8.6.13'), + ('zlib', '1.2.13'), +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/t/TopHat/TopHat-2.1.2-GCC-11.2.0-Python-2.7.18.eb b/easybuild/easyconfigs/t/TopHat/TopHat-2.1.2-GCC-11.2.0-Python-2.7.18.eb new file mode 100644 index 00000000000..9a9f8d86dc5 --- /dev/null +++ b/easybuild/easyconfigs/t/TopHat/TopHat-2.1.2-GCC-11.2.0-Python-2.7.18.eb @@ -0,0 +1,57 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# Modified by: Adam Huffman +# The Francis Crick Institute + +easyblock = 'ConfigureMake' + +name = 'TopHat' +version = '2.1.2' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://ccb.jhu.edu/software/%(namelower)s/' +description = "TopHat is a fast splice junction mapper for RNA-Seq reads." + +toolchain = {'name': 'GCC', 'version': '11.2.0'} +toolchainopts = {'cstd': 'gnu++98', 'pic': True, 'static': True} + +github_account = 'infphilo' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%(version)s.tar.gz'] +patches = ['%(namelower)s-2.0.13-zlib.patch'] +checksums = [ + '15016b82255dad085d4ee7d970e50f0e53a280d466335553d47790d8344ff4b1', # v2.1.2.tar.gz + 'a33075c2affda995ddbd250933dbcaf94f68768b1eebead58a69705fc40306ef', # tophat-2.0.13-zlib.patch +] + +builddependencies = [ + ('Boost', '1.75.0'), + ('Autotools', '20210726'), +] + +dependencies = [ + ('zlib', '1.2.11'), + ('Python', '2.7.18'), +] + +preconfigopts = './autogen.sh && ' +configopts = '--with-boost=$EBROOTBOOST' +postinstallcmds = [ + "ls %(installdir)s", + "sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|g' %(installdir)s/bin/tophat"] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/%(namelower)s'], + 'dirs': [], +} + +sanity_check_commands = [ + "tophat --help 2>&1 | grep 'TopHat maps short sequences'", + "tophat --version", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/t/Trilinos/Trilinos-13.4.1-foss-2022a-zoltan.eb b/easybuild/easyconfigs/t/Trilinos/Trilinos-13.4.1-foss-2022a-zoltan.eb new file mode 100644 index 00000000000..572f0346229 --- /dev/null +++ b/easybuild/easyconfigs/t/Trilinos/Trilinos-13.4.1-foss-2022a-zoltan.eb @@ -0,0 +1,52 @@ +# easyblock = 'CMakeMake' + +name = 'Trilinos' +version = '13.4.1' +versionsuffix = '-zoltan' + +homepage = 'https://trilinos.org' +description = """The Trilinos Project is an effort to develop algorithms and enabling technologies + within an object-oriented software framework for the solution of large-scale, complex multi-physics + engineering and scientific problems. A unique design feature of Trilinos is its focus on packages.""" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'usempi': True, 'pic': True, 'strict': True} + +source_urls = ['https://github.com/trilinos/Trilinos/archive/refs/tags/'] +sources = ['trilinos-release-%s.tar.gz' % '-'.join(version.split('.'))] +patches = ['Trilinos-13.4.1_fix-seacas-NC-constants.patch'] +checksums = [ + {'trilinos-release-13-4-1.tar.gz': '5465cbff3de7ef4ac7d40eeff9d99342c00d9d20eee0a5f64f0a523093f5f1b3'}, + {'Trilinos-13.4.1_fix-seacas-NC-constants.patch': + 'df6215589abf582197a963c49ba853c1eca788261a1b1834099e7679794e9eed'}, +] + +builddependencies = [ + ('CMake', '3.23.1'), + ('SWIG', '4.0.2'), + ('Doxygen', '1.9.4'), + ('Perl', '5.34.1', '-minimal'), +] +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('Boost.Python', '1.79.0'), + ('Boost', '1.79.0'), + ('SCOTCH', '7.0.1'), + ('SuiteSparse', '5.13.0', '-METIS-5.1.0'), + ('HDF5', '1.12.2'), + ('netCDF', '4.9.0'), + ('MATIO', '1.5.23'), + ('GLM', '0.9.9.8'), + ('ParMETIS', '4.0.3'), + ('X11', '20220504'), +] + +forward_deps = False +build_tests = False +configopts = '-DTrilinos_ENABLE_EXPLICIT_INSTANTIATION=ON ' +configopts += '-DKokkos_ENABLE_AGGRESSIVE_VECTORIZATION=ON ' +# We might need that for Fluidity Zoltan interface +configopts += '-DZoltan_ENABLE_F90INTERFACE=ON -DZoltan_ENABLE_ParMETIS=ON -DZoltan_ENABLE_Scotch=ON ' + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/t/tabix/tabix-0.2.6-GCCcore-10.3.0.eb b/easybuild/easyconfigs/t/tabix/tabix-0.2.6-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..ab99f4cfb23 --- /dev/null +++ b/easybuild/easyconfigs/t/tabix/tabix-0.2.6-GCCcore-10.3.0.eb @@ -0,0 +1,45 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# Author: Jens Timmerman, Ghent University +# Contribution from the NIHR Biomedical Research Centre +# Guy's and St Thomas' NHS Foundation Trust and King's College London +# uploaded by J. Sassmannshausen +# updated to newer toolchain + +easyblock = 'MakeCp' + +name = 'tabix' +version = '0.2.6' + +homepage = 'http://samtools.sourceforge.net' +description = """ Generic indexer for TAB-delimited genome position files """ + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = [('https://sourceforge.net/projects/samtools/files/', 'download')] +sources = [SOURCE_TAR_BZ2] +checksums = ['e4066be7101bae83bec62bc2bc6917013f6c2875b66eb5055fbb013488d68b73'] + +builddependencies = [('binutils', '2.36.1')] + +dependencies = [('zlib', '1.2.11')] + +buildopts = 'CC="$CC" CFLAGS="$CFLAGS -L$EBROOTZLIB/lib"' + +files_to_copy = [ + (["tabix", "bgzip", "tabix.py"], "bin"), + (["tabix.1"], "man/man1"), + "example.gtf.gz", + "example.gtf.gz.tbi", + "NEWS", + "ChangeLog" +] + +sanity_check_paths = { + 'files': ["bin/tabix", "bin/bgzip", "bin/tabix.py"], + 'dirs': [""], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/t/tensorflow-probability/tensorflow-probability-0.14.0-foss-2021a.eb b/easybuild/easyconfigs/t/tensorflow-probability/tensorflow-probability-0.14.0-foss-2021a.eb new file mode 100644 index 00000000000..9efe4775c2a --- /dev/null +++ b/easybuild/easyconfigs/t/tensorflow-probability/tensorflow-probability-0.14.0-foss-2021a.eb @@ -0,0 +1,46 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Authors:: Dugan Witherick (University of Warwick) +# License:: MIT/GPL +# $Id$ +# +## + +easyblock = 'PythonBundle' + +name = 'tensorflow-probability' +version = '0.14.0' + +homepage = 'https://www.tensorflow.org/probability' +description = """TensorFlow Probability (TFP) is a library for probabilistic reasoning and statistical analysis.""" + +toolchain = {'name': 'foss', 'version': '2021a'} +toolchainopts = {'usempi': True, 'pic': True} + +dependencies = [ + ('Python', '3.9.5'), + ('TensorFlow', '2.6.0'), + ('dm-tree', '0.1.6'), +] + +use_pip = True + +exts_list = [ + ('cloudpickle', '2.2.1', { + 'checksums': ['d89684b8de9e34a2a43b3460fbca07d09d6e25ce858df4d5a44240403b6178f5'], + }), + (name, version, { + 'installopts': '--install-option="--release"', + 'modulename': 'tensorflow_probability', + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/tensorflow/probability/archive/'], + 'checksums': ['54fe9a9cbfee5d02a561c92a730eb29166fa757084b9ccb3f700de42ddeafcfb'], + }), +] + +sanity_check_commands = ["python -c 'import tensorflow; import tensorflow_probability'"] + +sanity_pip_check = True + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/t/texlive/texlive-20230313-GCC-11.3.0.eb b/easybuild/easyconfigs/t/texlive/texlive-20230313-GCC-11.3.0.eb new file mode 100644 index 00000000000..b8e9cfbef94 --- /dev/null +++ b/easybuild/easyconfigs/t/texlive/texlive-20230313-GCC-11.3.0.eb @@ -0,0 +1,78 @@ +# Based off the 2017 version by John Dey jfdey@fredhutch.org +# https://github.com/easybuilders/easybuild-easyconfigs/pull/5085 +easyblock = 'Tarball' + +name = 'texlive' +version = '20230313' +local_ver_year = version[:4] + +homepage = 'https://tug.org' +description = """TeX is a typesetting language. Instead of visually formatting your text, you enter your manuscript + text intertwined with TeX commands in a plain text file. You then run TeX to produce formatted output, such as a + PDF file. Thus, in contrast to standard word processors, your document is a separate file that does not pretend to + be a representation of the final typeset output, and so can be easily edited and manipulated.""" + +toolchain = {'name': 'GCC', 'version': '11.3.0'} + +source_urls = [ + 'ftp://tug.org/texlive/historic/%s/' % local_ver_year, + 'https://ftp.math.utah.edu/pub/tex/historic/systems/texlive/%s/' % local_ver_year, +] +sources = [ + { + 'download_filename': 'install-tl-unx.tar.gz', + 'filename': 'install-tl-unx-%(version)s.tar.gz' + } +] +checksums = ['d97bdb3b1903428e56373e70861b24db448243d74d950cdff96f4e888f008605'] + +dependencies = [ + ('X11', '20220504'), + ('libpng', '1.6.37'), + ('libGLU', '9.0.2'), + ('Perl', '5.34.1'), + ('HarfBuzz', '4.2.1'), + ('poppler', '22.12.0'), + ('cairo', '1.17.4'), + ('fontconfig', '2.14.0'), + ('zlib', '1.2.12'), + ('graphite2', '1.3.14'), +] + +# For the latest release, the tlnet-final repository isn't available yet, so we use the default +# But, the default can _not_ be used for the historic releases. The only way to write an EasyConfig +# that will work today and in the future, is to try one by one. +# Similarly, ftp is not available on all HPC systems, hence providing fallback to https +# See https://github.com/easybuilders/easybuild-easyconfigs/issues/17871 +local_install_tl = "%%(builddir)s/install-tl-%%(version)s/install-tl -profile %%(installdir)s/texlive.profile %s" +local_ftp = '-repository ftp://ftp.math.utah.edu/pub/tex/historic/systems/textlive/%s/tlnet-final' % local_ver_year +local_https = '-repository https://ftp.math.utah.edu/pub/tex/historic/systems/texlive/%s/tlnet-final' % local_ver_year +local_install_tl_or = ( + ' || '.join([ + local_install_tl % '', + local_install_tl % local_ftp, + local_install_tl % local_https, + ]) +) +postinstallcmds = [ + 'echo "TEXDIR %%(installdir)s/" > %%(installdir)s/texlive.profile && ' + 'echo "TEXMFLOCAL %%(installdir)s/texmf-local" >> %%(installdir)s/texlive.profile && ' + 'echo "TEXMFSYSCONFIG %%(installdir)s/texmf-config" >> %%(installdir)s/texlive.profile && ' + 'echo "TEXMFSYSVAR %%(installdir)s/texmf-var" >> %%(installdir)s/texlive.profile && ' + '%s' % local_install_tl_or +] + +sanity_check_paths = { + 'files': ['bin/%(arch)s-linux/tex', 'bin/%(arch)s-linux/latex'], + 'dirs': ['bin/%(arch)s-linux', 'texmf-dist'], +} + +modextrapaths = { + 'INFOPATH': 'texmf-dist/doc/info', + 'MANPATH': 'texmf-dist/doc/man', + 'PATH': 'bin/%(arch)s-linux', +} + +modextravars = {'TEXMFHOME': '%(installdir)s/texmf-dist'} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/u/UCC/UCC-1.2.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/u/UCC/UCC-1.2.0-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..45727a0c4bc --- /dev/null +++ b/easybuild/easyconfigs/u/UCC/UCC-1.2.0-GCCcore-13.2.0.eb @@ -0,0 +1,41 @@ +easyblock = 'ConfigureMake' + +name = 'UCC' +version = '1.2.0' + +homepage = 'https://www.openucx.org/' +description = """UCC (Unified Collective Communication) is a collective +communication operations API and library that is flexible, complete, and +feature-rich for current and emerging programming models and runtimes. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/openucx/ucc/archive/refs/tags'] +sources = ['v%(version)s.tar.gz'] +patches = ['UCC-1.1.0-multiple_component_paths.patch'] +checksums = [ + {'v1.2.0.tar.gz': 'c1552797600835c0cf401b82dc89c4d27d5717f4fb805d41daca8e19f65e509d'}, + {'UCC-1.1.0-multiple_component_paths.patch': '3081d0f694331daa4a88a0fa3fb54b9a918015248ae5eb7b3157b924abd31bee'}, +] + +builddependencies = [ + ('binutils', '2.40'), + ('Autotools', '20220317'), +] + +dependencies = [ + ('UCX', '1.15.0'), +] + +preconfigopts = "./autogen.sh && " + +sanity_check_paths = { + 'files': ['bin/ucc_info'], + 'dirs': ['include', 'lib'] +} + +sanity_check_commands = ["ucc_info -c"] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/u/UCX/UCX-1.11.0-GCCcore-11.2.0.eb b/easybuild/easyconfigs/u/UCX/UCX-1.11.0-GCCcore-11.2.0.eb index 847d1c18e3b..c71382cb3a5 100644 --- a/easybuild/easyconfigs/u/UCX/UCX-1.11.0-GCCcore-11.2.0.eb +++ b/easybuild/easyconfigs/u/UCX/UCX-1.11.0-GCCcore-11.2.0.eb @@ -14,10 +14,14 @@ toolchainopts = {'pic': True} source_urls = ['https://github.com/openucx/ucx/releases/download/v%(version)s'] sources = ['%(namelower)s-%(version)s.tar.gz'] -patches = ['UCX-1.10.0-dynamic_modules.patch'] +patches = [ + 'UCX-1.10.0-dynamic_modules.patch', + 'UCX-1.11.0_fix-implicit-odp-release.patch', +] checksums = [ 'b7189b69fe0e16e3c03784ef674e45687a9c520750bd74a45125c460ede37647', # ucx-1.11.0.tar.gz '3098c91f2aadc5f148466a2e8756769ad5e99f9515d8cfb6ad8a5712e7433408', # UCX-1.10.0-dynamic_modules.patch + {'UCX-1.11.0_fix-implicit-odp-release.patch': 'e21d66b75f3727a98dbd1737b419a6f77c0c5a8ac660a21affcbf10bb3b941ed'}, ] builddependencies = [ diff --git a/easybuild/easyconfigs/u/UCX/UCX-1.11.0_fix-implicit-odp-release.patch b/easybuild/easyconfigs/u/UCX/UCX-1.11.0_fix-implicit-odp-release.patch new file mode 100644 index 00000000000..35505b5804d --- /dev/null +++ b/easybuild/easyconfigs/u/UCX/UCX-1.11.0_fix-implicit-odp-release.patch @@ -0,0 +1,26 @@ +A change in UCX 1.11.0 changed the signature of `uct_ib_mem_dereg` leading to +an invalid pointer passed from `uct_ib_md_release_reg_method`. +Fix this by passing in the correct struct instead, i.e. wrapping the pointer into `uct_md_mem_dereg_params_t` +See: https://github.com/openucx/ucx/issues/9392 +Breaking commit (1.11+): https://github.com/openucx/ucx/commit/98a614188c026b7682f914ef62864a24fb44b464 +Code removed (1.15+): https://github.com/openucx/ucx/commit/de71ac67759879d9ce0659e696f0a4d371a7d382 + +Author: Alexander Grund (TU Dresden) + +diff --git a/src/uct/ib/base/ib_md.c b/src/uct/ib/base/ib_md.c +index 3e7d4bdf8..4e844387e 100644 +--- a/src/uct/ib/base/ib_md.c ++++ b/src/uct/ib/base/ib_md.c +@@ -1428,7 +1428,11 @@ static void uct_ib_md_release_reg_method(uct_ib_md_t *md) + ucs_rcache_destroy(md->rcache); + } + if (md->global_odp != NULL) { +- uct_ib_mem_dereg(&md->super, md->global_odp); ++ uct_md_mem_dereg_params_t params = { ++ .field_mask = UCT_MD_MEM_DEREG_FIELD_MEMH, ++ .memh = md->global_odp ++ }; ++ uct_ib_mem_dereg(&md->super, ¶ms); + } + } + diff --git a/easybuild/easyconfigs/u/UCX/UCX-1.11.2-GCCcore-11.2.0.eb b/easybuild/easyconfigs/u/UCX/UCX-1.11.2-GCCcore-11.2.0.eb index e81c44acb30..7d0e97f6977 100644 --- a/easybuild/easyconfigs/u/UCX/UCX-1.11.2-GCCcore-11.2.0.eb +++ b/easybuild/easyconfigs/u/UCX/UCX-1.11.2-GCCcore-11.2.0.eb @@ -16,11 +16,13 @@ source_urls = ['https://github.com/openucx/ucx/releases/download/v%(version)s'] sources = ['%(namelower)s-%(version)s.tar.gz'] patches = [ 'UCX-1.10.0-dynamic_modules.patch', + 'UCX-1.11.0_fix-implicit-odp-release.patch', 'UCX-1.11.2-missing_header.patch', ] checksums = [ 'deebf86a5344fc2bd9e55449f88c650c4514928592807c9bc6fe4190e516c6df', # ucx-1.11.2.tar.gz '3098c91f2aadc5f148466a2e8756769ad5e99f9515d8cfb6ad8a5712e7433408', # UCX-1.10.0-dynamic_modules.patch + {'UCX-1.11.0_fix-implicit-odp-release.patch': 'e21d66b75f3727a98dbd1737b419a6f77c0c5a8ac660a21affcbf10bb3b941ed'}, 'fa9052a33da5c8e94bc7df0e5fe6ce3baf613310842ae1ab9ed4ef2d49666c01', # UCX-1.11.2-missing_header.patch ] diff --git a/easybuild/easyconfigs/u/UCX/UCX-1.12.1-GCCcore-11.3.0.eb b/easybuild/easyconfigs/u/UCX/UCX-1.12.1-GCCcore-11.3.0.eb index 0d77ff7687a..99ff6a78a99 100644 --- a/easybuild/easyconfigs/u/UCX/UCX-1.12.1-GCCcore-11.3.0.eb +++ b/easybuild/easyconfigs/u/UCX/UCX-1.12.1-GCCcore-11.3.0.eb @@ -16,11 +16,13 @@ source_urls = ['https://github.com/openucx/ucx/releases/download/v%(version)s'] sources = ['%(namelower)s-%(version)s.tar.gz'] patches = [ 'UCX-1.10.0-dynamic_modules.patch', + 'UCX-1.11.0_fix-implicit-odp-release.patch', 'UCX-1.11.2-missing_header.patch', ] checksums = [ '40b447c8e7da94a253f2828001b2d76021eb4ad39647107d433d62d61e18ae8e', # ucx-1.12.1.tar.gz '3098c91f2aadc5f148466a2e8756769ad5e99f9515d8cfb6ad8a5712e7433408', # UCX-1.10.0-dynamic_modules.patch + {'UCX-1.11.0_fix-implicit-odp-release.patch': 'e21d66b75f3727a98dbd1737b419a6f77c0c5a8ac660a21affcbf10bb3b941ed'}, 'fa9052a33da5c8e94bc7df0e5fe6ce3baf613310842ae1ab9ed4ef2d49666c01', # UCX-1.11.2-missing_header.patch ] diff --git a/easybuild/easyconfigs/u/UCX/UCX-1.13.1-GCCcore-12.2.0.eb b/easybuild/easyconfigs/u/UCX/UCX-1.13.1-GCCcore-12.2.0.eb index 6852321bf6a..00fb55690cd 100644 --- a/easybuild/easyconfigs/u/UCX/UCX-1.13.1-GCCcore-12.2.0.eb +++ b/easybuild/easyconfigs/u/UCX/UCX-1.13.1-GCCcore-12.2.0.eb @@ -15,12 +15,14 @@ toolchainopts = {'pic': True} source_urls = ['https://github.com/openucx/ucx/releases/download/v%(version)s'] sources = ['%(namelower)s-%(version)s.tar.gz'] patches = [ + 'UCX-1.11.0_fix-implicit-odp-release.patch', 'UCX-1.13.1-dynamic_modules.patch', 'UCX-1.13.1_fix-undeclared-PTR.patch', ] checksums = [ ('efc37829b68e131d2acc82a3fd4334bfd611156a756837ffeb650ab9a9dd3828', '2c4a2f96c700e3705e185c2846a710691b6e800e8aec11fd4b3e47bcc3990548'), # ucx-1.13.1.tar.gz + {'UCX-1.11.0_fix-implicit-odp-release.patch': 'e21d66b75f3727a98dbd1737b419a6f77c0c5a8ac660a21affcbf10bb3b941ed'}, {'UCX-1.13.1-dynamic_modules.patch': '00874687bd90b795fff61aaa183f6c6bea2210aa1003b28f23d9ebf7066f8782'}, {'UCX-1.13.1_fix-undeclared-PTR.patch': 'ef22c29604552ad3223f2a6bac352f30023cc5cf68f786abfdc4ad7c04189a76'}, ] diff --git a/easybuild/easyconfigs/u/UCX/UCX-1.14.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/u/UCX/UCX-1.14.0-GCCcore-12.2.0.eb index c84b1e48791..0bf2334b18f 100644 --- a/easybuild/easyconfigs/u/UCX/UCX-1.14.0-GCCcore-12.2.0.eb +++ b/easybuild/easyconfigs/u/UCX/UCX-1.14.0-GCCcore-12.2.0.eb @@ -15,10 +15,12 @@ toolchainopts = {'pic': True} source_urls = ['https://github.com/openucx/ucx/releases/download/v%(version)s'] sources = ['%(namelower)s-%(version)s.tar.gz'] patches = [ + 'UCX-1.11.0_fix-implicit-odp-release.patch', 'UCX-1.13.1-dynamic_modules.patch', ] checksums = [ {'ucx-1.14.0.tar.gz': '9bd95e2059de5dece9dddd049aacfca3d21bfca025748a6a0b1be4486e28afdd'}, + {'UCX-1.11.0_fix-implicit-odp-release.patch': 'e21d66b75f3727a98dbd1737b419a6f77c0c5a8ac660a21affcbf10bb3b941ed'}, {'UCX-1.13.1-dynamic_modules.patch': '00874687bd90b795fff61aaa183f6c6bea2210aa1003b28f23d9ebf7066f8782'}, ] diff --git a/easybuild/easyconfigs/u/UCX/UCX-1.14.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/u/UCX/UCX-1.14.1-GCCcore-12.3.0.eb index 0d862216f7a..af30595f9c5 100644 --- a/easybuild/easyconfigs/u/UCX/UCX-1.14.1-GCCcore-12.3.0.eb +++ b/easybuild/easyconfigs/u/UCX/UCX-1.14.1-GCCcore-12.3.0.eb @@ -15,10 +15,12 @@ toolchainopts = {'pic': True} source_urls = ['https://github.com/openucx/ucx/releases/download/v%(version)s'] sources = ['%(namelower)s-%(version)s.tar.gz'] patches = [ + 'UCX-1.11.0_fix-implicit-odp-release.patch', 'UCX-1.13.1-dynamic_modules.patch', ] checksums = [ {'ucx-1.14.1.tar.gz': 'baa0634cafb269a3112f626eb226bcd2ca8c9fcf0fec3b8e2a3553baad5f77aa'}, + {'UCX-1.11.0_fix-implicit-odp-release.patch': 'e21d66b75f3727a98dbd1737b419a6f77c0c5a8ac660a21affcbf10bb3b941ed'}, {'UCX-1.13.1-dynamic_modules.patch': '00874687bd90b795fff61aaa183f6c6bea2210aa1003b28f23d9ebf7066f8782'}, ] diff --git a/easybuild/easyconfigs/u/UCX/UCX-1.15.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/u/UCX/UCX-1.15.0-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..6380530f16c --- /dev/null +++ b/easybuild/easyconfigs/u/UCX/UCX-1.15.0-GCCcore-13.2.0.eb @@ -0,0 +1,54 @@ +easyblock = 'ConfigureMake' + +name = 'UCX' +version = '1.15.0' + +homepage = 'https://www.openucx.org/' +description = """Unified Communication X +An open-source production grade communication framework for data centric +and high-performance applications +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/openucx/ucx/releases/download/v%(version)s'] +sources = ['%(namelower)s-%(version)s.tar.gz'] +patches = [ + 'UCX-1.13.1-dynamic_modules.patch', +] +checksums = [ + {'ucx-1.15.0.tar.gz': '4b202087076bc1c98f9249144f0c277a8ea88ad4ca6f404f94baa9cb3aebda6d'}, + {'UCX-1.13.1-dynamic_modules.patch': '00874687bd90b795fff61aaa183f6c6bea2210aa1003b28f23d9ebf7066f8782'}, +] + +# Uncomment when updating to final release +# sources = ['%(namelower)s-%(version)s.tar.gz'] +builddependencies = [ + ('binutils', '2.40'), + ('Autotools', '20220317'), + ('pkgconf', '2.0.3'), +] + +osdependencies = [OS_PKG_IBVERBS_DEV] + +dependencies = [ + ('zlib', '1.2.13'), + ('numactl', '2.0.16'), +] + +configure_cmd = "contrib/configure-release" + +configopts = '--enable-optimizations --enable-cma --enable-mt --with-verbs ' +configopts += '--without-java --without-go --disable-doxygen-doc ' + +buildopts = 'V=1' + +sanity_check_paths = { + 'files': ['bin/ucx_info', 'bin/ucx_perftest', 'bin/ucx_read_profile'], + 'dirs': ['include', 'lib', 'share'] +} + +sanity_check_commands = ["ucx_info -d"] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..95d1743751f --- /dev/null +++ b/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-13.2.0.eb @@ -0,0 +1,59 @@ +easyblock = 'ConfigureMake' + +name = 'UnZip' +version = '6.0' + +homepage = 'http://www.info-zip.org/UnZip.html' +description = """UnZip is an extraction utility for archives compressed +in .zip format (also called "zipfiles"). Although highly compatible both +with PKWARE's PKZIP and PKUNZIP utilities for MS-DOS and with Info-ZIP's +own Zip program, our primary objectives have been portability and +non-MSDOS functionality.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://download.sourceforge.net/infozip'] +sources = ['%(namelower)s%(version_major)s%(version_minor)s.tar.gz'] +patches = [ + 'UnZip-%(version)s_various-security-and-other-fixes-from-Ubuntu.patch', +] +checksums = [ + '036d96991646d0449ed0aa952e4fbe21b476ce994abc276e49d30e686708bd37', # unzip60.tar.gz + # UnZip-6.0_various-security-and-other-fixes-from-Ubuntu.patch + '06b9307fd5aa018896bd4126818c00c1fd284a06cc3681cf0492f951ebb57ffe', +] + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('bzip2', '1.0.8'), +] + +skipsteps = ['configure'] + +local_cf = ['$CFLAGS', '$CPPFLAGS', '-I.', '-DACORN_FTYPE_NFS', '-DWILD_STOP_AT_DIR', '-DLARGE_FILE_SUPPORT' + '-DUNICODE_SUPPORT', '-DUNICODE_WCHAR', '-DUTF8_MAYBE_NATIVE', '-DNO_LCHMOD', '-DDATE_FORMAT=DF_YMD', + '-DUSE_BZIP2', '-DIZ_HAVE_UXUIDGID', '-DNOMEMCPY', '-DNO_WORKING_ISPRINT'] + +buildopts = ' '.join([ + "-f unix/Makefile", + 'CC="$CC"', + 'D_USE_BZ2=-DUSE_BZIP2', + 'L_BZ2=-lbz2', + 'LF2="$LDFLAGS"', + 'CF="%s"' % ' '.join(local_cf), + 'unzips', +]) + +installopts = '-f unix/Makefile prefix=%(installdir)s ' + +sanity_check_paths = { + 'files': ['bin/unzip', 'bin/zipinfo'], + 'dirs': ['man/man1'] +} + +sanity_check_commands = ["unzip -v"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/u/uncertainties/uncertainties-3.1.7-foss-2021b.eb b/easybuild/easyconfigs/u/uncertainties/uncertainties-3.1.7-foss-2021b.eb new file mode 100644 index 00000000000..21ad86a60e7 --- /dev/null +++ b/easybuild/easyconfigs/u/uncertainties/uncertainties-3.1.7-foss-2021b.eb @@ -0,0 +1,27 @@ +easyblock = 'PythonBundle' + +name = 'uncertainties' +version = '3.1.7' + +homepage = 'http://uncertainties-python-package.readthedocs.io' +description = """Transparent calculations with uncertainties on the quantities involved (aka error propagation); + fast calculation of derivatives""" + +toolchain = {'name': 'foss', 'version': '2021b'} + +dependencies = [ + ('Python', '3.9.6'), + ('SciPy-bundle', '2021.10'), +] + +use_pip = True + +exts_list = [ + (name, version, { + 'checksums': ['80111e0839f239c5b233cb4772017b483a0b7a1573a581b92ab7746a35e6faab'], + }), +] + +sanity_pip_check = True + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/u/unimap/unimap-0.1-GCCcore-11.3.0.eb b/easybuild/easyconfigs/u/unimap/unimap-0.1-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..508f58237b4 --- /dev/null +++ b/easybuild/easyconfigs/u/unimap/unimap-0.1-GCCcore-11.3.0.eb @@ -0,0 +1,42 @@ +easyblock = 'MakeCp' + +name = 'unimap' +version = '0.1' + +homepage = 'https://github.com/lh3/unimap' +description = """Unimap is a fork of minimap2 optimized for assembly-to-reference +alignment. It integrates the minigraph chaining algorithm and can align through +long INDELs (up to 100kb by default) much faster than minimap2. Unimap is a +better fit for resolving segmental duplications and is recommended over minimap2 +for alignment between high-quality assemblies. + +Unimap does not replace minimap2 for other types of alignment. It drops the +support of multi-part index and short-read mapping. Its long-read alignment is +different from minimap2 but is not necessarily better. Unimap is more of a +specialized minimap2 at the moment.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['https://github.com/lh3/unimap/archive/refs/tags/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['d5d7831e1fa78c943a96ef78ba22ec88eebf39368bdb135c30554f052f0dbc5c'] + +builddependencies = [('binutils', '2.38')] + +files_to_copy = [ + (['%(name)s'], 'bin'), + (['lib%(name)s.a'], 'lib'), + (['*.h'], 'include'), +] + +sanity_check_paths = { + 'files': ['bin/%(name)s', 'lib/lib%(name)s.a'], + 'dirs': ['include'] +} + +sanity_check_commands = [ + "unimap --help", + "cd %(builddir)s/unimap-%(version)s && unimap -a test/MT-human.fa test/MT-orang.fa > test.sam", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/u/util-linux/util-linux-2.39-GCCcore-12.3.0.eb b/easybuild/easyconfigs/u/util-linux/util-linux-2.39-GCCcore-12.3.0.eb index f3bc453a771..9a174f12600 100644 --- a/easybuild/easyconfigs/u/util-linux/util-linux-2.39-GCCcore-12.3.0.eb +++ b/easybuild/easyconfigs/u/util-linux/util-linux-2.39-GCCcore-12.3.0.eb @@ -12,10 +12,14 @@ toolchainopts = {'pic': True} source_urls = ['%s/v%%(version_major_minor)s' % homepage] sources = [SOURCELOWER_TAR_GZ] -patches = ['util-linux-%(version)s_fix_waitpid.patch'] +patches = [ + 'util-linux-%(version)s_fix_waitpid.patch', + 'util-linux-2.39-fix-build-centos7.patch' +] checksums = [ {'util-linux-2.39.tar.gz': 'b1f597ad172a2ee17b0a7ae4be7ab7e1b1a6f9394ddbd3d8ec90ae4ed7333579'}, {'util-linux-2.39_fix_waitpid.patch': '99cbd4ee8293f3ffad4467e9f245d0da4e10a98b6599f5e5f9d4cb99c7eebbd2'}, + {'util-linux-2.39-fix-build-centos7.patch': '21587513f0f5f5efe790396ac39450c7f30dd55063929bb430a77352ba99f57f'}, ] builddependencies = [ diff --git a/easybuild/easyconfigs/u/util-linux/util-linux-2.39-GCCcore-13.2.0.eb b/easybuild/easyconfigs/u/util-linux/util-linux-2.39-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..b03c65710e2 --- /dev/null +++ b/easybuild/easyconfigs/u/util-linux/util-linux-2.39-GCCcore-13.2.0.eb @@ -0,0 +1,53 @@ +easyblock = 'ConfigureMake' + +name = 'util-linux' +version = '2.39' + +homepage = 'https://www.kernel.org/pub/linux/utils/util-linux' + +description = "Set of Linux utilities" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['%s/v%%(version_major_minor)s' % homepage] +sources = [SOURCELOWER_TAR_GZ] +patches = [ + 'util-linux-%(version)s_fix_waitpid.patch', + 'util-linux-2.39-fix-build-centos7.patch' +] +checksums = [ + {'util-linux-2.39.tar.gz': 'b1f597ad172a2ee17b0a7ae4be7ab7e1b1a6f9394ddbd3d8ec90ae4ed7333579'}, + {'util-linux-2.39_fix_waitpid.patch': '99cbd4ee8293f3ffad4467e9f245d0da4e10a98b6599f5e5f9d4cb99c7eebbd2'}, + {'util-linux-2.39-fix-build-centos7.patch': '21587513f0f5f5efe790396ac39450c7f30dd55063929bb430a77352ba99f57f'}, +] + +builddependencies = [ + ('binutils', '2.40'), + ('Autotools', '20220317'), # for fix_waitpid patch + ('pkgconf', '2.0.3'), # for fix_waitpid patch +] + +dependencies = [ + ('ncurses', '6.4'), + ('zlib', '1.2.13'), +] + +# disable account related utilities (they need OS dependent pam-devel files) +# disable wall and friends (requires group changing permissions for install user) +# install systemd service files in install dir +# install bash completion files in install dir +configopts = "--disable-chfn-chsh --disable-login --disable-su --disable-rfkill " +configopts += "--disable-wall --disable-use-tty-group " +configopts += "--disable-makeinstall-chown --disable-makeinstall-setuid " +configopts += "--with-systemdsystemunitdir='${prefix}/systemd' " +configopts += "--with-bashcompletiondir='${prefix}/share/bash-completion/completions' " +# disable building Python bindings (since we don't include Python as a dep) +configopts += "--without-python " + +sanity_check_paths = { + 'files': ['lib/lib%s.a' % x for x in ['blkid', 'mount', 'uuid']], + 'dirs': ['include', 'bin', 'share', 'sbin'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/u/util-linux/util-linux-2.39-fix-build-centos7.patch b/easybuild/easyconfigs/u/util-linux/util-linux-2.39-fix-build-centos7.patch new file mode 100644 index 00000000000..1740f26324e --- /dev/null +++ b/easybuild/easyconfigs/u/util-linux/util-linux-2.39-fix-build-centos7.patch @@ -0,0 +1,30 @@ +From 2756f00407d3bc7dca3f5be0a0d101ef97e8eb5e Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Tue, 15 Aug 2023 11:33:31 +0200 +Subject: [PATCH] setarch: add PER_LINUX_FDPIC fallback + +Fixes: https://github.com/util-linux/util-linux/issues/2436 +Signed-off-by: Karel Zak +--- + sys-utils/setarch.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/sys-utils/setarch.c b/sys-utils/setarch.c +index 78b5183..1a255e4 100644 +--- a/sys-utils/setarch.c ++++ b/sys-utils/setarch.c +@@ -84,6 +84,11 @@ + # define ADDR_LIMIT_3GB 0x8000000 + #endif + ++/* fallback for old glibc-headers 2.17 */ ++#ifndef PER_LINUX_FDPIC ++# define PER_LINUX_FDPIC (PER_LINUX | FDPIC_FUNCPTRS) ++#endif ++ + #define ALL_PERSONALITIES \ + X(PER_LINUX) \ + X(PER_LINUX_32BIT) \ +-- +1.8.3.1 + diff --git a/easybuild/easyconfigs/v/VBZ-Compression/VBZ-Compression-1.0.3-gompi-2022a.eb b/easybuild/easyconfigs/v/VBZ-Compression/VBZ-Compression-1.0.3-gompi-2022a.eb new file mode 100644 index 00000000000..d6e8caabfdb --- /dev/null +++ b/easybuild/easyconfigs/v/VBZ-Compression/VBZ-Compression-1.0.3-gompi-2022a.eb @@ -0,0 +1,43 @@ +easyblock = 'CMakeMake' + +name = 'VBZ-Compression' +version = '1.0.3' + +homepage = 'https://github.com/nanoporetech/vbz_compression' +description = "VBZ compression HDF5 plugin for nanopolish" + +toolchain = {'name': 'gompi', 'version': '2022a'} + +source_urls = [ + 'https://github.com/nanoporetech/vbz_compression/archive', + 'https://github.com/lemire/streamvbyte/archive', +] +sources = [ + {'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}, + {'download_filename': 'v0.4.1.tar.gz', 'filename': 'streamvbyte-v0.4.1.tar.gz'}, +] +checksums = [ + {'VBZ-Compression-1.0.3.tar.gz': 'a7450e076db628681bbc0e2b3f941c6c21cc2981a7e1c78628807ffdf1b34f31'}, + {'streamvbyte-v0.4.1.tar.gz': '4c4e53134a60b0b06816d3faa7dcde28c3e5e8a656dd415d16d80ae6e3d39fcc'}, +] + +builddependencies = [('CMake', '3.24.3')] + +dependencies = [ + ('HDF5', '1.12.2'), + ('zstd', '1.5.2'), +] + +preconfigopts = "rmdir %(builddir)s/vbz_compression*/third_party/streamvbyte && " +preconfigopts += "mv %(builddir)s/streamvbyte-* %(builddir)s/streamvbyte && " +preconfigopts += "mv %(builddir)s/streamvbyte %(builddir)s/vbz_compression*/third_party/. && " +configopts = "-DENABLE_CONAN=OFF -DENABLE_PERF_TESTING=OFF -DENABLE_PYTHON=OFF " + +sanity_check_paths = { + 'files': ['hdf5/lib/plugin/libvbz_hdf_plugin.%s' % SHLIB_EXT], + 'dirs': [], +} + +modextrapaths = {'HDF5_PLUGIN_PATH': 'hdf5/lib/plugin/'} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/v/VCFtools/VCFtools-0.1.16-GCC-12.3.0.eb b/easybuild/easyconfigs/v/VCFtools/VCFtools-0.1.16-GCC-12.3.0.eb new file mode 100644 index 00000000000..3cdfda35e10 --- /dev/null +++ b/easybuild/easyconfigs/v/VCFtools/VCFtools-0.1.16-GCC-12.3.0.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'VCFtools' +version = '0.1.16' + +homepage = 'https://vcftools.github.io' +description = """The aim of VCFtools is to provide + easily accessible methods for working with complex + genetic variation data in the form of VCF files.""" + +toolchain = {'name': 'GCC', 'version': '12.3.0'} + +source_urls = ['https://github.com/%(namelower)s/%(namelower)s/releases/download/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['dbfc774383c106b85043daa2c42568816aa6a7b4e6abc965eeea6c47dde914e3'] + +builddependencies = [ + ('pkgconf', '1.9.5'), +] +dependencies = [ + ('Perl', '5.36.1'), + ('HTSlib', '1.18'), + ('zlib', '1.2.13'), +] + + +sanity_check_paths = { + 'files': ['bin/%(namelower)s', 'bin/vcf-sort', 'bin/vcf-stats'], + 'dirs': [], +} + +modextrapaths = {'PERL5LIB': 'lib/perl5/site_perl'} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/v/VTune/VTune-2023.2.0.eb b/easybuild/easyconfigs/v/VTune/VTune-2023.2.0.eb new file mode 100644 index 00000000000..920aa1f3606 --- /dev/null +++ b/easybuild/easyconfigs/v/VTune/VTune-2023.2.0.eb @@ -0,0 +1,25 @@ + +name = 'VTune' +version = '2023.2.0' + +homepage = 'https://software.intel.com/en-us/vtune' +description = """Intel VTune Amplifier XE is the premier performance profiler for C, C++, C#, Fortran, + Assembly and Java.""" + +toolchain = SYSTEM + +# By downloading, you accept the Intel End User License Agreement +# (https://software.intel.com/content/www/us/en/develop/articles/end-user-license-agreement.html) +# accept_eula = True +source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/dfae6f23-6c90-4b9f-80e2-fa2a5037fe36/'] +sources = ['l_oneapi_vtune_p_%(version)s.49485_offline.sh'] +checksums = ['482a727afe0ac6f81eff51503857c28fcb79ffdba76260399900f3397fd0adbd'] + +sanity_check_paths = { + 'files': ['%(namelower)s/%(version)s/bin64/amplxe-perf'], + 'dirs': ['%(namelower)s/%(version)s/bin64', + '%(namelower)s/%(version)s/lib64', + '%(namelower)s/%(version)s/include/intel64'] +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/v/vcflib/vcflib-1.0.9-foss-2022a-R-4.2.1.eb b/easybuild/easyconfigs/v/vcflib/vcflib-1.0.9-foss-2022a-R-4.2.1.eb index 32a39ef352a..0ae4911c54b 100644 --- a/easybuild/easyconfigs/v/vcflib/vcflib-1.0.9-foss-2022a-R-4.2.1.eb +++ b/easybuild/easyconfigs/v/vcflib/vcflib-1.0.9-foss-2022a-R-4.2.1.eb @@ -57,7 +57,8 @@ preconfigopts += " -e 's|multichoose.h|multichoose/multichoose.h|g' -e 's|fileve preconfigopts += " -e 's|tabix.hpp|tabixpp/tabix.hpp|g' -e 's|Fasta.h|fastahack/Fasta.h|g'" preconfigopts += r" -e 's|disorder.h|smithwaterman/disorder.h|g' {} \; && " -configopts = "-DZIG=OFF -DWFA_GITMODULE=OFF -DWFA_INCLUDE_DIRS=$EBROOTWFA2/include/wfa2lib" +configopts = "-DZIG=OFF -DWFA_GITMODULE=OFF -DWFA_INCLUDE_DIRS=$EBROOTWFA2/include/wfa2lib " +configopts += "-DPYTHON_EXECUTABLE=$EBROOTPYTHON/bin/python" postinstallcmds = ["cp -r %(builddir)s/%(name)s-%(version)s/scripts %(installdir)s"] diff --git a/easybuild/easyconfigs/w/WCSLIB/WCSLIB-7.11-GCC-11.3.0.eb b/easybuild/easyconfigs/w/WCSLIB/WCSLIB-7.11-GCC-11.3.0.eb new file mode 100644 index 00000000000..5b0df792a49 --- /dev/null +++ b/easybuild/easyconfigs/w/WCSLIB/WCSLIB-7.11-GCC-11.3.0.eb @@ -0,0 +1,40 @@ +easyblock = 'ConfigureMake' + +name = 'WCSLIB' +version = '7.11' + +homepage = 'https://www.atnf.csiro.au/people/mcalabre/WCS/' +description = """The FITS "World Coordinate System" (WCS) standard defines keywords +and usage that provide for the description of astronomical coordinate systems in a +FITS image header.""" + +toolchain = {'name': 'GCC', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['ftp://ftp.atnf.csiro.au/pub/software/wcslib/'] +sources = [SOURCELOWER_TAR_BZ2] +checksums = ['46befbfdf50cd4953896676a7d570094dc7661e2ae9677b092e7fb13cee3da5f'] + +builddependencies = [ + ('binutils', '2.38'), + ('M4', '1.4.19'), + ('flex', '2.6.4'), +] + +dependencies = [ + ('CFITSIO', '4.2.0'), + ('PGPLOT', '5.2.2'), + ('X11', '20220504'), +] + +configopts = '--with-cfitsiolib=$EBROOTCFITSIO/lib --with-cfitsioinc=$EBROOTCFITSIO/include ' +configopts += '--with-pgplotlib=$EBROOTPGPLOT/lib --with-pgplotinc=$EBROOTPGPLOT/include ' + +sanity_check_paths = { + 'files': ['bin/wcsgrid', 'bin/wcsware', 'lib/libpgsbox-7.11.a', 'lib/libpgsbox.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +sanity_check_commands = ["wcsgrid --help 2>&1 | grep '^Usage: wcsgrid'"] + +moduleclass = 'geo' diff --git a/easybuild/easyconfigs/w/WSClean/WSClean-3.4-foss-2022a.eb b/easybuild/easyconfigs/w/WSClean/WSClean-3.4-foss-2022a.eb new file mode 100644 index 00000000000..de04e74ec1c --- /dev/null +++ b/easybuild/easyconfigs/w/WSClean/WSClean-3.4-foss-2022a.eb @@ -0,0 +1,41 @@ +easyblock = 'CMakeMake' + +name = 'WSClean' +version = '3.4' + +homepage = 'https://wsclean.readthedocs.io/' +description = """WSClean (w-stacking clean) is a fast generic widefield imager. +It implements several gridding algorithms and offers fully-automated multi-scale +multi-frequency deconvolution.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +sources = [{ + 'source_urls': ['https://gitlab.com/aroffringa/wsclean/-/package_files/97237455/'], + 'filename': '%(namelower)s-v%(version)s.tar.bz2', + 'download_filename': 'download' # endpoint for source tarball is not versioned +}] +checksums = ['b43d8ca490ccf34dd22aae6c5ca88a5dcb3cff0526835d3f97fa6d239745e641'] + +builddependencies = [ + ('CMake', '3.24.3'), +] + +dependencies = [ + ('casacore', '3.5.0'), + ('EveryBeam', '0.5.2'), + ('Boost', '1.79.0'), + ('CFITSIO', '4.2.0'), + ('GSL', '2.7'), + ('HDF5', '1.12.2'), + ('Python', '3.10.4'), +] + +sanity_check_paths = { + 'files': ['include/wscleaninterface.h', 'bin/wsclean'], + 'dirs': ['bin'], +} + +sanity_check_commands = [('wsclean', '--version')] + +moduleclass = 'astro' diff --git a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-foss-2023a.eb b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-foss-2023a.eb new file mode 100644 index 00000000000..9807690b35c --- /dev/null +++ b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-foss-2023a.eb @@ -0,0 +1,35 @@ +easyblock = 'MakeCp' + +name = 'Wannier90' +version = '3.1.0' + +homepage = 'http://www.wannier.org' +description = """A tool for obtaining maximally-localised Wannier functions""" + +toolchain = {'name': 'foss', 'version': '2023a'} +toolchainopts = {'usempi': True} + +github_account = 'wannier-developers' +source_urls = [GITHUB_LOWER_SOURCE] +sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCELOWER_TAR_GZ}] +patches = ['Wannier90_3x_ignore_makeinc.patch'] +checksums = [ + '40651a9832eb93dec20a8360dd535262c261c34e13c41b6755fa6915c936b254', # wannier90-3.1.0.tar.gz + '561c0d296e0e30b8bb303702cd6e41ded54c153d9b9e6cd9cab73858e5e2945e', # Wannier90_3x_ignore_makeinc.patch +] + +# The -fallow-argument-mismatch allows MPI communication calls to be +# called with arrays of different types at different places in the +# code. This otherwise cause an error in GCC 10.X +buildopts = 'all F90=$F90 MPIF90=$MPIF90 FCOPTS="$FFLAGS -fallow-argument-mismatch" LDOPTS="$FFLAGS" ' +buildopts += 'LIBDIR="$LAPACK_LIB_DIR" LIBS="$LIBLAPACK" ' +buildopts += 'COMMS=mpi' + +files_to_copy = [(['wannier90.x', 'postw90.x'], 'bin'), (['libwannier.a'], 'lib')] + +sanity_check_paths = { + 'files': ['bin/wannier90.x', 'bin/postw90.x', 'lib/libwannier.a'], + 'dirs': [] +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-intel-2023a.eb b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-intel-2023a.eb new file mode 100644 index 00000000000..cf258368771 --- /dev/null +++ b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-intel-2023a.eb @@ -0,0 +1,32 @@ +easyblock = 'MakeCp' + +name = 'Wannier90' +version = '3.1.0' + +homepage = 'http://www.wannier.org' +description = """A tool for obtaining maximally-localised Wannier functions""" + +toolchain = {'name': 'intel', 'version': '2023a'} +toolchainopts = {'usempi': True} + +github_account = 'wannier-developers' +source_urls = [GITHUB_LOWER_SOURCE] +sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCELOWER_TAR_GZ}] +patches = ['Wannier90_3x_ignore_makeinc.patch'] +checksums = [ + '40651a9832eb93dec20a8360dd535262c261c34e13c41b6755fa6915c936b254', # wannier90-3.1.0.tar.gz + '561c0d296e0e30b8bb303702cd6e41ded54c153d9b9e6cd9cab73858e5e2945e', # Wannier90_3x_ignore_makeinc.patch +] + +buildopts = 'all F90=$F90 MPIF90=$MPIF90 FCOPTS="$FFLAGS" LDOPTS="$FFLAGS" ' +buildopts += 'LIBDIR="$LAPACK_LIB_DIR" LIBS="$LIBLAPACK" ' +buildopts += 'COMMS=mpi' + +files_to_copy = [(['wannier90.x', 'postw90.x'], 'bin'), (['libwannier.a'], 'lib')] + +sanity_check_paths = { + 'files': ['bin/wannier90.x', 'bin/postw90.x', 'lib/libwannier.a'], + 'dirs': [] +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/w/wget/wget-1.19.4-GCCcore-6.4.0.eb b/easybuild/easyconfigs/w/wget/wget-1.19.4-GCCcore-6.4.0.eb index 2dd214fecd0..3e958246704 100644 --- a/easybuild/easyconfigs/w/wget/wget-1.19.4-GCCcore-6.4.0.eb +++ b/easybuild/easyconfigs/w/wget/wget-1.19.4-GCCcore-6.4.0.eb @@ -31,7 +31,10 @@ dependencies = [ ] # make sure pkg-config picks up system packages (OpenSSL & co) -preconfigopts = "export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig && " +local_pc = "%(sysroot)s/usr/lib64/pkgconfig:" +local_pc += "%(sysroot)s/usr/lib/pkgconfig:" +local_pc += "%(sysroot)s/usr/lib/x86_64-linux-gnu/pkgconfig" +preconfigopts = "export PKG_CONFIG_PATH=%s && " % local_pc configopts = '--with-ssl=openssl ' osdependencies = [OS_PKG_OPENSSL_DEV] diff --git a/easybuild/easyconfigs/w/wget/wget-1.20.1-GCCcore-7.3.0.eb b/easybuild/easyconfigs/w/wget/wget-1.20.1-GCCcore-7.3.0.eb index 07e2836707e..58155b9ba65 100644 --- a/easybuild/easyconfigs/w/wget/wget-1.20.1-GCCcore-7.3.0.eb +++ b/easybuild/easyconfigs/w/wget/wget-1.20.1-GCCcore-7.3.0.eb @@ -31,7 +31,10 @@ dependencies = [ ] # make sure pkg-config picks up system packages (OpenSSL & co) -preconfigopts = "export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig && " +local_pc = "%(sysroot)s/usr/lib64/pkgconfig:" +local_pc += "%(sysroot)s/usr/lib/pkgconfig:" +local_pc += "%(sysroot)s/usr/lib/x86_64-linux-gnu/pkgconfig" +preconfigopts = "export PKG_CONFIG_PATH=%s && " % local_pc configopts = '--with-ssl=openssl ' osdependencies = [OS_PKG_OPENSSL_DEV] diff --git a/easybuild/easyconfigs/w/wget/wget-1.20.1-GCCcore-8.3.0.eb b/easybuild/easyconfigs/w/wget/wget-1.20.1-GCCcore-8.3.0.eb index 284145e9acd..c8948202cef 100644 --- a/easybuild/easyconfigs/w/wget/wget-1.20.1-GCCcore-8.3.0.eb +++ b/easybuild/easyconfigs/w/wget/wget-1.20.1-GCCcore-8.3.0.eb @@ -31,7 +31,10 @@ dependencies = [ ] # make sure pkg-config picks up system packages (OpenSSL & co) -preconfigopts = "export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig && " +local_pc = "%(sysroot)s/usr/lib64/pkgconfig:" +local_pc += "%(sysroot)s/usr/lib/pkgconfig:" +local_pc += "%(sysroot)s/usr/lib/x86_64-linux-gnu/pkgconfig" +preconfigopts = "export PKG_CONFIG_PATH=%s && " % local_pc configopts = '--with-ssl=openssl ' osdependencies = [OS_PKG_OPENSSL_DEV] diff --git a/easybuild/easyconfigs/w/wget/wget-1.20.3-GCCcore-10.2.0.eb b/easybuild/easyconfigs/w/wget/wget-1.20.3-GCCcore-10.2.0.eb index b553d124898..a32a03e427c 100644 --- a/easybuild/easyconfigs/w/wget/wget-1.20.3-GCCcore-10.2.0.eb +++ b/easybuild/easyconfigs/w/wget/wget-1.20.3-GCCcore-10.2.0.eb @@ -32,7 +32,10 @@ dependencies = [ ] # make sure pkg-config picks up system packages (OpenSSL & co) -preconfigopts = "export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig && " +local_pc = "%(sysroot)s/usr/lib64/pkgconfig:" +local_pc += "%(sysroot)s/usr/lib/pkgconfig:" +local_pc += "%(sysroot)s/usr/lib/x86_64-linux-gnu/pkgconfig" +preconfigopts = "export PKG_CONFIG_PATH=%s && " % local_pc configopts = '--with-ssl=openssl ' osdependencies = [OS_PKG_OPENSSL_DEV] diff --git a/easybuild/easyconfigs/w/wget/wget-1.20.3-GCCcore-9.3.0.eb b/easybuild/easyconfigs/w/wget/wget-1.20.3-GCCcore-9.3.0.eb index 04371b74a51..43dc36af7e7 100644 --- a/easybuild/easyconfigs/w/wget/wget-1.20.3-GCCcore-9.3.0.eb +++ b/easybuild/easyconfigs/w/wget/wget-1.20.3-GCCcore-9.3.0.eb @@ -31,7 +31,10 @@ dependencies = [ ] # make sure pkg-config picks up system packages (OpenSSL & co) -preconfigopts = "export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig && " +local_pc = "%(sysroot)s/usr/lib64/pkgconfig:" +local_pc += "%(sysroot)s/usr/lib/pkgconfig:" +local_pc += "%(sysroot)s/usr/lib/x86_64-linux-gnu/pkgconfig" +preconfigopts = "export PKG_CONFIG_PATH=%s && " % local_pc configopts = '--with-ssl=openssl ' osdependencies = [OS_PKG_OPENSSL_DEV] diff --git a/easybuild/easyconfigs/w/wget/wget-1.21.1-GCCcore-10.3.0.eb b/easybuild/easyconfigs/w/wget/wget-1.21.1-GCCcore-10.3.0.eb index f9313fcbc6e..4b401e95412 100644 --- a/easybuild/easyconfigs/w/wget/wget-1.21.1-GCCcore-10.3.0.eb +++ b/easybuild/easyconfigs/w/wget/wget-1.21.1-GCCcore-10.3.0.eb @@ -33,7 +33,10 @@ dependencies = [ ] # make sure pkg-config picks up system packages (OpenSSL & co) -preconfigopts = "export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig && " +local_pc = "%(sysroot)s/usr/lib64/pkgconfig:" +local_pc += "%(sysroot)s/usr/lib/pkgconfig:" +local_pc += "%(sysroot)s/usr/lib/x86_64-linux-gnu/pkgconfig" +preconfigopts = "export PKG_CONFIG_PATH=%s && " % local_pc configopts = '--with-ssl=openssl ' # Optionally, you can use gnutls (default) instead of OpenSSL. diff --git a/easybuild/easyconfigs/w/wget/wget-1.21.2-GCCcore-11.2.0.eb b/easybuild/easyconfigs/w/wget/wget-1.21.2-GCCcore-11.2.0.eb index 3e0a4fdaa71..c8162cdfea5 100644 --- a/easybuild/easyconfigs/w/wget/wget-1.21.2-GCCcore-11.2.0.eb +++ b/easybuild/easyconfigs/w/wget/wget-1.21.2-GCCcore-11.2.0.eb @@ -33,7 +33,10 @@ dependencies = [ ] # make sure pkg-config picks up system packages (OpenSSL & co) -preconfigopts = "export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig && " +local_pc = "%(sysroot)s/usr/lib64/pkgconfig:" +local_pc += "%(sysroot)s/usr/lib/pkgconfig:" +local_pc += "%(sysroot)s/usr/lib/x86_64-linux-gnu/pkgconfig" +preconfigopts = "export PKG_CONFIG_PATH=%s && " % local_pc configopts = '--with-ssl=openssl ' # Optionally, you can use gnutls (default) instead of OpenSSL. diff --git a/easybuild/easyconfigs/w/wget/wget-1.21.3-GCCcore-11.3.0.eb b/easybuild/easyconfigs/w/wget/wget-1.21.3-GCCcore-11.3.0.eb index 5c953192438..481dbcb3ede 100644 --- a/easybuild/easyconfigs/w/wget/wget-1.21.3-GCCcore-11.3.0.eb +++ b/easybuild/easyconfigs/w/wget/wget-1.21.3-GCCcore-11.3.0.eb @@ -38,7 +38,10 @@ dependencies = [ ] # make sure pkg-config picks up system packages (OpenSSL & co) -preconfigopts = "export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig && " +local_pc = "%(sysroot)s/usr/lib64/pkgconfig:" +local_pc += "%(sysroot)s/usr/lib/pkgconfig:" +local_pc += "%(sysroot)s/usr/lib/x86_64-linux-gnu/pkgconfig" +preconfigopts = "export PKG_CONFIG_PATH=%s && " % local_pc configopts = '--with-ssl=openssl ' # Optionally, you can use gnutls (default) instead of OpenSSL. diff --git a/easybuild/easyconfigs/w/worker/worker-1.6.13-iimpi-2022b.eb b/easybuild/easyconfigs/w/worker/worker-1.6.13-iimpi-2022b.eb new file mode 100644 index 00000000000..f8398f59486 --- /dev/null +++ b/easybuild/easyconfigs/w/worker/worker-1.6.13-iimpi-2022b.eb @@ -0,0 +1,48 @@ +easyblock = 'ConfigureMake' + +name = 'worker' +version = '1.6.13' + +homepage = 'https://github.com/gjbex/worker' +description = """The Worker framework has been developed to help deal with parameter exploration experiments + that would otherwise result in many jobs, forcing the user resort to scripting to retain her sanity; + see also https://vscentrum.be/neutral/documentation/cluster-doc/running-jobs/worker-framework.""" + +local_tcname = 'iimpi' +local_tcver = '2022b' +toolchain = {'name': local_tcname, 'version': local_tcver} +toolchainopts = {'usempi': True} + +source_urls = ['https://github.com/gjbex/worker/archive/'] +sources = ['%(version)s.tar.gz'] +patches = ['%(name)s-%(version)s_fixintel.patch'] +checksums = [ + 'b42b8566d82048c706427913c8f7edcd9f5892d61f190ce1f49e428113b7e1bc', # 1.6.13.tar.gz + 'c28bbc837ec5d6fb3390df668b06e0b5169ca31dede907336a2b0637c4a81504', # worker-1.6.13_fixintel.patch +] + +dependencies = [ + ('Perl', '5.36.0') +] + +# adjust worker configuration file +# note: tweak this to your local setup +postinstallcmds = [ + 'sed -i "s/ cores_per_node = .*/ cores_per_node = 16/g" %(installdir)s/conf/worker.conf', + 'sed -i "s@ qsub = .*@ qsub = `which qsub`@g" %(installdir)s/conf/worker.conf', + 'sed -i "s/ email = .*/ email = hpc-support@example.com/g" %(installdir)s/conf/worker.conf', + 'sed -i "s/ unload_modules = .*/ unload_modules = %s/g" %%(installdir)s/conf/worker.conf' % (local_tcname), + 'sed -i "s@ mpi_module = .*@ mpi_module = %s/%s@g" %%(installdir)s/conf/worker.conf' % (local_tcname, local_tcver), + 'sed -i "s@ module_path = .*@ module_path = %(installdir)s/../../../modules/all@g" %(installdir)s/conf/worker.conf', + "echo PERL=\\'`which perl`\\' > %(installdir)s/conf/worker_perl.sh", +] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['wcat', 'wconvert', 'wload', 'worker', 'wreduce', 'wresume', 'wsub', + 'wsummarize']], + 'dirs': ['lib/perl', 'lib/tt'], +} + +sanity_check_commands = ["wsub -help"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/w/wrapt/wrapt-1.15.0-gfbf-2023a.eb b/easybuild/easyconfigs/w/wrapt/wrapt-1.15.0-gfbf-2023a.eb new file mode 100644 index 00000000000..d623ccbd563 --- /dev/null +++ b/easybuild/easyconfigs/w/wrapt/wrapt-1.15.0-gfbf-2023a.eb @@ -0,0 +1,27 @@ +easyblock = 'PythonBundle' + +name = 'wrapt' +version = '1.15.0' + +homepage = 'https://pypi.org/project/wrapt/' +description = """The aim of the wrapt module is to provide a transparent object +proxy for Python, which can be used as the basis for the construction of +function wrappers and decorator functions.""" + +toolchain = {'name': 'gfbf', 'version': '2023a'} + +dependencies = [ + ('Python', '3.11.3'), + ('SciPy-bundle', '2023.07'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + (name, version, { + 'checksums': ['d06730c6aed78cee4126234cf2d071e01b44b915e725a6cb439a879ec9754a3a'], + }), +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/x/X11/X11-20231019-GCCcore-13.2.0.eb b/easybuild/easyconfigs/x/X11/X11-20231019-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..ecadd6a2d8b --- /dev/null +++ b/easybuild/easyconfigs/x/X11/X11-20231019-GCCcore-13.2.0.eb @@ -0,0 +1,214 @@ +easyblock = 'Bundle' + +name = 'X11' +version = '20231019' + +homepage = 'https://www.x.org' +description = "The X Window System (X11) is a windowing system for bitmap displays" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +builddependencies = [ + ('binutils', '2.40'), + ('Autotools', '20220317'), + ('Bison', '3.8.2'), + ('gettext', '0.22'), + ('pkgconf', '2.0.3'), + ('intltool', '0.51.0'), + ('Meson', '1.2.3'), + ('Ninja', '1.11.1'), + ('Doxygen', '1.9.8'), +] + +dependencies = [ + ('bzip2', '1.0.8'), + ('fontconfig', '2.14.2'), + ('freetype', '2.13.2'), + ('zlib', '1.2.13'), + ('xorg-macros', '1.20.0'), + ('libpciaccess', '0.17'), +] + +source_urls = [ + XORG_LIB_SOURCE, + XORG_PROTO_SOURCE, + 'https://xcb.freedesktop.org/dist/', + 'https://xkbcommon.org/download/', + XORG_DATA_SOURCE + '/xkeyboard-config', + XORG_DATA_SOURCE, +] + +default_easyblock = 'ConfigureMake' + +default_component_specs = { + 'sources': [SOURCE_TAR_GZ], + 'start_dir': '%(name)s-%(version)s', +} + +components = [ + ('libpthread-stubs', '0.5', { # 2023-07-18 + 'checksums': ['593196cc746173d1e25cb54a93a87fd749952df68699aab7e02c085530e87747'], + }), + ('xorgproto', '2023.2', { # 2023-06-16 + 'checksums': ['c791aad9b5847781175388ebe2de85cb5f024f8dabf526d5d699c4f942660cc3'], + }), + ('libXau', '1.0.11', { # 2022-12-08 + 'checksums': ['3a321aaceb803577a4776a5efe78836eb095a9e44bbc7a465d29463e1a14f189'], + }), + ('libXdmcp', '1.1.4', { # 2022-11-19 + 'checksums': ['55041a8ff8992ab02777478c4b19c249c0f8399f05a752cb4a1a868a9a0ccb9a'], + }), + ('xcb-proto', '1.16.0', { # 2023-08-16 + 'checksums': ['d9c7f010b1105fc3858bf07b5169b2dd8e7493c6652b1fe45f3321d874f291d7'], + }), + ('libxcb', '1.16', { # 2023-05-03 + 'checksums': ['bc0f75f84b28e6496a19a1d094d7e47def861a50cb7cce5b23b62eecdc2a4479'], + }), + ('xtrans', '1.5.0', { # 2023-06-03 + 'checksums': ['a806f8a92f879dcd0146f3f1153fdffe845f2fc0df9b1a26c19312b7b0a29c86'], + }), + ('libxkbcommon', '1.6.0', { # 2023-10-08 + 'easyblock': 'MesonNinja', + 'sources': [SOURCE_TAR_XZ], + 'checksums': ['0edc14eccdd391514458bc5f5a4b99863ed2d651e4dd761a90abf4f46ef99c2b'], + 'preconfigopts': '', + 'configopts': '-Denable-wayland=false -Denable-docs=false ', + }), + ('libX11', '1.8.7', { # 2023-10-03 + 'checksums': ['793ebebf569f12c864b77401798d38814b51790fce206e01a431e5feb982e20b'], + }), + ('libXext', '1.3.5', { # 2022-10-29 + 'checksums': ['1a3dcda154f803be0285b46c9338515804b874b5ccc7a2b769ab7fd76f1035bd'], + }), + ('libFS', '1.0.9', { # 2022-08-26 + 'checksums': ['8bc2762f63178905228a28670539badcfa2c8793f7b6ce3f597b7741b932054a'], + }), + ('libICE', '1.1.1', { # 2022-12-08 + 'checksums': ['04fbd34a11ba08b9df2e3cdb2055c2e3c1c51b3257f683d7fcf42dabcf8e1210'], + }), + ('libSM', '1.2.4', { # 2022-12-20 + 'checksums': ['51464ce1abce323d5b6707ceecf8468617106e1a8a98522f8342db06fd024c15'], + }), + ('libXScrnSaver', '1.2.4', { # 2022-12-05 + 'checksums': ['0656b2630475104d6df75d91ebb8e0153e61d14e9871ef1f403bcda4a62a838a'], + }), + ('libXt', '1.3.0', { # 2023-05-09 + 'checksums': ['de4a80c4cc7785b9620e572de71026805f68e85a2bf16c386009ef0e50be3f77'], + }), + ('libXmu', '1.1.4', { # 2022-10-17 + 'checksums': ['3091d711cdc1d8ea0f545a13b90d1464c3c3ab64778fd121f0d789b277a80289'], + }), + ('libXpm', '3.5.17', { # 2023-10-03 + 'checksums': ['959466c7dfcfcaa8a65055bfc311f74d4c43d9257900f85ab042604d286df0c6'], + }), + ('libXaw', '1.0.15', { # 2023-03-16 + 'checksums': ['ca8a613884c922985202075b3cc8ee8821bfa83a5eb066189ae3cca131e63972'], + }), + ('libXfixes', '6.0.1', { # 2023-04-09 + 'checksums': ['e69eaa321173c748ba6e2f15c7cf8da87f911d3ea1b6af4b547974aef6366bec'], + }), + ('libXcomposite', '0.4.6', { # 2022-12-04 + 'checksums': ['3599dfcd96cd48d45e6aeb08578aa27636fa903f480f880c863622c2b352d076'], + }), + ('libXrender', '0.9.11', { # 2022-10-22 + 'checksums': ['6aec3ca02e4273a8cbabf811ff22106f641438eb194a12c0ae93c7e08474b667'], + }), + ('libXcursor', '1.2.1', { # 2022-04-03 + 'checksums': ['77f96b9ad0a3c422cfa826afabaf1e02b9bfbfc8908c5fa1a45094faad074b98'], + }), + ('libXdamage', '1.1.6', { # 2022-12-04 + 'checksums': ['2afcc139eb6eb926ffe344494b1fc023da25def42874496e6e6d3aa8acef8595'], + }), + ('libfontenc', '1.1.7', { # 2022-12-08 + 'checksums': ['5e5f210329823f08f97bfe9fd5b4105070c789bc5aef88ce01d86d8203d4aa9f'], + }), + ('libXfont', '1.5.4', { # 2017-11-28 + 'checksums': ['59be6eab53f7b0feb6b7933c11d67d076ae2c0fd8921229c703fc7a4e9a80d6e'], + }), + ('libXfont2', '2.0.6', { # 2022-08-26 + 'checksums': ['a944df7b6837c8fa2067f6a5fc25d89b0acc4011cd0bc085106a03557fb502fc'], + }), + ('libXft', '2.3.8', { # 2023-04-17 + 'checksums': ['32e48fe2d844422e64809e4e99b9d8aed26c1b541a5acf837c5037b8d9f278a8'], + }), + ('libXi', '1.8.1', { # 2023-05-04 + 'checksums': ['3b5f47c223e4b63d7f7fe758886b8bf665b20a7edb6962c423892fd150e326ea'], + }), + ('libXinerama', '1.1.5', { # 2022-10-29 + 'checksums': ['2efa855cb42dc620eff3b77700d8655695e09aaa318f791f201fa60afa72b95c'], + }), + ('libXrandr', '1.5.4', { # 2023-10-04 + 'checksums': ['c72c94dc3373512ceb67f578952c5d10915b38cc9ebb0fd176a49857b8048e22'], + }), + ('libXres', '1.2.2', { # 2022-12-05 + 'checksums': ['8abce597ced4a7ab89032aee91f6f784d9960adc772b2b59f17e515cd4127950'], + }), + ('libXtst', '1.2.4', { # 2022-09-27 + 'checksums': ['01366506aeb033f6dffca5326af85f670746b0cabbfd092aabefb046cf48c445'], + }), + ('libXv', '1.0.12', { # 2022-12-05 + 'checksums': ['ce706619a970a580a0e35e9b5c98bdd2af243ac6494c65f44608a89a86100126'], + }), + ('libXvMC', '1.0.13', { # 2022-03-22 + 'checksums': ['e630b4373af8c67a7c8f07ebe626a1269a613d262d1f737b57231a06f7c34b4e'], + }), + ('libXxf86dga', '1.1.6', { # 2022-12-05 + 'checksums': ['87c7482b1e29b4eeb415815641c4f69c00545a8138e1b73ff1f361f7d9c22ac4'], + }), + ('libXxf86vm', '1.1.5', { # 2022-09-27 + 'checksums': ['f3f1c29fef8accb0adbd854900c03c6c42f1804f2bc1e4f3ad7b2e1f3b878128'], + }), + ('libdmx', '1.1.5', { # 2023-06-03 + 'checksums': ['070e82cc1daa1b21ee1339aef56a909eab04cbe7d430fabfbb01ecd21b2dd9f3'], + }), + ('libxkbfile', '1.1.2', { # 2022-12-08 + 'checksums': ['d1a7e659bc7ae1aa1fc1ecced261c734df5ad5d86af1ef7a946be0e2d841e51d'], + }), + ('libxshmfence', '1.3.2', { # 2022-12-08 + 'checksums': ['e93a85099604beb244ee756dcaf70e18b08701c1ca84c4de0126cd71bd6c8181'], + }), + ('xcb-util', '0.4.1', { # 2022-12-20 + 'checksums': ['21c6e720162858f15fe686cef833cf96a3e2a79875f84007d76f6d00417f593a'], + }), + ('xcb-util-image', '0.4.1', { # 2022-10-18 + 'checksums': ['0ebd4cf809043fdeb4f980d58cdcf2b527035018924f8c14da76d1c81001293b'], + }), + ('xcb-util-keysyms', '0.4.1', { # 2022-10-19 + 'checksums': ['1fa21c0cea3060caee7612b6577c1730da470b88cbdf846fa4e3e0ff78948e54'], + }), + ('xcb-util-renderutil', '0.3.10', { # 2022-10-19 + 'checksums': ['e04143c48e1644c5e074243fa293d88f99005b3c50d1d54358954404e635128a'], + }), + ('xcb-util-wm', '0.4.2', { # 2022-10-19 + 'checksums': ['dcecaaa535802fd57c84cceeff50c64efe7f2326bf752e16d2b77945649c8cd7'], + }), + ('xcb-util-cursor', '0.1.5', { # 2023-10-19 + 'checksums': ['0e9c5446dc6f3beb8af6ebfcc9e27bcc6da6fe2860f7fc07b99144dfa568e93b'], + }), + ('xkeyboard-config', '2.40', { # 2023-10-05 + 'easyblock': 'MesonNinja', + 'sources': [SOURCE_TAR_XZ], + 'checksums': ['7a3dba1bec7dc7191432da021242d17c9cf6c89690e6c57b0de048ff8c9d2ae3'], + # required to overrule parent preconfigopts that runs autogen.sh if configure script is missing + 'preconfigopts': '', + }), + ('printproto', '1.0.5', { # 2011-01-06 + 'checksums': ['e8b6f405fd865f0ea7a3a2908dfbf06622f57f2f91359ec65d13b955e49843fc'], + }), + ('libXp', '1.0.4', { # 2022-09-12 + 'checksums': ['05e46af1ccb68f1752cca5879774a4fb9bf3b19fe088eb745034956e0c6fadba'], + }), + ('xbitmaps', '1.1.3', { # 2023-02-23 + 'checksums': ['93b433b7ff223c4685fdba583b4bd30f2706be2413a670021084422d85b0269d'], + }), +] + +preconfigopts = "if [ ! -f configure ]; then ./autogen.sh; fi && " + +sanity_check_paths = { + 'files': ['include/X11/Xlib.h', 'include/X11/Xutil.h'], + 'dirs': ['include/GL', 'include/X11', 'include/X11/extensions', 'lib/pkgconfig', + 'share/pkgconfig', 'share/X11/xkb'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/x/XBeach/XBeach-20230831-gompi-2022a.eb b/easybuild/easyconfigs/x/XBeach/XBeach-20230831-gompi-2022a.eb new file mode 100644 index 00000000000..d6d2377b1fd --- /dev/null +++ b/easybuild/easyconfigs/x/XBeach/XBeach-20230831-gompi-2022a.eb @@ -0,0 +1,49 @@ +easyblock = 'ConfigureMake' + +name = 'XBeach' +# revision 6044 +version = '20230831' + +homepage = 'https://oss.deltares.nl/web/xbeach' +description = """ +XBeach is a two-dimensional model for wave propagation, long waves and mean flow, sediment +transport and morphological changes of the nearshore area, beaches, dunes and backbarrier +during storms. +""" + +toolchain = {'name': 'gompi', 'version': '2022a'} +toolchainopts = {'usempi': True} + +# There is no tarball provided, only SVN checkout through: +# svn checkout https://svn.oss.deltares.nl/repos/xbeach/trunk@6044 +# make tarball: tar -czvf XBeach-20230831.tgz trunk + +sources = [SOURCE_TGZ] +patches = ['XBeach-20230831_fix-gfortran-compilation.patch'] +checksums = [ + None, + '9aa8a3593ea641a16a6d09bb75cc9935de383b5934f4a2718eeb94382386f0c4', +] + +prebuildopts = 'make clean && ' + +dependencies = [ + ('Mako', '1.2.0'), + ('netCDF-Fortran', '4.6.0'), +] + +parallel = 1 + +configopts = '--with-netcdf' +preconfigopts = './autogen.sh && ' +preconfigopts += 'export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:${EBROOTNETCDFMINFORTRAN}/lib/pkgconfig" && ' + +sanity_check_paths = { + 'files': ['bin/xbeach', 'lib/libxbeach.a', 'lib/libxbeach.la', 'lib/libxbeach.%s' % SHLIB_EXT], + 'dirs': [] +} +sanity_check_commands = [ + 'xbeach -V |grep "You are using XBeach" 2>/dev/null', +] + +moduleclass = 'phys' diff --git a/easybuild/easyconfigs/x/XBeach/XBeach-20230831_fix-gfortran-compilation.patch b/easybuild/easyconfigs/x/XBeach/XBeach-20230831_fix-gfortran-compilation.patch new file mode 100644 index 00000000000..cf14a126030 --- /dev/null +++ b/easybuild/easyconfigs/x/XBeach/XBeach-20230831_fix-gfortran-compilation.patch @@ -0,0 +1,19 @@ +Fix compilation with gfortran, see https://github.com/openearth/xbeach/issues/2 +author: Cintia Willemyns (HPC-VUB) +--- trunk.orig/src/xbeachlibrary/mnemoniciso.F90 2023-09-18 11:46:34.153048000 +0200 ++++ trunk/src/xbeachlibrary/mnemoniciso.F90 2023-09-18 11:46:41.583851000 +0200 +@@ -10,10 +10,10 @@ + character(kind=c_char) type ! 'i' or 'r': integer or real*8 + character(kind=c_char) btype ! 'b' or 'd': + integer(c_int) rank ! 0,1,2,3,4 +- character(kind=c_char, len=maxnamelen) :: name ! 'v','ve', ..... +- character(kind=c_char, len=20) :: units ! m, following udunits convention +- character(kind=c_char, len=1024) :: description +- character(kind=c_char, len=20), dimension(maxrank) :: dimensions ! the dimensions of the variable, for example (s%nx, s%ny) ++ character(kind=c_char) :: name(maxnamelen) ! 'v','ve', ..... ++ character(kind=c_char) :: units(20) ! m, following udunits convention ++ character(kind=c_char) :: description(1024) ++ character(kind=c_char), dimension(maxrank) :: dimensions(20) + + type (c_ptr) :: array + diff --git a/easybuild/easyconfigs/x/XML-Parser/XML-Parser-2.46-GCCcore-12.3.0-Perl-5.36.1.eb b/easybuild/easyconfigs/x/XML-Parser/XML-Parser-2.46-GCCcore-12.3.0-Perl-5.36.1.eb new file mode 100644 index 00000000000..f72f817ca77 --- /dev/null +++ b/easybuild/easyconfigs/x/XML-Parser/XML-Parser-2.46-GCCcore-12.3.0-Perl-5.36.1.eb @@ -0,0 +1,32 @@ +easyblock = 'PerlModule' + +name = 'XML-Parser' +version = '2.46' +versionsuffix = '-Perl-%(perlver)s' + +homepage = 'https://search.cpan.org/~toddr/XML-Parser-2.46/' +description = """This is a Perl extension interface to James Clark's XML parser, expat.""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +source_urls = ['https://cpan.metacpan.org/authors/id/T/TO/TODDR/'] +sources = [SOURCE_TAR_GZ] +checksums = ['d331332491c51cccfb4cb94ffc44f9cd73378e618498d4a37df9e043661c515d'] + +builddependencies = [ + ('binutils', '2.40') +] + +dependencies = [ + ('Perl', '5.36.1'), + ('expat', '2.5.0') +] + +options = {'modulename': 'XML::Parser'} + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/perl5/site_perl/%(perlver)s/%(arch)s-linux-thread-multi/XML'], +} + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/x/XOOPIC/XOOPIC-20210302-foss-2020a.eb b/easybuild/easyconfigs/x/XOOPIC/XOOPIC-20210302-foss-2020a.eb new file mode 100644 index 00000000000..6d05dd196d9 --- /dev/null +++ b/easybuild/easyconfigs/x/XOOPIC/XOOPIC-20210302-foss-2020a.eb @@ -0,0 +1,54 @@ +# Contribution from Imperial College London, UK +# uploaded by J. Sassmannshausen + +easyblock = 'ConfigureMake' + +name = 'XOOPIC' +version = '20210302' +local_commit = '3fa6670' + +homepage = 'https://github.com/rinku-mishra/xoopic' +description = """XOOPIC is a two-dimensional 3-velocity particle-in-cell simulator. +It can handle electrostatic and electromagnetic models, has a large variety of +boundary conditions, supports multiple gasses and gas chemistry, and is easily +reconfigurable via an input file.""" + +toolchain = {'name': 'foss', 'version': '2020a'} + +source_urls = ['https://github.com/rinku-mishra/xoopic/archive/%s' % local_commit] +sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}] +checksums = ['e81a2b7a527b905fd58afd080f45690963079b0a0493a55929d2a0ef1246d4e3'] + +builddependencies = [ + ('M4', '1.4.18'), + ('Bison', '3.5.3'), +] + +dependencies = [ + ('X11', '20200222'), + ('Tcl', '8.6.10'), + ('Tk', '8.6.10'), + ('ImageMagick', '7.0.10-1'), + ('XGrafix', '2.41'), + ('HDF5', '1.10.6'), + ('FFTW', '3.3.8'), +] + +# We need to specify where things are, unfortunately. +configopts = '--enable-MPI --enable-fulloptimize --with-xpm=$EBROOTX11/lib ' +configopts += '--with-tclconfig=$EBROOTTCL/lib --with-tkconfig=$EBROOTTK/lib ' +configopts += '--with-XGRAFIX-lib=$EBROOTXGRAFIX/lib --with-XGRAFIX-include=$EBROOTXGRAFIX/include ' +configopts += '--with-X11-include=$EBROOTX11/include --with-X11_LIBDIR=$EBROOTX11/lib ' +configopts += '--with-hdf5-incdir=$EBROOTHDF5/include ' +# This does not seem to be used, so for now we leave it out: +# configopts += '--with-dfftw-incdir=$EBROOTFFTW/include --with-dfftw-libdir=$EBROOTFFTW/lib ' + +sanity_check_paths = { + 'files': ['bin/xoopic'] + + ['lib/libadvisor.a', 'lib/libotools.a', 'lib/libphysics.a', 'lib/libxg.a'], + 'dirs': ['include'], +} + +sanity_check_commands = ["xoopic -h"] + +moduleclass = 'phys' diff --git a/easybuild/easyconfigs/x/XlsxWriter/XlsxWriter-3.1.3-GCCcore-12.3.0.eb b/easybuild/easyconfigs/x/XlsxWriter/XlsxWriter-3.1.3-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..251a37d1717 --- /dev/null +++ b/easybuild/easyconfigs/x/XlsxWriter/XlsxWriter-3.1.3-GCCcore-12.3.0.eb @@ -0,0 +1,34 @@ +easyblock = 'PythonPackage' + +name = 'XlsxWriter' +version = '3.1.3' + +homepage = 'https://xlsxwriter.readthedocs.io/' +description = "A Python module for creating Excel XLSX files" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['696c16458d50712a3a5f902676c045ddb4c1bd1b54595f501e582d549abdbdb9'] + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('Python', '3.11.3'), +] + +download_dep_fail = True +use_pip = True + +sanity_check_paths = { + 'files': ['bin/vba_extract.py'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ['vba_extract.py --help'] + +sanity_pip_check = True + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.11-GCCcore-10.3.0.eb b/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.11-GCCcore-10.3.0.eb index da8a33a8547..66f838fc14b 100644 --- a/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.11-GCCcore-10.3.0.eb +++ b/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.11-GCCcore-10.3.0.eb @@ -95,7 +95,9 @@ components = [ }), ] -postinstallcmds = ["cp -a xvfb-run %(installdir)s/bin/ && chmod u+x %(installdir)s/bin/xvfb-run"] +# enable exec permissions for xvfb-run after copying; +# need to also enable user write permissions on xvfb-run to ensure that copying with preserved permissions works +postinstallcmds = ["chmod u+w xvfb-run && cp -a xvfb-run %(installdir)s/bin/ && chmod a+x %(installdir)s/bin/xvfb-run"] sanity_check_paths = { 'files': ['bin/Xvfb', 'bin/xvfb-run'], diff --git a/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.13-GCCcore-11.2.0.eb b/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.13-GCCcore-11.2.0.eb index 8260693dbd9..0fab63d96b8 100644 --- a/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.13-GCCcore-11.2.0.eb +++ b/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.13-GCCcore-11.2.0.eb @@ -95,7 +95,9 @@ components = [ }), ] -postinstallcmds = ["cp -a xvfb-run %(installdir)s/bin/ && chmod u+x %(installdir)s/bin/xvfb-run"] +# enable exec permissions for xvfb-run after copying; +# need to also enable user write permissions on xvfb-run to ensure that copying with preserved permissions works +postinstallcmds = ["chmod u+w xvfb-run && cp -a xvfb-run %(installdir)s/bin/ && chmod a+x %(installdir)s/bin/xvfb-run"] sanity_check_paths = { 'files': ['bin/Xvfb', 'bin/xvfb-run'], diff --git a/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.8-GCCcore-8.2.0.eb b/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.8-GCCcore-8.2.0.eb index cecac7a6fb8..1db3dc5e081 100644 --- a/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.8-GCCcore-8.2.0.eb +++ b/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.8-GCCcore-8.2.0.eb @@ -100,7 +100,9 @@ components = [ }), ] -postinstallcmds = ["cp -a xvfb-run %(installdir)s/bin/ && chmod u+x %(installdir)s/bin/xvfb-run"] +# enable exec permissions for xvfb-run after copying; +# need to also enable user write permissions on xvfb-run to ensure that copying with preserved permissions works +postinstallcmds = ["chmod u+w xvfb-run && cp -a xvfb-run %(installdir)s/bin/ && chmod a+x %(installdir)s/bin/xvfb-run"] sanity_check_paths = { 'files': ['bin/Xvfb', 'bin/xvfb-run'], diff --git a/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.8-GCCcore-8.3.0.eb b/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.8-GCCcore-8.3.0.eb index 4a228b5fdf7..fc27c8fc593 100644 --- a/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.8-GCCcore-8.3.0.eb +++ b/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.8-GCCcore-8.3.0.eb @@ -100,7 +100,9 @@ components = [ }), ] -postinstallcmds = ["cp -a xvfb-run %(installdir)s/bin/ && chmod u+x %(installdir)s/bin/xvfb-run"] +# enable exec permissions for xvfb-run after copying; +# need to also enable user write permissions on xvfb-run to ensure that copying with preserved permissions works +postinstallcmds = ["chmod u+w xvfb-run && cp -a xvfb-run %(installdir)s/bin/ && chmod a+x %(installdir)s/bin/xvfb-run"] sanity_check_paths = { 'files': ['bin/Xvfb', 'bin/xvfb-run'], diff --git a/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.9-GCCcore-10.2.0.eb b/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.9-GCCcore-10.2.0.eb index 5341032753f..43d07a3d4e1 100644 --- a/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.9-GCCcore-10.2.0.eb +++ b/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.9-GCCcore-10.2.0.eb @@ -95,7 +95,9 @@ components = [ }), ] -postinstallcmds = ["cp -a xvfb-run %(installdir)s/bin/ && chmod u+x %(installdir)s/bin/xvfb-run"] +# enable exec permissions for xvfb-run after copying; +# need to also enable user write permissions on xvfb-run to ensure that copying with preserved permissions works +postinstallcmds = ["chmod u+w xvfb-run && cp -a xvfb-run %(installdir)s/bin/ && chmod a+x %(installdir)s/bin/xvfb-run"] sanity_check_paths = { 'files': ['bin/Xvfb', 'bin/xvfb-run'], diff --git a/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.9-GCCcore-9.3.0.eb b/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.9-GCCcore-9.3.0.eb index 772ef1b22f5..94aa35864b6 100644 --- a/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.9-GCCcore-9.3.0.eb +++ b/easybuild/easyconfigs/x/Xvfb/Xvfb-1.20.9-GCCcore-9.3.0.eb @@ -95,7 +95,9 @@ components = [ }), ] -postinstallcmds = ["cp -a xvfb-run %(installdir)s/bin/ && chmod u+x %(installdir)s/bin/xvfb-run"] +# enable exec permissions for xvfb-run after copying; +# need to also enable user write permissions on xvfb-run to ensure that copying with preserved permissions works +postinstallcmds = ["chmod u+w xvfb-run && cp -a xvfb-run %(installdir)s/bin/ && chmod a+x %(installdir)s/bin/xvfb-run"] sanity_check_paths = { 'files': ['bin/Xvfb', 'bin/xvfb-run'], diff --git a/easybuild/easyconfigs/x/Xvfb/Xvfb-21.1.3-GCCcore-11.3.0.eb b/easybuild/easyconfigs/x/Xvfb/Xvfb-21.1.3-GCCcore-11.3.0.eb index 35ddaebf9e8..cd7d049d7e1 100644 --- a/easybuild/easyconfigs/x/Xvfb/Xvfb-21.1.3-GCCcore-11.3.0.eb +++ b/easybuild/easyconfigs/x/Xvfb/Xvfb-21.1.3-GCCcore-11.3.0.eb @@ -108,7 +108,9 @@ components = [ }), ] -postinstallcmds = ["cp -a xvfb-run %(installdir)s/bin/ && chmod u+x %(installdir)s/bin/xvfb-run"] +# enable exec permissions for xvfb-run after copying; +# need to also enable user write permissions on xvfb-run to ensure that copying with preserved permissions works +postinstallcmds = ["chmod u+w xvfb-run && cp -a xvfb-run %(installdir)s/bin/ && chmod a+x %(installdir)s/bin/xvfb-run"] sanity_check_paths = { 'files': ['bin/Xvfb', 'bin/xvfb-run'], diff --git a/easybuild/easyconfigs/x/Xvfb/Xvfb-21.1.6-GCCcore-12.2.0.eb b/easybuild/easyconfigs/x/Xvfb/Xvfb-21.1.6-GCCcore-12.2.0.eb index 306d5b638f1..2917a7c8876 100644 --- a/easybuild/easyconfigs/x/Xvfb/Xvfb-21.1.6-GCCcore-12.2.0.eb +++ b/easybuild/easyconfigs/x/Xvfb/Xvfb-21.1.6-GCCcore-12.2.0.eb @@ -108,7 +108,9 @@ components = [ }), ] -postinstallcmds = ["cp -a xvfb-run %(installdir)s/bin/ && chmod u+x %(installdir)s/bin/xvfb-run"] +# enable exec permissions for xvfb-run after copying; +# need to also enable user write permissions on xvfb-run to ensure that copying with preserved permissions works +postinstallcmds = ["chmod u+w xvfb-run && cp -a xvfb-run %(installdir)s/bin/ && chmod a+x %(installdir)s/bin/xvfb-run"] sanity_check_paths = { 'files': ['bin/Xvfb', 'bin/xvfb-run'], diff --git a/easybuild/easyconfigs/x/Xvfb/Xvfb-21.1.8-GCCcore-12.3.0.eb b/easybuild/easyconfigs/x/Xvfb/Xvfb-21.1.8-GCCcore-12.3.0.eb index 5e25aa280fe..5cb7e312a44 100644 --- a/easybuild/easyconfigs/x/Xvfb/Xvfb-21.1.8-GCCcore-12.3.0.eb +++ b/easybuild/easyconfigs/x/Xvfb/Xvfb-21.1.8-GCCcore-12.3.0.eb @@ -108,7 +108,9 @@ components = [ }), ] -postinstallcmds = ["cp -a xvfb-run %(installdir)s/bin/ && chmod u+x %(installdir)s/bin/xvfb-run"] +# enable exec permissions for xvfb-run after copying; +# need to also enable user write permissions on xvfb-run to ensure that copying with preserved permissions works +postinstallcmds = ["chmod u+w xvfb-run && cp -a xvfb-run %(installdir)s/bin/ && chmod a+x %(installdir)s/bin/xvfb-run"] sanity_check_paths = { 'files': ['bin/Xvfb', 'bin/xvfb-run'], diff --git a/easybuild/easyconfigs/x/x264/x264-20231019-GCCcore-13.2.0.eb b/easybuild/easyconfigs/x/x264/x264-20231019-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..a1d60486ce0 --- /dev/null +++ b/easybuild/easyconfigs/x/x264/x264-20231019-GCCcore-13.2.0.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'x264' +version = '20231019' + +homepage = 'https://www.videolan.org/developers/x264.html' +description = """ + x264 is a free software library and application for encoding video streams + into the H.264/MPEG-4 AVC compression format, and is released under the + terms of the GNU GPL. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://code.videolan.org/videolan/%(name)s/-/archive/baee400f/'] +sources = [{'download_filename': '%(name)s-9c3c7168.tar.gz', 'filename': SOURCE_TAR_GZ}] +checksums = ['bf6a61dcc7e1f4e623a44f09de02e843f06e7ec14f807557b43130fc84287f29'] + +builddependencies = [ + ('binutils', '2.40'), + ('pkgconf', '2.0.3'), + ('NASM', '2.16.01'), +] + +configopts = " --enable-shared --enable-static --disable-bashcompletion" + + +sanity_check_paths = { + 'files': ['bin/%(name)s', 'include/x264_config.h', 'include/%(name)s.h', 'lib/libx264.a', 'lib/libx264.so'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/x/x265/x265-3.5-GCCcore-13.2.0.eb b/easybuild/easyconfigs/x/x265/x265-3.5-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..d1bca35c8d7 --- /dev/null +++ b/easybuild/easyconfigs/x/x265/x265-3.5-GCCcore-13.2.0.eb @@ -0,0 +1,34 @@ +easyblock = 'CMakeMake' + +name = 'x265' +version = '3.5' + +homepage = 'https://x265.org/' +description = """ + x265 is a free software library and application for encoding video streams + into the H.265 AVC compression format, and is released under the terms of + the GNU GPL. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://bitbucket.org/multicoreware/x265_git/downloads/'] +sources = ['%(name)s_%(version)s.tar.gz'] +checksums = ['e70a3335cacacbba0b3a20ec6fecd6783932288ebc8163ad74bcc9606477cae8'] + +builddependencies = [ + ('binutils', '2.40'), + ('CMake', '3.27.6'), + ('Yasm', '1.3.0'), +] + +configopts = '-DGIT_ARCHETYPE=1' + +start_dir = 'source' + +sanity_check_paths = { + 'files': ['bin/%(name)s', 'include/x265_config.h', 'include/%(name)s.h', 'lib/libx265.a', 'lib/libx265.so'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/x/xarray/xarray-2023.9.0-gfbf-2023a.eb b/easybuild/easyconfigs/x/xarray/xarray-2023.9.0-gfbf-2023a.eb new file mode 100644 index 00000000000..fefb271482f --- /dev/null +++ b/easybuild/easyconfigs/x/xarray/xarray-2023.9.0-gfbf-2023a.eb @@ -0,0 +1,28 @@ +easyblock = 'PythonBundle' + +name = 'xarray' +version = '2023.9.0' + +homepage = 'https://github.com/pydata/xarray' +description = """xarray (formerly xray) is an open source project and Python package that aims to bring + the labeled data power of pandas to the physical sciences, by providing N-dimensional variants of the + core pandas data structures.""" + +toolchain = {'name': 'gfbf', 'version': '2023a'} + +dependencies = [ + ('Python', '3.11.3'), + ('SciPy-bundle', '2023.07'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + (name, version, { + 'checksums': ['271955c05dc626dad37791a7807d920aaf9c64cac71d03b45ec7e402cc646603'], + 'preinstallopts': """sed -i 's/^dynamic = .*version.*/version = "%(version)s"/g' pyproject.toml && """, + }), +] + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/x/xproto/xproto-7.0.31-GCCcore-12.3.0.eb b/easybuild/easyconfigs/x/xproto/xproto-7.0.31-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..0cbe506fc70 --- /dev/null +++ b/easybuild/easyconfigs/x/xproto/xproto-7.0.31-GCCcore-12.3.0.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'xproto' +version = '7.0.31' + +homepage = 'https://www.freedesktop.org/wiki/Software/xlibs' +description = "X protocol and ancillary headers" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +source_urls = [XORG_PROTO_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['6d755eaae27b45c5cc75529a12855fed5de5969b367ed05003944cf901ed43c7'] + +builddependencies = [ + ('binutils', '2.40'), + ('xorg-macros', '1.20.0'), +] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', 'Xatom.h', + 'XF86keysym.h', 'Xfuncs.h', 'Xmd.h', 'Xos.h', 'Xpoll.h', 'Xprotostr.h', + 'Xw32defs.h', 'Xwindows.h', 'DECkeysym.h', 'keysymdef.h', 'Sunkeysym.h', + 'Xarch.h', 'Xdefs.h', 'Xfuncproto.h', 'X.h', 'Xosdefs.h', 'Xos_r.h', + 'Xproto.h', 'Xthreads.h', 'XWDFile.h', 'Xwinsock.h']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/x/xtb/xtb-6.6.0-foss-2022a.eb b/easybuild/easyconfigs/x/xtb/xtb-6.6.0-foss-2022a.eb new file mode 100644 index 00000000000..9fad4ae5452 --- /dev/null +++ b/easybuild/easyconfigs/x/xtb/xtb-6.6.0-foss-2022a.eb @@ -0,0 +1,49 @@ +easyblock = 'MesonNinja' + +name = 'xtb' +version = '6.6.0' + +homepage = 'https://xtb-docs.readthedocs.io' +description = """ xtb - An extended tight-binding semi-empirical program package. """ + +toolchain = {'name': 'foss', 'version': '2022a'} + +github_account = 'grimme-lab' +source_urls = [GITHUB_LOWER_SOURCE] +sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}] + +patches = ['xtb-6.6.0-foss-2022a_fix-custom-libraries.patch'] + +checksums = [ + '1845a9ba71c7bdb414e14ef3dad676728c31a2a94b26303551da57704c78a3e3', # v6.6.0.tar.gz + # xtb-6.6.0-foss-2022a_fix-custom-libraries.patch + '4e2e21b13a8d71b6b5d29c586fb28423a0f9a9ad518ebdca18cf0fa0cf27bc6e', +] + +builddependencies = [ + ('Meson', '0.62.1'), + ('Ninja', '1.10.2'), + ('pkgconf', '1.8.0'), +] + +configopts = "-Dlapack='custom' " +configopts += "-Dcustom_libraries='flexiblas' " +configopts += "--buildtype release " + + +runtest = 'meson' +testopts = 'test -C %(builddir)s/easybuild_obj -t 60' # Ensure test don't timeout + +sanity_check_paths = { + 'files': ['bin/xtb', 'include/xtb.h'] + ['lib/libxtb.%s' % e for e in ('a', SHLIB_EXT)], + 'dirs': ['share'], +} + +sanity_check_commands = ["xtb --help"] + +modextravars = { + 'XTBHOME': '%(installdir)s', + 'XTBPATH': '%(installdir)s', +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/x/xtb/xtb-6.6.0-foss-2022a_fix-custom-libraries.patch b/easybuild/easyconfigs/x/xtb/xtb-6.6.0-foss-2022a_fix-custom-libraries.patch new file mode 100644 index 00000000000..f2e22bd99f6 --- /dev/null +++ b/easybuild/easyconfigs/x/xtb/xtb-6.6.0-foss-2022a_fix-custom-libraries.patch @@ -0,0 +1,26 @@ +From 2d82c0d639e77c12408244d1d0308dc322058b9c Mon Sep 17 00:00:00 2001 +From: Susi Lehtola +Date: Sat, 15 Apr 2023 19:10:19 +0300 +Subject: [PATCH] Restore support for custom lapack backend (#785) + +Signed-off-by: Susi Lehtola +--- + meson/meson.build | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/meson/meson.build b/meson/meson.build +index 16bba9983..7c3192780 100644 +--- a/meson/meson.build ++++ b/meson/meson.build +@@ -146,6 +146,11 @@ elif lapack_vendor == 'openblas' + lib_deps += lapack_dep + endif + ++elif lapack_vendor == 'custom' ++ foreach lib: get_option('custom_libraries') ++ lib_deps += fc.find_library(lib) ++ endforeach ++ + else + lapack_dep = dependency('lapack', required: false) + if not lapack_dep.found() diff --git a/easybuild/easyconfigs/y/Yasm/Yasm-1.3.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/y/Yasm/Yasm-1.3.0-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..ac1a521bfe6 --- /dev/null +++ b/easybuild/easyconfigs/y/Yasm/Yasm-1.3.0-GCCcore-13.2.0.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'Yasm' +version = '1.3.0' + +homepage = 'https://www.tortall.net/projects/yasm/' +description = "Yasm: Complete rewrite of the NASM assembler with BSD license" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://github.com/%(namelower)s/%(namelower)s/releases/download/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['3dce6601b495f5b3d45b59f7d2492a340ee7e84b5beca17e48f862502bd5603f'] + +builddependencies = [ + ('binutils', '2.40'), +] + +sanity_check_paths = { + 'files': ['bin/%(namelower)s'], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/z/ZeroMQ/ZeroMQ-4.3.5-GCCcore-13.2.0.eb b/easybuild/easyconfigs/z/ZeroMQ/ZeroMQ-4.3.5-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..b1307bc3fcd --- /dev/null +++ b/easybuild/easyconfigs/z/ZeroMQ/ZeroMQ-4.3.5-GCCcore-13.2.0.eb @@ -0,0 +1,40 @@ +easyblock = 'ConfigureMake' + +name = 'ZeroMQ' +version = '4.3.5' + +homepage = 'https://www.zeromq.org/' +description = """ZeroMQ looks like an embeddable networking library but acts like a concurrency framework. + It gives you sockets that carry atomic messages across various transports like in-process, + inter-process, TCP, and multicast. You can connect sockets N-to-N with patterns like fanout, + pub-sub, task distribution, and request-reply. It's fast enough to be the fabric for clustered + products. Its asynchronous I/O model gives you scalable multicore applications, built as asynchronous + message-processing tasks. It has a score of language APIs and runs on most operating systems.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://github.com/%(namelower)s/libzmq/releases/download/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['6653ef5910f17954861fe72332e68b03ca6e4d9c7160eb3a8de5a5a913bfab43'] + +builddependencies = [ + ('binutils', '2.40'), + ('pkgconf', '2.0.3'), +] +dependencies = [ + ('OpenPGM', '5.2.122'), + ('libsodium', '1.0.19'), + ('util-linux', '2.39'), +] + +# Compialtion warnings in GCC 11, cf. https://github.com/zeromq/libzmq/issues/4178 +# Needto disable warnings as errors. +configopts = "--with-pic --with-pgm --with-libsodium --disable-Werror" + + +sanity_check_paths = { + 'files': ['lib/libzmq.%s' % SHLIB_EXT, 'lib/libzmq.a'], + 'dirs': ['include', 'lib'], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/z/Zip/Zip-3.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/z/Zip/Zip-3.0-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..6689b60b2a9 --- /dev/null +++ b/easybuild/easyconfigs/z/Zip/Zip-3.0-GCCcore-13.2.0.eb @@ -0,0 +1,40 @@ +easyblock = 'ConfigureMake' + +name = 'Zip' +version = '3.0' + +homepage = 'http://www.info-zip.org/Zip.html' +description = """Zip is a compression and file packaging/archive utility. +Although highly compatible both with PKWARE's PKZIP and PKUNZIP +utilities for MS-DOS and with Info-ZIP's own UnZip, our primary objectives +have been portability and other-than-MSDOS functionality""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://download.sourceforge.net/infozip'] +sources = ['%(namelower)s%(version_major)s%(version_minor)s.tar.gz'] +checksums = ['f0e8bb1f9b7eb0b01285495a2699df3a4b766784c1765a8f1aeedf63c0806369'] + +builddependencies = [ + ('binutils', '2.40'), +] +dependencies = [ + ('bzip2', '1.0.8'), +] + +skipsteps = ['configure'] + +buildopts = '-f unix/Makefile CC="$CC" IZ_OUR_BZIP2_DIR=$EBROOTBZIP2 ' +buildopts += 'CFLAGS="$CFLAGS -I. -DUNIX -DBZIP2_SUPPORT -DUNICODE_SUPPORT -DLARGE_FILE_SUPPORT" ' +buildopts += 'generic_gcc' + +installopts = '-f unix/Makefile prefix=%(installdir)s ' + +sanity_check_paths = { + 'files': ['bin/zip', 'bin/zipcloak', 'bin/zipnote', 'bin/zipsplit'], + 'dirs': ['man/man1'] +} + +sanity_check_commands = ["zip --version"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/z/zeus-mcmc/zeus-mcmc-2.5.4-foss-2022a.eb b/easybuild/easyconfigs/z/zeus-mcmc/zeus-mcmc-2.5.4-foss-2022a.eb new file mode 100644 index 00000000000..9c6041c0fa5 --- /dev/null +++ b/easybuild/easyconfigs/z/zeus-mcmc/zeus-mcmc-2.5.4-foss-2022a.eb @@ -0,0 +1,32 @@ +easyblock = 'PythonBundle' + +name = 'zeus-mcmc' +version = '2.5.4' + +homepage = 'https://zeus-mcmc.readthedocs.io' +description = "Zeus is a Python implementation of the Ensemble Slice Sampling method." + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('matplotlib', '3.5.2'), + ('scikit-learn', '1.1.2'), + ('tqdm', '4.64.0'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('seaborn', '0.12.2', { + 'checksums': ['374645f36509d0dcab895cba5b47daf0586f77bfe3b36c97c607db7da5be0139'], + }), + (name, version, { + 'modulename': 'zeus', + 'checksums': ['594baa90de4ad4488c4db5ed6a0446f7103bc4b3de787f4d7d23c91c9aa88769'], + }), +] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/z/zstd/zstd-1.5.5-GCCcore-13.2.0.eb b/easybuild/easyconfigs/z/zstd/zstd-1.5.5-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..786ceb646a4 --- /dev/null +++ b/easybuild/easyconfigs/z/zstd/zstd-1.5.5-GCCcore-13.2.0.eb @@ -0,0 +1,41 @@ +easyblock = 'ConfigureMake' + +name = 'zstd' +version = '1.5.5' + +homepage = 'https://facebook.github.io/zstd' +description = """Zstandard is a real-time compression algorithm, providing high compression ratios. + It offers a very wide range of compression/speed trade-off, while being backed by a very fast decoder. + It also offers a special mode for small data, called dictionary compression, and can create dictionaries + from any sample set.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +github_account = 'facebook' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['98e9c3d949d1b924e28e01eccb7deed865eefebf25c2f21c702e5cd5b63b85e1'] + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('zlib', '1.2.13'), + ('gzip', '1.13'), + ('XZ', '5.4.4'), + ('lz4', '1.9.4'), +] + +skipsteps = ['configure'] + +runtest = 'check' + +installopts = "PREFIX=%(installdir)s" + +sanity_check_paths = { + 'files': ["bin/zstd", "lib/libzstd.%s" % SHLIB_EXT, "include/zstd.h"], + 'dirs': ["lib/pkgconfig"] +} + +moduleclass = 'lib' diff --git a/setup.cfg b/setup.cfg index c1167840f91..3e70f500f0d 100644 --- a/setup.cfg +++ b/setup.cfg @@ -74,7 +74,3 @@ builtins = SOURCELOWER_PY2_WHL, SOURCE_PY3_WHL, SOURCELOWER_PY3_WHL - -[sdist] -# Don't remove CVS and RCS directories -prune = 0 diff --git a/setup.py b/setup.py index 9b812bdf2ec..1aaee4d4aab 100644 --- a/setup.py +++ b/setup.py @@ -44,7 +44,7 @@ # recent setuptools versions will *TRANSFORM* something like 'X.Y.Zdev' into 'X.Y.Z.dev0', with a warning like # UserWarning: Normalizing '2.4.0dev' to '2.4.0.dev0' # This causes problems further up the dependency chain... -VERSION = '4.8.1' +VERSION = '4.8.2' MAJ_VER = VERSION.split('.')[0] MAJMIN_VER = '.'.join(VERSION.split('.')[0:2]) diff --git a/test/easyconfigs/easyconfigs.py b/test/easyconfigs/easyconfigs.py index 65bea6e1e1c..27461af560f 100644 --- a/test/easyconfigs/easyconfigs.py +++ b/test/easyconfigs/easyconfigs.py @@ -536,7 +536,7 @@ def check_dep_vars(self, gen, dep, dep_vars): 'LLVM': [ # numba 0.47.x requires LLVM 7.x or 8.x (see https://github.com/numba/llvmlite#compatibility) (r'8\.', [r'numba-0\.47\.0-', r'librosa-0\.7\.2-', r'BirdNET-20201214-', - r'scVelo-0\.1\.24-', r'PyTorch-Geometric-1\.[346]\.[23]']), + r'scVelo-0\.1\.24-', r'PyTorch-Geometric-1\.[346]\.[23]', r'SHAP-0\.42\.1']), (r'10\.0\.1', [r'cell2location-0\.05-alpha-', r'cryoDRGN-0\.3\.2-', r'loompy-3\.0\.6-', r'numba-0\.52\.0-', r'PyOD-0\.8\.7-', r'PyTorch-Geometric-1\.6\.3', r'scanpy-1\.7\.2-', r'umap-learn-0\.4\.6-']),