diff --git a/RELEASE_NOTES b/RELEASE_NOTES index ad9225440a8..3faa98793bf 100644 --- a/RELEASE_NOTES +++ b/RELEASE_NOTES @@ -3,8 +3,113 @@ 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 11,784 easyconfig files, for 2,288 different software packages, -incl. 33 different (compiler) toolchains. +The latest version of easybuild-easyconfig provides 12,266 easyconfig files, for 2,349 different software packages, +incl. 36 different (compiler) toolchains. + + +v4.4.0 (June 2nd 2021) +---------------------- + +feature release + +- added easyconfigs for new Fujitsu toolchain: FCC/4.5.0 (#12999, #12995, #13007), ffmpi/4.5.0 (#13000) and Fujitsu/21.05 (#13001, #13007) +- add easyconfigs for updates of common toolchains: foss/2021a (#12867, #12975), intel/2021a (#12885, #12975) + - see also https://easybuild.readthedocs.io/en/latest/Common-toolchains.html +- added easyconfig for gomkl/2021a toolchain (#12987) +- added example easyconfig files for 58 new software packages: + - Archive-Zip (#12651), BirdNET (#12737, #12712, #12737), cell2location (#12448), cryoDRGN (#12704), + dm-reverb (#12824), DROP (#12559, #12801, #12950), fastahack (#12841), fermi-lite (#12856), filevercmp (#12841), + FlexiBLAS (#12476), freetype-py (#12918), fsom (#12841), garnett (#12529), gawk (#12716), gemmi (#12855), + georges (#12570), hifiasm (#12897), intervaltree (#12838), LDC (#12671), libidn2 (#12670), librosa (#10477), + librsb (#12780), line_profiler (#12556), loompy (#12804), mmtf-cpp (#12580), mongolite (#12632), msgpack-c (#12580), + multichoose (#12839), networkTools (#12810), NewHybrids (#12528), Octopus-vcf (#12598), onedrive (#12671), + p4-phylogenetics (#12549), pagmo (#12678), pyfaidx (#12872), pyfasta (#12952), pygmo (#12678), pysheds (#12791), + R-INLA (#12955, #12927, #12955), RegTools (#12874), request (#12448), rMATS-turbo (#12982), scanpy (#12731), + SeqLib (#12856), SeuratData (#12993), SeuratWrappers (#12994), smithwaterman (#12841), snp-sites (#12900), + SSW (#12856), tabixpp (#12837), TagDust (#11599), TALON (#12963), tMAE (#12559), TranscriptClean (#12952), + umap-learn (#12448), vcflib (#12841), xESMF (#12799), XlsxWriter (#12820) +- added additional easyconfigs for various supported software packages, including: + - ABINIT 9.4.1, apex 20210420, astropy 4.2.1, binutils 2.36.1, BLIS 0.8.1, Bonito 0.3.8, BUSCO 5.1.2, canu 2.1.1, + carputils 20210513, CastXML 0.4.3, ccache 4.2.1, CDO 1.9.10, CIRCexplorer2 2.3.8, CLHEP 2.4.4.0, CMake 3.20.1, + CNVkit 0.9.8, CUDA(core) 11.3.0, CuPy 8.5.0, cURL 7.76.0, DFA 2.1.2, Doxygen 1.9.1, Eigen 3.3.9, FastANI 1.33, + FFTW 3.3.9, GATK 4.2.0.0, GCC 10.3.0 + 11.1.0, GDB 10.2, gdc-client 1.6.0, GDRCopy 2.2, Geant4 10.7.1, + Geant4-data 20210510, GeneMark-ET 4.65, glew 2.2.0, GLib 2.68.2, GLPK 5.0, GMP 6.2.1, Go 1.16.3, Graphviz 2.47.0, + GROMACS 2021.2, GStreamer 1.18.4, GTDB-Tk 1.5.0, Gurobi 9.1.2, HMMER 3.3.2, Horovod 0.21.3, hwloc 2.4.1, + hypothesis 6.13.1, IGV 2.9.4, impi 2021.2.0, imkl 2021.2.0, intel-compilers 2021.2.0, JasPer 2.0.28, Julia 1.6.1, + Kraken2 2.1.1, KronaTools 2.8, libarchive 3.5.1, libdeflate 1.7, libdrm 2.4.106, libfabric 1.12.1, libreadline 8.1, + libRmath 4.0.0, libsndfile 1.0.31, LIBSVM 3.24, LibTIFF 4.2.0, libunwind 1.5.0, libwebp 1.2.0, LLVM 11.1.0, + LMDB 0.9.28, LUMPY 0.3.1, lz4 1.9.3, Mako 1.1.4, MATLAB 2021a, Mesa 21.1.1, meshalyzer 2.2, Meson 0.58.0, + MetaBAT 2.15, metaWRAP 1.3, minimap2 2.18, Molden 6.8, MotionCor2 1.4.2, ncview 2.1.8, NetPIPE 5.1.4, nettle 3.7.2, + NiBabel 3.2.1, Nilearn 0.7.1, Nim 1.4.6, Ninja 1.10.2, NLopt 2.7.0, NSS 3.65, numactl 2.0.14, NWChem 7.0.2, + OpenBLAS 0.3.15, openCARP 6.0, OpenEXR 3.0.1, OpenMM 7.5.0, OpenMPI 4.1.1, OpenSSL 1.1 (wrapper), + OSU-Micro-Benchmarks 5.7.1, Pandoc 2.13, parallel 20210322, parasail 2.4.3, PAUP 4.0a168, PCRE2 10.36, Perl 5.32.1, + pigz 2.6, PMIx 3.2.3, Primer3 2.5.0, PRSice 2.3.3, py-aiger 6.1.14, pybind11 2.6.2, PyCharm 2021.1.1, pydot 1.4.2, + pyproj 3.0.1, PySAT 0.1.7.dev1, PyTorch 1.8.1, python-parasail 1.2.4, Pylint 2.7.4, Python 3.9.5, Qt5 5.15.2, + R-keras 2.4.0, rasterio 1.2.3, RAxML-NG 1.0.2, rclone 1.54.1, re2c 2.1.1, ReFrame 3.5.2, Rmath 4.0.4, Rust 1.52.1, + Sambamba 0.8.0, samblaster 0.1.26, samclip 0.4.0, scikit-allel 1.3.2, SciPy-bundle 2021.05, SCons 4.1.0.post1, + snakemake 6.1.0, SQLite 3.35.4, SRPRISM 3.1.2, Tcl 8.6.11, TCLAP 1.2.4, tmux 3.2, tqdm 4.60.0, UCX 1.10.0, + Valgrind 3.17.0, WannierTools 2.5.1, wget 1.21.1, wxWidgets 3.1.4, X11 20210518, x264 20210414, x265 3.5, + xorg-macros 1.19.3, YAXT 0.9.0, zarr 2.8.1, zstd 1.4.9 +- minor enhancements, including: + - add additional extensions to R v4.0.3 and v4.0.4: miceadds, visdat, UpSetR, naniar, stringdist, + image.binarization (#12735), lassosum (#12821), lslx, regsem, semPLS (#13005) + - add GenABEL to R-bundle-Bioconductor (#12822) +- various bug fixes, including: + - disable automatic acceptance of NVHPC EULA (#12014) + - enhance RStudio-Server, add patch to inherit environment variables, add sanity check commands to verify installation (#12544) + - add fix to scipy to handle NaN arguments to "vi" function (#12551) + - copy all binaries + examples & co for PAML v4.9j (#12567) + - add patch to fix hardcoded num_cores in DMCfun extension included with R 4.0.x (#12583) + - backport Charm++ patch for NAMD/2.14 on intel/2020a to handle newer glibc (#12594) + - add setuptools_scm and pytest-runner extensions to Pylint easyconfigs (#12599) + - fix typo in Delly easyconfig to actually do parallel build (#12633) + - fix potential memory leak in OpenBLAS 0.3.12 (#12649) + - consistently use pip to install Python packages in recent Python easyconfigs (#12650) + - replace bintray source url for Groovy (#12652) + - add missing Python & Perl dependencies to for AUGUSTUS v3.4.0 with foss/2020b (#12662) + - fix wget dependency: use libidn2 rather than libidn (#12670) + - fix source URLs for recent ELPA versions (#12700) + - override host compiler check in CUDAcore (#12701) + - add Python build dependency to libpsl 0.21.0 easyconfigs (#12715) + - fix error in libgpg-error 1.36 with gawk builtin (#12716) + - add libtool build dependency to leidenalg (#12741) + - fix source URLs for Boost 1.71.0 - 1.74.0 easyconfigs (#12743) and Boost.Python (#12744) + - add patches for PyTorch 1.7.1 avoiding failures on POWER and A100 (#12753) + - add patch for OpenPGM 5.2.122 eaysconfigs to fix non-existent directory in *.pc (pkgconfig) file (#12774) + - add missing Perl build dependency to recent wget easyconfigs (#12787) + - make sure Python dependency is used in preCICE 2.x easyconfigs (#12793) + - don't skip source step in FastTree easyconfigs + fix SHA256 checksum for FastTree 2.1.11 (#12794) + - add patch for rhdf5filters extension in Bioconductor 3.12 bundle to fix installation on aarch64 (#12836) + - add IceLake detection to OpenBLAS 0.3.12 and 0.3.15 (#12865) + - fix checksum for MaxBin 2.2.7 (#12869) + - run 'make clean' before building FragGeneScan, to clean up object files included in source tarball (#12870) + - clean up install of KronaTools (#12871) + - add UCX dependency to OneAPI versions of impi (#12873) + - correct description in libdeflate easyconfig (#12886) + - override Makefile with hardcoded CC=cc in UnZip easyconfigs (#12887) + - fix compatibility of FLAIR v1.5.1-20200630 with rpy2 v3.x (#12899) + - fix test step for libxc 4.3.4 and 5.1.x when using RPATH linking (#12912) + - fix source URLs in BLAST 2.10.x easyconfigs (#12914) + - add missing xproto build dependency to imake easyconfig (#12930) + - add patch to fix GCC 10.2.0 rejecting valid code on PPC (#12948) + - in easyconfig tests, check version of dependencies named Python, not if dependencies with certain versions are named Python (#12962) + - update easyconfigs for binutils 2.35 to use binutils 2.35.2 source tarball instead to pick up bug fixes (#12967, #12988) + - fix download URL for DB 18.1.40 (#12974) + - fix test failure in TensorFlow 2.4.1 on recent CUDA drivers (#12979) + - fix error in configopts for netCDF and HDF5 and add missing dependencies of ABINIT 9.x (#12981) + - add patch to fix buffer overflow in OpenMPI 4.1.x (#12983) +- other changes: + - update setup.py to indicate compatibility with Python 3.8 and 3.9 (#12565) + - add -Java versionsuffix for Hadoop easyconfig using GCCcore/10.2.0 toolchain, since it depends on Java 1.8 (#12709) + - remove unneccessary workaround for missing version of OpenDataCube and Spyder for 2020+ toolchains (#12757) + - remove 'unpack_sources = False' from recent easyconfigs that use a *.whl file as source (#12783) + - whitelist Seaborn 0.10.1 for NanoComp 1.13.1 and NanoPlot 1.33.0 (#12790) + - add check to make sure that source step is not being skipped (#12807) + - use EasyConfig.disable_templating method in test suite (#12848) + - disable usNIC by default in libfabric to avoid problems due to linking to both libnl and libnl-3 (#12854) + - use OpenSSL wrapper as dependency in easyconfigs using GCCcore/10.3.0 toolchain (#12922, #12944) + - dump easyconfig before initializing easyblock in order to compare it with original easyconfig (#12925) + - remove postinstallcmds from imkl 2020.x easyconfigs, easyblock now installs examples (#12937) v4.3.4 (April 9th 2021) diff --git a/easybuild/easyconfigs/a/ABINIT/ABINIT-9.2.1-intel-2020a.eb b/easybuild/easyconfigs/a/ABINIT/ABINIT-9.2.1-intel-2020a.eb index 3f8347410c4..c34e16d5f3e 100644 --- a/easybuild/easyconfigs/a/ABINIT/ABINIT-9.2.1-intel-2020a.eb +++ b/easybuild/easyconfigs/a/ABINIT/ABINIT-9.2.1-intel-2020a.eb @@ -21,7 +21,9 @@ builddependencies = [ ] dependencies = [ ('libxc', '4.3.4'), + ('netCDF', '4.7.4'), ('netCDF-Fortran', '4.5.2'), + ('HDF5', '1.10.6'), ] # Ensure MPI with intel wrappers. @@ -37,10 +39,10 @@ configopts += '--with-fft-flavor=dfti ' # libxc support configopts += '--with-libxc=${EBROOTLIBXC} ' -# hdf5/netcdf4. -configopts += 'with_netcdf="${EBROOTNETCDF}" ' -configopts += 'with_netcdf_fortran="${EBROOTNETCDFMINFORTRAN}" ' -configopts += 'with_hdf5="${EBROOTHDF5}" ' +# hdf5/netcdf4 support +configopts += '--with-netcdf="${EBROOTNETCDF}" ' +configopts += '--with-netcdf-fortran="${EBROOTNETCDFMINFORTRAN}" ' +configopts += '--with-hdf5="${EBROOTHDF5}" ' # abinit must be run under mpirun with Intel MPI included in intel/2020a pretestopts = "sed -i 's@./abinit testin@mpirun -np 1 ./abinit testin@g' Makefile && " diff --git a/easybuild/easyconfigs/a/ABINIT/ABINIT-9.4.1-intel-2020a.eb b/easybuild/easyconfigs/a/ABINIT/ABINIT-9.4.1-intel-2020a.eb new file mode 100644 index 00000000000..8ce0054cd7f --- /dev/null +++ b/easybuild/easyconfigs/a/ABINIT/ABINIT-9.4.1-intel-2020a.eb @@ -0,0 +1,59 @@ +easyblock = 'ConfigureMake' + +name = 'ABINIT' +version = '9.4.1' + +homepage = 'https://www.abinit.org/' +description = """ABINIT is a package whose main program allows one to find the total energy, + charge density and electronic structure of systems made of electrons and nuclei (molecules + and periodic solids) within Density Functional Theory (DFT), using pseudopotentials and a + planewave or wavelet basis.""" + +toolchain = {'name': 'intel', 'version': '2020a'} +toolchainopts = {'usempi': True, 'pic': True} + +source_urls = ['https://www.abinit.org/sites/default/files/packages/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['ec74133ef9d247cb6ad44c205675694919cf36d7f1682a9b85cae8bdecdc22a8'] + +builddependencies = [ + ('Python', '3.8.2'), +] +dependencies = [ + ('libxc', '4.3.4'), + ('netCDF', '4.7.4'), + ('netCDF-Fortran', '4.5.2'), + ('HDF5', '1.10.6'), +] + +# Ensure MPI with intel wrappers. +configopts = '--with-mpi="yes" --enable-openmp="no" ' +configopts += ' FC="mpiifort" CC="mpiicc" CXX="mpiicpc" ' + +# BLAS/Lapack from MKL +configopts += '--with-linalg-flavor=mkl ' + +# FFTW from MKL +configopts += '--with-fft-flavor=dfti ' + +# libxc support +configopts += '--with-libxc=${EBROOTLIBXC} ' + +# hdf5/netcdf4 support +configopts += '--with-netcdf="${EBROOTNETCDF}" ' +configopts += '--with-netcdf-fortran="${EBROOTNETCDFMINFORTRAN}" ' +configopts += '--with-hdf5="${EBROOTHDF5}" ' + +# abinit must be run under mpirun with Intel MPI included in intel/2020a +pretestopts = "sed -i 's@./abinit testin@mpirun -np 1 ./abinit testin@g' Makefile && " + +# 'make check' is just executing some basic unit tests. +# Also running 'make tests_v1' to have some basic validation +runtest = "check && make test_v1" + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['abinit', 'aim', 'cut3d', 'conducti', 'mrgddb', 'mrgscr', 'optic']], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/a/ABINIT/ABINIT-9.4.1-intel-2020b.eb b/easybuild/easyconfigs/a/ABINIT/ABINIT-9.4.1-intel-2020b.eb new file mode 100644 index 00000000000..1cf3882b38e --- /dev/null +++ b/easybuild/easyconfigs/a/ABINIT/ABINIT-9.4.1-intel-2020b.eb @@ -0,0 +1,61 @@ +easyblock = 'ConfigureMake' + +name = 'ABINIT' +version = '9.4.1' + +homepage = 'https://www.abinit.org/' +description = """ABINIT is a package whose main program allows one to find the total energy, + charge density and electronic structure of systems made of electrons and nuclei (molecules + and periodic solids) within Density Functional Theory (DFT), using pseudopotentials and a + planewave or wavelet basis.""" + +toolchain = {'name': 'intel', 'version': '2020b'} +toolchainopts = {'usempi': True, 'pic': True} + +source_urls = ['https://www.abinit.org/sites/default/files/packages/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['ec74133ef9d247cb6ad44c205675694919cf36d7f1682a9b85cae8bdecdc22a8'] + +builddependencies = [ + ('Python', '3.8.6'), +] +dependencies = [ + ('libxc', '4.3.4'), + ('netCDF', '4.7.4'), + ('netCDF-Fortran', '4.5.3'), + ('HDF5', '1.10.7'), + ('Wannier90', '3.1.0'), +] + +# Ensure MPI with intel wrappers. +configopts = '--with-mpi="yes" --enable-openmp="no" ' +configopts += ' FC="mpiifort" CC="mpiicc" CXX="mpiicpc" ' + +# BLAS/Lapack from MKL +configopts += '--with-linalg-flavor=mkl ' + +# FFTW from MKL +configopts += '--with-fft-flavor=dfti ' + +# libxc support +configopts += '--with-libxc=${EBROOTLIBXC} ' + +# hdf5/netcdf4 support +configopts += '--with-netcdf="${EBROOTNETCDF}" ' +configopts += '--with-netcdf-fortran="${EBROOTNETCDFMINFORTRAN}" ' +configopts += '--with-hdf5="${EBROOTHDF5}" ' + +# Wannier90 +configopts += '--with-wannier90="${EBROOTWANNIER90}" ' +preconfigopts = 'export WANNIER90_LIBS="-L$EBROOTWANNIER90/lib -lwannier" && ' + +# 'make check' is just executing some basic unit tests. +# Also running 'make tests_v1' to have some basic validation +runtest = "check && make test_v1" + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['abinit', 'aim', 'cut3d', 'conducti', 'mrgddb', 'mrgscr', 'optic']], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/a/AOCC/AOCC-3.0.0-GCCcore-10.3.0.eb b/easybuild/easyconfigs/a/AOCC/AOCC-3.0.0-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..7a038e60cda --- /dev/null +++ b/easybuild/easyconfigs/a/AOCC/AOCC-3.0.0-GCCcore-10.3.0.eb @@ -0,0 +1,24 @@ +name = 'AOCC' +version = '3.0.0' + +homepage = 'https://developer.amd.com/amd-aocc/' +description = "AMD Optimized C/C++ & Fortran compilers (AOCC) based on LLVM 12.0" + +# Clang also depends on libstdc++ during runtime, but this dependency is +# already specified as the toolchain. +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['http://developer.amd.com/wordpress/media/files/'] +sources = ['aocc-compiler-%(version)s.tar'] +checksums = [ + '4ff269b1693856b9920f57e3c85ce488c8b81123ddc88682a3ff283979362227', # aocc-compiler-3.0.0.tar +] + +dependencies = [ + ('binutils', '2.36.1'), + ('ncurses', '6.2'), + ('zlib', '1.2.11'), + ('libxml2', '2.9.10'), +] + +moduleclass = 'compiler' diff --git a/easybuild/easyconfigs/a/ASAP3/ASAP3-3.12.7-foss-2020b-ASE-3.21.1.eb b/easybuild/easyconfigs/a/ASAP3/ASAP3-3.12.7-foss-2020b-ASE-3.21.1.eb new file mode 100644 index 00000000000..53c3b5c829a --- /dev/null +++ b/easybuild/easyconfigs/a/ASAP3/ASAP3-3.12.7-foss-2020b-ASE-3.21.1.eb @@ -0,0 +1,37 @@ +easyblock = "PythonPackage" + +name = 'ASAP3' +version = '3.12.7' +_aseversion = '3.21.1' +versionsuffix = '-ASE-' + _aseversion + +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': '2020b'} +toolchainopts = {'pic': True, 'usempi': True, 'openmp': False} + +sources = [SOURCELOWER_TAR_GZ] +checksums = ['d0903650389d3c162e016fe8162c7a920be9fa7e88cdcf41b953163584ae9348'] + +builddependencies = [ + ('pkgconfig', '1.5.1', '-python'), +] + +dependencies = [ + ('Python', '3.8.6'), + ('ASE', _aseversion), + ('kim-api', '2.2.1'), +] + +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/ASAP3/ASAP3-3.12.7-intel-2020b-ASE-3.21.1.eb b/easybuild/easyconfigs/a/ASAP3/ASAP3-3.12.7-intel-2020b-ASE-3.21.1.eb new file mode 100644 index 00000000000..76029e0a09d --- /dev/null +++ b/easybuild/easyconfigs/a/ASAP3/ASAP3-3.12.7-intel-2020b-ASE-3.21.1.eb @@ -0,0 +1,40 @@ +easyblock = "PythonPackage" + +name = 'ASAP3' +version = '3.12.7' +_aseversion = '3.21.1' +versionsuffix = '-ASE-' + _aseversion + +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': 'intel', 'version': '2020b'} +toolchainopts = {'pic': True, 'usempi': True, 'openmp': False} + +sources = [SOURCELOWER_TAR_GZ] +checksums = ['d0903650389d3c162e016fe8162c7a920be9fa7e88cdcf41b953163584ae9348'] + +builddependencies = [ + ('pkgconfig', '1.5.1', '-python'), +] + +dependencies = [ + ('Python', '3.8.6'), + ('ASE', _aseversion), + ('kim-api', '2.2.1'), +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +# required because we're building Python packages using Intel compilers on top of Python built with GCC +check_ldshared = True + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/%(namelower)s'] +} + +moduleclass = 'phys' diff --git a/easybuild/easyconfigs/a/AUGUSTUS/AUGUSTUS-3.4.0-foss-2020b.eb b/easybuild/easyconfigs/a/AUGUSTUS/AUGUSTUS-3.4.0-foss-2020b.eb index 0377e4b9b7d..aef949181c8 100644 --- a/easybuild/easyconfigs/a/AUGUSTUS/AUGUSTUS-3.4.0-foss-2020b.eb +++ b/easybuild/easyconfigs/a/AUGUSTUS/AUGUSTUS-3.4.0-foss-2020b.eb @@ -32,6 +32,8 @@ dependencies = [ ('SuiteSparse', '5.8.1', '-METIS-5.1.0'), ('BamTools', '2.5.1'), ('SQLite', '3.33.0'), + ('Python', '3.8.6'), + ('Perl', '5.32.0'), ] skipsteps = ['configure'] diff --git a/easybuild/easyconfigs/a/Archive-Zip/Archive-Zip-1.68-GCCcore-10.2.0.eb b/easybuild/easyconfigs/a/Archive-Zip/Archive-Zip-1.68-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..09c556f1fbe --- /dev/null +++ b/easybuild/easyconfigs/a/Archive-Zip/Archive-Zip-1.68-GCCcore-10.2.0.eb @@ -0,0 +1,32 @@ +easyblock = 'PerlModule' + +name = 'Archive-Zip' +version = '1.68' + +homepage = 'https://metacpan.org/pod/Archive::Zip' +description = "Provide an interface to ZIP archive files." + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['https://cpan.metacpan.org/authors/id/P/PH/PHRED/'] +sources = ['%(name)s-%(version)s.tar.gz'] +checksums = ['984e185d785baf6129c6e75f8eb44411745ac00bf6122fb1c8e822a3861ec650'] + +builddependencies = [ + ('binutils', '2.35'), +] + +dependencies = [ + ('Perl', '5.32.0'), + ('UnZip', '6.0'), + ('Zip', '3.0'), +] + +options = {'modulename': 'Archive::Zip'} + +sanity_check_paths = { + 'files': ['bin/crc32'], + 'dirs': ['lib/perl5/site_perl/%(perlver)s/Archive/Zip'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/Arrow/Arrow-0.17.1-foss-2020a-Python-3.8.2.eb b/easybuild/easyconfigs/a/Arrow/Arrow-0.17.1-foss-2020a-Python-3.8.2.eb index b6773f8845b..d5dace22be7 100644 --- a/easybuild/easyconfigs/a/Arrow/Arrow-0.17.1-foss-2020a-Python-3.8.2.eb +++ b/easybuild/easyconfigs/a/Arrow/Arrow-0.17.1-foss-2020a-Python-3.8.2.eb @@ -12,10 +12,12 @@ toolchain = {'name': 'foss', 'version': '2020a'} source_urls = ['https://archive.apache.org/dist/%(namelower)s/%(namelower)s-%(version)s'] sources = ['apache-arrow-%(version)s.tar.gz'] -patches = ['Arrow-0.16.0_fix-intel.patch'] +patches = [ + 'Arrow-0.17.1_fix-arm.patch', +] checksums = [ 'cbc51c343bca08b10f7f1b2ef15cb15057c30e5e9017cfcee18337b7e2da9ea2', # apache-arrow-0.17.1.tar.gz - '7c1569087f93959a0dfc163d80e5f542edb4d7ed0b9d71a2a05b4081211ad2b9', # Arrow-0.16.0_fix-intel.patch + 'd1076d35966056c39e0c88b8fadaaa7660ee4d8c07fc2c5bdf1d5d6e683ff44a', # Arrow-0.17.1_fix-arm.patch ] builddependencies = [ diff --git a/easybuild/easyconfigs/a/Arrow/Arrow-0.17.1-fosscuda-2020b.eb b/easybuild/easyconfigs/a/Arrow/Arrow-0.17.1-fosscuda-2020b.eb index 5f6def87514..5ab6551adb8 100644 --- a/easybuild/easyconfigs/a/Arrow/Arrow-0.17.1-fosscuda-2020b.eb +++ b/easybuild/easyconfigs/a/Arrow/Arrow-0.17.1-fosscuda-2020b.eb @@ -13,7 +13,13 @@ toolchain = {'name': 'fosscuda', 'version': '2020b'} source_urls = ['https://archive.apache.org/dist/%(namelower)s/%(namelower)s-%(version)s'] sources = ['apache-arrow-%(version)s.tar.gz'] -checksums = ['cbc51c343bca08b10f7f1b2ef15cb15057c30e5e9017cfcee18337b7e2da9ea2'] +patches = [ + 'Arrow-0.17.1_fix-arm.patch', +] +checksums = [ + 'cbc51c343bca08b10f7f1b2ef15cb15057c30e5e9017cfcee18337b7e2da9ea2', # apache-arrow-0.17.1.tar.gz + 'd1076d35966056c39e0c88b8fadaaa7660ee4d8c07fc2c5bdf1d5d6e683ff44a', # Arrow-0.17.1_fix-arm.patch +] builddependencies = [ ('CMake', '3.18.4'), diff --git a/easybuild/easyconfigs/a/Arrow/Arrow-0.17.1_fix-arm.patch b/easybuild/easyconfigs/a/Arrow/Arrow-0.17.1_fix-arm.patch new file mode 100644 index 00000000000..4730cea2bb0 --- /dev/null +++ b/easybuild/easyconfigs/a/Arrow/Arrow-0.17.1_fix-arm.patch @@ -0,0 +1,43 @@ +From 39fd5f0742a971acfca749638f6fc8f4472a1e4b Mon Sep 17 00:00:00 2001 +From: Sutou Kouhei +Date: Tue, 18 Aug 2020 06:51:22 +0900 +Subject: [PATCH] ARROW-9744: [Python] Fix build failure on aarch64 + +pyarrow just uses SetupCxxFlags.cmake. It doesn't use +DefineOptions.cmake. We need to define ARROW_ARMV8_ARCH in pyarrow +too. It's defined in DefineOptions.cmake. +--- + cpp/cmake_modules/DefineOptions.cmake | 3 +++ + python/CMakeLists.txt | 5 +++++ + 2 files changed, 8 insertions(+) + +diff --git a/cpp/cmake_modules/DefineOptions.cmake b/cpp/cmake_modules/DefineOptions.cmake +index cf860cb41898..0d0303d86eae 100644 +--- a/cpp/cmake_modules/DefineOptions.cmake ++++ b/cpp/cmake_modules/DefineOptions.cmake +@@ -114,6 +114,9 @@ if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") + + # Arm64 architectures and extensions can lead to exploding combinations. + # So set it directly through cmake command line. ++ # ++ # If you change this, you need to change the definition in ++ # python/CMakeLists.txt too. + define_option_string(ARROW_ARMV8_ARCH + "Arm64 arch and extensions" + "armv8-a" # Default +diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt +index 2a43b165d7ed..273296ad2d2b 100644 +--- a/python/CMakeLists.txt ++++ b/python/CMakeLists.txt +@@ -97,6 +97,11 @@ include(BuildUtils) + # Cython generated code emits way to many warnings at CHECKIN and EVERYTHING + set(BUILD_WARNING_LEVEL "PRODUCTION") + ++# This must be synchronized with the definition in ++# cpp/cmake_modules/DefineOptions.cmake. ++set(ARROW_ARMV8_ARCH ++ "armv8-a" ++ CACHE STRING "Arm64 arch and extensions: armv8-a, armv8-a or armv8-a+crc+crypto") + include(SetupCxxFlags) + + # Add common flags diff --git a/easybuild/easyconfigs/a/Autoconf/Autoconf-2.71-FCC-4.5.0.eb b/easybuild/easyconfigs/a/Autoconf/Autoconf-2.71-FCC-4.5.0.eb new file mode 100644 index 00000000000..343a530c117 --- /dev/null +++ b/easybuild/easyconfigs/a/Autoconf/Autoconf-2.71-FCC-4.5.0.eb @@ -0,0 +1,39 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'Autoconf' +version = '2.71' + +homepage = 'https://www.gnu.org/software/autoconf/' +description = """Autoconf is an extensible package of M4 macros that produce shell scripts + to automatically configure software source code packages. These scripts can adapt the + packages to many kinds of UNIX-like systems without manual user intervention. Autoconf + creates a configuration script for a package from a template file that lists the + operating system features that the package can use, in the form of M4 macro calls.""" + +toolchain = {'name': 'FCC', 'version': '4.5.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_XZ] +checksums = ['f14c83cfebcc9427f2c3cea7258bd90df972d92eb26752da4ddad81c87a0faa4'] + +builddependencies = [ + ('binutils', '2.36.1'), + # non-standard Perl modules are required, + # see https://github.com/easybuilders/easybuild-easyconfigs/issues/1822 + ('Perl', '5.32.1'), +] + +dependencies = [ + ('M4', '1.4.18'), +] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["autoconf", "autoheader", "autom4te", "autoreconf", "autoscan", + "autoupdate", "ifnames"]], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/a/Autoconf/Autoconf-2.71-GCCcore-10.3.0.eb b/easybuild/easyconfigs/a/Autoconf/Autoconf-2.71-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..c143a960e31 --- /dev/null +++ b/easybuild/easyconfigs/a/Autoconf/Autoconf-2.71-GCCcore-10.3.0.eb @@ -0,0 +1,39 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'Autoconf' +version = '2.71' + +homepage = 'https://www.gnu.org/software/autoconf/' +description = """Autoconf is an extensible package of M4 macros that produce shell scripts + to automatically configure software source code packages. These scripts can adapt the + packages to many kinds of UNIX-like systems without manual user intervention. Autoconf + creates a configuration script for a package from a template file that lists the + operating system features that the package can use, in the form of M4 macro calls.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_XZ] +checksums = ['f14c83cfebcc9427f2c3cea7258bd90df972d92eb26752da4ddad81c87a0faa4'] + +builddependencies = [ + ('binutils', '2.36.1'), + # non-standard Perl modules are required, + # see https://github.com/easybuilders/easybuild-easyconfigs/issues/1822 + ('Perl', '5.32.1'), +] + +dependencies = [ + ('M4', '1.4.18'), +] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["autoconf", "autoheader", "autom4te", "autoreconf", "autoscan", + "autoupdate", "ifnames"]], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/a/Automake/Automake-1.16.3-FCC-4.5.0.eb b/easybuild/easyconfigs/a/Automake/Automake-1.16.3-FCC-4.5.0.eb new file mode 100644 index 00000000000..379e73dc996 --- /dev/null +++ b/easybuild/easyconfigs/a/Automake/Automake-1.16.3-FCC-4.5.0.eb @@ -0,0 +1,35 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'Automake' +version = '1.16.3' + +homepage = 'https://www.gnu.org/software/automake/automake.html' + +description = "Automake: GNU Standards-compliant Makefile generator" + +toolchain = {'name': 'FCC', 'version': '4.5.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['ce010788b51f64511a1e9bb2a1ec626037c6d0e7ede32c1c103611b9d3cba65f'] + +builddependencies = [ + ('binutils', '2.36.1'), + # non-standard Perl modules are required, + # see https://github.com/easybuilders/easybuild-easyconfigs/issues/1822 + ('Perl', '5.32.1'), +] + +dependencies = [ + ('Autoconf', '2.71'), +] + +sanity_check_paths = { + 'files': ['bin/automake', 'bin/aclocal'], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/a/Automake/Automake-1.16.3-GCCcore-10.3.0.eb b/easybuild/easyconfigs/a/Automake/Automake-1.16.3-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..4aba46449be --- /dev/null +++ b/easybuild/easyconfigs/a/Automake/Automake-1.16.3-GCCcore-10.3.0.eb @@ -0,0 +1,35 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'Automake' +version = '1.16.3' + +homepage = 'https://www.gnu.org/software/automake/automake.html' + +description = "Automake: GNU Standards-compliant Makefile generator" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['ce010788b51f64511a1e9bb2a1ec626037c6d0e7ede32c1c103611b9d3cba65f'] + +builddependencies = [ + ('binutils', '2.36.1'), + # non-standard Perl modules are required, + # see https://github.com/easybuilders/easybuild-easyconfigs/issues/1822 + ('Perl', '5.32.1'), +] + +dependencies = [ + ('Autoconf', '2.71'), +] + +sanity_check_paths = { + 'files': ['bin/automake', 'bin/aclocal'], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/a/Autotools/Autotools-20210128-FCC-4.5.0.eb b/easybuild/easyconfigs/a/Autotools/Autotools-20210128-FCC-4.5.0.eb new file mode 100644 index 00000000000..955484ae6a3 --- /dev/null +++ b/easybuild/easyconfigs/a/Autotools/Autotools-20210128-FCC-4.5.0.eb @@ -0,0 +1,26 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'Bundle' + +name = 'Autotools' +version = '20210128' # date of the most recent change + +homepage = 'https://autotools.io' + +description = """ + This bundle collect the standard GNU build tools: Autoconf, Automake + and libtool +""" + +toolchain = {'name': 'FCC', 'version': '4.5.0'} + +dependencies = [ + ('Autoconf', '2.71'), # 20210128 + ('Automake', '1.16.3'), # 20201118 + ('libtool', '2.4.6'), # 20150215 +] + +# Pure bundle -- no need to specify 'binutils' + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/a/Autotools/Autotools-20210128-GCCcore-10.3.0.eb b/easybuild/easyconfigs/a/Autotools/Autotools-20210128-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..7c13b57801c --- /dev/null +++ b/easybuild/easyconfigs/a/Autotools/Autotools-20210128-GCCcore-10.3.0.eb @@ -0,0 +1,27 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'Bundle' + +name = 'Autotools' +version = '20210128' # date of the most recent change + +homepage = 'https://autotools.io' + +description = """ + This bundle collect the standard GNU build tools: Autoconf, Automake + and libtool +""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +dependencies = [ + ('Autoconf', '2.71'), # 20210128 + ('Automake', '1.16.3'), # 20201118 + ('libtool', '2.4.6'), # 20150215 +] + +# Pure bundle -- no need to specify 'binutils' used when building GCCcore +# toolchain as build dependency + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/a/angsd/angsd-0.935-GCC-10.2.0.eb b/easybuild/easyconfigs/a/angsd/angsd-0.935-GCC-10.2.0.eb new file mode 100644 index 00000000000..35882a61047 --- /dev/null +++ b/easybuild/easyconfigs/a/angsd/angsd-0.935-GCC-10.2.0.eb @@ -0,0 +1,36 @@ +easyblock = 'MakeCp' + +name = 'angsd' +version = '0.935' + +homepage = 'http://www.popgen.dk/angsd' +description = """Program for analysing NGS data.""" + +toolchain = {'name': 'GCC', 'version': '10.2.0'} + +github_account = 'ANGSD' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['%(version)s.tar.gz'] +checksums = ['15000281330fa59ddf745cb84eeaa653acf6da34a4ac6c3df7c5835d1d01ba16'] + +dependencies = [ + ('zlib', '1.2.11'), + ('bzip2', '1.0.8'), + ('XZ', '5.2.5'), + ('HTSlib', '1.12'), +] + +files_to_copy = [ + (['angsd', 'misc/supersim', 'misc/thetaStat', 'misc/realSFS', 'misc/msToGlf', + 'misc/smartCount', 'misc/printIcounts', 'misc/contamination', 'misc/splitgl', + 'misc/NGSadmix', 'misc/contamination2', 'misc/haploToPlink', 'misc/ngsPSMC', + 'misc/ibs'], 'bin'), + 'doc', +] + +sanity_check_paths = { + 'files': ['bin/angsd'], + 'dirs': ['doc'], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/a/any2fasta/any2fasta-0.4.2-GCCcore-9.3.0.eb b/easybuild/easyconfigs/a/any2fasta/any2fasta-0.4.2-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..94f7c466d8b --- /dev/null +++ b/easybuild/easyconfigs/a/any2fasta/any2fasta-0.4.2-GCCcore-9.3.0.eb @@ -0,0 +1,34 @@ +# Author: Pavel Grochal (INUITS) +# License: GPLv2 + +easyblock = 'Tarball' + +name = 'any2fasta' +version = '0.4.2' + +homepage = 'https://github.com/tseemann/any2fasta' +description = "Convert various sequence formats to FASTA" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} + +# https://github.com/tseemann/any2fasta +github_account = 'tseemann' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.zip'] +checksums = ['3faa738ab409c7073afe3769e9d32dd5b28a2c12e72c2e4ac6f4e9946ee9a22f'] + +dependencies = [('Perl', '5.30.2')] + +modextrapaths = {'PATH': ''} + +sanity_check_paths = { + 'files': ['any2fasta'], + 'dirs': [], +} + +sanity_check_commands = [ + 'any2fasta -h', + 'any2fasta -q %(builddir)s/%(name)s-%(version)s/test.fq', +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/apex/apex-20210420-fosscuda-2020b.eb b/easybuild/easyconfigs/a/apex/apex-20210420-fosscuda-2020b.eb new file mode 100644 index 00000000000..9507c3802d3 --- /dev/null +++ b/easybuild/easyconfigs/a/apex/apex-20210420-fosscuda-2020b.eb @@ -0,0 +1,33 @@ +easyblock = 'PythonPackage' + +name = 'apex' +local_commit = '082f999' +version = '20210420' + +homepage = 'https://github.com/nvidia/apex' +description = "A PyTorch Extension: Tools for easy mixed precision and distributed training in Pytorch" + +toolchain = {'name': 'fosscuda', 'version': '2020b'} + +source_urls = ['https://github.com/NVIDIA/apex/archive/'] +sources = [{ + 'filename': SOURCE_TAR_GZ, + 'download_filename': '%s.tar.gz' % local_commit, +}] +checksums = ['a4a82b14ca95ec2068e85fdce5188d03c8eda92ac90a16bec46cd7e5e1534a53'] + +dependencies = [ + ('Python', '3.8.6'), + ('PyTorch', '1.7.1'), +] + +download_dep_fail = True +use_pip = True + +installopts = "--no-cache-dir --global-option='--cpp_ext' --global-option='--cuda_ext' --global-option='--pyprof'" + +sanity_pip_check = True + +sanity_check_commands = ["python -c 'from apex import amp'"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/archspec/archspec-0.1.0-GCCcore-8.3.0-Python-3.7.4.eb b/easybuild/easyconfigs/a/archspec/archspec-0.1.0-GCCcore-8.3.0-Python-3.7.4.eb index fde4f307ba4..5a46df7f53d 100644 --- a/easybuild/easyconfigs/a/archspec/archspec-0.1.0-GCCcore-8.3.0-Python-3.7.4.eb +++ b/easybuild/easyconfigs/a/archspec/archspec-0.1.0-GCCcore-8.3.0-Python-3.7.4.eb @@ -15,15 +15,12 @@ dependencies = [('Python', '3.7.4')] use_pip = True -exts_default_options = {'source_urls': [PYPI_SOURCE]} - exts_list = [ ('six', '1.15.0', { 'checksums': ['30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259'], }), (name, version, { 'source_tmpl': 'archspec-%(version)s-py2.py3-none-any.whl', - 'unpack_sources': False, 'checksums': ['12f2029f63ffbc560e43f7d1f366a45ff46c7bd0751653227f8015f83f121119'], }), ] diff --git a/easybuild/easyconfigs/a/archspec/archspec-0.1.0-GCCcore-9.3.0-Python-3.8.2.eb b/easybuild/easyconfigs/a/archspec/archspec-0.1.0-GCCcore-9.3.0-Python-3.8.2.eb index f349f64aee2..74f797398dd 100644 --- a/easybuild/easyconfigs/a/archspec/archspec-0.1.0-GCCcore-9.3.0-Python-3.8.2.eb +++ b/easybuild/easyconfigs/a/archspec/archspec-0.1.0-GCCcore-9.3.0-Python-3.8.2.eb @@ -16,16 +16,9 @@ builddependencies = [('binutils', '2.34')] dependencies = [('Python', '3.8.2')] -unpack_sources = False - download_dep_fail = True use_pip = True -sanity_check_paths = { - 'files': [], - 'dirs': ['lib/python%(pyshortver)s/site-packages'], -} - sanity_check_commands = ["python -c 'from archspec.cpu import host; print(host())'"] sanity_pip_check = True diff --git a/easybuild/easyconfigs/a/astropy/astropy-4.2.1-intelcuda-2020b.eb b/easybuild/easyconfigs/a/astropy/astropy-4.2.1-intelcuda-2020b.eb new file mode 100644 index 00000000000..8479d0024ef --- /dev/null +++ b/easybuild/easyconfigs/a/astropy/astropy-4.2.1-intelcuda-2020b.eb @@ -0,0 +1,40 @@ +easyblock = 'PythonBundle' + +name = 'astropy' +version = '4.2.1' + +homepage = 'https://www.astropy.org/' +description = """The Astropy Project is a community effort to develop +a single core package for Astronomy in Python and foster interoperability +between Python astronomy packages.""" + +toolchain = {'name': 'intelcuda', 'version': '2020b'} + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), +] + +use_pip = True + +sanity_pip_check = True + +exts_list = [ + ('pyerfa', '1.7.3', { + 'modulename': 'erfa', + 'checksums': ['6cf3a645d63e0c575a357797903eac5d2c6591d7cdb89217c8c4d39777cf18cb'], + }), + ('extension-helpers', '0.1', { + 'checksums': ['ac8a6fe91c6d98986a51a9f08ca0c7945f8fd70d95b662ced4040ae5eb973882'], + }), + (name, version, { + 'checksums': ['ed483e472241153daec45f4b0c318c2c63d9f47305b78e6e63d32fc388c18427'], + }), +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/astropy'], +} + +moduleclass = 'astro' diff --git a/easybuild/easyconfigs/b/BEEF/BEEF-0.1.1-iccifort-2019.5.281.eb b/easybuild/easyconfigs/b/BEEF/BEEF-0.1.1-iccifort-2019.5.281.eb new file mode 100644 index 00000000000..a861e97acba --- /dev/null +++ b/easybuild/easyconfigs/b/BEEF/BEEF-0.1.1-iccifort-2019.5.281.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'BEEF' +version = '0.1.1' + +homepage = 'https://confluence.slac.stanford.edu/display/SUNCAT/BEEF+Functional+Software' +description = """BEEF is a library-based implementation of the Bayesian +Error Estimation Functional, suitable for linking against by Fortran- +or C-based DFT codes. A description of BEEF can be found at +http://dx.doi.org/10.1103/PhysRevB.85.235149.""" + +toolchain = {'name': 'iccifort', 'version': '2019.5.281'} + +source_urls = ['https://confluence.slac.stanford.edu/download/attachments/146704476/'] +sources = ['libbeef-%(version)s.tar.gz'] +checksums = ['b6af622b74a4e55d637d8cd5027cfa850cf22fec53981c5732de5c40cc0a938a'] + +configopts = 'CC="$CC"' + +sanity_check_paths = { + 'files': ['bin/bee', 'lib/libbeef.a'], + 'dirs': [], +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/b/BLAST/BLAST-2.10.0-Linux_x86_64.eb b/easybuild/easyconfigs/b/BLAST/BLAST-2.10.0-Linux_x86_64.eb index ccea3adf1aa..6ba69710995 100644 --- a/easybuild/easyconfigs/b/BLAST/BLAST-2.10.0-Linux_x86_64.eb +++ b/easybuild/easyconfigs/b/BLAST/BLAST-2.10.0-Linux_x86_64.eb @@ -2,6 +2,8 @@ # Author: Fenglai Liu # fenglai@accre.vanderbilt.edu # Vanderbilt University +# Bug fixed by: Robert QIAO +# Flinders University # easyblock = 'Tarball' @@ -15,7 +17,7 @@ sequence information, such as the amino-acid sequences of different proteins or toolchain = SYSTEM -source_urls = ['https://ftp.ncbi.nlm.nih.gov/blast/executables/LATEST'] +source_urls = ['https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/%(version)s'] sources = ['ncbi-%(namelower)s-%(version)s+-x64-linux.tar.gz'] checksums = ['7534a588b427aebfcce542db523c81f5d37cae688ce14377e731a5302241aaee'] diff --git a/easybuild/easyconfigs/b/BLAST/BLAST-2.10.1-Linux_x86_64.eb b/easybuild/easyconfigs/b/BLAST/BLAST-2.10.1-Linux_x86_64.eb index 05b044c1873..166055dd08a 100644 --- a/easybuild/easyconfigs/b/BLAST/BLAST-2.10.1-Linux_x86_64.eb +++ b/easybuild/easyconfigs/b/BLAST/BLAST-2.10.1-Linux_x86_64.eb @@ -2,10 +2,11 @@ # Author: Fenglai Liu # fenglai@accre.vanderbilt.edu # Vanderbilt University -# Updated by: -# Adam Huffman +# Updated by: Adam Huffman # Big Data Institute, # University of Oxford +# Bug fixed by: Robert QIAO +# Flinders University # easyblock = 'Tarball' @@ -19,7 +20,7 @@ sequence information, such as the amino-acid sequences of different proteins or toolchain = SYSTEM -source_urls = ['https://ftp.ncbi.nlm.nih.gov/blast/executables/LATEST'] +source_urls = ['https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/%(version)s'] sources = ['ncbi-%(namelower)s-%(version)s+-x64-linux.tar.gz'] checksums = ['8a96f7fac4a5541b6dfcaff4d67d3979ce450aa330b02c3ca2179ca95af096e7'] diff --git a/easybuild/easyconfigs/b/BLAST/BLAST-2.11.0-Linux_x86_64.eb b/easybuild/easyconfigs/b/BLAST/BLAST-2.11.0-Linux_x86_64.eb new file mode 100644 index 00000000000..e47f7038602 --- /dev/null +++ b/easybuild/easyconfigs/b/BLAST/BLAST-2.11.0-Linux_x86_64.eb @@ -0,0 +1,32 @@ +# +# Author: Fenglai Liu +# fenglai@accre.vanderbilt.edu +# Vanderbilt University +# Updated by: +# Robert QIAO +# Flinders University +# +easyblock = 'Tarball' + +name = 'BLAST' +version = '2.11.0' +versionsuffix = "-Linux_x86_64" + +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 = SYSTEM + +source_urls = ['https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/%(version)s'] +sources = ['ncbi-%(namelower)s-%(version)s+-x64-linux.tar.gz'] +checksums = ['93454cbdf5ba6f541745f31155efd9ba48bc6249fe3659b0aeaea4af62e62b58'] + +sanity_check_paths = { + 'files': ["bin/blastn", "bin/blastx", "bin/tblastn"], + 'dirs': [] +} + +sanity_check_commands = ['blastn -help'] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/BLIS/BLIS-0.8.1-GCCcore-10.3.0.eb b/easybuild/easyconfigs/b/BLIS/BLIS-0.8.1-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..edd74346c91 --- /dev/null +++ b/easybuild/easyconfigs/b/BLIS/BLIS-0.8.1-GCCcore-10.3.0.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'BLIS' +version = '0.8.1' + +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': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://github.com/flame/blis/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = ['729694128719801e82fae7b5f2489ab73e4a467f46271beff09588c9265a697b'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('Python', '3.9.5'), + ('Perl', '5.32.1'), +] + +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/BUSCO/BUSCO-5.1.2-foss-2020b.eb b/easybuild/easyconfigs/b/BUSCO/BUSCO-5.1.2-foss-2020b.eb new file mode 100644 index 00000000000..07b410d350b --- /dev/null +++ b/easybuild/easyconfigs/b/BUSCO/BUSCO-5.1.2-foss-2020b.eb @@ -0,0 +1,54 @@ +# Updated by: Pavel Grochal (INUITS) +# License: GPLv2 + +easyblock = 'PythonPackage' + +name = 'BUSCO' +version = '5.1.2' + +homepage = 'https://busco.ezlab.org/' +description = "BUSCO: assessing genome assembly and annotation completeness with single-copy orthologs" + +toolchain = {'name': 'foss', 'version': '2020b'} + +source_urls = ['https://gitlab.com/ezlab/%(namelower)s/-/archive/%(version)s'] +sources = [SOURCELOWER_TAR_BZ2] +checksums = ['31e3603936c003751a02e9445d41851b85c475136c3e4a61b670cd81297fda06'] + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), # for pandas + ('R', '4.0.3'), + ('Biopython', '1.78'), + ('BLAST+', '2.11.0'), + ('HMMER', '3.3.2'), + ('prodigal', '2.6.3'), + ('AUGUSTUS', '3.4.0'), + ('SEPP', '4.4.0'), + ('MetaEuk', '4'), +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +postinstallcmds = [ + 'mkdir -p %(installdir)s/bin %(installdir)s/doc', + 'cp %(builddir)s/%(namelower)s-%(version)s/scripts/* %(installdir)s/bin', + 'cp %(builddir)s/%(namelower)s-%(version)s/LICENSE %(installdir)s/doc', + 'cp -r %(builddir)s/%(namelower)s-%(version)s/test_data %(installdir)s', + 'cp -r %(builddir)s/%(namelower)s-%(version)s/config %(installdir)s', +] + +sanity_check_paths = { + 'files': ['bin/busco', 'bin/generate_plot.py'], + 'dirs': ['test_data', 'lib/python%(pyshortver)s/site-packages/busco'] +} + +sanity_check_commands = [ + "busco --help", + "busco -i %(installdir)s/test_data/bacteria/genome.fna --mode geno --out test_bacteria.out", + "busco -i %(installdir)s/test_data/eukaryota/genome.fna --mode geno --out test_eukaryota.out", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/BUStools/BUStools-0.40.0-GCCcore-9.3.0.eb b/easybuild/easyconfigs/b/BUStools/BUStools-0.40.0-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..a4e2111afdc --- /dev/null +++ b/easybuild/easyconfigs/b/BUStools/BUStools-0.40.0-GCCcore-9.3.0.eb @@ -0,0 +1,37 @@ +easyblock = 'CMakeMake' + +name = 'BUStools' +version = '0.40.0' + +homepage = 'https://github.com/BUStools/bustools' +description = """bustools is a program for manipulating BUS files for single cell RNA-Seq datasets. + It can be used to error correct barcodes, collapse UMIs, produce gene count or transcript compatibility + count matrices, and is useful for many other tasks. See the kallisto | bustools website for examples + and instructions on how to use bustools as part of a single-cell RNA-seq workflow.""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} + +github_account = 'BUStools' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['f50b6fb634a10939b2b496e6569ebd09ef34fb9eb24231d7d07a98001a6713e6'] + +builddependencies = [ + ('CMake', '3.16.4'), +] + +dependencies = [ + ('binutils', '2.34'), + ('zlib', '1.2.11'), +] + +separate_build_dir = True + +sanity_check_paths = { + 'files': ['bin/bustools'], + 'dirs': [], +} + +sanity_check_commands = ["bustools version"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/Biopython/Biopython-1.76-foss-2020b-Python-2.7.18.eb b/easybuild/easyconfigs/b/Biopython/Biopython-1.76-foss-2020b-Python-2.7.18.eb new file mode 100644 index 00000000000..a593b6c844e --- /dev/null +++ b/easybuild/easyconfigs/b/Biopython/Biopython-1.76-foss-2020b-Python-2.7.18.eb @@ -0,0 +1,43 @@ +easyblock = 'PythonPackage' + +name = 'Biopython' +version = '1.76' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://www.biopython.org' +description = """Biopython is a set of freely available tools for biological + computation written in Python by an international team of developers. It is + a distributed collaborative effort to develop Python libraries and + applications which address the needs of current and future work in + bioinformatics. """ + +toolchain = {'name': 'foss', 'version': '2020b'} + +source_urls = ['https://biopython.org/DIST'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['3873cb98dad5e28d5e3f2215a012565345a398d3d2c4eebf7cd701757b828c72'] + +dependencies = [ + ('Python', '2.7.18'), + ('SciPy-bundle', '2020.11', versionsuffix), +] + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +# Run only tests that don't require internet connection +runtest = 'python setup.py test --offline' + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/Bio', + 'lib/python%(pyshortver)s/site-packages/BioSQL'] +} + +# extra check to ensure numpy dependency is available +sanity_check_commands = ["python -c 'import Bio.MarkovModel'"] + +options = {'modulename': 'Bio'} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/Biopython/Biopython-1.78-fosscuda-2020b.eb b/easybuild/easyconfigs/b/Biopython/Biopython-1.78-fosscuda-2020b.eb new file mode 100644 index 00000000000..41f07d6177e --- /dev/null +++ b/easybuild/easyconfigs/b/Biopython/Biopython-1.78-fosscuda-2020b.eb @@ -0,0 +1,42 @@ +easyblock = 'PythonPackage' + +name = 'Biopython' +version = '1.78' + +homepage = 'https://www.biopython.org' +description = """Biopython is a set of freely available tools for biological + computation written in Python by an international team of developers. It is + a distributed collaborative effort to develop Python libraries and + applications which address the needs of current and future work in + bioinformatics. """ + +toolchain = {'name': 'fosscuda', 'version': '2020b'} + +source_urls = ['https://biopython.org/DIST'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['1ee0a0b6c2376680fea6642d5080baa419fd73df104a62d58a8baf7a8bbe4564'] + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), +] + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +# Run only tests that don't require internet connection +runtest = 'python setup.py test --offline' + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/Bio', + 'lib/python%(pyshortver)s/site-packages/BioSQL'] +} + +# extra check to ensure numpy dependency is available +sanity_check_commands = ["python -c 'import Bio.MarkovModel'"] + +options = {'modulename': 'Bio'} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/BirdNET/BirdNET-20201214-fosscuda-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/b/BirdNET/BirdNET-20201214-fosscuda-2019b-Python-3.7.4.eb new file mode 100644 index 00000000000..ab58d920946 --- /dev/null +++ b/easybuild/easyconfigs/b/BirdNET/BirdNET-20201214-fosscuda-2019b-Python-3.7.4.eb @@ -0,0 +1,78 @@ +easyblock = 'Tarball' + +name = 'BirdNET' +version = '20201214' +versionsuffix = '-Python-%(pyver)s' +local_commit = '022a6d5' + +homepage = 'https://birdnet.cornell.edu/' +description = """BirdNET is a research platform that aims at recognizing birds by sound at scale. +We support various hardware and operating systems such as Arduino microcontrollers, the Raspberry Pi, +smartphones, web browsers, workstation PCs, and even cloud services. BirdNET is a citizen science +platform as well as an analysis software for extremely large collections of audio. +BirdNET aims to provide innovative tools for conservationists, biologists, and birders alike.""" + +toolchain = {'name': 'fosscuda', 'version': '2019b'} + +github_account = 'kahst' +sources = [ + { + 'source_urls': [GITHUB_SOURCE], + 'download_filename': '%s.tar.gz' % local_commit, + 'filename': SOURCE_TAR_GZ, + }, + { + 'source_urls': ['https://tuc.cloud/index.php/s/m9smX4FkqmJaxLW/'], + 'download_filename': 'download', + 'filename': 'BirdNET_Soundscape_Model.pkl', + 'extract_cmd': 'cp %s %(builddir)s/BirdNET-*/model', + }, +] +patches = ['BirdNET-20201214_add-model-path-envvar.patch'] +checksums = [ + '3a7a5f562bfdd55138603847d206125328f02a25df5e86278d2fb35242bb1c1d', # BirdNET-20201214.tar.gz + '7db0b2fe57da002aff62fe1aecf56b16065c2b699dcbee1d8d7e07a42719b3fe', # BirdNET_Soundscape_Model.pkl + 'd7587d82a4c21df58c589b9044df720752abab7efcb2769a671f75feb9661337', # BirdNET-20201214_add-model-path-envvar.patch +] + +dependencies = [ + ('Python', '3.7.4'), + ('libgpuarray', '0.7.6', versionsuffix), + ('librosa', '0.7.2', versionsuffix), + ('SciPy-bundle', '2019.10', versionsuffix), + ('Theano', '1.0.4', versionsuffix), +] + +postinstallcmds = ['chmod +x %(installdir)s/analyze.py'] + +fix_python_shebang_for = ['analyze.py'] + +exts_defaultclass = 'PythonPackage' +exts_default_options = { + 'use_pip': True, + 'download_dep_fail': True, +} + +exts_list = [ + ('Lasagne', '5d3c63c', { + 'module': 'lasagne', + 'source_tmpl': '%(version)s.tar.gz', + 'source_urls': ['https://github.com/%(name)s/%(name)s/archive/'], + 'checksums': ['6dbcc97b5378e4f17e7ba4043d1a65cb4adb33c616a0a8683244e8e1423e83f3'], + }), +] + +sanity_check_paths = { + 'files': ['analyze.py'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ['analyze.py --help'] + +modextrapaths = { + 'PATH': '', + 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages', + 'THEANORC': '.theanorc', +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/BirdNET/BirdNET-20201214_add-model-path-envvar.patch b/easybuild/easyconfigs/b/BirdNET/BirdNET-20201214_add-model-path-envvar.patch new file mode 100644 index 00000000000..c94551e9bc4 --- /dev/null +++ b/easybuild/easyconfigs/b/BirdNET/BirdNET-20201214_add-model-path-envvar.patch @@ -0,0 +1,40 @@ +The location to a model snapshot file is hardcoded in the analyze.py script. +This patch allows users to override the default location to that file by setting $BIRDNET_MODEL. + +The same is done for two locations to metadata files in config.py; +they can now be overridden by using $EBIRD_SPECIES_CODES and $EBIRD_MDATA. + +Author: Bob Dröge (University of Groningen) + +--- analyze.py 2021-04-20 15:16:25.000000000 +0200 ++++ analyze.py 2021-04-20 15:12:39.000000000 +0200 +@@ -34,7 +34,9 @@ + def loadModel(): + + # Load trained net +- snapshot = model.loadSnapshot('model/BirdNET_Soundscape_Model.pkl') ++ default_model_path = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'model', 'BirdNET_Soundscape_Model.pkl') ++ model_path = os.getenv('BIRDNET_MODEL', default_model_path) ++ snapshot = model.loadSnapshot(model_path) + + # Build simple model + net = model.buildNet() + +--- config.py 2021-04-22 12:36:49.833750795 +0200 ++++ config.py 2021-04-22 12:39:27.162404283 +0200 +@@ -1,9 +1,12 @@ ++import os ++ + # BirdNET uses eBird checklist frequency data to determine plausible species + # occurrences for a specific location (lat, lon) and one week. An EBIRD_THRESHOLD + # of 0.02 means that a species must occur on at least 2% of all checklists + # for a location to be considered plausible. +-EBIRD_SPECIES_CODES = 'metadata/eBird_taxonomy_codes_2018.json' +-EBIRD_MDATA = 'metadata/eBird_grid_data_weekly.gz' ++default_metadata_dir = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'metadata') ++EBIRD_SPECIES_CODES = os.getenv('EBIRD_SPECIES_CODES', os.path.join(default_metadata_dir, 'eBird_taxonomy_codes_2018.json')) ++EBIRD_MDATA = os.getenv('EBIRD_MDATA', os.path.join(default_metadata_dir, 'eBird_grid_data_weekly.gz')) + USE_EBIRD_CHECKLIST = True + EBIRD_THRESHOLD = 0.02 + DEPLOYMENT_LOCATION = (-1, -1) + diff --git a/easybuild/easyconfigs/b/Bison/Bison-3.7.6-FCC-4.5.0.eb b/easybuild/easyconfigs/b/Bison/Bison-3.7.6-FCC-4.5.0.eb new file mode 100644 index 00000000000..8116d5119cb --- /dev/null +++ b/easybuild/easyconfigs/b/Bison/Bison-3.7.6-FCC-4.5.0.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'Bison' +version = '3.7.6' + +homepage = 'https://www.gnu.org/software/bison' +description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar + into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.""" + +toolchain = {'name': 'FCC', 'version': '4.5.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['69dc0bb46ea8fc307d4ca1e0b61c8c355eb207d0b0c69f4f8462328e74d7b9ea'] + +builddependencies = [ + ('M4', '1.4.18'), +] + + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['bison', 'yacc']] + [('lib/liby.a', 'lib64/liby.a')], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/b/Bison/Bison-3.7.6-GCCcore-10.3.0.eb b/easybuild/easyconfigs/b/Bison/Bison-3.7.6-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..8c2f1680328 --- /dev/null +++ b/easybuild/easyconfigs/b/Bison/Bison-3.7.6-GCCcore-10.3.0.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'Bison' +version = '3.7.6' + +homepage = 'https://www.gnu.org/software/bison' +description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar + into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['69dc0bb46ea8fc307d4ca1e0b61c8c355eb207d0b0c69f4f8462328e74d7b9ea'] + +builddependencies = [ + ('M4', '1.4.18'), + # use same binutils version that was used when building GCCcore toolchain + ('binutils', '2.36.1', '', True), +] + + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['bison', 'yacc']] + [('lib/liby.a', 'lib64/liby.a')], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/b/Bison/Bison-3.7.6-GCCcore-11.1.0.eb b/easybuild/easyconfigs/b/Bison/Bison-3.7.6-GCCcore-11.1.0.eb new file mode 100644 index 00000000000..d5ee76339b3 --- /dev/null +++ b/easybuild/easyconfigs/b/Bison/Bison-3.7.6-GCCcore-11.1.0.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'Bison' +version = '3.7.6' + +homepage = 'https://www.gnu.org/software/bison' +description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar + into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.""" + +toolchain = {'name': 'GCCcore', 'version': '11.1.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['69dc0bb46ea8fc307d4ca1e0b61c8c355eb207d0b0c69f4f8462328e74d7b9ea'] + +builddependencies = [ + ('M4', '1.4.18'), + # use same binutils version that was used when building GCCcore toolchain + ('binutils', '2.36.1', '', True), +] + + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['bison', 'yacc']] + [('lib/liby.a', 'lib64/liby.a')], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/b/Bison/Bison-3.7.6.eb b/easybuild/easyconfigs/b/Bison/Bison-3.7.6.eb new file mode 100644 index 00000000000..85674168cac --- /dev/null +++ b/easybuild/easyconfigs/b/Bison/Bison-3.7.6.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'Bison' +version = '3.7.6' + +homepage = 'https://www.gnu.org/software/bison' + +description = """ + Bison is a general-purpose parser generator that converts an annotated + context-free grammar into a deterministic LR or generalized LR (GLR) parser + employing LALR(1) parser tables. +""" + +toolchain = SYSTEM + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['69dc0bb46ea8fc307d4ca1e0b61c8c355eb207d0b0c69f4f8462328e74d7b9ea'] + +builddependencies = [ + ('M4', '1.4.18'), +] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['bison', 'yacc']] + [('lib/liby.a', 'lib64/liby.a')], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/b/Bonito/Bonito-0.3.8-fosscuda-2020b.eb b/easybuild/easyconfigs/b/Bonito/Bonito-0.3.8-fosscuda-2020b.eb new file mode 100644 index 00000000000..b677ee8f209 --- /dev/null +++ b/easybuild/easyconfigs/b/Bonito/Bonito-0.3.8-fosscuda-2020b.eb @@ -0,0 +1,117 @@ +easyblock = 'PythonBundle' + +name = 'Bonito' +version = '0.3.8' + +homepage = 'https://github.com/nanoporetech/bonito' +description = "Convolution Basecaller for Oxford Nanopore Reads" + +toolchain = {'name': 'fosscuda', 'version': '2020b'} + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), + ('PyTorch', '1.7.1'), + ('h5py', '3.1.0'), + ('Mako', '1.1.3'), + ('PyYAML', '5.3.1'), + ('python-parasail', '1.2.4'), + ('tqdm', '4.56.2'), + ('apex', '20210420'), + ('minimap2', '2.18'), + ('CuPy', '8.5.0'), +] + +use_pip = True + +exts_list = [ + ('python-editor', '1.0.4', { + 'modulename': 'editor', + 'checksums': ['51fda6bcc5ddbbb7063b2af7509e43bd84bfc32a4ff71349ec7847713882327b'], + }), + ('alembic', '1.5.8', { + 'checksums': ['e27fd67732c97a1c370c33169ef4578cf96436fa0e7dcfaeeef4a917d0737d56'], + }), + ('cmd2', '1.5.0', { + 'checksums': ['701a8c9975c4abc45e5d13906ab149f959f812869106347323a3f89ac0e82a62'], + }), + ('prettytable', '2.1.0', { + 'checksums': ['5882ed9092b391bb8f6e91f59bcdbd748924ff556bb7c634089d5519be87baa0'], + }), + ('cliff', '3.7.0', { + 'preinstallopts': "sed -i'' 's/cmd2.*/cmd2/g' requirements.txt && ", + 'checksums': ['389c81960de13f05daf1cbd546f33199e86c518ba4266c79ec7a153a280980ea'], + }), + ('colorlog', '5.0.1', { + 'checksums': ['f17c013a06962b02f4449ee07cfdbe6b287df29efc2c9a1515b4a376f4e588ea'], + }), + ('greenlet', '1.0.0', { + 'checksums': ['719e169c79255816cdcf6dccd9ed2d089a72a9f6c42273aae12d55e8d35bdcf8'], + }), + ('SQLAlchemy', '1.4.11', { + 'checksums': ['4ad4044eb86fbcbdff2106e44f479fbdac703d77860b3e19988c8a8786e73061'], + }), + ('cmaes', '0.8.2', { + 'checksums': ['1c04ba23ded925ef13b96f42cfbd667a905ea5b80754c750e6448b9fcda96a5d'], + }), + ('optuna', '2.7.0', { + 'checksums': ['eb1595108ec444e840deb0037351074144fecb7a4eff6870fc11569ab782cfc6'], + }), + ('colorama', '0.4.4', { + 'checksums': ['5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b'], + }), + ('pyperclip', '1.8.2', { + 'checksums': ['105254a8b04934f0bc84e9c24eb360a591aaf6535c9def5f29d92af107a9bf57'], + }), + ('importlib_metadata', '4.0.1', { + 'checksums': ['8c501196e49fb9df5df43833bdb1e4328f64847763ec8a50703148b73784d581'], + }), + ('stevedore', '3.3.0', { + 'checksums': ['3a5bbd0652bf552748871eaa73a4a8dc2899786bc497a2aa1fcb4dcdb0debeee'], + }), + ('progressbar33', '2.4', { + 'modulename': 'progressbar', + 'checksums': ['51fe0d9b3b4023db2f983eeccdfc8c9846b84db8443b9bee002c7f58f4376eff'], + }), + ('ont-fast5-api', '3.3.0', { + 'checksums': ['8ccbf8d203ba90c2757f25b6bbcfb0e5c90bbbb9972f2e19c3f6d6d9943d9f15'], + }), + ('fast-ctc-decode', '0.3.0', { + 'source_tmpl': 'fast_ctc_decode-%(version)s-cp38-cp38-manylinux2010_x86_64.whl', + 'unpack_sources': False, + 'checksums': ['623d83f8de5e02199a09bfe0160a1e477f0db8d4ab612b26a7e42c2a335b378c'], + }), + ('mappy', '2.18', { + 'checksums': ['18fffdb4b831cc3f5399b919b0942c640bf9a943ca22102ac446f53af3b905a8'], + }), + ('seqdist', '0.0.3', { + 'preinstallopts': "sed -i 's/cupy-cuda102//g' settings.ini && sed -i 's/[<>=]=[0-9].*//g' settings.ini && ", + 'checksums': ['bdbbea6ebba1c6dd6698d46e23ba7858f93a7cdf0c7cbc2ea66660291acb044f'], + }), + ('crf-beam', '0.0.1a0', { + 'modulename': 'kbeam', + 'sources': ['crf_beam-%(version)s-cp38-cp38-manylinux1_x86_64.whl'], + 'unpack_sources': False, + 'checksums': ['0cba80ff4d7f90595f498921cf904736e3bce558dba80de5611874d89e72312e'], + }), + ('ont-bonito', version, { + 'modulename': 'bonito', + 'preinstallopts': "sed -i 's/[><=]=.*//g' requirements.txt && export PATH=%(installdir)s/bin:$PATH && ", + 'checksums': ['f18ec073c841bb0ccfe9049530df370ab0fb19931614e8ba37316acaa58639a1'], + }), +] + +sanity_pip_check = True + +sanity_check_paths = { + 'files': ['bin/bonito'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + "bonito --help", + "bonito convert --help", + "bonito download --help", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.71.0-gompi-2019b.eb b/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.71.0-gompi-2019b.eb index cf6cc138bc5..0521be943db 100644 --- a/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.71.0-gompi-2019b.eb +++ b/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.71.0-gompi-2019b.eb @@ -10,7 +10,7 @@ description = """Boost.Python is a C++ library which enables seamless interopera toolchain = {'name': 'gompi', 'version': '2019b'} toolchainopts = {'pic': True} -source_urls = ['https://dl.bintray.com/boostorg/release/%(version)s/source/'] +source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/'] sources = ['boost_%s.tar.gz' % '_'.join(version.split('.'))] patches = ['Boost-%(version)s_fix-Python3.patch'] checksums = [ diff --git a/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.71.0-gompic-2019b.eb b/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.71.0-gompic-2019b.eb index 612b5e195e6..14878ffe40b 100644 --- a/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.71.0-gompic-2019b.eb +++ b/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.71.0-gompic-2019b.eb @@ -10,7 +10,7 @@ description = """Boost.Python is a C++ library which enables seamless interopera toolchain = {'name': 'gompic', 'version': '2019b'} toolchainopts = {'pic': True} -source_urls = ['https://dl.bintray.com/boostorg/release/%(version)s/source/'] +source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/'] sources = ['boost_%s.tar.gz' % '_'.join(version.split('.'))] patches = ['Boost-%(version)s_fix-Python3.patch'] checksums = [ diff --git a/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.71.0-iimpi-2019b.eb b/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.71.0-iimpi-2019b.eb index 4aa30e3fedd..893716258a9 100644 --- a/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.71.0-iimpi-2019b.eb +++ b/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.71.0-iimpi-2019b.eb @@ -10,7 +10,7 @@ description = """Boost.Python is a C++ library which enables seamless interopera toolchain = {'name': 'iimpi', 'version': '2019b'} toolchainopts = {'pic': True} -source_urls = ['https://dl.bintray.com/boostorg/release/%(version)s/source/'] +source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/'] sources = ['boost_%s.tar.gz' % '_'.join(version.split('.'))] patches = ['Boost-%(version)s_fix-Python3.patch'] checksums = [ diff --git a/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.71.0-iimpic-2019b.eb b/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.71.0-iimpic-2019b.eb index 2aff22ed9d7..f637d7c135a 100644 --- a/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.71.0-iimpic-2019b.eb +++ b/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.71.0-iimpic-2019b.eb @@ -10,7 +10,7 @@ description = """Boost.Python is a C++ library which enables seamless interopera toolchain = {'name': 'iimpic', 'version': '2019b'} toolchainopts = {'pic': True} -source_urls = ['https://dl.bintray.com/boostorg/release/%(version)s/source/'] +source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/'] sources = ['boost_%s.tar.gz' % '_'.join(version.split('.'))] patches = ['Boost-%(version)s_fix-Python3.patch'] checksums = [ diff --git a/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.72.0-gompi-2020a.eb b/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.72.0-gompi-2020a.eb index 3dcd5468ce6..bc27fa70ed9 100644 --- a/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.72.0-gompi-2020a.eb +++ b/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.72.0-gompi-2020a.eb @@ -10,7 +10,7 @@ description = """Boost.Python is a C++ library which enables seamless interopera toolchain = {'name': 'gompi', 'version': '2020a'} toolchainopts = {'pic': True} -source_urls = ['https://dl.bintray.com/boostorg/release/%(version)s/source/'] +source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/'] sources = ['boost_%s.tar.gz' % '_'.join(version.split('.'))] patches = ['Boost-1.71.0_fix-Python3.patch'] checksums = [ diff --git a/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.72.0-gompic-2020a.eb b/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.72.0-gompic-2020a.eb new file mode 100644 index 00000000000..79e35134986 --- /dev/null +++ b/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.72.0-gompic-2020a.eb @@ -0,0 +1,27 @@ +easyblock = 'EB_Boost' + +name = 'Boost.Python' +version = '1.72.0' + +homepage = 'https://boostorg.github.io/python' +description = """Boost.Python is a C++ library which enables seamless interoperability between C++ + and the Python programming language.""" + +toolchain = {'name': 'gompic', 'version': '2020a'} +toolchainopts = {'pic': True} + +source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/'] +sources = ['boost_%s.tar.gz' % '_'.join(version.split('.'))] +patches = ['Boost-1.71.0_fix-Python3.patch'] +checksums = [ + 'c66e88d5786f2ca4dbebb14e06b566fb642a1a6947ad8cc9091f9f445134143f', # boost_1_72_0.tar.gz + '60e3aede2f444a3855f4efed94d1de5c2887983876e0fae21f6ca5cfdc53ea96', # Boost-1.71.0_fix-Python3.patch +] + +multi_deps = {'Python': ['3.8.2', '2.7.18']} + +dependencies = [('Boost', version)] + +only_python_bindings = True + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.72.0-iimpi-2020a.eb b/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.72.0-iimpi-2020a.eb index 4ca1fb20884..b3566b63a42 100644 --- a/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.72.0-iimpi-2020a.eb +++ b/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.72.0-iimpi-2020a.eb @@ -10,7 +10,7 @@ description = """Boost.Python is a C++ library which enables seamless interopera toolchain = {'name': 'iimpi', 'version': '2020a'} toolchainopts = {'pic': True} -source_urls = ['https://dl.bintray.com/boostorg/release/%(version)s/source/'] +source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/'] sources = ['boost_%s.tar.gz' % '_'.join(version.split('.'))] patches = ['Boost-1.71.0_fix-Python3.patch'] checksums = [ diff --git a/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.74.0-GCC-10.2.0.eb b/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.74.0-GCC-10.2.0.eb index b9d56af993b..ca9a6e5edca 100644 --- a/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.74.0-GCC-10.2.0.eb +++ b/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.74.0-GCC-10.2.0.eb @@ -10,7 +10,7 @@ description = """Boost.Python is a C++ library which enables seamless interopera toolchain = {'name': 'GCC', 'version': '10.2.0'} toolchainopts = {'pic': True} -source_urls = ['https://dl.bintray.com/boostorg/release/%(version)s/source/'] +source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/'] sources = ['boost_%s.tar.gz' % '_'.join(version.split('.'))] patches = ['Boost-1.71.0_fix-Python3.patch'] checksums = [ diff --git a/easybuild/easyconfigs/b/Boost/Boost-1.71.0-gompi-2019b.eb b/easybuild/easyconfigs/b/Boost/Boost-1.71.0-gompi-2019b.eb index 7299fc91f74..0e42ee3c93c 100644 --- a/easybuild/easyconfigs/b/Boost/Boost-1.71.0-gompi-2019b.eb +++ b/easybuild/easyconfigs/b/Boost/Boost-1.71.0-gompi-2019b.eb @@ -7,7 +7,7 @@ description = """Boost provides free peer-reviewed portable C++ source libraries toolchain = {'name': 'gompi', 'version': '2019b'} toolchainopts = {'pic': True, 'usempi': True} -source_urls = ['https://dl.bintray.com/boostorg/release/%(version)s/source/'] +source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/'] sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] checksums = ['96b34f7468f26a141f6020efb813f1a2f3dfb9797ecf76a7d7cbd843cc95f5bd'] diff --git a/easybuild/easyconfigs/b/Boost/Boost-1.71.0-gompic-2019b.eb b/easybuild/easyconfigs/b/Boost/Boost-1.71.0-gompic-2019b.eb index 3e93099563b..c3a465db37d 100644 --- a/easybuild/easyconfigs/b/Boost/Boost-1.71.0-gompic-2019b.eb +++ b/easybuild/easyconfigs/b/Boost/Boost-1.71.0-gompic-2019b.eb @@ -7,7 +7,7 @@ description = """Boost provides free peer-reviewed portable C++ source libraries toolchain = {'name': 'gompic', 'version': '2019b'} toolchainopts = {'pic': True, 'usempi': True} -source_urls = ['https://dl.bintray.com/boostorg/release/%(version)s/source/'] +source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/'] sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] checksums = ['96b34f7468f26a141f6020efb813f1a2f3dfb9797ecf76a7d7cbd843cc95f5bd'] diff --git a/easybuild/easyconfigs/b/Boost/Boost-1.71.0-iimpi-2019b.eb b/easybuild/easyconfigs/b/Boost/Boost-1.71.0-iimpi-2019b.eb index c389ade06c5..829709da75d 100644 --- a/easybuild/easyconfigs/b/Boost/Boost-1.71.0-iimpi-2019b.eb +++ b/easybuild/easyconfigs/b/Boost/Boost-1.71.0-iimpi-2019b.eb @@ -7,7 +7,7 @@ description = """Boost provides free peer-reviewed portable C++ source libraries toolchain = {'name': 'iimpi', 'version': '2019b'} toolchainopts = {'pic': True, 'usempi': True} -source_urls = ['https://dl.bintray.com/boostorg/release/%(version)s/source/'] +source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/'] sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] checksums = ['96b34f7468f26a141f6020efb813f1a2f3dfb9797ecf76a7d7cbd843cc95f5bd'] diff --git a/easybuild/easyconfigs/b/Boost/Boost-1.71.0-iimpic-2019b.eb b/easybuild/easyconfigs/b/Boost/Boost-1.71.0-iimpic-2019b.eb index 0adf4338818..2f606156bee 100644 --- a/easybuild/easyconfigs/b/Boost/Boost-1.71.0-iimpic-2019b.eb +++ b/easybuild/easyconfigs/b/Boost/Boost-1.71.0-iimpic-2019b.eb @@ -7,7 +7,7 @@ description = """Boost provides free peer-reviewed portable C++ source libraries toolchain = {'name': 'iimpic', 'version': '2019b'} toolchainopts = {'pic': True, 'usempi': True} -source_urls = ['https://dl.bintray.com/boostorg/release/%(version)s/source/'] +source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/'] sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] checksums = ['96b34f7468f26a141f6020efb813f1a2f3dfb9797ecf76a7d7cbd843cc95f5bd'] diff --git a/easybuild/easyconfigs/b/Boost/Boost-1.72.0-GCCcore-9.3.0-no_mpi.eb b/easybuild/easyconfigs/b/Boost/Boost-1.72.0-GCCcore-9.3.0-no_mpi.eb index 27000fc7716..ca8c49aeb58 100644 --- a/easybuild/easyconfigs/b/Boost/Boost-1.72.0-GCCcore-9.3.0-no_mpi.eb +++ b/easybuild/easyconfigs/b/Boost/Boost-1.72.0-GCCcore-9.3.0-no_mpi.eb @@ -8,7 +8,7 @@ description = """Boost provides free peer-reviewed portable C++ source libraries toolchain = {'name': 'GCCcore', 'version': '9.3.0'} toolchainopts = {'pic': True} -source_urls = ['https://dl.bintray.com/boostorg/release/%(version)s/source/'] +source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/'] sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] checksums = ['c66e88d5786f2ca4dbebb14e06b566fb642a1a6947ad8cc9091f9f445134143f'] diff --git a/easybuild/easyconfigs/b/Boost/Boost-1.72.0-gompi-2020a.eb b/easybuild/easyconfigs/b/Boost/Boost-1.72.0-gompi-2020a.eb index 9e72b168ccd..ea0b3c88eda 100644 --- a/easybuild/easyconfigs/b/Boost/Boost-1.72.0-gompi-2020a.eb +++ b/easybuild/easyconfigs/b/Boost/Boost-1.72.0-gompi-2020a.eb @@ -7,7 +7,7 @@ description = """Boost provides free peer-reviewed portable C++ source libraries toolchain = {'name': 'gompi', 'version': '2020a'} toolchainopts = {'pic': True, 'usempi': True} -source_urls = ['https://dl.bintray.com/boostorg/release/%(version)s/source/'] +source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/'] sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] checksums = ['c66e88d5786f2ca4dbebb14e06b566fb642a1a6947ad8cc9091f9f445134143f'] diff --git a/easybuild/easyconfigs/b/Boost/Boost-1.72.0-gompic-2020a.eb b/easybuild/easyconfigs/b/Boost/Boost-1.72.0-gompic-2020a.eb new file mode 100644 index 00000000000..5905bdfc176 --- /dev/null +++ b/easybuild/easyconfigs/b/Boost/Boost-1.72.0-gompic-2020a.eb @@ -0,0 +1,25 @@ +name = 'Boost' +version = '1.72.0' + +homepage = 'https://www.boost.org/' +description = """Boost provides free peer-reviewed portable C++ source libraries.""" + +toolchain = {'name': 'gompic', 'version': '2020a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/'] +sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] +checksums = ['c66e88d5786f2ca4dbebb14e06b566fb642a1a6947ad8cc9091f9f445134143f'] + +dependencies = [ + ('bzip2', '1.0.8'), + ('zlib', '1.2.11'), + ('XZ', '5.2.5'), +] + +configopts = '--without-libraries=python' + +# also build boost_mpi +boost_mpi = True + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/b/Boost/Boost-1.72.0-iimpi-2020a.eb b/easybuild/easyconfigs/b/Boost/Boost-1.72.0-iimpi-2020a.eb index 5a3becf50a6..e5ee2e1c469 100644 --- a/easybuild/easyconfigs/b/Boost/Boost-1.72.0-iimpi-2020a.eb +++ b/easybuild/easyconfigs/b/Boost/Boost-1.72.0-iimpi-2020a.eb @@ -7,7 +7,7 @@ description = """Boost provides free peer-reviewed portable C++ source libraries toolchain = {'name': 'iimpi', 'version': '2020a'} toolchainopts = {'pic': True, 'usempi': True} -source_urls = ['https://dl.bintray.com/boostorg/release/%(version)s/source/'] +source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/'] sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] checksums = ['c66e88d5786f2ca4dbebb14e06b566fb642a1a6947ad8cc9091f9f445134143f'] diff --git a/easybuild/easyconfigs/b/Boost/Boost-1.74.0-GCC-10.2.0.eb b/easybuild/easyconfigs/b/Boost/Boost-1.74.0-GCC-10.2.0.eb index 9445b5ae8ba..6d96a0ef07e 100644 --- a/easybuild/easyconfigs/b/Boost/Boost-1.74.0-GCC-10.2.0.eb +++ b/easybuild/easyconfigs/b/Boost/Boost-1.74.0-GCC-10.2.0.eb @@ -10,7 +10,7 @@ description = """Boost provides free peer-reviewed portable C++ source libraries toolchain = {'name': 'GCC', 'version': '10.2.0'} toolchainopts = {'pic': True} -source_urls = ['https://dl.bintray.com/boostorg/release/%(version)s/source/'] +source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/'] sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] patches = ['Boost-%(version)s-library_version_type_serialization.patch'] checksums = [ diff --git a/easybuild/easyconfigs/b/Boost/Boost-1.74.0-iccifort-2020.4.304.eb b/easybuild/easyconfigs/b/Boost/Boost-1.74.0-iccifort-2020.4.304.eb index b2016956280..49052e54795 100644 --- a/easybuild/easyconfigs/b/Boost/Boost-1.74.0-iccifort-2020.4.304.eb +++ b/easybuild/easyconfigs/b/Boost/Boost-1.74.0-iccifort-2020.4.304.eb @@ -8,7 +8,7 @@ toolchain = {'name': 'iccifort', 'version': '2020.4.304'} # add C++ compiler option as workaround for "error: no instance of constructor .* matches the argument list" errors toolchainopts = {'pic': True, 'extra_cxxflags': '-DBOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT=1'} -source_urls = ['https://dl.bintray.com/boostorg/release/%(version)s/source/'] +source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/'] sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] patches = ['Boost-%(version)s-library_version_type_serialization.patch'] checksums = [ diff --git a/easybuild/easyconfigs/b/Bowtie/Bowtie-1.3.0-GCC-10.2.0.eb b/easybuild/easyconfigs/b/Bowtie/Bowtie-1.3.0-GCC-10.2.0.eb new file mode 100644 index 00000000000..8b2978402e6 --- /dev/null +++ b/easybuild/easyconfigs/b/Bowtie/Bowtie-1.3.0-GCC-10.2.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.0' + +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.2.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 = ['04e04d5f9a4a8cdee1fe58512588e95a173cf8395cf7d42136ecc76c1b8cab85'] + +dependencies = [ + ('tbb', '2020.3'), + ('zlib', '1.2.11'), +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/bcolz/bcolz-1.2.1-foss-2020b.eb b/easybuild/easyconfigs/b/bcolz/bcolz-1.2.1-foss-2020b.eb new file mode 100644 index 00000000000..f9ba69782d5 --- /dev/null +++ b/easybuild/easyconfigs/b/bcolz/bcolz-1.2.1-foss-2020b.eb @@ -0,0 +1,45 @@ +easyblock = "PythonPackage" + +name = 'bcolz' +version = '1.2.1' + +homepage = 'https://bcolz.blosc.org/en/latest/' +description = """bcolz provides columnar, chunked data containers that can be compressed either in-memory and on-disk. + Column storage allows for efficiently querying tables, as well as for cheap column addition and removal. + It is based on NumPy, and uses it as the standard data container to communicate with bcolz objects, + but it also comes with support for import/export facilities to/from HDF5/PyTables tables and pandas dataframes.""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +sources = [SOURCE_TAR_GZ] +patches = [ + '%(name)s-%(version)s_fix-deprecation.patch', +] +checksums = [ + 'c017d09bb0cb5bbb07f2ae223a3f3638285be3b574cb328e91525b2880300bd1', # bcolz-1.2.1.tar.gz + '90e3525c3254ab0c6b45a170423b8a4a17764fc27fa47ff45ff8465169375d35', # bcolz-1.2.1_fix-deprecation.patch +] + +dependencies = [ + ('Python', '3.8.6'), + ('Blosc', '1.21.0'), + ('dask', '2021.2.0'), + ('SciPy-bundle', '2020.11'), + ('PyTables', '3.6.1'), +] + +download_dep_fail = True +use_pip = True + +preinstallopts = "BLOSC_DIR=$EBROOTBLOSC" + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["python -c 'import bcolz; bcolz.test()'"] + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.35-GCCcore-10.2.0.eb b/easybuild/easyconfigs/b/binutils/binutils-2.35-GCCcore-10.2.0.eb index 4f2b121412a..c3fb942ee7d 100644 --- a/easybuild/easyconfigs/b/binutils/binutils-2.35-GCCcore-10.2.0.eb +++ b/easybuild/easyconfigs/b/binutils/binutils-2.35-GCCcore-10.2.0.eb @@ -7,10 +7,12 @@ description = "binutils: GNU binary utilities" toolchain = {'name': 'GCCcore', 'version': '10.2.0'} source_urls = [GNU_SOURCE] -sources = [SOURCE_TAR_GZ] +# Due to a serious bug of the gold linker on PPC it was decided to use the 2.35.2 sources instead of a +# (potentially large) patch. There are also some more or less minor fixes for ARM and (likely) x86 included. +sources = ["%(name)s-%(version)s.2.tar.gz"] patches = ['binutils-2.34-readd-avx512-vmovd.patch'] checksums = [ - 'a3ac62bae4f339855b5449cfa9b49df90c635adbd67ecb8a0e7f3ae86a058da6', # binutils-2.35.tar.gz + 'f484f61c81aa679df84d358d9818d5bf3e71fd227303f234f72b24420d98d3cd', # binutils-2.35.2.tar.gz '45ecf7f5d198dd446d1a2e2a4d46b2747eb6fb8f2bfa18d7d42769e710e85716', # binutils-2.34-readd-avx512-vmovd.patch ] @@ -32,4 +34,11 @@ dependencies = [ buildopts = 'MAKEINFO=true' installopts = buildopts +# symlink libbfd-2.35.so to libbfd-2.35.2.so to avoid breaking binaries/libraries that resolved libbfd.so symlink; +# likewise for libopcodes-2.35.so +postinstallcmds = [ + "cd %(installdir)s/lib && ln -s libbfd-%(version)s.2.so libbfd-%(version)s.so", + "cd %(installdir)s/lib && ln -s libopcodes-%(version)s.2.so libopcodes-%(version)s.so", +] + moduleclass = 'tools' diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.35.eb b/easybuild/easyconfigs/b/binutils/binutils-2.35.eb index 7232cedeeb8..61d32277dde 100644 --- a/easybuild/easyconfigs/b/binutils/binutils-2.35.eb +++ b/easybuild/easyconfigs/b/binutils/binutils-2.35.eb @@ -8,10 +8,12 @@ description = "binutils: GNU binary utilities" toolchain = SYSTEM source_urls = [GNU_SOURCE] -sources = [SOURCE_TAR_GZ] +# Due to a serious bug of the gold linker on PPC it was decided to use the 2.35.2 sources instead of a +# (potentially large) patch. There are also some more or less minor fixes for ARM and (likely) x86 included. +sources = ["%(name)s-%(version)s.2.tar.gz"] patches = ['binutils-2.34-readd-avx512-vmovd.patch'] checksums = [ - 'a3ac62bae4f339855b5449cfa9b49df90c635adbd67ecb8a0e7f3ae86a058da6', # binutils-2.35.tar.gz + 'f484f61c81aa679df84d358d9818d5bf3e71fd227303f234f72b24420d98d3cd', # binutils-2.35.2.tar.gz '45ecf7f5d198dd446d1a2e2a4d46b2747eb6fb8f2bfa18d7d42769e710e85716', # binutils-2.34-readd-avx512-vmovd.patch ] @@ -27,4 +29,11 @@ builddependencies = [ buildopts = 'MAKEINFO=true' installopts = buildopts +# symlink libbfd-2.35.so to libbfd-2.35.2.so to avoid breaking binaries/libraries that resolved libbfd.so symlink; +# likewise for libopcodes-2.35.so +postinstallcmds = [ + "cd %(installdir)s/lib && ln -s libbfd-%(version)s.2.so libbfd-%(version)s.so", + "cd %(installdir)s/lib && ln -s libopcodes-%(version)s.2.so libopcodes-%(version)s.so", +] + moduleclass = 'tools' diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.36.1-FCC-4.5.0.eb b/easybuild/easyconfigs/b/binutils/binutils-2.36.1-FCC-4.5.0.eb new file mode 100644 index 00000000000..9b967c834c9 --- /dev/null +++ b/easybuild/easyconfigs/b/binutils/binutils-2.36.1-FCC-4.5.0.eb @@ -0,0 +1,32 @@ +name = 'binutils' +version = '2.36.1' + +homepage = 'https://directory.fsf.org/project/binutils/' +description = "binutils: GNU binary utilities" + +toolchain = {'name': 'FCC', 'version': '4.5.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['e68edeaaeb6ca9687b6dcbaedd1b376506baad2d48de26a885fc5ab6acb839da'] + +builddependencies = [ + ('flex', '2.6.4'), + ('Bison', '3.7.6'), +] + +dependencies = [ + # zlib is a runtime dep to avoid that it gets embedded in libbfd.so, + # see https://github.com/easybuilders/easybuild-easyblocks/issues/1350 + ('zlib', '1.2.11'), +] + +# configure script seems to be confused about the presence of limits.h and fcntl.h when using the Fujitsu compiler +prebuildopts = 'export CFLAGS="-DHAVE_LIMITS_H -DHAVE_FCNTL_H $CFLAGS" && ' + +# avoid build failure when makeinfo command is not available +# see https://sourceware.org/bugzilla/show_bug.cgi?id=15345 +buildopts = 'MAKEINFO=true' +installopts = buildopts + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.36.1-GCCcore-10.3.0.eb b/easybuild/easyconfigs/b/binutils/binutils-2.36.1-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..8a7c407a6bb --- /dev/null +++ b/easybuild/easyconfigs/b/binutils/binutils-2.36.1-GCCcore-10.3.0.eb @@ -0,0 +1,31 @@ +name = 'binutils' +version = '2.36.1' + +homepage = 'https://directory.fsf.org/project/binutils/' +description = "binutils: GNU binary utilities" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['e68edeaaeb6ca9687b6dcbaedd1b376506baad2d48de26a885fc5ab6acb839da'] + +builddependencies = [ + ('flex', '2.6.4'), + ('Bison', '3.7.6'), + # use same binutils version that was used when building GCC toolchain, to 'bootstrap' this binutils + ('binutils', version, '', True) +] + +dependencies = [ + # zlib is a runtime dep to avoid that it gets embedded in libbfd.so, + # see https://github.com/easybuilders/easybuild-easyblocks/issues/1350 + ('zlib', '1.2.11'), +] + +# avoid build failure when makeinfo command is not available +# see https://sourceware.org/bugzilla/show_bug.cgi?id=15345 +buildopts = 'MAKEINFO=true' +installopts = buildopts + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.36.1-GCCcore-11.1.0.eb b/easybuild/easyconfigs/b/binutils/binutils-2.36.1-GCCcore-11.1.0.eb new file mode 100644 index 00000000000..9d954efae4e --- /dev/null +++ b/easybuild/easyconfigs/b/binutils/binutils-2.36.1-GCCcore-11.1.0.eb @@ -0,0 +1,31 @@ +name = 'binutils' +version = '2.36.1' + +homepage = 'https://directory.fsf.org/project/binutils/' +description = "binutils: GNU binary utilities" + +toolchain = {'name': 'GCCcore', 'version': '11.1.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['e68edeaaeb6ca9687b6dcbaedd1b376506baad2d48de26a885fc5ab6acb839da'] + +builddependencies = [ + ('flex', '2.6.4'), + ('Bison', '3.7.6'), + # use same binutils version that was used when building GCC toolchain, to 'bootstrap' this binutils + ('binutils', version, '', True) +] + +dependencies = [ + # zlib is a runtime dep to avoid that it gets embedded in libbfd.so, + # see https://github.com/easybuilders/easybuild-easyblocks/issues/1350 + ('zlib', '1.2.11'), +] + +# avoid build failure when makeinfo command is not available +# see https://sourceware.org/bugzilla/show_bug.cgi?id=15345 +buildopts = 'MAKEINFO=true' +installopts = buildopts + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.36.1.eb b/easybuild/easyconfigs/b/binutils/binutils-2.36.1.eb new file mode 100644 index 00000000000..4b38ce2e34e --- /dev/null +++ b/easybuild/easyconfigs/b/binutils/binutils-2.36.1.eb @@ -0,0 +1,26 @@ +name = 'binutils' +version = '2.36.1' + +homepage = 'https://directory.fsf.org/project/binutils/' + +description = "binutils: GNU binary utilities" + +toolchain = SYSTEM + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['e68edeaaeb6ca9687b6dcbaedd1b376506baad2d48de26a885fc5ab6acb839da'] + +builddependencies = [ + ('flex', '2.6.4'), + ('Bison', '3.7.6'), + # zlib required, but being linked in statically, so not a runtime dep + ('zlib', '1.2.11'), +] + +# avoid build failure when makeinfo command is not available +# see https://sourceware.org/bugzilla/show_bug.cgi?id=15345 +buildopts = 'MAKEINFO=true' +installopts = buildopts + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/b/bmtagger/bmtagger-3.101-gompi-2020b.eb b/easybuild/easyconfigs/b/bmtagger/bmtagger-3.101-gompi-2020b.eb new file mode 100644 index 00000000000..afe9d050646 --- /dev/null +++ b/easybuild/easyconfigs/b/bmtagger/bmtagger-3.101-gompi-2020b.eb @@ -0,0 +1,41 @@ +easyblock = 'MakeCp' + +name = 'bmtagger' +version = '3.101' + +homepage = 'ftp://ftp.ncbi.nlm.nih.gov/pub/agarwala/bmtagger/' +description = "Best Match Tagger for removing human reads from metagenomics datasets" + +toolchain = {'name': 'gompi', 'version': '2020b'} +toolchainopts = {'cstd': 'c++98'} + +source_urls = ['ftp://ftp.ncbi.nlm.nih.gov/pub/agarwala/bmtagger/'] +sources = [{'download_filename': 'bmtools.tar.gz', 'filename': 'bmtools-%(version)s.tar.gz'}] +patches = [ + 'bmtagger-%(version)s_fix-hardcoding.patch', + 'bmtagger-%(version)s_fix-templates.patch', +] +checksums = [ + '81ac6d47aa478c2e0ef760f15b9c71e1c52430c96a2c8d064667ebbef148e873', # bmtools-3.101.tar.gz + '8779edd4dab6c0a3bc1bbcc5f265d61ccfd685972a0570bc3a84f5a131972195', # bmtagger-3.101_fix-hardcoding.patch + '3832e4b4573e0fd8cb567069614f25a9ac51cb31135dd9c97329bf4eb15b1feb', # bmtagger-3.101_fix-templates.patch +] + +dependencies = [ + ('BLAST+', '2.11.0'), + ('SRPRISM', '3.1.2'), +] + +files_to_copy = [(['bmtagger/bmfilter', 'bmtagger/bmtagger.sh', 'bmtagger/bmtool', 'bmtagger/extract_fullseq'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/bmfilter', 'bin/bmtagger.sh', 'bin/bmtool', 'bin/extract_fullseq'], + 'dirs': [], +} + +sanity_check_commands = [ + "bmtool -h", + "bmfilter -h", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/buildenv/buildenv-default-FCC-4.5.0.eb b/easybuild/easyconfigs/b/buildenv/buildenv-default-FCC-4.5.0.eb new file mode 100644 index 00000000000..47a2c195187 --- /dev/null +++ b/easybuild/easyconfigs/b/buildenv/buildenv-default-FCC-4.5.0.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': 'FCC', 'version': '4.5.0'} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/b/buildenv/buildenv-default-Fujitsu-21.05.eb b/easybuild/easyconfigs/b/buildenv/buildenv-default-Fujitsu-21.05.eb new file mode 100644 index 00000000000..7e62992365c --- /dev/null +++ b/easybuild/easyconfigs/b/buildenv/buildenv-default-Fujitsu-21.05.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': 'Fujitsu', 'version': '21.05'} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8-GCCcore-10.3.0.eb b/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..663f7b87fda --- /dev/null +++ b/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8-GCCcore-10.3.0.eb @@ -0,0 +1,28 @@ +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': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://sourceware.org/pub/%(name)s/'] +sources = [SOURCE_TAR_GZ] +patches = ['bzip2-1.0.6-pkgconfig.patch'] +checksums = [ + 'ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269', # bzip2-1.0.8.tar.gz + '5a823e820b332eca3684416894f58edc125ac3dace9f46e62f98e45362aa8a6d', # bzip2-1.0.6-pkgconfig.patch +] + +builddependencies = [ + ('binutils', '2.36.1'), +] + + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/c/CDO/CDO-1.9.10-gompi-2020b.eb b/easybuild/easyconfigs/c/CDO/CDO-1.9.10-gompi-2020b.eb new file mode 100644 index 00000000000..1821dbe7696 --- /dev/null +++ b/easybuild/easyconfigs/c/CDO/CDO-1.9.10-gompi-2020b.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'CDO' +version = '1.9.10' + +homepage = 'https://code.zmaw.de/projects/cdo' +description = """CDO is a collection of command line Operators to manipulate and analyse Climate and NWP model Data.""" + +toolchain = {'name': 'gompi', 'version': '2020b'} +toolchainopts = {'usempi': True} + +source_urls = ['https://code.mpimet.mpg.de/attachments/download/24638/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['cc39c89bbb481d7b3945a06c56a8492047235f46ac363c4f0d980fccdde6677e'] + +dependencies = [ + ('HDF5', '1.10.7'), + ('netCDF', '4.7.4'), + ('YAXT', '0.9.0'), + ('ecCodes', '2.20.0'), +] + +configopts = "--with-hdf5=$EBROOTHDF5 --with-netcdf=$EBROOTNETCDF --with-eccodes=$EBROOTECCODES" + +# fix for linking issues with HDF5 libraries for libcdi, should link with both -lnetcdf and -lhdf5_hl -lhdf5 +prebuildopts = "find libcdi -name Makefile | xargs sed -i 's/-lnetcdf -lnetcdf/-lnetcdf -lhdf5_hl -lhdf5/g' && " + +sanity_check_paths = { + 'files': ['bin/cdo'], + 'dirs': [], +} + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/c/CIRCexplorer2/CIRCexplorer2-2.3.8-foss-2020b-Python-2.7.18.eb b/easybuild/easyconfigs/c/CIRCexplorer2/CIRCexplorer2-2.3.8-foss-2020b-Python-2.7.18.eb new file mode 100644 index 00000000000..aaec5e3760e --- /dev/null +++ b/easybuild/easyconfigs/c/CIRCexplorer2/CIRCexplorer2-2.3.8-foss-2020b-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': '2020b'} + +sources = [SOURCE_TAR_GZ] +checksums = ['8261ee884f6d895131ce681d5eda6554376e973851a9de4dc50e2b3e242ccc80'] + +dependencies = [ + ('Python', '2.7.18'), + ('SciPy-bundle', '2020.11', 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', '411'), + ('STAR', '2.7.6a'), + ('BWA', '0.7.17'), + ('segemehl', '0.3.4'), + ('Pysam', '0.16.0.1', 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/CLHEP/CLHEP-2.4.4.0-GCC-10.2.0.eb b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.4.4.0-GCC-10.2.0.eb new file mode 100644 index 00000000000..190ed762b8d --- /dev/null +++ b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.4.4.0-GCC-10.2.0.eb @@ -0,0 +1,27 @@ +easyblock = 'CMakeMake' + +name = 'CLHEP' +version = '2.4.4.0' + +homepage = 'https://proj-clhep.web.cern.ch/proj-clhep/' +description = """The CLHEP project is intended to be a set of HEP-specific foundation and + utility classes such as random generators, physics vectors, geometry and linear algebra. + CLHEP is structured in a set of packages independent of any external package.""" + +toolchain = {'name': 'GCC', 'version': '10.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://proj-clhep.web.cern.ch/proj-clhep/dist1/'] +sources = [SOURCELOWER_TGZ] +checksums = ['5df78c11733a091da9ae5a24ce31161d44034dd45f20455587db85f1ca1ba539'] + +builddependencies = [('CMake', '3.18.4')] + +sanity_check_paths = { + 'files': ['bin/clhep-config', 'lib/libCLHEP.a', 'lib/libCLHEP.%s' % SHLIB_EXT], + 'dirs': ['include/CLHEP'], +} + +sanity_check_commands = ["clhep-config --help"] + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.20.1-GCCcore-10.3.0.eb b/easybuild/easyconfigs/c/CMake/CMake-3.20.1-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..8407f07472a --- /dev/null +++ b/easybuild/easyconfigs/c/CMake/CMake-3.20.1-GCCcore-10.3.0.eb @@ -0,0 +1,30 @@ +name = 'CMake' +version = '3.20.1' + +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': '10.3.0'} + +source_urls = ['https://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['3f1808b9b00281df06c91dd7a021d7f52f724101000da7985a401678dfe035b0'] + +builddependencies = [ + ('binutils', '2.36.1'), +] + +dependencies = [ + ('ncurses', '6.2'), + ('zlib', '1.2.11'), + ('bzip2', '1.0.8'), + ('cURL', '7.76.0'), + ('libarchive', '3.5.1'), + ('OpenSSL', '1.1', '', True), +] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/c/CNVkit/CNVkit-0.9.8-foss-2020b-R-4.0.3.eb b/easybuild/easyconfigs/c/CNVkit/CNVkit-0.9.8-foss-2020b-R-4.0.3.eb new file mode 100644 index 00000000000..4afe9aa8173 --- /dev/null +++ b/easybuild/easyconfigs/c/CNVkit/CNVkit-0.9.8-foss-2020b-R-4.0.3.eb @@ -0,0 +1,55 @@ +easyblock = 'PythonBundle' + +name = 'CNVkit' +version = '0.9.8' +versionsuffix = '-R-%(rver)s' + +homepage = 'https://github.com/etal/cnvkit' +description = """A command-line toolkit and Python library for detecting copy + number variants and alterations genome-wide from high-throughput sequencing.""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +dependencies = [ + ('Python', '3.8.6'), + ('scikit-learn', '0.23.2'), + ('Biopython', '1.78'), + ('matplotlib', '3.3.3'), + ('networkx', '2.5'), + ('Pillow', '8.0.1'), + ('Pysam', '0.16.0.1'), + ('PyYAML', '5.3.1'), + ('pyfaidx', '0.5.9.5'), + ('R', '4.0.3'), + ('R-bundle-Bioconductor', '3.12', versionsuffix), +] + +exts_list = [ + ('reportlab', '3.5.66', { + 'checksums': ['63fba51babad0047def4ffaa41d0065248ca39d680e98dc9e3010de5425539b4'], + }), + ('pomegranate', '0.13.5', { + 'checksums': ['b1b803fa18c8a8ca4a8fd2824573914bbff7574e3dc6be770ab68efd00503341'], + }), + (name, version, { + 'postinstallcmds': ["cd test/ && make"], + 'modulename': 'cnvlib', + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/etal/cnvkit/archive/'], + 'checksums': ['57e3081fd12c402abbc448851fda741795f23e68416c2564d9c09930bd56eef8'], + }), +] + +use_pip = True +sanity_pip_check = True + +sanity_check_paths = { + 'files': ['bin/cnvkit.py'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + 'cnvkit.py --help', +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/c/CONCOCT/CONCOCT-1.1.0-foss-2020b-Python-2.7.18.eb b/easybuild/easyconfigs/c/CONCOCT/CONCOCT-1.1.0-foss-2020b-Python-2.7.18.eb new file mode 100644 index 00000000000..9c7b23d10c7 --- /dev/null +++ b/easybuild/easyconfigs/c/CONCOCT/CONCOCT-1.1.0-foss-2020b-Python-2.7.18.eb @@ -0,0 +1,47 @@ +easyblock = 'PythonPackage' + +name = 'CONCOCT' +version = '1.1.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://concoct.readthedocs.io' +description = """Clustering cONtigs with COverage and ComposiTion (CONCOCT) is a +program for unsupervised binning of metagenomic contigs by using nucleotide +composition, coverage data in multiple samples and linkage data from paired end +reads.""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +source_urls = ['https://github.com/BinPro/CONCOCT/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = ['00aecacb4b720ac123a63e65072c61e0b5a8690d844c869aaee4dbf287c82888'] + +dependencies = [ + ('Python', '2.7.18'), + ('BEDTools', '2.30.0'), + ('Biopython', '1.76', versionsuffix), + ('Bowtie2', '2.4.2'), + ('CheckM', '1.0.18', versionsuffix), + ('GSL', '2.6'), + ('MEGAHIT', '1.2.9', versionsuffix), + ('parallel', '20210322'), + ('picard', '2.25.0', '-Java-11', True), + ('Pysam', '0.16.0.1', versionsuffix), + ('SAMtools', '1.11'), + ('scikit-learn', '0.20.4', versionsuffix), +] + +download_dep_fail = True + +use_pip = True + +sanity_check_paths = { + 'files': ['bin/concoct'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["concoct --help"] + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/c/CUDAcore/CUDAcore-11.0.2.eb b/easybuild/easyconfigs/c/CUDAcore/CUDAcore-11.0.2.eb index cf56d9a5211..dfb9416597a 100644 --- a/easybuild/easyconfigs/c/CUDAcore/CUDAcore-11.0.2.eb +++ b/easybuild/easyconfigs/c/CUDAcore/CUDAcore-11.0.2.eb @@ -22,4 +22,6 @@ checksums = [ } ] +installopts = "--override" + moduleclass = 'system' diff --git a/easybuild/easyconfigs/c/CUDAcore/CUDAcore-11.1.1.eb b/easybuild/easyconfigs/c/CUDAcore/CUDAcore-11.1.1.eb index c2bc47e7171..f48f472ab49 100644 --- a/easybuild/easyconfigs/c/CUDAcore/CUDAcore-11.1.1.eb +++ b/easybuild/easyconfigs/c/CUDAcore/CUDAcore-11.1.1.eb @@ -22,4 +22,6 @@ checksums = [ } ] +installopts = "--override" + moduleclass = 'system' diff --git a/easybuild/easyconfigs/c/CUDAcore/CUDAcore-11.2.1.eb b/easybuild/easyconfigs/c/CUDAcore/CUDAcore-11.2.1.eb index 5c2ed21354c..de8d7013e52 100644 --- a/easybuild/easyconfigs/c/CUDAcore/CUDAcore-11.2.1.eb +++ b/easybuild/easyconfigs/c/CUDAcore/CUDAcore-11.2.1.eb @@ -23,4 +23,6 @@ checksums = [ } ] +installopts = "--override" + moduleclass = 'system' diff --git a/easybuild/easyconfigs/c/CUDAcore/CUDAcore-11.2.2.eb b/easybuild/easyconfigs/c/CUDAcore/CUDAcore-11.2.2.eb index 51656f5e338..47980ef15ad 100644 --- a/easybuild/easyconfigs/c/CUDAcore/CUDAcore-11.2.2.eb +++ b/easybuild/easyconfigs/c/CUDAcore/CUDAcore-11.2.2.eb @@ -28,4 +28,6 @@ checksums = [ } ] +installopts = "--override" + moduleclass = 'system' diff --git a/easybuild/easyconfigs/c/CUDAcore/CUDAcore-11.3.0.eb b/easybuild/easyconfigs/c/CUDAcore/CUDAcore-11.3.0.eb new file mode 100644 index 00000000000..3fd3c7d16b1 --- /dev/null +++ b/easybuild/easyconfigs/c/CUDAcore/CUDAcore-11.3.0.eb @@ -0,0 +1,31 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'EB_CUDA' + +name = 'CUDAcore' +version = '11.3.0' +local_nv_version = '465.19.01' + +homepage = 'https://developer.nvidia.com/cuda-toolkit' +description = """CUDA (formerly Compute Unified Device Architecture) is a parallel + computing platform and programming model created by NVIDIA and implemented by the + graphics processing units (GPUs) that they produce. CUDA gives developers access + to the virtual instruction set and memory of the parallel computational elements in CUDA GPUs.""" + +toolchain = SYSTEM + +source_urls = ['https://developer.download.nvidia.com/compute/cuda/%(version)s/local_installers/'] +sources = ['cuda_%%(version)s_%s_linux%%(cudaarch)s.run' % local_nv_version] +checksums = [ + { + 'cuda_%%(version)s_%s_linux.run' % local_nv_version: + '262da7f77db177b153a6b70b5812210f3f72f00eb608ab9cf2a4582328c4bf5c', + 'cuda_%%(version)s_%s_linux_ppc64le.run' % local_nv_version: + 'c0010107933b575a87e27b1293e5dc32b74201486f4ae2f4c8695ea727d22857', + 'cuda_%%(version)s_%s_linux_sbsa.run' % local_nv_version: + 'f7b284cf055fcf18be9a9aa216e3c7968d3e011446eb0c7200a3353c223ce718' + } +] + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/c/CUDAcore/CUDAcore-11.3.1.eb b/easybuild/easyconfigs/c/CUDAcore/CUDAcore-11.3.1.eb new file mode 100644 index 00000000000..87255c2b4e4 --- /dev/null +++ b/easybuild/easyconfigs/c/CUDAcore/CUDAcore-11.3.1.eb @@ -0,0 +1,28 @@ +easyblock = 'EB_CUDA' + +name = 'CUDAcore' +version = '11.3.1' +local_nv_version = '465.19.01' + +homepage = 'https://developer.nvidia.com/cuda-toolkit' +description = """CUDA (formerly Compute Unified Device Architecture) is a parallel + computing platform and programming model created by NVIDIA and implemented by the + graphics processing units (GPUs) that they produce. CUDA gives developers access + to the virtual instruction set and memory of the parallel computational elements in CUDA GPUs.""" + +toolchain = SYSTEM + +source_urls = ['https://developer.download.nvidia.com/compute/cuda/%(version)s/local_installers/'] +sources = ['cuda_%%(version)s_%s_linux%%(cudaarch)s.run' % local_nv_version] +checksums = [ + { + 'cuda_%%(version)s_%s_linux.run' % local_nv_version: + 'ad93ea98efced35855c58d3a0fc326377c60917cb3e8c017d3e6d88819bf2934', + 'cuda_%%(version)s_%s_linux_ppc64le.run' % local_nv_version: + '220f2c10a21500d62b03c6848c1659ebb3a8e10dc0915ab87b86b397058407c5', + 'cuda_%%(version)s_%s_linux_sbsa.run' % local_nv_version: + '39990d3da88b21289ac20850bc183f0b66275f32e1f562b551c05843bf506e4c' + } +] + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/c/CastXML/CastXML-0.4.3-GCCcore-8.3.0.eb b/easybuild/easyconfigs/c/CastXML/CastXML-0.4.3-GCCcore-8.3.0.eb new file mode 100644 index 00000000000..e272ee80ade --- /dev/null +++ b/easybuild/easyconfigs/c/CastXML/CastXML-0.4.3-GCCcore-8.3.0.eb @@ -0,0 +1,34 @@ +easyblock = 'CMakeMake' + +name = 'CastXML' +version = '0.4.3' + +homepage = 'https://github.com/CastXML/CastXML' +description = """CastXML is a C-family abstract syntax tree XML output tool.""" + +toolchain = {'name': 'GCCcore', 'version': '8.3.0'} + +github_account = 'CastXML' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['3dd94096e07ffe103b2a951e4ff0f9486cc615b3ef08e95e5778eaaec667fb65'] + +builddependencies = [ + ('binutils', '2.32'), + ('CMake', '3.15.3'), +] + +dependencies = [ + ('Clang', '9.0.1'), + ('ncurses', '6.1'), + ('zlib', '1.2.11'), +] + +separate_build_dir = True + +sanity_check_paths = { + 'files': ['bin/castxml'], + 'dirs': ['share/castxml'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/c/CellRanger/CellRanger-6.0.1.eb b/easybuild/easyconfigs/c/CellRanger/CellRanger-6.0.1.eb new file mode 100644 index 00000000000..61221036776 --- /dev/null +++ b/easybuild/easyconfigs/c/CellRanger/CellRanger-6.0.1.eb @@ -0,0 +1,29 @@ +# The STAR binary included in this version has been vectorized with AVX +# hence it is not recommended for systems that do not support it. + +easyblock = 'Tarball' + +name = 'CellRanger' +version = '6.0.1' + +homepage = 'https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/what-is-cell-ranger' +description = """Cell Ranger is a set of analysis pipelines that process Chromium + single-cell RNA-seq output to align reads, generate gene-cell matrices and perform + clustering and gene expression analysis.""" + +toolchain = SYSTEM + +# Download manually from https://support.10xgenomics.com/single-cell-gene-expression/software/downloads/latest +sources = [SOURCELOWER_TAR_GZ] +checksums = ['e2ec39412ee5ffa48047f9820cd371fba2082fcd4a85a82ef6ed7791166ce900'] + +keepsymlinks = True + +sanity_check_paths = { + 'files': ["bin/cellranger"], + 'dirs': ["bin/rna", "bin/tenkit"], +} + +sanity_check_commands = ['cellranger testrun --id=tiny'] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/c/CheckM/CheckM-1.0.18-foss-2020b-Python-2.7.18.eb b/easybuild/easyconfigs/c/CheckM/CheckM-1.0.18-foss-2020b-Python-2.7.18.eb new file mode 100644 index 00000000000..b5127b17c53 --- /dev/null +++ b/easybuild/easyconfigs/c/CheckM/CheckM-1.0.18-foss-2020b-Python-2.7.18.eb @@ -0,0 +1,63 @@ +# Updated from previous config +# Author: Pavel Grochal (INUITS) +# License: GPLv2 + +easyblock = 'PythonPackage' + +name = 'CheckM' +version = '1.0.18' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/Ecogenomics/CheckM' +description = """CheckM provides a set of tools for assessing the quality of +genomes recovered from isolates, single cells, or metagenomes.""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +source_urls = [ + 'https://pypi.python.org/packages/source/c/checkm-genome', + 'https://data.ace.uq.edu.au/public/CheckM_databases/', +] +sources = [ + 'checkm-genome-%(version)s.tar.gz', + { + 'filename': 'checkm_data_2015_01_16.tar.gz', + 'extract_cmd': "mkdir -p %(builddir)s/data && cd %(builddir)s/data && tar xfvz %s", + }, +] +checksums = [ + '0dcf31eab5e340a0fff37d7a5091d46d9269b0708db8f789adcd7cbd2a09a2b7', # checkm-genome-1.0.18.tar.gz + '971ec469348bd6c3d9eb96142f567f12443310fa06c1892643940f35f86ac92c', # checkm_data_2015_01_16.tar.gz +] + +dependencies = [ + ('Python', '2.7.18'), + ('pplacer', '1.1.alpha19', '', True), + ('prodigal', '2.6.3'), + ('HMMER', '3.3.2'), + ('SciPy-bundle', '2020.11', versionsuffix), + ('matplotlib', '2.2.5', versionsuffix), + ('Pysam', '0.16.0.1', versionsuffix), + ('DendroPy', '4.5.2', versionsuffix), +] + +download_dep_fail = True +use_pip = True + +# also install CheckM databases, see https://github.com/Ecogenomics/CheckM/wiki/Installation#how-to-install-checkm +postinstallcmds = [ + "cp -a %(builddir)s/data %(installdir)s", + "PYTHONPATH=%(installdir)s/lib/python%(pyshortver)s/site-packages:$PYTHONPATH " + "%(installdir)s/bin/checkm data setRoot %(installdir)s/data", +] + +sanity_check_paths = { + 'files': ['bin/checkm'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["checkm test %(builddir)s/checkm_test_results"] + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/c/CuPy/CuPy-8.5.0-fosscuda-2020b.eb b/easybuild/easyconfigs/c/CuPy/CuPy-8.5.0-fosscuda-2020b.eb new file mode 100644 index 00000000000..e7d275c6ef7 --- /dev/null +++ b/easybuild/easyconfigs/c/CuPy/CuPy-8.5.0-fosscuda-2020b.eb @@ -0,0 +1,44 @@ +easyblock = 'PythonBundle' + +name = 'CuPy' +version = '8.5.0' + +homepage = 'https://cupy.dev' +description = "CuPy is an open-source array library accelerated with NVIDIA CUDA." + +toolchain = {'name': 'fosscuda', 'version': '2020b'} +# setup.py requirement Cython>=0.29.22. Build fails with 0.29.21 +# after patching setup.py +builddependencies = [('Cython', '0.29.22')] +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), + ('cuDNN', '8.0.4.30', '-CUDA-11.1.1', True), + ('NCCL', '2.8.3', '-CUDA-11.1.1', True), + ('cuTENSOR', '1.2.2.5', '-CUDA-11.1.1', True), +] + +use_pip = True + +exts_default_options = {'source_urls': [PYPI_LOWER_SOURCE]} +postinstallcmds = [ + # req for sanity check on build nodes without libcuda.so. + # will be removed my patched __init__.py at sanity check import. + 'cp $EBROOTCUDA/./targets/x86_64-linux/lib/stubs/libcuda.* %(installdir)s/lib && ls %(installdir)s/lib' +] +exts_list = [ + ('fastrlock', '0.5', { + 'checksums': ['9ae1a31f6e069b5f0f28ba63c594d0c952065de0a375f7b491d21ebaccc5166f'], + }), + ('cupy', version, { + 'patches': ['CuPy-8.5.0_sanitycheck_fix.patch'], + 'checksums': [ + 'fb3f8d3b3454beb249b9880502a45fe493c5a44efacc4c72914cbe1a5dbdf803', # cupy-8.5.0.tar.gz + 'c0acecccec1bfcc0697b9840228fe71813d0ea98cc975f627c106b48c6c02710', # CuPy-8.5.0_sanitycheck_fix.patch + ], + }), +] + +sanity_pip_check = True + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/c/CuPy/CuPy-8.5.0_sanitycheck_fix.patch b/easybuild/easyconfigs/c/CuPy/CuPy-8.5.0_sanitycheck_fix.patch new file mode 100644 index 00000000000..51ef9ea1bf5 --- /dev/null +++ b/easybuild/easyconfigs/c/CuPy/CuPy-8.5.0_sanitycheck_fix.patch @@ -0,0 +1,16 @@ +# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2021/03. +# allow sanity check on build nodes without nvidia driver installed. +# stubs/libcuda.so* should be copied to lib at postinstall. +diff -ru cupy-8.5.0/cupy/__init__.py CuPy-8.5.0_sanitycheck_fix/cupy/__init__.py +--- cupy-8.5.0/cupy/__init__.py 2021-02-25 21:48:36.000000000 +0100 ++++ CuPy-8.5.0_sanitycheck_fix/cupy/__init__.py 2021-03-15 12:00:09.333166759 +0100 +@@ -865,3 +865,9 @@ + """Prints the current runtime configuration to standard output.""" + _sys.stdout.write(str(_cupyx.get_runtime_info())) + _sys.stdout.flush() ++ ++print("Removing stubs libcuda.so* from $EBROOTCUPY/lib") #SANITYCHECKFIX ++import os #SANITYCHECKFIX ++os.system("rm $EBROOTCUPY/lib/libcuda* -f") #SANITYCHECKFIX ++os.system("sed -i '/SANITYCHECKFIX$/d' $EBROOTCUPY/lib/python*/site-packages/cupy/__init__.py" ) #SANITYCHECKFIX ++ diff --git a/easybuild/easyconfigs/c/Cufflinks/Cufflinks-20190706-GCC-10.2.0.eb b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-20190706-GCC-10.2.0.eb new file mode 100644 index 00000000000..af9650a7fdf --- /dev/null +++ b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-20190706-GCC-10.2.0.eb @@ -0,0 +1,38 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild + +name = 'Cufflinks' +version = '20190706' +local_commit = 'dc3b0cb' + +homepage = 'http://cole-trapnell-lab.github.io/%(namelower)s/' +description = "Transcript assembly, differential expression, and differential regulation for RNA-Seq" + +toolchain = {'name': 'GCC', 'version': '10.2.0'} +toolchainopts = {'pic': True} + +github_account = 'cole-trapnell-lab' +source_urls = [GITHUB_LOWER_SOURCE] +sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}] +checksums = ['444c632083a473fe4fd99ff189cef5bbd95daee0912e8eefe79534bf225fbcb6'] + +builddependencies = [ + ('Eigen', '3.3.8'), + ('Autotools', '20200321'), + ('SAMtools', '1.11'), +] + +dependencies = [ + ('Boost', '1.74.0'), + ('zlib', '1.2.11'), + ('HTSlib', '1.11'), +] + +preconfigopts = 'autoreconf -i && export LIBS="${LIBS} -lhts" && export CFLAGS="$CFLAGS -fcommon" && ' +configopts = '--with-boost=${EBROOTBOOST} --with-bam=${EBROOTSAMTOOLS}' + +sanity_check_paths = { + 'files': ['bin/%(namelower)s'], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/c/Cython/Cython-0.29.22-GCCcore-10.2.0.eb b/easybuild/easyconfigs/c/Cython/Cython-0.29.22-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..7c9a95c0409 --- /dev/null +++ b/easybuild/easyconfigs/c/Cython/Cython-0.29.22-GCCcore-10.2.0.eb @@ -0,0 +1,54 @@ +# EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2012-2013 The Cyprus Institute +# Authors:: Andreas Panteli , +# Thekla Loizou , +# George Tsouloupas +# License:: MIT/GPL +# +# Updated: Pavel Grochal (INUITS) +## +# Thomas Hoffmann, EMBL Heidelberg: Adapted to v0.29.22, GCCcore 10.2.0 +# 2021/03 +easyblock = 'PythonPackage' + +name = 'Cython' +version = '0.29.22' + +homepage = 'https://cython.org/' +description = """ +Cython is an optimising static compiler for both the Python programming +language and the extended Cython programming language (based on Pyrex). +""" +docurls = [ + 'https://cython.org/#documentation', + 'https://github.com/cython/cython', +] + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['df6b83c7a6d1d967ea89a2903e4a931377634a297459652e4551734c48195406'] + +builddependencies = [('binutils', '2.35')] + +# Can't use multi_dep because EBPYTHONPREFIXES are not loaded in order. +# This results in not beeing able to choose Cython version in multi_dep. +dependencies = [('Python', '3.8.6')] + +download_dep_fail = True + +use_pip = True + +sanity_pip_check = True + +sanity_check_paths = { + 'files': ['bin/cygdb', 'bin/cython', 'bin/cythonize'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + 'cython --version', +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/c/cURL/cURL-7.76.0-GCCcore-10.3.0.eb b/easybuild/easyconfigs/c/cURL/cURL-7.76.0-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..0c3b29d5863 --- /dev/null +++ b/easybuild/easyconfigs/c/cURL/cURL-7.76.0-GCCcore-10.3.0.eb @@ -0,0 +1,46 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'cURL' +version = '7.76.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': '10.3.0'} + +source_urls = ['https://curl.haxx.se/download/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['3b4378156ba09e224008e81dcce854b7ce4d182b1f9cfb97fe5ed9e9c18c6bd3'] + +builddependencies = [ + ('binutils', '2.36.1'), +] + +dependencies = [ + ('zlib', '1.2.11'), + ('OpenSSL', '1.1', '', True), +] + +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/cairo/cairo-1.16.0-GCCcore-10.3.0.eb b/easybuild/easyconfigs/c/cairo/cairo-1.16.0-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..768773d1147 --- /dev/null +++ b/easybuild/easyconfigs/c/cairo/cairo-1.16.0-GCCcore-10.3.0.eb @@ -0,0 +1,46 @@ +easyblock = 'ConfigureMake' + +name = 'cairo' +version = '1.16.0' + +homepage = 'https://cairographics.org' +description = """Cairo is a 2D graphics library with support for multiple output devices. + Currently supported output targets include the X Window System (via both Xlib and XCB), Quartz, Win32, image buffers, + PostScript, PDF, and SVG file output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://cairographics.org/releases/'] +sources = [SOURCE_TAR_XZ] +checksums = ['5e7b29b3f113ef870d1e3ecf8adf21f923396401604bda16d44be45e66052331'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('pkg-config', '0.29.2'), +] +dependencies = [ + ('bzip2', '1.0.8'), + ('zlib', '1.2.11'), + ('libpng', '1.6.37'), + ('freetype', '2.10.4'), + ('pixman', '0.40.0'), + ('expat', '2.2.9'), + ('GLib', '2.68.2'), + ('X11', '20210518'), +] + +# disable symbol lookup, which requires -lbfd, to avoid link issues with (non-PIC) libiberty.a provided by GCC +configopts = "--enable-symbol-lookup=no --enable-gobject=yes --enable-svg=yes --enable-tee=yes --enable-xlib-xcb " + +sanity_check_paths = { + 'files': ['bin/cairo-trace', 'lib/cairo/libcairo-trace.%s' % SHLIB_EXT, 'lib/cairo/libcairo-trace.a', + 'lib/libcairo.a', 'lib/libcairo-gobject.a', 'lib/libcairo-script-interpreter.a', + 'lib/libcairo.%s' % SHLIB_EXT, 'lib/libcairo-gobject.%s' % SHLIB_EXT, + 'lib/libcairo-script-interpreter.%s' % SHLIB_EXT] + + ['include/cairo/cairo%s.h' % x for x in ['', '-deprecated', '-features', '-ft', '-gobject', '-pdf', '-ps', + '-script', '-script-interpreter', '-svg', '-version', '-xcb', + '-xlib', '-xlib-xrender']], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/c/canu/canu-2.1.1-GCCcore-10.2.0.eb b/easybuild/easyconfigs/c/canu/canu-2.1.1-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..7a7d3c59ec8 --- /dev/null +++ b/easybuild/easyconfigs/c/canu/canu-2.1.1-GCCcore-10.2.0.eb @@ -0,0 +1,40 @@ +easyblock = 'MakeCp' + +name = 'canu' +version = '2.1.1' + +homepage = 'https://canu.readthedocs.io' +description = "Canu is a fork of the Celera Assembler designed for high-noise single-molecule sequencing" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['https://github.com/marbl/canu/releases/download/v%(version)s/'] +sources = ['canu-%(version)s.tar.xz'] +checksums = ['18c030ada93286be90c364387879025c17001c8e445e64719c866bc6c7609b98'] + +builddependencies = [ + ('binutils', '2.35'), + # Makefile checks git version, before making (futile) attempt to update git submodules + ('git', '2.28.0', '-nodocs'), +] + +dependencies = [ + ('Java', '11', '', True), + ('Perl', '5.32.0'), + ('gnuplot', '5.4.1'), +] + +start_dir = 'src' + +files_to_copy = ['build/bin', 'build/lib', 'build/share', 'README*'] + +sanity_check_paths = { + 'files': ['bin/bogus', 'bin/canu', 'bin/meryl', 'bin/overlapPair', 'lib/libcanu.a'], + 'dirs': ['lib/site_perl', 'share'], +} +sanity_check_commands = [ + "canu -version", + "canu -options", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/c/carputils/carputils-20210513-foss-2020b.eb b/easybuild/easyconfigs/c/carputils/carputils-20210513-foss-2020b.eb new file mode 100644 index 00000000000..ee94dbf3d21 --- /dev/null +++ b/easybuild/easyconfigs/c/carputils/carputils-20210513-foss-2020b.eb @@ -0,0 +1,74 @@ +easyblock = 'PythonBundle' + +name = 'carputils' +local_commit = '8658b24c' +version = '20210513' + +homepage = 'https://git.opencarp.org/openCARP/carputils' +description = "carputils is a Python framework for generating and running openCARP examples." + +toolchain = {'name': 'foss', 'version': '2020b'} + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), + ('openCARP', '6.0'), + ('matplotlib', '3.3.3'), + ('PyTables', '3.6.1'), + ('meshtool', '16'), + ('meshalyzer', '2.2'), +] + +use_pip = True + +# version restrictions are too strict, so strip them out +local_carputils_preinstallopts = "sed -i 's/[=><]=[0-9].*//g' requirements.py3.txt && " +# inject proper version, to prevent installing carputils with 0.0.0 as version... +local_carputils_preinstallopts += """sed -i 's/ description=/ version="0.0.1-pre", description=/g' setup.py && """ + +exts_list = [ + ('common', '0.1.2', { + 'checksums': ['3dfa982670abefc870043b239eaa0ecd860be7aa952b1931c1356b426ff8c76a'], + }), + ('doxypypy', '0.8.8.6', { + 'checksums': ['627571455c537eb91d6998d95b32efc3c53562b2dbadafcb17e49593e0dae01b'], + }), + ('pyDOE', '0.3.8', { + 'source_tmpl': '%(name)s-%(version)s.zip', + 'checksums': ['cbd6f14ae26d3c9f736013205f53ea1191add4567033c3ee77b7dd356566c4b6'], + 'modulename': 'pyDOE', + }), + (name, version, { + 'source_urls': ['https://git.opencarp.org/openCARP/carputils/-/archive/%s/' % local_commit], + 'sources': [{'download_filename': 'carputils-%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}], + 'checksums': ['fb218a5f0a1148da3b05fc0e1625e0494aab9d462ff56baa7cb15bd4ef5f95ab'], + 'preinstallopts': local_carputils_preinstallopts, + }), +] + +fix_python_shebang_for = ['bin/*'] + +postinstallcmds = [ + "PYTHONPATH=%(installdir)s/lib/python%(pyshortver)s/site-packages:$PYTHONPATH " + "%(installdir)s/bin/cusettings %(installdir)s/settings.yaml", + # location to openCARP bin subdirectory + r'sed -i "s@^\([ ]*CPU: \).*@\1$EBROOTOPENCARP/bin@" %(installdir)s/settings.yaml', + r'sed -i "s@^\(MESHTOOL_DIR: \).*@\1$EBROOTMESHTOOL/bin@" %(installdir)s/settings.yaml', + r'sed -i "s@^\(MESHALYZER_DIR: \).*@\1$EBROOTMESHALYZER@" %(installdir)s/settings.yaml', + r'sed -i "s@^\(REGRESSION_REF: \).*@\1/path/to/carp-tests-reference@" %(installdir)s/settings.yaml', + r'sed -i "s/^\(EMAIL: \).*/\1 example@email.com/" %(installdir)s/settings.yaml', + r'sed -i "s@^\(REGRESSION_TEMP: \).*@#\1 /tmp@" %(installdir)s/settings.yaml', +] + +sanity_check_paths = { + 'files': ['bin/carphelp', 'bin/carptests', 'bin/cusettings'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["carphelp --help"] + +sanity_pip_check = True + +modextravars = {'CARPUTILS_SETTINGS': '%(installdir)s/settings.yaml'} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/c/ccache/ccache-4.2.1.eb b/easybuild/easyconfigs/c/ccache/ccache-4.2.1.eb new file mode 100644 index 00000000000..c3676140719 --- /dev/null +++ b/easybuild/easyconfigs/c/ccache/ccache-4.2.1.eb @@ -0,0 +1,42 @@ +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# License:: MIT/GPL + +easyblock = 'CMakeNinja' + +name = 'ccache' +version = '4.2.1' + +homepage = 'https://ccache.dev/' +description = """Ccache (or “ccache”) is a compiler cache. It speeds up recompilation by +caching previous compilations and detecting when the same compilation is being done again""" + +toolchain = SYSTEM + +source_urls = ['https://github.com/ccache/ccache/releases/download/v%(version)s/'] +sources = [SOURCE_TAR_GZ] +checksums = ['320d2b17d2f76393e5d4bb28c8dee5ca783248e9cd23dff0654694d60f8a4b62'] + +osdependencies = [('glibc-static', 'libc6-dev')] + +local_gccver = '10.2.0' +builddependencies = [ + ('GCC', local_gccver), + ('CMake', '3.18.4', '', ('GCCcore', local_gccver)), + ('Ninja', '1.10.1', '', ('GCCcore', local_gccver)), + ('zstd', '1.4.5', '', ('GCCcore', local_gccver)), +] + +# use BFD linker rather than default ld.gold (required on CentOS 8) +preconfigopts = 'LDFLAGS="-static -fuse-ld=bfd"' +configopts = '-DENABLE_DOCUMENTATION=OFF -DENABLE_IPO=ON -DZSTD_LIBRARY="$EBROOTZSTD/lib/libzstd.a" ' +# disable hunt for faster linker, since using ld.gold may fail (on CentOS 8, for example) +configopts += '-DUSE_FASTER_LINKER=OFF' + +sanity_check_paths = { + 'files': ['bin/ccache'], + 'dirs': [] +} +sanity_check_commands = ['ccache --help'] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/c/cell2location/cell2location-0.05-alpha-fosscuda-2020b.eb b/easybuild/easyconfigs/c/cell2location/cell2location-0.05-alpha-fosscuda-2020b.eb new file mode 100644 index 00000000000..7d60fb1c61d --- /dev/null +++ b/easybuild/easyconfigs/c/cell2location/cell2location-0.05-alpha-fosscuda-2020b.eb @@ -0,0 +1,133 @@ +# Author: Denis Krišťák (INUITS) + +easyblock = 'PythonBundle' + +name = 'cell2location' +version = '0.05-alpha' +local_nodejsver = '-nodejs-12.19.0' + +homepage = 'https://github.com/BayraktarLab/cell2location/' +description = """Comprehensive mapping of tissue cell architecture via integrated +single cell and spatial transcriptomics (cell2location model)""" + +toolchain = {'name': 'fosscuda', 'version': '2020b'} + +builddependencies = [ + ('Bison', '3.7.1'), +] + +dependencies = [ + ('Python', '3.8.6'), + ('Java', '11', '', True), + ('SciPy-bundle', '2020.11'), + ('leidenalg', '0.8.3'), + ('hyperopt', '0.2.5'), + ('CMake', '3.18.4'), + ('dill', '0.3.3'), + ('IPython', '7.18.1'), + ('Seaborn', '0.11.1'), + ('matplotlib', '3.3.3'), + ('libgpuarray', '0.7.6'), + ('PyMC3', '3.11.1'), + ('request', '2.88.1', local_nodejsver), + ('PyTables', '3.6.1'), + ('PyTorch', '1.7.1'), + ('statsmodels', '0.12.1'), + ('numba', '0.52.0'), + ('Theano', '1.1.2', '-PyMC'), + ('umap-learn', '0.4.6'), + ('pyro-api', '0.1.2'), + ('pyro-ppl', '1.5.2'), +] + +preinstallopts = "sed -i 's/theano/Theano-PyMC/g' setup.py && " + +use_pip = True + +exts_default_options = { + 'download_dep_fail': True, + 'sanity_pip_check': True, + 'use_pip': True, +} + +exts_list = [ + ('opt-einsum', '3.3.0', { + 'source_tmpl': 'opt_einsum-%(version)s.tar.gz', + 'checksums': ['59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549'], + }), + ('pytoml', '0.1.21', { + 'checksums': ['8eecf7c8d0adcff3b375b09fe403407aa9b645c499e5ab8cac670ac4a35f61e7'], + }), + ('get_version', '2.1', { + 'use_pip': False, + 'checksums': ['8156b526c2557537b8ca82241fa2b82b3da25939627398f6567dee31ba9725bc'], + }), + ('legacy-api-wrap', '1.2', { + 'use_pip': False, + 'checksums': ['034a44612da7e9943d3964363a98937ab54d55e3301075374abe0d521eb8101b'], + }), + ('descartes', '1.1.0', { + 'checksums': ['135a502146af5ed6ff359975e2ebc5fa4b71b5432c355c2cafdc6dea1337035b'], + }), + ('mizani', '0.7.1', { + 'checksums': ['97eea665d17fdc6c827b832925c094839e1ef7bf65b3aa47105e772b6eca9b0a'], + }), + ('anndata', '0.7.5', { + 'checksums': ['2113a7463388013023f153e1a1446add4182883e3320b6e37dda18ee6210e038'], + }), + ('ipykernel', '5.3.4', { + 'checksums': ['9b2652af1607986a1b231c62302d070bc0534f564c393a5d9d130db9abbbe89d'], + }), + ('nose', '1.3.7', { + 'checksums': ['f1bffef9cbc82628f6e7d7b40d7e255aefaa1adb6a1b1d26c69a8b79e6208a98'], + }), + ('natsort', '7.1.0', { + 'checksums': ['33f3f1003e2af4b4df20908fe62aa029999d136b966463746942efbfc821add3'], + }), + ('palettable', '3.3.0', { + 'checksums': ['72feca71cf7d79830cd6d9181b02edf227b867d503bec953cf9fa91bf44896bd'], + }), + ('scanpy', '1.6.0', { + 'checksums': ['542d1f1fc0471e7312d4349142e1c2eee4a465cd514fe4e3337be166f425fa55'], + }), + ('louvain', '0.7.0', { + 'checksums': ['9734fc6bf8c15546d685a8c6d7d7ca0574cad4cb641e9ca91c3334028658f7c6'], + }), + ('loompy', '3.0.6', { + 'checksums': ['58e9763b8ab1af2a4a0e3805d120458b5184fd2b0f3031657ecce33c63ca4c46'], + }), + ('bbknn', '1.3.12', { + 'checksums': ['7dc5257baa278fc92349ac7865674ce70802dc4e3afdafed87a099dff9e91159'], + }), + ('stdlib-list', '0.8.0', { + 'checksums': ['a1e503719720d71e2ed70ed809b385c60cd3fb555ba7ec046b96360d30b16d9f'], + }), + ('sinfo', '0.3.1', { + 'checksums': ['e1b2358808aded7b2ff00ea0cd4e6a2d978fb2a44ee9b15ac23d64a81bf62706'], + }), + ('plotnine', '0.7.0', { + 'checksums': ['8ee67cbf010ccea32670760e930b7b02177030a89ccdf85e35d156a96ce36cd3'], + }), + ('numpy-groupies', '0.9.13', { + 'modulename': 'numpy_groupies', + 'source_tmpl': 'numpy_groupies-%(version)s.tar.gz', + 'checksums': ['7b17b291322353f07c51598512d077e3731da0a048cfa8f738f3460d1ef0658d'], + }), + ('annoy', '1.17.0', { + 'checksums': ['9891e264041d1dcf3af42f67fbb16cb273c5404bc8c869d0915a3087f71d58dd'], + }), + (name, version, { + 'source_urls': ['https://github.com/BayraktarLab/cell2location/archive/'], + 'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': '%(name)s-%(version)s.tar.gz'}], + 'checksums': ['2df1fe2b2b4ec5fcebc6c1d6146ce0cd79115bd14059b0ae882a41f1029a4efc'], + }), +] + +sanity_pip_check = True + +sanity_check_paths = { + 'files': ['bin/loompy', 'bin/scanpy'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/c/cryoDRGN/cryoDRGN-0.3.2-fosscuda-2020b.eb b/easybuild/easyconfigs/c/cryoDRGN/cryoDRGN-0.3.2-fosscuda-2020b.eb new file mode 100644 index 00000000000..5d9c5f8d478 --- /dev/null +++ b/easybuild/easyconfigs/c/cryoDRGN/cryoDRGN-0.3.2-fosscuda-2020b.eb @@ -0,0 +1,55 @@ +easyblock = 'PythonBundle' + +name = 'cryoDRGN' +version = '0.3.2' + +homepage = 'https://cb.csail.mit.edu/cb/cryodrgn/' +description = """cryoDRGN: Deep Reconstructing Generative Networks for cryo-EM heterogeneous + reconstruction. + CryoDRGN is a neural network based algorithm for heterogeneous cryo-EM reconstruction. In + particular, the method models a continuous distribution over 3D structures by using a neural + network based representation for the volume. +""" + +toolchain = {'name': 'fosscuda', 'version': '2020b'} + +dependencies = [ + ('Python', '3.8.6'), + ('IPython', '7.18.1'), + ('JupyterLab', '2.2.8'), + ('SciPy-bundle', '2020.11'), + ('PyTorch', '1.7.1'), + ('numba', '0.52.0'), + ('plotly.py', '4.14.3'), + ('scikit-learn', '0.23.2'), + ('matplotlib', '3.3.3'), + ('Seaborn', '0.11.1'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('colorlover', '0.3.0', { + 'checksums': ['b8fb7246ab46e1f5e6715649453c1762e245a515de5ff2d2b4aab7a6e67fa4e2'], + }), + ('cufflinks', '0.17.3', { + 'checksums': ['48c1b3406dc030004121966489eebc5518cea70fd4e3f16379b491328501a644'], + }), + ('pynndescent', '0.5.2', { + 'checksums': ['d9fd22210b8d64368376ff392e876fb72fe3cda282396cfa6a59440ab6600771'], + }), + ('umap-learn', '0.5.1', { + 'checksums': ['3e3e5e526109866012a9da79f423c922edc379c6cac9bf65ea08fbb9dd93ff3a'], + 'modulename': 'umap', + }), + (name.lower(), version, { + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/zhonge/cryodrgn/archive'], + 'checksums': ['1efecc2a0add2392411076082c122039a490f5ddf3e01f1da38aea1a81592077'], + }), +] + +sanity_check_commands = ["%(namelower)s --help"] + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/c/ctffind/ctffind-4.1.14-fosscuda-2020b.eb b/easybuild/easyconfigs/c/ctffind/ctffind-4.1.14-fosscuda-2020b.eb new file mode 100644 index 00000000000..e011de44edf --- /dev/null +++ b/easybuild/easyconfigs/c/ctffind/ctffind-4.1.14-fosscuda-2020b.eb @@ -0,0 +1,40 @@ +# 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 + +easyblock = 'ConfigureMake' + +name = 'ctffind' +version = '4.1.14' + +homepage = 'https://grigoriefflab.umassmed.edu/ctffind4' +description = """Program for finding CTFs of electron micrographs.""" + +toolchain = {'name': 'fosscuda', 'version': '2020b'} +toolchainopts = {'openmp': True} + +source_urls = ['https://grigoriefflab.umassmed.edu/sites/default/files/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['db17b2ebeb3c3b2b3764e42b820cd50d19ccccf6956c64257bfe5d5ba6b40cb5'] + +dependencies = [ + ('zlib', '1.2.11'), + ('libjpeg-turbo', '2.0.5'), + ('LibTIFF', '4.1.0'), + ('GSL', '2.6'), + ('wxWidgets', '3.1.4'), +] + +configopts = '--enable-openmp ' + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/ctffind'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/c/cutadapt/cutadapt-1.18-GCC-10.2.0-Python-2.7.18.eb b/easybuild/easyconfigs/c/cutadapt/cutadapt-1.18-GCC-10.2.0-Python-2.7.18.eb new file mode 100644 index 00000000000..26af1089032 --- /dev/null +++ b/easybuild/easyconfigs/c/cutadapt/cutadapt-1.18-GCC-10.2.0-Python-2.7.18.eb @@ -0,0 +1,56 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics (SIB) +# Biozentrum - University of Basel +# Modified by: Adam Huffman, Jonas Demeulemeester +# The Francis Crick Institute +# Modufied by: Albert Bogdanowicz +# Institute of Biochemistry and Biophysics PAS + +easyblock = 'PythonBundle' + +name = 'cutadapt' +version = '1.18' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://opensource.scilifelab.se/projects/cutadapt/' +description = """Cutadapt finds and removes adapter sequences, primers, poly-A +tails and other types of unwanted sequence from your high-throughput sequencing +reads.""" + +toolchain = {'name': 'GCC', 'version': '10.2.0'} + +builddependencies = [ + ('binutils', '2.35'), + ('NASM', '2.15.05'), +] + +dependencies = [('Python', '2.7.18')] + +use_pip = True + +exts_list = [ + ('bz2file', '0.98', { + 'checksums': ['64c1f811e31556ba9931953c8ec7b397488726c63e09a4c67004f43bdd28da88'], + }), + ('xopen', '0.8.4', { + 'checksums': ['dcd8f5ef5da5564f514a990573a48a0c347ee1fdbb9b6374d31592819868f7ba'], + }), + (name, version, { + 'checksums': ['17aabf9b19d09a426d96030a83ad003c97b26dba9d45bf5570d33088fcd533f9'], + }), +] + +sanity_check_paths = { + 'files': ['bin/cutadapt'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + "cutadapt --help", + "python -c 'import cutadapt.seqio'", # requires xopen +] + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/d/DB/DB-18.1.40-FCC-4.5.0.eb b/easybuild/easyconfigs/d/DB/DB-18.1.40-FCC-4.5.0.eb new file mode 100644 index 00000000000..eb7933a6c04 --- /dev/null +++ b/easybuild/easyconfigs/d/DB/DB-18.1.40-FCC-4.5.0.eb @@ -0,0 +1,36 @@ +## +# Author: Robert Mijakovic +## +name = 'DB' +version = '18.1.40' + +homepage = 'https://www.oracle.com/technetwork/products/berkeleydb' + +description = """Berkeley DB enables the development of custom data management + solutions, without the overhead traditionally associated with such custom + projects.""" + +toolchain = {'name': 'FCC', 'version': '4.5.0'} + +# use http to allow auto-downloading... +source_urls = ['http://download.oracle.com/berkeley-db/'] +sources = [SOURCELOWER_TAR_GZ] +patches = ['%(name)s-%(version)s_fix_doc_install.patch'] +checksums = [ + '0cecb2ef0c67b166de93732769abdeba0555086d51de1090df325e18ee8da9c8', # db-18.1.40.tar.gz + '441f48568156f72f02a8662998d293cc7edad687604b4f8af722f21c6db2a52d', # DB-18.1.40_fix_doc_install.patch +] + +builddependencies = [('binutils', '2.36.1')] + +dependencies = [('OpenSSL', '1.1', '', True)] + +sanity_check_paths = { + 'files': ['bin/db_%s' % x for x in ['archive', 'checkpoint', 'convert', 'deadlock', 'dump', 'hotbackup', + 'load', 'log_verify', 'printlog', 'recover', 'replicate', 'stat', + 'tuner', 'upgrade', 'verify']] + + ['include/db.h', 'lib/libdb.a', 'lib/libdb.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/d/DB/DB-18.1.40-GCCcore-10.2.0.eb b/easybuild/easyconfigs/d/DB/DB-18.1.40-GCCcore-10.2.0.eb index 6b601fe0f4b..c409d75484e 100644 --- a/easybuild/easyconfigs/d/DB/DB-18.1.40-GCCcore-10.2.0.eb +++ b/easybuild/easyconfigs/d/DB/DB-18.1.40-GCCcore-10.2.0.eb @@ -10,10 +10,9 @@ description = """Berkeley DB enables the development of custom data management toolchain = {'name': 'GCCcore', 'version': '10.2.0'} -# use Homebrew source mirror to allow auto-downloading source tarball -# (Oracle website - https://www.oracle.com/technetwork/products/berkeleydb/downloads/ - requires reigstration) -source_urls = ['https://bintray.com/homebrew/mirror/download_file?file_path='] -sources = [{'download_filename': 'berkeley-db-%(version)s.tar.gz', 'filename': SOURCELOWER_TAR_GZ}] +# use http to allow auto-downloading... +source_urls = ['http://download.oracle.com/berkeley-db/'] +sources = [SOURCELOWER_TAR_GZ] patches = ['%(name)s-%(version)s_fix_doc_install.patch'] checksums = [ '0cecb2ef0c67b166de93732769abdeba0555086d51de1090df325e18ee8da9c8', # db-18.1.40.tar.gz diff --git a/easybuild/easyconfigs/d/DB/DB-18.1.40-GCCcore-10.3.0.eb b/easybuild/easyconfigs/d/DB/DB-18.1.40-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..4b461e5efbd --- /dev/null +++ b/easybuild/easyconfigs/d/DB/DB-18.1.40-GCCcore-10.3.0.eb @@ -0,0 +1,36 @@ +## +# Author: Robert Mijakovic +## +name = 'DB' +version = '18.1.40' + +homepage = 'https://www.oracle.com/technetwork/products/berkeleydb' + +description = """Berkeley DB enables the development of custom data management + solutions, without the overhead traditionally associated with such custom + projects.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +# use http to allow auto-downloading... +source_urls = ['http://download.oracle.com/berkeley-db/'] +sources = [SOURCELOWER_TAR_GZ] +patches = ['%(name)s-%(version)s_fix_doc_install.patch'] +checksums = [ + '0cecb2ef0c67b166de93732769abdeba0555086d51de1090df325e18ee8da9c8', # db-18.1.40.tar.gz + '441f48568156f72f02a8662998d293cc7edad687604b4f8af722f21c6db2a52d', # DB-18.1.40_fix_doc_install.patch +] + +builddependencies = [('binutils', '2.36.1')] + +dependencies = [('OpenSSL', '1.1', '', True)] + +sanity_check_paths = { + 'files': ['bin/db_%s' % x for x in ['archive', 'checkpoint', 'convert', 'deadlock', 'dump', 'hotbackup', + 'load', 'log_verify', 'printlog', 'recover', 'replicate', 'stat', + 'tuner', 'upgrade', 'verify']] + + ['include/db.h', 'lib/libdb.a', 'lib/libdb.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/d/DBus/DBus-1.13.18-GCCcore-10.3.0.eb b/easybuild/easyconfigs/d/DBus/DBus-1.13.18-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..b3080c2464e --- /dev/null +++ b/easybuild/easyconfigs/d/DBus/DBus-1.13.18-GCCcore-10.3.0.eb @@ -0,0 +1,42 @@ +easyblock = 'ConfigureMake' + +name = 'DBus' +version = '1.13.18' + +homepage = 'https://dbus.freedesktop.org/' + +description = """ + D-Bus is a message bus system, a simple way for applications to talk + to one another. In addition to interprocess communication, D-Bus helps + coordinate process lifecycle; it makes it simple and reliable to code + a "single instance" application or daemon, and to launch applications + and daemons on demand when their services are needed. +""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://dbus.freedesktop.org/releases/dbus'] +sources = [SOURCELOWER_TAR_XZ] +checksums = ['8078f5c25e34ab907ce06905d969dc8ef0ccbec367e1e1707c7ecf8460f4254e'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('pkg-config', '0.29.2'), +] + +dependencies = [ + ('expat', '2.2.9'), +] + +configopts = '--without-systemdsystemunitdir' + +sanity_check_paths = { + 'files': ['bin/dbus-%s' % x for x in + ['cleanup-sockets', 'daemon', 'launch', 'monitor', + 'run-session', 'send', 'uuidgen']] + + ['lib/libdbus-1.%s' % x for x in ['a', SHLIB_EXT]], + 'dirs': ['include', 'share'], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/d/DFA/DFA-2.1.2-GCCcore-10.2.0.eb b/easybuild/easyconfigs/d/DFA/DFA-2.1.2-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..a510be9b2b9 --- /dev/null +++ b/easybuild/easyconfigs/d/DFA/DFA-2.1.2-GCCcore-10.2.0.eb @@ -0,0 +1,37 @@ +easyblock = 'PythonBundle' + +name = 'DFA' +version = '2.1.2' + +homepage = 'https://github.com/mvcisback/dfa' +description = "Python library for modeling DFAs, Moore Machines, and Transition Systems." + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +builddependencies = [ + ('binutils', '2.35'), +] + +dependencies = [ + ('Python', '3.8.6'), + ('pydot', '1.4.2'), + ('pytest-xdist', '2.1.0'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('funcy', '1.15', { + 'checksums': ['65b746fed572b392d886810a98d56939c6e0d545abb750527a717c21ced21008'], + }), + ('lazytree', '0.3.2', { + 'checksums': ['7a035efb5fb61d9209375e594780c1039af1feda02118f7fcbd74fdf6e4321da'], + }), + (name, version, { + 'source_tmpl': '%(namelower)s-%(version)s.tar.gz', + 'checksums': ['3dd082944293997ed0af9bc565271b3296664673aa71877e65de60579c811cf5'], + }), +] + +moduleclass = 'cae' diff --git a/easybuild/easyconfigs/d/DROP/DROP-1.0.3-foss-2020b-R-4.0.3.eb b/easybuild/easyconfigs/d/DROP/DROP-1.0.3-foss-2020b-R-4.0.3.eb new file mode 100644 index 00000000000..020b8f5f672 --- /dev/null +++ b/easybuild/easyconfigs/d/DROP/DROP-1.0.3-foss-2020b-R-4.0.3.eb @@ -0,0 +1,72 @@ +easyblock = 'PythonBundle' + +name = 'DROP' +version = '1.0.3' +versionsuffix = '-R-%(rver)s' + +homepage = 'https://gagneurlab-drop.readthedocs.io' +description = "Pipeline to find aberrant events in RNA-Seq data, useful for diagnosis of rare disorders" + +toolchain = {'name': 'foss', 'version': '2020b'} + +dependencies = [ + ('R', '4.0.3'), + ('R-bundle-Bioconductor', '3.12', '-R-%(rver)s'), + ('tMAE', '1.0.0', '-R-%(rver)s'), + ('Java', '11', '', True), + ('GATK', '4.2.0.0', '-Java-%(javaver)s'), + ('Graphviz', '2.47.0', '-Java-%(javaver)s'), + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), + ('snakemake', '6.1.0'), + ('wget', '1.20.3'), + ('HTSlib', '1.11'), # for tabix + ('SAMtools', '1.11'), + ('BCFtools', '1.11'), + ('Pandoc', '2.13', '', True), +] + +# postinstallcmds for pandoc are required to avoid that import fails because pandoc/definitions dir is not installed +exts_list = [ + ('wbuild', '1.8.0', { + 'checksums': ['3088d3fcbc71106464f20e3546a73df400dc03d17f11e70bdb15d35d7e6c5a7e'], + }), + ('click-log', '0.3.2', { + 'checksums': ['16fd1ca3fc6b16c98cea63acf1ab474ea8e676849dc669d86afafb0ed7003124'], + }), + ('graphviz', '0.16', { + 'source_tmpl': '%(name)s-%(version)s.zip', + 'checksums': ['d2d25af1c199cad567ce4806f0449cb74eb30cf451fd7597251e1da099ac6e57'], + }), + ('ply', '3.11', { + 'checksums': ['00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3'], + }), + ('about', '5.2', { + 'checksums': ['4a318ad1dcf6e9355b8ae18195c707d26413782b57ac5c740cc696b44350c959'], + }), + ('pandoc', '1.0.2', { + 'postinstallcmds': [ + 'cp -a pandoc/definitions %(installdir)s/lib/python%(pyshortver)s/site-packages/pandoc/', + ], + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/boisgera/pandoc/archive'], + 'checksums': ['37134dd3a4c681e988d8570297fcc2b615f80b0604a9b4ffb41c2e6bacd2b64b'], + }), + (name, version, { + 'source_tmpl': '%(version)s.tar.gz', + 'source_urls': ['https://github.com/gagneurlab/drop/archive'], + 'checksums': ['b4f4481bedfec212085646c6f1bebf3d113bc8490e127337d693a01bc95c7e51'], + }), +] + +use_pip = True +sanity_pip_check = True + +sanity_check_paths = { + 'files': ['bin/drop'], + 'dirs': [], +} + +sanity_check_commands = ['drop --help'] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/d/Delly/Delly-0.8.7-gompi-2020b.eb b/easybuild/easyconfigs/d/Delly/Delly-0.8.7-gompi-2020b.eb index f3283826a19..a91dbfee3e2 100644 --- a/easybuild/easyconfigs/d/Delly/Delly-0.8.7-gompi-2020b.eb +++ b/easybuild/easyconfigs/d/Delly/Delly-0.8.7-gompi-2020b.eb @@ -28,7 +28,7 @@ dependencies = [ ('Boost', '1.74.0'), ] -build_cmd = 'make PARELLEL=1 -B src/delly' +build_cmd = 'make PARALLEL=1 -B src/delly' files_to_copy = [ (['src/delly'], 'bin'), diff --git a/easybuild/easyconfigs/d/DendroPy/DendroPy-4.5.2-GCCcore-10.2.0-Python-2.7.18.eb b/easybuild/easyconfigs/d/DendroPy/DendroPy-4.5.2-GCCcore-10.2.0-Python-2.7.18.eb new file mode 100644 index 00000000000..8dd1572be95 --- /dev/null +++ b/easybuild/easyconfigs/d/DendroPy/DendroPy-4.5.2-GCCcore-10.2.0-Python-2.7.18.eb @@ -0,0 +1,44 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2013-2014 The Cyprus Institute +# Authors:: Thekla Loizou +# License:: MIT/GPL +# $Id$ +# +## +easyblock = 'PythonPackage' + +name = 'DendroPy' +version = '4.5.2' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://pypi.python.org/pypi/DendroPy/' +description = """A Python library for phylogenetics and phylogenetic computing: +reading, writing, simulation, processing and manipulation of phylogenetic trees +(phylogenies) and characters.""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['3e5d2522170058ebc8d1ee63a7f2d25b915e34957dc02693ebfdc15f347a0101'] + +builddependencies = [('binutils', '2.35')] + +dependencies = [('Python', '2.7.18')] + +download_dep_fail = True +use_pip = True + +fix_python_shebang_for = ['bin/*.py'] + +sanity_check_paths = { + 'files': ['bin/sumlabels.py', 'bin/sumtrees.py'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["sumtrees.py --help"] + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.1-GCCcore-10.3.0.eb b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.1-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..1601d6a560f --- /dev/null +++ b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.1-GCCcore-10.3.0.eb @@ -0,0 +1,28 @@ +name = 'Doxygen' +version = '1.9.1' + +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': '10.3.0'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%(namelower)s-%(version)s.src.tar.gz'] +checksums = ['67aeae1be4e1565519898f46f1f7092f1973cce8a767e93101ee0111717091d1'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('Bison', '3.7.6'), + ('CMake', '3.20.1'), + ('flex', '2.6.4'), + ('pkg-config', '0.29.2'), +] +dependencies = [('libiconv', '1.16')] + +configopts = "-DICONV_DIR=$EBROOTLIBICONV -DICONV_IN_GLIBC=OFF" + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/d/dill/dill-0.3.3-GCCcore-10.2.0.eb b/easybuild/easyconfigs/d/dill/dill-0.3.3-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..4f1d3426ae7 --- /dev/null +++ b/easybuild/easyconfigs/d/dill/dill-0.3.3-GCCcore-10.2.0.eb @@ -0,0 +1,29 @@ +# This easyconfig was created by Simon Branford of the BEAR Software team at the University of Birmingham. +easyblock = 'PythonPackage' + +# Author: Denis Krišťák (INUITS) + +name = 'dill' +version = '0.3.3' + +homepage = 'https://pypi.org/project/dill/' +description = """dill extends python's pickle module for serializing and de-serializing python objects to the majority + of the built-in python types. Serialization is the process of converting an object to a byte stream, and the inverse + of which is converting a byte stream back to on python object hierarchy.""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +sources = [SOURCE_ZIP] +checksums = ['efb7f6cb65dba7087c1e111bb5390291ba3616741f96840bfc75792a1a9b5ded'] + +builddependencies = [('binutils', '2.35')] + +dependencies = [ + ('Python', '3.8.6'), +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/d/dill/dill-0.3.3-GCCcore-8.3.0.eb b/easybuild/easyconfigs/d/dill/dill-0.3.3-GCCcore-8.3.0.eb new file mode 100644 index 00000000000..d7369a56118 --- /dev/null +++ b/easybuild/easyconfigs/d/dill/dill-0.3.3-GCCcore-8.3.0.eb @@ -0,0 +1,25 @@ +# This easyconfig was created by Simon Branford of the BEAR Software team at the University of Birmingham. +easyblock = 'PythonPackage' + +name = 'dill' +version = '0.3.3' + +homepage = 'https://pypi.org/project/dill/' +description = """dill extends python's pickle module for serializing and de-serializing python objects to the majority + of the built-in python types. Serialization is the process of converting an object to a byte stream, and the inverse + of which is converting a byte stream back to on python object hierarchy.""" + +toolchain = {'name': 'GCCcore', 'version': '8.3.0'} + +sources = [SOURCE_ZIP] +checksums = ['efb7f6cb65dba7087c1e111bb5390291ba3616741f96840bfc75792a1a9b5ded'] + +builddependencies = [('binutils', '2.32')] + +multi_deps = {'Python': ['3.7.4', '2.7.16']} + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/d/dm-reverb/dm-reverb-0.2.0-foss-2020b.eb b/easybuild/easyconfigs/d/dm-reverb/dm-reverb-0.2.0-foss-2020b.eb new file mode 100644 index 00000000000..aa3a70ea80f --- /dev/null +++ b/easybuild/easyconfigs/d/dm-reverb/dm-reverb-0.2.0-foss-2020b.eb @@ -0,0 +1,41 @@ +name = 'dm-reverb' +version = '0.2.0' + +homepage = 'https://github.com/deepmind/reverb' +description = """ +Reverb is an efficient and easy-to-use data storage and transport system +designed for machine learning research. Reverb is primarily used as an +experience replay system for distributed reinforcement learning algorithms but +the system also supports multiple data structure representations such as FIFO, +LIFO, and priority queues.""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +source_urls = ['https://github.com/deepmind/reverb/archive/refs/tags'] +sources = ['v%(version)s.tar.gz'] +patches = ['%(name)s-%(version)s_eb-build-environment.patch'] +checksums = [ + '6bbb136afd3abadc0f825eff7aedcd05609bb292ab54fe21e31001e30f3e7cbc', # v0.2.0.tar.gz + '7b4b6a26de157cf7bffaf1d680b020fe192f33a6127aadddaefc380eaa1fb109', # dm-reverb-0.2.0_eb-build-environment.patch +] + +builddependencies = [ + ('Bazel', '3.7.2'), +] + +dependencies = [ + ('Python', '3.8.6'), + ('TensorFlow', '2.4.1'), + ('protobuf', '3.14.0'), + ('snappy', '1.1.8'), + ('zlib', '1.2.11'), +] + +# Bundled upb sets -Werror, failing on any warning. Disable for harmless warnings +buildopts = "--copt='-Wno-error=stringop-truncation'" + +sanity_pip_check = True + +options = {'modulename': 'reverb'} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/d/dm-reverb/dm-reverb-0.2.0_eb-build-environment.patch b/easybuild/easyconfigs/d/dm-reverb/dm-reverb-0.2.0_eb-build-environment.patch new file mode 100644 index 00000000000..2d3c2322420 --- /dev/null +++ b/easybuild/easyconfigs/d/dm-reverb/dm-reverb-0.2.0_eb-build-environment.patch @@ -0,0 +1,418 @@ +Refactor the build environment to use dependencies from EasyBuild +* fix detection of Python installation +* define a single local repo using files from EB for the following dependencies: + * local com_google_protobuf replaces protobuf_archive, protobuf_protoc and + external com_google_protobuf + * local zlib replaces zlib_includes and external zlib + * local snappy replaces snappy_includes + * local pybind11 replaces http archive source +* use C++11 ABI as it is used in protobuf from EB +* disable toolchain definitions with gcc-7 +author: Alex Domingo (Vrije Universiteit Brussel) +--- reverb-0.2.0/WORKSPACE.orig 2020-12-15 17:27:23.000000000 +0100 ++++ reverb-0.2.0/WORKSPACE 2021-05-05 22:43:22.615142000 +0200 +@@ -13,8 +13,15 @@ + # + # *WARNING* If using the REVERB_PROTOC_VERSION environment variable, sha256 + # checking is disabled. Use at your own risk. +-PROTOC_VERSION = "3.9.0" +-PROTOC_SHA256 = "15e395b648a1a6dda8fd66868824a396e9d3e89bc2c8648e3b9ab9801bea5d55" ++# PROTOC_VERSION = "3.9.0" ++# PROTOC_SHA256 = "15e395b648a1a6dda8fd66868824a396e9d3e89bc2c8648e3b9ab9801bea5d55" ++ ++load( ++ "//reverb/cc/platform/default:repo.bzl", ++ "cc_tf_configure", ++) ++ ++cc_tf_configure() + + load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") + +@@ -72,15 +79,3 @@ + apple_support_dependencies() + ## End GRPC related deps + +-load( +- "//reverb/cc/platform/default:repo.bzl", +- "cc_tf_configure", +- "reverb_protoc_deps", +- "reverb_python_deps", +-) +- +-cc_tf_configure() +- +-reverb_python_deps() +- +-reverb_protoc_deps(version = PROTOC_VERSION, sha256 = PROTOC_SHA256) +--- reverb-0.2.0/reverb/cc/platform/default/repo.bzl.orig 2020-12-15 17:27:23.000000000 +0100 ++++ reverb-0.2.0/reverb/cc/platform/default/repo.bzl 2021-05-05 22:40:15.058608262 +0200 +@@ -91,13 +91,13 @@ + version = exec_result.stdout.splitlines()[-1] + basename = "lib{}.so".format(version) + exec_result = repo_ctx.execute( +- ["{}-config".format(version), "--configdir"], ++ ["{}-config".format(version), "--prefix"], + quiet = True, + ) + if exec_result.return_code != 0: + fail("Could not locate python shared library path:\n{}" + .format(exec_result.stderr)) +- solib_dir = exec_result.stdout.splitlines()[-1] ++ solib_dir = "{}/{}".format(exec_result.stdout.splitlines()[-1], "lib") + full_path = repo_ctx.path("{}/{}".format(solib_dir, basename)) + if not full_path.exists: + fail("Unable to find python shared library file:\n{}/{}" +@@ -125,62 +125,66 @@ + ) + + def _nsync_includes_repo_impl(repo_ctx): +- tf_include_path = _find_tf_include_path(repo_ctx) +- repo_ctx.symlink(tf_include_path + "/external", "nsync_includes") ++ nsync_root = repo_ctx.os.environ.get("EBROOTNSYNC") ++ repo_ctx.symlink(nsync_root, "nsync") + repo_ctx.file( + "BUILD", + content = """ + cc_library( + name = "includes", +- hdrs = glob(["nsync_includes/nsync/public/*.h"]), +- includes = ["nsync_includes"], ++ hdrs = glob(["nsync/**/*.h"]), ++ includes = ["nsync/include"], + visibility = ["//visibility:public"], + ) + """, + executable = False, + ) + +-def _zlib_includes_repo_impl(repo_ctx): +- tf_include_path = _find_tf_include_path(repo_ctx) +- repo_ctx.symlink( +- tf_include_path + "/external/zlib", +- "zlib", +- ) ++def _zlib_repo_impl(repo_ctx): ++ zlib_root = repo_ctx.os.environ.get("EBROOTZLIB") ++ repo_ctx.symlink(zlib_root, "zlib") + repo_ctx.file( + "BUILD", + content = """ + cc_library( ++ name = "zlib", ++ srcs = ["zlib/lib/libz.so"], ++ visibility = ["//visibility:public"], ++) ++cc_library( + name = "includes", + hdrs = glob(["zlib/**/*.h"]), +- includes = ["zlib"], ++ includes = ["zlib/include"], + visibility = ["//visibility:public"], + ) + """, + executable = False, + ) + +-def _snappy_includes_repo_impl(repo_ctx): +- tf_include_path = _find_tf_include_path(repo_ctx) +- repo_ctx.symlink( +- tf_include_path + "/external/snappy", +- "snappy", +- ) ++def _snappy_repo_impl(repo_ctx): ++ snappy_root = repo_ctx.os.environ.get("EBROOTSNAPPY") ++ repo_ctx.symlink(snappy_root, "snappy") + repo_ctx.file( + "BUILD", + content = """ + cc_library( + name = "includes", +- hdrs = glob(["snappy/*.h"]), +- includes = ["snappy"], ++ hdrs = glob(["snappy/**/*.h"]), ++ includes = ["snappy/include"], + visibility = ["//visibility:public"], + ) + """, + executable = False, + ) + +-def _protobuf_includes_repo_impl(repo_ctx): +- tf_include_path = _find_tf_include_path(repo_ctx) +- repo_ctx.symlink(tf_include_path, "tf_includes") ++def _pybind11_includes_repo_impl(repo_ctx): ++ protobuf_root = repo_ctx.os.environ.get("EBROOTPYBIND11") ++ repo_ctx.symlink("{}/include".format(protobuf_root), "include") ++ repo_ctx.symlink(Label("//third_party:pybind11.BUILD"), "BUILD") ++ ++def _protobuf_repo_impl(repo_ctx): ++ protobuf_root = repo_ctx.os.environ.get("EBROOTPROTOBUF") ++ repo_ctx.symlink(protobuf_root, "protobuf") + repo_ctx.symlink(Label("//third_party:protobuf.BUILD"), "BUILD") + + def _tensorflow_includes_repo_impl(repo_ctx): +@@ -201,9 +205,9 @@ + includes = ["tensorflow_includes"], + deps = [ + "@eigen_archive//:includes", +- "@protobuf_archive//:includes", +- "@zlib_includes//:includes", +- "@snappy_includes//:includes", ++ "@com_google_protobuf//:includes", ++ "@zlib//:includes", ++ "@snappy//:includes", + ], + visibility = ["//visibility:public"], + ) +@@ -274,17 +278,21 @@ + ) + make_nsync_repo(name = "nsync_includes") + make_zlib_repo = repository_rule( +- implementation = _zlib_includes_repo_impl, ++ implementation = _zlib_repo_impl, + ) +- make_zlib_repo(name = "zlib_includes") ++ make_zlib_repo(name = "zlib") + make_snappy_repo = repository_rule( +- implementation = _snappy_includes_repo_impl, ++ implementation = _snappy_repo_impl, + ) +- make_snappy_repo(name = "snappy_includes") ++ make_snappy_repo(name = "snappy") ++ make_pybind11_repo = repository_rule( ++ implementation = _pybind11_includes_repo_impl, ++ ) ++ make_pybind11_repo(name = "pybind11") + make_protobuf_repo = repository_rule( +- implementation = _protobuf_includes_repo_impl, ++ implementation = _protobuf_repo_impl, + ) +- make_protobuf_repo(name = "protobuf_archive") ++ make_protobuf_repo(name = "com_google_protobuf") + make_tfinc_repo = repository_rule( + implementation = _tensorflow_includes_repo_impl, + ) +@@ -297,65 +305,3 @@ + implementation = _python_includes_repo_impl, + ) + make_python_inc_repo(name = "python_includes") +- +-def reverb_python_deps(): +- http_archive( +- name = "pybind11", +- urls = [ +- "https://storage.googleapis.com/mirror.tensorflow.org/github.com/pybind/pybind11/archive/v2.4.3.tar.gz", +- "https://github.com/pybind/pybind11/archive/v2.4.3.tar.gz", +- ], +- sha256 = "1eed57bc6863190e35637290f97a20c81cfe4d9090ac0a24f3bbf08f265eb71d", +- strip_prefix = "pybind11-2.4.3", +- build_file = clean_dep("//third_party:pybind11.BUILD"), +- ) +- +- http_archive( +- name = "absl_py", +- sha256 = "603febc9b95a8f2979a7bdb77d2f5e4d9b30d4e0d59579f88eba67d4e4cc5462", +- strip_prefix = "abseil-py-pypi-v0.9.0", +- urls = [ +- "https://storage.googleapis.com/mirror.tensorflow.org/github.com/abseil/abseil-py/archive/pypi-v0.9.0.tar.gz", +- "https://github.com/abseil/abseil-py/archive/pypi-v0.9.0.tar.gz", +- ], +- ) +- +-def _reverb_protoc_archive(ctx): +- version = ctx.attr.version +- sha256 = ctx.attr.sha256 +- +- override_version = ctx.os.environ.get("REVERB_PROTOC_VERSION") +- if override_version: +- sha256 = "" +- version = override_version +- +- urls = [ +- "https://github.com/protocolbuffers/protobuf/releases/download/v%s/protoc-%s-linux-x86_64.zip" % (version, version), +- ] +- ctx.download_and_extract( +- url = urls, +- sha256 = sha256, +- ) +- +- ctx.file( +- "BUILD", +- content = """ +-filegroup( +- name = "protoc_bin", +- srcs = ["bin/protoc"], +- visibility = ["//visibility:public"], +-) +-""", +- executable = False, +- ) +- +-reverb_protoc_archive = repository_rule( +- implementation = _reverb_protoc_archive, +- attrs = { +- "version": attr.string(mandatory = True), +- "sha256": attr.string(mandatory = True), +- }, +-) +- +-def reverb_protoc_deps(version, sha256): +- reverb_protoc_archive(name = "protobuf_protoc", version = version, sha256 = sha256) +--- reverb-0.2.0/third_party/protobuf.BUILD.orig 2020-12-15 17:27:23.000000000 +0100 ++++ reverb-0.2.0/third_party/protobuf.BUILD 2021-05-05 22:44:13.386009000 +0200 +@@ -1,9 +1,9 @@ + _CHECK_VERSION = """ +-PROTOC_VERSION=$$($(location @protobuf_protoc//:protoc_bin) --version \ ++PROTOC_VERSION=$$($(location protobuf/bin/protoc) --version \ + | cut -d' ' -f2 | sed -e 's/\\./ /g') + PROTOC_VERSION=$$(printf '%d%03d%03d' $${PROTOC_VERSION}) + TF_PROTO_VERSION=$$(grep '#define PROTOBUF_MIN_PROTOC_VERSION' \ +- $(location tf_includes/google/protobuf/port_def.inc) | cut -d' ' -f3) ++ $(location protobuf/include/google/protobuf/port_def.inc) | cut -d' ' -f3) + if [ "$${PROTOC_VERSION}" -ne "$${TF_PROTO_VERSION}" ]; then + echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1>&2 + echo Your protoc version does not match the tensorflow proto header \ +@@ -20,9 +20,9 @@ + name = "compare_protobuf_version", + outs = ["versions_compared"], + srcs = [ +- "tf_includes/google/protobuf/port_def.inc", ++ "protobuf/include/google/protobuf/port_def.inc", + ], +- tools = ["@protobuf_protoc//:protoc_bin"], ++ tools = ["protobuf/bin/protoc"], + cmd = _CHECK_VERSION, + ) + +@@ -30,11 +30,45 @@ + name = "includes", + data = [":versions_compared"], + hdrs = glob([ +- "tf_includes/google/protobuf/*.h", +- "tf_includes/google/protobuf/*.inc", +- "tf_includes/google/protobuf/**/*.h", +- "tf_includes/google/protobuf/**/*.inc", ++ "protobuf/include/google/protobuf/*.h", ++ "protobuf/include/google/protobuf/*.inc", ++ "protobuf/include/google/protobuf/**/*.h", ++ "protobuf/include/google/protobuf/**/*.inc", + ]), +- includes = ["tf_includes"], ++ includes = ["protobuf/include"], ++ visibility = ["//visibility:public"], ++) ++cc_library( ++ name = "protobuf_headers", ++ data = [":versions_compared"], ++ hdrs = glob([ ++ "protobuf/include/google/protobuf/*.h", ++ "protobuf/include/google/protobuf/*.inc", ++ "protobuf/include/google/protobuf/**/*.h", ++ "protobuf/include/google/protobuf/**/*.inc", ++ ]), ++ includes = ["protobuf/include"], ++ visibility = ["//visibility:public"], ++) ++cc_library( ++ name = "protobuf_lite", ++ srcs = ["protobuf/lib/libprotobuf-lite.so"], ++ visibility = ["//visibility:public"], ++) ++cc_library( ++ name = "protobuf", ++ srcs = ["protobuf/lib/libprotobuf.so"], ++ visibility = ["//visibility:public"], ++ deps = [":protobuf_lite"], ++) ++cc_library( ++ name = "protoc_lib", ++ srcs = ["protobuf/lib/libprotoc.so"], ++ visibility = ["//visibility:public"], ++ deps = [":protobuf"], ++) ++filegroup( ++ name = "protoc_bin", ++ srcs = ["protobuf/bin/protoc"], + visibility = ["//visibility:public"], + ) +--- reverb-0.2.0/reverb/cc/platform/default/build_rules.bzl.orig 2021-05-05 23:53:06.498618134 +0200 ++++ reverb-0.2.0/reverb/cc/platform/default/build_rules.bzl 2021-05-05 23:52:16.222563978 +0200 +@@ -90,12 +90,12 @@ + srcs = srcs, + outs = gen_srcs + gen_hdrs, + tools = dep_srcs + [ +- "@protobuf_protoc//:protoc_bin", ++ "@com_google_protobuf//:protoc_bin", + "@tensorflow_includes//:protos", + ], + cmd = """ + OUTDIR=$$(echo $(RULEDIR) | sed -e 's#reverb/.*##') +- $(location @protobuf_protoc//:protoc_bin) \ ++ $(location @com_google_protobuf//:protoc_bin) \ + --proto_path=external/tensorflow_includes/tensorflow_includes/ \ + --proto_path=. \ + --cpp_out=$$OUTDIR {}""".format( +@@ -165,12 +165,12 @@ + srcs = srcs, + outs = gen_srcs, + tools = proto_deps + [ +- "@protobuf_protoc//:protoc_bin", ++ "@com_google_protobuf//:protoc_bin", + "@tensorflow_includes//:protos", + ], + cmd = """ + OUTDIR=$$(echo $(RULEDIR) | sed -e 's#reverb/.*##') +- $(location @protobuf_protoc//:protoc_bin) \ ++ $(location @com_google_protobuf//:protoc_bin) \ + --proto_path=external/tensorflow_includes/tensorflow_includes/ \ + --proto_path=. \ + --python_out=$$OUTDIR {}""".format( +@@ -227,13 +227,13 @@ + srcs = srcs, + outs = gen_srcs + gen_hdrs + gen_mocks, + tools = proto_src_deps + [ +- "@protobuf_protoc//:protoc_bin", ++ "@com_google_protobuf//:protoc_bin", + "@tensorflow_includes//:protos", + "@com_github_grpc_grpc//src/compiler:grpc_cpp_plugin", + ], + cmd = """ + OUTDIR=$$(echo $(RULEDIR) | sed -e 's#reverb/.*##') +- $(location @protobuf_protoc//:protoc_bin) \ ++ $(location @com_google_protobuf//:protoc_bin) \ + --plugin=protoc-gen-grpc=$(location @com_github_grpc_grpc//src/compiler:grpc_cpp_plugin) \ + --proto_path=external/tensorflow_includes/tensorflow_includes/ \ + --proto_path=. \ +--- reverb-0.2.0/reverb/cc/opensource/opensource_only.files.orig 2020-12-15 17:27:23.000000000 +0100 ++++ reverb-0.2.0/reverb/cc/opensource/opensource_only.files 2021-05-05 21:46:36.453161000 +0200 +@@ -1,8 +1,5 @@ + reverb/third_party/BUILD.oss + reverb/third_party/protobuf.BUILD.oss + reverb/third_party/pybind11.BUILD.oss +-reverb/third_party/toolchains/preconfig/ubuntu16.04/gcc7_manylinux2010/BUILD.oss +-reverb/third_party/toolchains/preconfig/ubuntu16.04/gcc7_manylinux2010/cc_toolchain_config.bzl.oss +-reverb/third_party/toolchains/preconfig/ubuntu16.04/gcc7_manylinux2010/dummy_toolchain.bzl.oss + reverb/platform/default/BUILD.oss + reverb/pip_package/BUILD.oss +--- reverb-0.2.0/third_party/opensource_only.files.orig 2020-12-15 17:27:23.000000000 +0100 ++++ reverb-0.2.0/third_party/opensource_only.files 2021-05-05 21:46:36.453567000 +0200 +@@ -6,6 +6,3 @@ + third_party/BUILD + third_party/protobuf.BUILD + third_party/pybind11.BUILD +-third_party/toolchains/preconfig/ubuntu16.04/gcc7_manylinux2010/BUILD +-third_party/toolchains/preconfig/ubuntu16.04/gcc7_manylinux2010/cc_toolchain_config.bzl +-third_party/toolchains/preconfig/ubuntu16.04/gcc7_manylinux2010/dummy_toolchain.bzl +\ No newline at end of file +--- reverb-0.2.0/.bazelrc.orig 2021-05-05 23:46:33.126216000 +0200 ++++ reverb-0.2.0/.bazelrc 2021-05-05 23:46:39.328782000 +0200 +@@ -13,7 +13,7 @@ + + build -c opt + build --cxxopt="-std=c++14" +-build --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" ++build --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=1" + build --auto_output_filter=subpackages + build --copt="-Wall" --copt="-Wno-sign-compare" + build --linkopt="-lrt -lm" diff --git a/easybuild/easyconfigs/d/double-conversion/double-conversion-3.1.5-GCCcore-10.3.0.eb b/easybuild/easyconfigs/d/double-conversion/double-conversion-3.1.5-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..115873f2963 --- /dev/null +++ b/easybuild/easyconfigs/d/double-conversion/double-conversion-3.1.5-GCCcore-10.3.0.eb @@ -0,0 +1,38 @@ +easyblock = 'CMakeMake' + +name = 'double-conversion' +version = '3.1.5' + +homepage = 'https://github.com/google/double-conversion' +description = "Efficient binary-decimal and decimal-binary conversion routines for IEEE doubles." + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://github.com/google/%(name)s/archive'] +sources = ['v%(version)s.tar.gz'] +checksums = ['a63ecb93182134ba4293fd5f22d6e08ca417caafa244afaa751cbfddf6415b13'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('CMake', '3.20.1'), +] + +separate_build_dir = True + +build_type = 'Release' + +# Build static lib, static lib with -fPIC and shared lib +configopts = [ + '', + '-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_STATIC_LIBRARY_SUFFIX_CXX=_pic.a', + '-DBUILD_SHARED_LIBS=ON' +] + +sanity_check_paths = { + 'files': ['include/double-conversion/%s.h' % h for h in ['bignum', 'cached-powers', 'diy-fp', 'double-conversion', + 'fast-dtoa', 'fixed-dtoa', 'ieee', 'strtod', 'utils']] + + ['lib/libdouble-conversion.%s' % e for e in ['a', SHLIB_EXT]] + ['lib/libdouble-conversion_pic.a'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/e/ELPA/ELPA-2017.11.001-foss-2018b.eb b/easybuild/easyconfigs/e/ELPA/ELPA-2017.11.001-foss-2018b.eb index 88ded871e04..47f41ad74c7 100644 --- a/easybuild/easyconfigs/e/ELPA/ELPA-2017.11.001-foss-2018b.eb +++ b/easybuild/easyconfigs/e/ELPA/ELPA-2017.11.001-foss-2018b.eb @@ -16,7 +16,7 @@ description = """Eigenvalue SoLvers for Petaflop-Applications .""" toolchain = {'name': 'foss', 'version': '2018b'} toolchainopts = {'openmp': True, 'usempi': True} -source_urls = ['http://elpa.mpcdf.mpg.de/html/Releases/%(version)s/'] +source_urls = ['https://elpa.rzg.mpg.de/software/tarball-archive/Releases/%(version)s/'] sources = [SOURCELOWER_TAR_GZ] checksums = ['59f99c3abe2190fac0db8a301d0b9581ee134f438669dbc92551a54f6f861820'] diff --git a/easybuild/easyconfigs/e/ELPA/ELPA-2017.11.001-intel-2018a.eb b/easybuild/easyconfigs/e/ELPA/ELPA-2017.11.001-intel-2018a.eb index fc754386b96..ee335129fa6 100644 --- a/easybuild/easyconfigs/e/ELPA/ELPA-2017.11.001-intel-2018a.eb +++ b/easybuild/easyconfigs/e/ELPA/ELPA-2017.11.001-intel-2018a.eb @@ -12,14 +12,15 @@ easyblock = 'ConfigureMake' name = 'ELPA' version = '2017.11.001' -homepage = 'http://elpa.rzg.mpg.de' +homepage = 'https://elpa.rzg.mpg.de' description = """Eigenvalue SoLvers for Petaflop-Applications .""" toolchain = {'name': 'intel', 'version': '2018a'} toolchainopts = {'usempi': True} -source_urls = ['http://elpa.mpcdf.mpg.de/html/Releases/%(version)s/'] +source_urls = ['https://elpa.rzg.mpg.de/software/tarball-archive/Releases/%(version)s/'] sources = [SOURCELOWER_TAR_GZ] +checksums = ['59f99c3abe2190fac0db8a301d0b9581ee134f438669dbc92551a54f6f861820'] builddependencies = [ ('Autotools', '20170619'), diff --git a/easybuild/easyconfigs/e/ELPA/ELPA-2017.11.001-intel-2018b.eb b/easybuild/easyconfigs/e/ELPA/ELPA-2017.11.001-intel-2018b.eb index afe97f306ce..e17aecf1a26 100644 --- a/easybuild/easyconfigs/e/ELPA/ELPA-2017.11.001-intel-2018b.eb +++ b/easybuild/easyconfigs/e/ELPA/ELPA-2017.11.001-intel-2018b.eb @@ -16,7 +16,7 @@ description = """Eigenvalue SoLvers for Petaflop-Applications .""" toolchain = {'name': 'intel', 'version': '2018b'} toolchainopts = {'openmp': True, 'usempi': True} -source_urls = ['http://elpa.mpcdf.mpg.de/html/Releases/%(version)s/'] +source_urls = ['https://elpa.rzg.mpg.de/software/tarball-archive/Releases/%(version)s/'] sources = [SOURCELOWER_TAR_GZ] checksums = ['59f99c3abe2190fac0db8a301d0b9581ee134f438669dbc92551a54f6f861820'] diff --git a/easybuild/easyconfigs/e/ELPA/ELPA-2018.05.001-foss-2018b.eb b/easybuild/easyconfigs/e/ELPA/ELPA-2018.05.001-foss-2018b.eb index 38310cc5e55..9dc2f667053 100644 --- a/easybuild/easyconfigs/e/ELPA/ELPA-2018.05.001-foss-2018b.eb +++ b/easybuild/easyconfigs/e/ELPA/ELPA-2018.05.001-foss-2018b.eb @@ -16,7 +16,7 @@ description = """Eigenvalue SoLvers for Petaflop-Applications .""" toolchain = {'name': 'foss', 'version': '2018b'} toolchainopts = {'openmp': True, 'usempi': True} -source_urls = ['http://elpa.mpcdf.mpg.de/html/Releases/%(version)s/'] +source_urls = ['https://elpa.rzg.mpg.de/software/tarball-archive/Releases/%(version)s/'] sources = [SOURCELOWER_TAR_GZ] checksums = ['a76c3402eb9d1c19b183aedabde8c20f4cfa4692e73e529384207926aec04985'] diff --git a/easybuild/easyconfigs/e/ELPA/ELPA-2018.05.001-intel-2018b.eb b/easybuild/easyconfigs/e/ELPA/ELPA-2018.05.001-intel-2018b.eb index 9317d776990..845d6ea97df 100644 --- a/easybuild/easyconfigs/e/ELPA/ELPA-2018.05.001-intel-2018b.eb +++ b/easybuild/easyconfigs/e/ELPA/ELPA-2018.05.001-intel-2018b.eb @@ -16,7 +16,7 @@ description = """Eigenvalue SoLvers for Petaflop-Applications .""" toolchain = {'name': 'intel', 'version': '2018b'} toolchainopts = {'openmp': True, 'usempi': True} -source_urls = ['http://elpa.mpcdf.mpg.de/html/Releases/%(version)s/'] +source_urls = ['https://elpa.rzg.mpg.de/software/tarball-archive/Releases/%(version)s/'] sources = [SOURCELOWER_TAR_GZ] checksums = ['a76c3402eb9d1c19b183aedabde8c20f4cfa4692e73e529384207926aec04985'] diff --git a/easybuild/easyconfigs/e/ELPA/ELPA-2018.11.001-intel-2019a.eb b/easybuild/easyconfigs/e/ELPA/ELPA-2018.11.001-intel-2019a.eb index 3b146917413..423a053421b 100644 --- a/easybuild/easyconfigs/e/ELPA/ELPA-2018.11.001-intel-2019a.eb +++ b/easybuild/easyconfigs/e/ELPA/ELPA-2018.11.001-intel-2019a.eb @@ -15,7 +15,7 @@ description = """Eigenvalue SoLvers for Petaflop-Applications .""" toolchain = {'name': 'intel', 'version': '2019a'} toolchainopts = {'openmp': True, 'usempi': True} -source_urls = ['http://elpa.mpcdf.mpg.de/html/Releases/%(version)s/'] +source_urls = ['https://elpa.rzg.mpg.de/software/tarball-archive/Releases/%(version)s/'] sources = [SOURCELOWER_TAR_GZ] checksums = ['cc27fe8ba46ce6e6faa8aea02c8c9983052f8e73a00cfea38abf7613cb1e1b16'] diff --git a/easybuild/easyconfigs/e/ELPA/ELPA-2019.11.001-foss-2019b.eb b/easybuild/easyconfigs/e/ELPA/ELPA-2019.11.001-foss-2019b.eb index 15c658606b8..8e5a91433d9 100644 --- a/easybuild/easyconfigs/e/ELPA/ELPA-2019.11.001-foss-2019b.eb +++ b/easybuild/easyconfigs/e/ELPA/ELPA-2019.11.001-foss-2019b.eb @@ -15,7 +15,7 @@ description = """Eigenvalue SoLvers for Petaflop-Applications .""" toolchain = {'name': 'foss', 'version': '2019b'} toolchainopts = {'openmp': True, 'usempi': True} -source_urls = ['https://elpa.mpcdf.mpg.de/html/Releases/%(version)s/'] +source_urls = ['https://elpa.rzg.mpg.de/software/tarball-archive/Releases/%(version)s/'] sources = [SOURCELOWER_TAR_GZ] checksums = ['10374a8f042e23c7e1094230f7e2993b6f3580908a213dbdf089792d05aff357'] diff --git a/easybuild/easyconfigs/e/ELPA/ELPA-2019.11.001-foss-2020a.eb b/easybuild/easyconfigs/e/ELPA/ELPA-2019.11.001-foss-2020a.eb index 0c0e3e54be8..3870f4f73e2 100644 --- a/easybuild/easyconfigs/e/ELPA/ELPA-2019.11.001-foss-2020a.eb +++ b/easybuild/easyconfigs/e/ELPA/ELPA-2019.11.001-foss-2020a.eb @@ -15,7 +15,7 @@ description = """Eigenvalue SoLvers for Petaflop-Applications .""" toolchain = {'name': 'foss', 'version': '2020a'} toolchainopts = {'openmp': True, 'usempi': True} -source_urls = ['https://elpa.mpcdf.mpg.de/html/Releases/%(version)s/'] +source_urls = ['https://elpa.rzg.mpg.de/software/tarball-archive/Releases/%(version)s/'] sources = [SOURCELOWER_TAR_GZ] checksums = ['10374a8f042e23c7e1094230f7e2993b6f3580908a213dbdf089792d05aff357'] diff --git a/easybuild/easyconfigs/e/ELPA/ELPA-2019.11.001-intel-2019b.eb b/easybuild/easyconfigs/e/ELPA/ELPA-2019.11.001-intel-2019b.eb index 7de39d08092..a473de68f4f 100644 --- a/easybuild/easyconfigs/e/ELPA/ELPA-2019.11.001-intel-2019b.eb +++ b/easybuild/easyconfigs/e/ELPA/ELPA-2019.11.001-intel-2019b.eb @@ -15,7 +15,7 @@ description = """Eigenvalue SoLvers for Petaflop-Applications .""" toolchain = {'name': 'intel', 'version': '2019b'} toolchainopts = {'openmp': True, 'usempi': True} -source_urls = ['https://elpa.mpcdf.mpg.de/html/Releases/%(version)s/'] +source_urls = ['https://elpa.rzg.mpg.de/software/tarball-archive/Releases/%(version)s/'] sources = [SOURCELOWER_TAR_GZ] checksums = ['10374a8f042e23c7e1094230f7e2993b6f3580908a213dbdf089792d05aff357'] diff --git a/easybuild/easyconfigs/e/ELPA/ELPA-2019.11.001-intel-2020a.eb b/easybuild/easyconfigs/e/ELPA/ELPA-2019.11.001-intel-2020a.eb index a51548a7528..e5d77b8a343 100644 --- a/easybuild/easyconfigs/e/ELPA/ELPA-2019.11.001-intel-2020a.eb +++ b/easybuild/easyconfigs/e/ELPA/ELPA-2019.11.001-intel-2020a.eb @@ -15,7 +15,7 @@ description = """Eigenvalue SoLvers for Petaflop-Applications .""" toolchain = {'name': 'intel', 'version': '2020a'} toolchainopts = {'openmp': True, 'usempi': True} -source_urls = ['https://elpa.mpcdf.mpg.de/html/Releases/%(version)s/'] +source_urls = ['https://elpa.rzg.mpg.de/software/tarball-archive/Releases/%(version)s/'] sources = [SOURCELOWER_TAR_GZ] checksums = ['10374a8f042e23c7e1094230f7e2993b6f3580908a213dbdf089792d05aff357'] diff --git a/easybuild/easyconfigs/e/ELPA/ELPA-2019.11.001-iomkl-2019b.eb b/easybuild/easyconfigs/e/ELPA/ELPA-2019.11.001-iomkl-2019b.eb index 1662a72d0e0..841fe6563af 100644 --- a/easybuild/easyconfigs/e/ELPA/ELPA-2019.11.001-iomkl-2019b.eb +++ b/easybuild/easyconfigs/e/ELPA/ELPA-2019.11.001-iomkl-2019b.eb @@ -15,7 +15,7 @@ description = """Eigenvalue SoLvers for Petaflop-Applications .""" toolchain = {'name': 'iomkl', 'version': '2019b'} toolchainopts = {'openmp': True, 'usempi': True} -source_urls = ['https://elpa.mpcdf.mpg.de/html/Releases/%(version)s/'] +source_urls = ['https://elpa.rzg.mpg.de/software/tarball-archive/Releases/%(version)s/'] sources = [SOURCELOWER_TAR_GZ] checksums = ['10374a8f042e23c7e1094230f7e2993b6f3580908a213dbdf089792d05aff357'] diff --git a/easybuild/easyconfigs/e/ELPA/ELPA-2020.05.001-intel-2020a.eb b/easybuild/easyconfigs/e/ELPA/ELPA-2020.05.001-intel-2020a.eb index 3dec0bf9a13..d7a0138e2a7 100644 --- a/easybuild/easyconfigs/e/ELPA/ELPA-2020.05.001-intel-2020a.eb +++ b/easybuild/easyconfigs/e/ELPA/ELPA-2020.05.001-intel-2020a.eb @@ -15,7 +15,7 @@ description = """Eigenvalue SoLvers for Petaflop-Applications .""" toolchain = {'name': 'intel', 'version': '2020a'} toolchainopts = {'openmp': True, 'usempi': True} -source_urls = ['https://elpa.mpcdf.mpg.de/html/Releases/%(version)s/'] +source_urls = ['https://elpa.rzg.mpg.de/software/tarball-archive/Releases/%(version)s/'] sources = [SOURCELOWER_TAR_GZ] checksums = ['66ff1cf332ce1c82075dc7b5587ae72511d2bcb3a45322c94af6b01996439ce5'] diff --git a/easybuild/easyconfigs/e/ELPA/ELPA-2020.11.001-foss-2020b.eb b/easybuild/easyconfigs/e/ELPA/ELPA-2020.11.001-foss-2020b.eb index ae57cde8dc2..312d380e03f 100644 --- a/easybuild/easyconfigs/e/ELPA/ELPA-2020.11.001-foss-2020b.eb +++ b/easybuild/easyconfigs/e/ELPA/ELPA-2020.11.001-foss-2020b.eb @@ -15,7 +15,7 @@ description = """Eigenvalue SoLvers for Petaflop-Applications .""" toolchain = {'name': 'foss', 'version': '2020b'} toolchainopts = {'openmp': True, 'usempi': True} -source_urls = ['https://elpa.mpcdf.mpg.de/html/Releases/%(version)s/'] +source_urls = ['https://elpa.rzg.mpg.de/software/tarball-archive/Releases/%(version)s/'] sources = [SOURCELOWER_TAR_GZ] checksums = ['15591f142eeaa98ab3201d27ca9ac328e21beabf0803b011a04183fcaf6efdde'] diff --git a/easybuild/easyconfigs/e/ELPA/ELPA-2020.11.001-intel-2020b.eb b/easybuild/easyconfigs/e/ELPA/ELPA-2020.11.001-intel-2020b.eb index 43fe81a27f5..209492c7de6 100644 --- a/easybuild/easyconfigs/e/ELPA/ELPA-2020.11.001-intel-2020b.eb +++ b/easybuild/easyconfigs/e/ELPA/ELPA-2020.11.001-intel-2020b.eb @@ -15,7 +15,7 @@ description = """Eigenvalue SoLvers for Petaflop-Applications .""" toolchain = {'name': 'intel', 'version': '2020b'} toolchainopts = {'openmp': True, 'usempi': True} -source_urls = ['https://elpa.mpcdf.mpg.de/html/Releases/%(version)s/'] +source_urls = ['https://elpa.rzg.mpg.de/software/tarball-archive/Releases/%(version)s/'] sources = [SOURCELOWER_TAR_GZ] checksums = ['15591f142eeaa98ab3201d27ca9ac328e21beabf0803b011a04183fcaf6efdde'] diff --git a/easybuild/easyconfigs/e/ESMF/ESMF-8.0.1-intel-2020b.eb b/easybuild/easyconfigs/e/ESMF/ESMF-8.0.1-intel-2020b.eb new file mode 100644 index 00000000000..dccfd612eff --- /dev/null +++ b/easybuild/easyconfigs/e/ESMF/ESMF-8.0.1-intel-2020b.eb @@ -0,0 +1,31 @@ +name = 'ESMF' +version = '8.0.1' + +homepage = 'https://www.earthsystemcog.org/projects/esmf/' +description = """The Earth System Modeling Framework (ESMF) is a suite of software tools for developing + high-performance, multi-component Earth science modeling applications.""" + +toolchain = {'name': 'intel', 'version': '2020b'} +toolchainopts = {'usempi': True} + +source_urls = ['https://github.com/esmf-org/esmf/archive/'] +sources = ['%%(name)s_%s.tar.gz' % '_'.join(version.split('.'))] +patches = ['ESMF-6.1.1_libopts.patch'] +checksums = [ + '9172fb73f3fe95c8188d889ee72fdadb4f978b1d969e1d8e401e8d106def1d84', # ESMF_8_0_1.tar.gz + '3851627f07c32a7da55d99072d619942bd3a1d9dd002e1557716158e7aacdaf4', # ESMF-6.1.1_libopts.patch +] + +dependencies = [ + ('netCDF', '4.7.4'), + ('netCDF-Fortran', '4.5.3'), + ('netCDF-C++4', '4.3.1'), +] + +buildopts = 'ESMF_NETCDF_INCLUDE=$EBROOTNETCDFMINFORTRAN/include ' +buildopts += 'ESMF_NETCDF_LIBS="`nc-config --libs` `nf-config --flibs` `ncxx4-config --libs`"' + +# too parallel causes the build to become really slow +maxparallel = 8 + +moduleclass = 'geo' diff --git a/easybuild/easyconfigs/e/ESMPy/ESMPy-8.0.1-intel-2020b.eb b/easybuild/easyconfigs/e/ESMPy/ESMPy-8.0.1-intel-2020b.eb new file mode 100644 index 00000000000..b9da3e2f02d --- /dev/null +++ b/easybuild/easyconfigs/e/ESMPy/ESMPy-8.0.1-intel-2020b.eb @@ -0,0 +1,34 @@ +easyblock = 'PythonPackage' + +name = 'ESMPy' +version = '8.0.1' + +homepage = 'https://earthsystemmodeling.org/esmpy' +description = "Earth System Modeling Framework (ESMF) Python Interface" + +toolchain = {'name': 'intel', 'version': '2020b'} + +source_urls = ['https://github.com/esmf-org/esmf/archive/'] +sources = ['ESMF_%s.tar.gz' % '_'.join(version.split('.'))] +checksums = ['9172fb73f3fe95c8188d889ee72fdadb4f978b1d969e1d8e401e8d106def1d84'] + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), # for numpy, mpi4py + ('ESMF', version), +] + +start_dir = 'src/addon/ESMPy' + +download_dep_fail = True + +# ESMPy's setup.py script doesn't support using "pip install" +use_pip = False + +buildopts = "--ESMFMKFILE=$EBROOTESMF/lib/esmf.mk" + +options = {'modulename': 'ESMF'} + +sanity_pip_check = True + +moduleclass = 'geo' diff --git a/easybuild/easyconfigs/e/ETE/ETE-3.1.2-foss-2020a-Python-3.8.2.eb b/easybuild/easyconfigs/e/ETE/ETE-3.1.2-foss-2020a-Python-3.8.2.eb new file mode 100644 index 00000000000..5bee4f7d1bd --- /dev/null +++ b/easybuild/easyconfigs/e/ETE/ETE-3.1.2-foss-2020a-Python-3.8.2.eb @@ -0,0 +1,35 @@ +easyblock = 'PythonPackage' + +name = 'ETE' +version = '3.1.2' +versionsuffix = '-Python-3.8.2' + +homepage = 'http://etetoolkit.org' +description = """A Python framework for the analysis and visualization of trees""" + +toolchain = {'name': 'foss', 'version': '2020a'} + +source_urls = ['https://pypi.python.org/packages/source/e/ete3'] +sources = ['ete3-%(version)s.tar.gz'] +checksums = ['4fc987b8c529889d6608fab1101f1455cb5cbd42722788de6aea9c7d0a8e59e9'] + +dependencies = [ + ('lxml', '4.5.2'), + ('Python', '3.8.2'), + ('PyQt5', '5.15.1', versionsuffix), + ('SciPy-bundle', '2020.03', versionsuffix), +] + +download_dep_fail = True +use_pip = True + +options = {'modulename': 'ete3'} + +sanity_check_paths = { + 'files': ['bin/ete3'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_pip_check = True + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.3.4.eb b/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.3.4.eb new file mode 100644 index 00000000000..9771d8a0655 --- /dev/null +++ b/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.3.4.eb @@ -0,0 +1,44 @@ +easyblock = 'EB_EasyBuildMeta' + +name = 'EasyBuild' +version = '4.3.4' + +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 = {'name': 'dummy', 'version': 'dummy'} + +source_urls = [ + # easybuild-framework + 'https://files.pythonhosted.org/packages/3f/b3/00819590aae375c96f0acc0526163fe0422be0feec2ed04dc6722d0f0559/', + # easybuild-easyblocks + 'https://files.pythonhosted.org/packages/6e/bf/c29680ac2d2364955e71096f9732b2bc40647d0c1d7ab9c262a35efd9a1d/', + # easybuild-easyconfigs + 'https://files.pythonhosted.org/packages/6c/d9/960d38512f3b921b06ae8c41def16930044a1f9d8732dcb9aa311438469f/', +] +sources = [ + 'easybuild-framework-%(version)s.tar.gz', + 'easybuild-easyblocks-%(version)s.tar.gz', + 'easybuild-easyconfigs-%(version)s.tar.gz', +] +checksums = [ + 'c59579ba91c6788d24bb63d4e763cd57e0fb5464226dbe17d53f4a863272b414', # easybuild-framework-4.3.4.tar.gz + 'c8d31d09d5db1b67ee9656392649bc5accc34b2d288fa7c3223bdba1a2b993ac', # easybuild-easyblocks-4.3.4.tar.gz + '7100963753b4a316ab39b84c32fc5fa4b192e893f8414068d10d30060697a61f', # easybuild-easyconfigs-4.3.4.tar.gz +] + +# 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.3.9-GCCcore-10.3.0.eb b/easybuild/easyconfigs/e/Eigen/Eigen-3.3.9-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..ebd2f446026 --- /dev/null +++ b/easybuild/easyconfigs/e/Eigen/Eigen-3.3.9-GCCcore-10.3.0.eb @@ -0,0 +1,21 @@ +name = 'Eigen' +version = '3.3.9' + +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': '10.3.0'} + +source_urls = ['https://gitlab.com/libeigen/eigen/-/archive/%(version)s'] +sources = [SOURCELOWER_TAR_BZ2] +checksums = ['0fa5cafe78f66d2b501b43016858070d52ba47bd9b1016b0165a7b8e04675677'] + +# using CMake built with GCCcore to avoid relying on the system compiler to build it +builddependencies = [ + ('binutils', '2.36.1'), # to make CMake compiler health check pass on old systems + ('CMake', '3.20.1'), +] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/e/elfutils/elfutils-0.183-GCCcore-10.2.0.eb b/easybuild/easyconfigs/e/elfutils/elfutils-0.183-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..f0b29a4ce55 --- /dev/null +++ b/easybuild/easyconfigs/e/elfutils/elfutils-0.183-GCCcore-10.2.0.eb @@ -0,0 +1,44 @@ +# Authors:: Jack Perdue - TAMU HPRC - https://hprc.tamu.edu + +easyblock = 'ConfigureMake' + +name = 'elfutils' +version = '0.183' + +homepage = 'https://elfutils.org/' + +description = """ + The elfutils project provides libraries and tools for ELF files + and DWARF data. +""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['https://sourceware.org/elfutils/ftp/0.183/'] +sources = [SOURCE_TAR_BZ2] +checksums = ['c3637c208d309d58714a51e61e63f1958808fead882e9b607506a29e5474f2c5'] + +builddependencies = [ + ('M4', '1.4.18'), + ('pkg-config', '0.29.2'), +] + +dependencies = [ + ('binutils', '2.35'), + ('bzip2', '1.0.8'), + ('cURL', '7.72.0'), + ('libarchive', '3.4.3'), + ('libmicrohttpd', '0.9.73'), + ('SQLite', '3.33.0'), + ('XZ', '5.2.5'), + ('zstd', '1.4.5'), +] + +sanity_check_paths = { + 'files': ['bin/eu-elfcmp', 'include/dwarf.h', 'lib/libelf.so'], + 'dirs': [] +} + +sanity_check_commands = ["eu-elfcmp --help"] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/e/expat/expat-2.2.9-FCC-4.5.0.eb b/easybuild/easyconfigs/e/expat/expat-2.2.9-FCC-4.5.0.eb new file mode 100644 index 00000000000..38abc661b02 --- /dev/null +++ b/easybuild/easyconfigs/e/expat/expat-2.2.9-FCC-4.5.0.eb @@ -0,0 +1,36 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'expat' +version = '2.2.9' + +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': 'FCC', 'version': '4.5.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/libexpat/libexpat/releases/download/R_%s/' % version.replace('.', '_')] +sources = [SOURCE_TAR_BZ2] +checksums = ['f1063084dc4302a427dabcca499c8312b3a32a29b7d2506653ecc8f950a9a237'] + +builddependencies = [('binutils', '2.36.1')] + +# 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/e/expat/expat-2.2.9-GCCcore-10.3.0.eb b/easybuild/easyconfigs/e/expat/expat-2.2.9-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..b0a83be0ed9 --- /dev/null +++ b/easybuild/easyconfigs/e/expat/expat-2.2.9-GCCcore-10.3.0.eb @@ -0,0 +1,36 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'expat' +version = '2.2.9' + +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': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/libexpat/libexpat/releases/download/R_%s/' % version.replace('.', '_')] +sources = [SOURCE_TAR_BZ2] +checksums = ['f1063084dc4302a427dabcca499c8312b3a32a29b7d2506653ecc8f950a9a237'] + +builddependencies = [('binutils', '2.36.1')] + +# 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/FCC/FCC-4.5.0.eb b/easybuild/easyconfigs/f/FCC/FCC-4.5.0.eb new file mode 100644 index 00000000000..f437ec83356 --- /dev/null +++ b/easybuild/easyconfigs/f/FCC/FCC-4.5.0.eb @@ -0,0 +1,17 @@ +easyblock = 'Toolchain' + +name = 'FCC' +version = '4.5.0' + +homepage = '(none)' +description = """Fujitsu Compiler based compiler toolchain.""" + +toolchain = SYSTEM + +osdependencies = [('binutils')] + +dependencies = [ + ('lang/tcsds-1.2.31', EXTERNAL_MODULE), # provides Fujitsu Compiler 4.5.0 +] + +moduleclass = 'compiler' diff --git a/easybuild/easyconfigs/f/FFTW/FFTW-1.0.0-FCC-4.5.0-fujitsu.eb b/easybuild/easyconfigs/f/FFTW/FFTW-1.0.0-FCC-4.5.0-fujitsu.eb new file mode 100644 index 00000000000..26e6624b60f --- /dev/null +++ b/easybuild/easyconfigs/f/FFTW/FFTW-1.0.0-FCC-4.5.0-fujitsu.eb @@ -0,0 +1,26 @@ +name = 'FFTW' +version = '1.0.0' +versionsuffix = '-fujitsu' + +homepage = 'https://github.com/fujitsu/fftw3' +description = """This is a fork of FFTW3 for the Armv8-A 64-bit architecture (AArch64) + with 512-bit Scalable Vector Extension (SVE) support.""" + +toolchain = {'name': 'FCC', 'version': '4.5.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/fujitsu/fftw3/archive/refs/tags/'] +sources = ['sve-v%(version)s.tar.gz'] +checksums = ['b5931e352355d8d1ffeb215922f4b96de11b8585c423fceeaffbf3d5436f6f2f'] + +builddependencies = [('Autotools', '20210128')] + +preconfigopts = "touch ChangeLog && autoreconf --verbose --install --symlink --force && " + +configopts = '--disable-doc' + +with_mpi = False + +runtest = 'check' + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/f/FFTW/FFTW-3.3.9-gompi-2021a.eb b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.9-gompi-2021a.eb new file mode 100644 index 00000000000..27476bdce37 --- /dev/null +++ b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.9-gompi-2021a.eb @@ -0,0 +1,17 @@ +name = 'FFTW' +version = '3.3.9' + +homepage = 'http://www.fftw.org' +description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) + in one or more dimensions, of arbitrary input size, and of both real and complex data.""" + +toolchain = {'name': 'gompi', 'version': '2021a'} +toolchainopts = {'pic': True} + +source_urls = [homepage] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['bf2c7ce40b04ae811af714deb512510cc2c17b9ab9d6ddcf49fe4487eea7af3d'] + +runtest = 'check' + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/f/FLAC/FLAC-1.3.3-GCCcore-10.3.0.eb b/easybuild/easyconfigs/f/FLAC/FLAC-1.3.3-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..8e6e408cbc2 --- /dev/null +++ b/easybuild/easyconfigs/f/FLAC/FLAC-1.3.3-GCCcore-10.3.0.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'FLAC' +version = '1.3.3' + +homepage = 'https://xiph.org/flac/' +description = """FLAC stands for Free Lossless Audio Codec, an audio format similar to MP3, but lossless, meaning +that audio is compressed in FLAC without any loss in quality.""" +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://ftp.osuosl.org/pub/xiph/releases/flac/'] +sources = [SOURCELOWER_TAR_XZ] +checksums = ['213e82bd716c9de6db2f98bcadbc4c24c7e2efe8c75939a1a84e28539c4e1748'] + +builddependencies = [('binutils', '2.36.1')] + +dependencies = [('libogg', '1.3.4')] + +configopts = '--enable-static --enable-shared' + +sanity_check_paths = { + 'files': ['bin/flac', 'lib/libFLAC.a', 'lib/libFLAC++.a', + 'lib/libFLAC.%s' % SHLIB_EXT, 'lib/libFLAC++.%s' % SHLIB_EXT], + 'dirs': ['include/FLAC', 'include/FLAC++'], +} + +sanity_check_commands = ["flac --help"] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/f/FLAIR/FLAIR-1.5.1-20200630-foss-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/f/FLAIR/FLAIR-1.5.1-20200630-foss-2019b-Python-3.7.4.eb index afa864858ff..d23aaa27281 100644 --- a/easybuild/easyconfigs/f/FLAIR/FLAIR-1.5.1-20200630-foss-2019b-Python-3.7.4.eb +++ b/easybuild/easyconfigs/f/FLAIR/FLAIR-1.5.1-20200630-foss-2019b-Python-3.7.4.eb @@ -19,7 +19,12 @@ toolchain = {'name': 'foss', 'version': '2019b'} github_account = 'BrooksLabUCSC' source_urls = [GITHUB_LOWER_SOURCE] sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}] -checksums = ['fb621b7c4613cd691cbb844ee5d354f2e3076b28f2bbe347f305d4033a3a07b5'] +patches = ['FLAIR-%(version)s_fix-pandas2ri.py2rpy.patch'] +checksums = [ + 'fb621b7c4613cd691cbb844ee5d354f2e3076b28f2bbe347f305d4033a3a07b5', # FLAIR-1.5.1-20200630.tar.gz + # FLAIR-1.5.1-20200630_fix-pandas2ri.py2rpy.patch + '3babe0aeae9fd308512ed82efefcdd82f5087983c2545009946c011fd1d4389d', +] dependencies = [ ('Python', '3.7.4'), diff --git a/easybuild/easyconfigs/f/FLAIR/FLAIR-1.5.1-20200630_fix-pandas2ri.py2rpy.patch b/easybuild/easyconfigs/f/FLAIR/FLAIR-1.5.1-20200630_fix-pandas2ri.py2rpy.patch new file mode 100644 index 00000000000..11b7b526daf --- /dev/null +++ b/easybuild/easyconfigs/f/FLAIR/FLAIR-1.5.1-20200630_fix-pandas2ri.py2rpy.patch @@ -0,0 +1,57 @@ +fix compatibility with rpy2 v3.x +author: Kenneth Hoste (HPC-UGent) +diff -ru flair-0f71b5f7e37ff040eb3bf0e62fb62940e4a318f0.orig/bin/runDE.py flair-0f71b5f7e37ff040eb3bf0e62fb62940e4a318f0/bin/runDE.py +--- flair-0f71b5f7e37ff040eb3bf0e62fb62940e4a318f0.orig/bin/runDE.py 2020-06-30 18:58:44.000000000 +0200 ++++ flair-0f71b5f7e37ff040eb3bf0e62fb62940e4a318f0/bin/runDE.py 2021-05-18 15:07:01.188990143 +0200 +@@ -105,11 +105,11 @@ + + # make the quant DF + quantDF = pd.read_table(matrix, header=0, sep='\t', index_col=0) +- df = pandas2ri.py2ri(quantDF) ++ df = pandas2ri.py2rpy(quantDF) + + # import formula + formulaDF = pd.read_csv(formula,header=0, sep="\t",index_col=0) +- sampleTable = pandas2ri.py2ri(formulaDF) ++ sampleTable = pandas2ri.py2rpy(formulaDF) + + + if "batch" in list(formulaDF): +@@ -213,4 +213,4 @@ + + + if __name__ == "__main__": +- main() +\ No newline at end of file ++ main() +diff -ru flair-0f71b5f7e37ff040eb3bf0e62fb62940e4a318f0.orig/bin/runDS.py flair-0f71b5f7e37ff040eb3bf0e62fb62940e4a318f0/bin/runDS.py +--- flair-0f71b5f7e37ff040eb3bf0e62fb62940e4a318f0.orig/bin/runDS.py 2020-06-30 18:58:44.000000000 +0200 ++++ flair-0f71b5f7e37ff040eb3bf0e62fb62940e4a318f0/bin/runDS.py 2021-05-18 15:07:01.188990143 +0200 +@@ -153,8 +153,8 @@ + quantDF[[col]] = quantDF[[col]] + 1 + + # Convert pandas to R data frame. +- samples = pandas2ri.py2ri(formulaDF) +- counts = pandas2ri.py2ri(quantDF) ++ samples = pandas2ri.py2rpy(formulaDF) ++ counts = pandas2ri.py2rpy(quantDF) + + # DRIMSEQ part. + if "batch" in list(formulaDF): R.assign('batch', samples.rx2('batch')) +diff -ru flair-0f71b5f7e37ff040eb3bf0e62fb62940e4a318f0.orig/bin/runDU.py flair-0f71b5f7e37ff040eb3bf0e62fb62940e4a318f0/bin/runDU.py +--- flair-0f71b5f7e37ff040eb3bf0e62fb62940e4a318f0.orig/bin/runDU.py 2020-06-30 18:58:44.000000000 +0200 ++++ flair-0f71b5f7e37ff040eb3bf0e62fb62940e4a318f0/bin/runDU.py 2021-05-18 15:07:01.188990143 +0200 +@@ -114,11 +114,11 @@ + + # get quant table and formula table + quantDF = pd.read_table(matrix, header=0, sep='\t', index_col=0) +- df = pandas2ri.py2ri(quantDF) ++ df = pandas2ri.py2rpy(quantDF) + + formulaDF = pd.read_csv(formula,header=0, sep="\t") + +- pydf = pandas2ri.py2ri(formulaDF) ++ pydf = pandas2ri.py2rpy(formulaDF) + + # Convert pandas to R data frame. + samples = pydf diff --git a/easybuild/easyconfigs/f/FastANI/FastANI-1.33-GCC-10.2.0.eb b/easybuild/easyconfigs/f/FastANI/FastANI-1.33-GCC-10.2.0.eb new file mode 100644 index 00000000000..63f4cc64335 --- /dev/null +++ b/easybuild/easyconfigs/f/FastANI/FastANI-1.33-GCC-10.2.0.eb @@ -0,0 +1,45 @@ +# easybuild easyconfig +# +# John Dey jfdey@fredhutch.org +# +# Updated: Pavel Grochal (INUITS) + +easyblock = 'ConfigureMake' + +name = 'FastANI' +version = '1.33' + +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': '10.2.0'} + +source_urls = ['https://github.com/ParBLiSS/FastANI/archive'] +sources = ['v%(version)s.zip'] +patches = ['FastANI-1.2-memcpy.patch'] +checksums = [ + 'fb392ffa3c7942091a06de05c56c8e250523723c39da65ae8f245e65e440a74b', # v1.33.zip + 'eebcf0b64c31ee360ca79136f644157064ac69747ed13cff70f5c9932c6bb0d5', # FastANI-1.2-memcpy.patch +] + +builddependencies = [('Autotools', '20200321')] + +dependencies = [ + ('GSL', '2.6'), + ('zlib', '1.2.11'), +] + +preconfigopts = 'autoconf && ' + +sanity_check_paths = { + 'files': ['bin/fastANI'], + 'dirs': [] +} + +sanity_check_commands = ["fastANI --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/f/FastANI/FastANI-1.33-iccifort-2020.4.304.eb b/easybuild/easyconfigs/f/FastANI/FastANI-1.33-iccifort-2020.4.304.eb new file mode 100644 index 00000000000..6fa29aa6ab2 --- /dev/null +++ b/easybuild/easyconfigs/f/FastANI/FastANI-1.33-iccifort-2020.4.304.eb @@ -0,0 +1,45 @@ +# easybuild easyconfig +# +# John Dey jfdey@fredhutch.org +# +# Updated: Pavel Grochal (INUITS) + +easyblock = 'ConfigureMake' + +name = 'FastANI' +version = '1.33' + +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': 'iccifort', 'version': '2020.4.304'} + +source_urls = ['https://github.com/ParBLiSS/FastANI/archive'] +sources = ['v%(version)s.zip'] +patches = ['FastANI-1.2-memcpy.patch'] +checksums = [ + 'fb392ffa3c7942091a06de05c56c8e250523723c39da65ae8f245e65e440a74b', # v1.33.zip + 'eebcf0b64c31ee360ca79136f644157064ac69747ed13cff70f5c9932c6bb0d5', # FastANI-1.2-memcpy.patch +] + +builddependencies = [('Autotools', '20200321')] + +dependencies = [ + ('GSL', '2.6'), + ('zlib', '1.2.11'), +] + +preconfigopts = 'autoconf && ' + +sanity_check_paths = { + 'files': ['bin/fastANI'], + 'dirs': [] +} + +sanity_check_commands = ["fastANI --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/f/FastTree/FastTree-2.1.10-foss-2018b.eb b/easybuild/easyconfigs/f/FastTree/FastTree-2.1.10-foss-2018b.eb index 261e7105903..1b50e541392 100644 --- a/easybuild/easyconfigs/f/FastTree/FastTree-2.1.10-foss-2018b.eb +++ b/easybuild/easyconfigs/f/FastTree/FastTree-2.1.10-foss-2018b.eb @@ -12,12 +12,10 @@ toolchain = {'name': 'foss', 'version': '2018b'} toolchainopts = {'openmp': True} source_urls = ['http://www.microbesonline.org/fasttree/'] -sources = ['%(name)s-%(version)s.c'] +sources = [{'filename': '%(name)s-%(version)s.c', 'extract_cmd': 'cp %s FastTree.c'}] checksums = ['54cb89fc1728a974a59eae7a7ee6309cdd3cddda9a4c55b700a71219fc6e926d'] -skipsteps = ['source'] - -cmds_map = [('FastTree.*.c', '$CC -DOPENMP $CFLAGS $LIBS %%(source)s -o %(name)s')] +cmds_map = [('%(name)s-%(version)s.c', '$CC -DOPENMP $CFLAGS $LIBS %%(source)s -o %(name)s')] files_to_copy = [(['FastTree'], 'bin')] @@ -26,4 +24,6 @@ sanity_check_paths = { 'dirs': [], } +sanity_check_commands = ['FastTree 2>&1 | grep "FastTree Version %(version)s"'] + moduleclass = 'bio' diff --git a/easybuild/easyconfigs/f/FastTree/FastTree-2.1.10-intel-2017b.eb b/easybuild/easyconfigs/f/FastTree/FastTree-2.1.10-intel-2017b.eb index 9ef5706fea1..9a64f862ba5 100644 --- a/easybuild/easyconfigs/f/FastTree/FastTree-2.1.10-intel-2017b.eb +++ b/easybuild/easyconfigs/f/FastTree/FastTree-2.1.10-intel-2017b.eb @@ -12,12 +12,10 @@ toolchain = {'name': 'intel', 'version': '2017b'} toolchainopts = {'openmp': True} source_urls = ['http://www.microbesonline.org/fasttree/'] -sources = ['%(name)s-%(version)s.c'] +sources = [{'filename': '%(name)s-%(version)s.c', 'extract_cmd': 'cp %s FastTree.c'}] checksums = ['54cb89fc1728a974a59eae7a7ee6309cdd3cddda9a4c55b700a71219fc6e926d'] -skipsteps = ['source'] - -cmds_map = [('FastTree.*.c', '$CC -DOPENMP $CFLAGS $LIBS %%(source)s -o %(name)s')] +cmds_map = [('%(name)s-%(version)s.c', '$CC -DOPENMP $CFLAGS $LIBS %%(source)s -o %(name)s')] files_to_copy = [(['FastTree'], 'bin')] @@ -26,4 +24,6 @@ sanity_check_paths = { 'dirs': [], } +sanity_check_commands = ['FastTree 2>&1 | grep "FastTree Version %(version)s"'] + moduleclass = 'bio' diff --git a/easybuild/easyconfigs/f/FastTree/FastTree-2.1.10-intel-2018a.eb b/easybuild/easyconfigs/f/FastTree/FastTree-2.1.10-intel-2018a.eb index bb5c772d302..f4a8f0d7811 100644 --- a/easybuild/easyconfigs/f/FastTree/FastTree-2.1.10-intel-2018a.eb +++ b/easybuild/easyconfigs/f/FastTree/FastTree-2.1.10-intel-2018a.eb @@ -12,12 +12,10 @@ toolchain = {'name': 'intel', 'version': '2018a'} toolchainopts = {'openmp': True} source_urls = ['http://www.microbesonline.org/fasttree/'] -sources = ['%(name)s-%(version)s.c'] +sources = [{'filename': '%(name)s-%(version)s.c', 'extract_cmd': 'cp %s FastTree.c'}] checksums = ['54cb89fc1728a974a59eae7a7ee6309cdd3cddda9a4c55b700a71219fc6e926d'] -skipsteps = ['source'] - -cmds_map = [('FastTree.*.c', '$CC -DOPENMP $CFLAGS $LIBS %%(source)s -o %(name)s')] +cmds_map = [('%(name)s-%(version)s.c', '$CC -DOPENMP $CFLAGS $LIBS %%(source)s -o %(name)s')] files_to_copy = [(['FastTree'], 'bin')] @@ -26,4 +24,6 @@ sanity_check_paths = { 'dirs': [], } +sanity_check_commands = ['FastTree 2>&1 | grep "FastTree Version %(version)s"'] + moduleclass = 'bio' diff --git a/easybuild/easyconfigs/f/FastTree/FastTree-2.1.10-intel-2018b.eb b/easybuild/easyconfigs/f/FastTree/FastTree-2.1.10-intel-2018b.eb index 8d74c530345..978be0645b5 100644 --- a/easybuild/easyconfigs/f/FastTree/FastTree-2.1.10-intel-2018b.eb +++ b/easybuild/easyconfigs/f/FastTree/FastTree-2.1.10-intel-2018b.eb @@ -12,12 +12,10 @@ toolchain = {'name': 'intel', 'version': '2018b'} toolchainopts = {'openmp': True} source_urls = ['http://www.microbesonline.org/fasttree/'] -sources = ['%(name)s-%(version)s.c'] +sources = [{'filename': '%(name)s-%(version)s.c', 'extract_cmd': 'cp %s FastTree.c'}] checksums = ['54cb89fc1728a974a59eae7a7ee6309cdd3cddda9a4c55b700a71219fc6e926d'] -skipsteps = ['source'] - -cmds_map = [('FastTree.*.c', '$CC -DOPENMP $CFLAGS $LIBS %%(source)s -o %(name)s')] +cmds_map = [('%(name)s-%(version)s.c', '$CC -DOPENMP $CFLAGS $LIBS %%(source)s -o %(name)s')] files_to_copy = [(['FastTree'], 'bin')] @@ -26,4 +24,6 @@ sanity_check_paths = { 'dirs': [], } +sanity_check_commands = ['FastTree 2>&1 | grep "FastTree Version %(version)s"'] + moduleclass = 'bio' diff --git a/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-10.2.0.eb b/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..11318dc50bb --- /dev/null +++ b/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-10.2.0.eb @@ -0,0 +1,37 @@ +# Updated from previous config +# Author: Pavel Grochal (INUITS) +# License: GPLv2 + +easyblock = 'CmdCp' + +name = 'FastTree' +version = '2.1.11' + +homepage = 'http://www.microbesonline.org/fasttree/' +description = """FastTree infers approximately-maximum-likelihood phylogenetic trees from alignments of nucleotide + or protein sequences. FastTree can handle alignments with up to a million of sequences in a reasonable amount of + time and memory. """ + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} +toolchainopts = {'openmp': True} + +# HTTPS cert error: +# hostname 'www.microbesonline.org' doesn't match either of 'genomics.lbl.gov', 'mojave.qb3.berkeley.edu', ... +source_urls = ['http://www.microbesonline.org/fasttree/'] +sources = [{'filename': '%(name)s-%(version)s.c', 'extract_cmd': 'cp %s FastTree.c'}] +checksums = ['9026ae550307374be92913d3098f8d44187d30bea07902b9dcbfb123eaa2050f'] + +builddependencies = [('binutils', '2.35')] + +cmds_map = [('%(name)s-%(version)s.c', '$CC -DOPENMP $CFLAGS $LIBS %%(source)s -o %(name)s')] + +files_to_copy = [(['FastTree'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/FastTree'], + 'dirs': [], +} + +sanity_check_commands = ['FastTree 2>&1 | grep "FastTree Version %(version)s"'] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-8.2.0.eb b/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-8.2.0.eb index be7065ea865..c16c473f5ad 100644 --- a/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-8.2.0.eb +++ b/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-8.2.0.eb @@ -18,14 +18,12 @@ toolchainopts = {'openmp': True} # HTTPS cert error: # hostname 'www.microbesonline.org' doesn't match either of 'genomics.lbl.gov', 'mojave.qb3.berkeley.edu', ... source_urls = ['http://www.microbesonline.org/fasttree/'] -sources = ['%(name)s-%(version)s.c'] -checksums = ['54cb89fc1728a974a59eae7a7ee6309cdd3cddda9a4c55b700a71219fc6e926d'] +sources = [{'filename': '%(name)s-%(version)s.c', 'extract_cmd': 'cp %s FastTree.c'}] +checksums = ['9026ae550307374be92913d3098f8d44187d30bea07902b9dcbfb123eaa2050f'] builddependencies = [('binutils', '2.31.1')] -skipsteps = ['source'] - -cmds_map = [('FastTree.*.c', '$CC -DOPENMP $CFLAGS $LIBS %%(source)s -o %(name)s')] +cmds_map = [('%(name)s-%(version)s.c', '$CC -DOPENMP $CFLAGS $LIBS %%(source)s -o %(name)s')] files_to_copy = [(['FastTree'], 'bin')] @@ -34,4 +32,6 @@ sanity_check_paths = { 'dirs': [], } +sanity_check_commands = ['FastTree 2>&1 | grep "FastTree Version %(version)s"'] + moduleclass = 'bio' diff --git a/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-8.3.0.eb b/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-8.3.0.eb index 09298d5f8fb..be06a75c300 100644 --- a/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-8.3.0.eb +++ b/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-8.3.0.eb @@ -18,14 +18,12 @@ toolchainopts = {'openmp': True} # HTTPS cert error: # hostname 'www.microbesonline.org' doesn't match either of 'genomics.lbl.gov', 'mojave.qb3.berkeley.edu', ... source_urls = ['http://www.microbesonline.org/fasttree/'] -sources = ['%(name)s-%(version)s.c'] -checksums = ['54cb89fc1728a974a59eae7a7ee6309cdd3cddda9a4c55b700a71219fc6e926d'] +sources = [{'filename': '%(name)s-%(version)s.c', 'extract_cmd': 'cp %s FastTree.c'}] +checksums = ['9026ae550307374be92913d3098f8d44187d30bea07902b9dcbfb123eaa2050f'] builddependencies = [('binutils', '2.32')] -skipsteps = ['source'] - -cmds_map = [('FastTree.*.c', '$CC -DOPENMP $CFLAGS $LIBS %%(source)s -o %(name)s')] +cmds_map = [('%(name)s-%(version)s.c', '$CC -DOPENMP $CFLAGS $LIBS %%(source)s -o %(name)s')] files_to_copy = [(['FastTree'], 'bin')] @@ -34,4 +32,6 @@ sanity_check_paths = { 'dirs': [], } +sanity_check_commands = ['FastTree 2>&1 | grep "FastTree Version %(version)s"'] + moduleclass = 'bio' diff --git a/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-9.3.0.eb b/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-9.3.0.eb index f7769007b55..351d353bcf5 100644 --- a/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-9.3.0.eb +++ b/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-9.3.0.eb @@ -18,14 +18,12 @@ toolchainopts = {'openmp': True} # HTTPS cert error: # hostname 'www.microbesonline.org' doesn't match either of 'genomics.lbl.gov', 'mojave.qb3.berkeley.edu', ... source_urls = ['http://www.microbesonline.org/fasttree/'] -sources = ['%(name)s-%(version)s.c'] -checksums = ['54cb89fc1728a974a59eae7a7ee6309cdd3cddda9a4c55b700a71219fc6e926d'] +sources = [{'filename': '%(name)s-%(version)s.c', 'extract_cmd': 'cp %s FastTree.c'}] +checksums = ['9026ae550307374be92913d3098f8d44187d30bea07902b9dcbfb123eaa2050f'] builddependencies = [('binutils', '2.34')] -skipsteps = ['source'] - -cmds_map = [('FastTree.*.c', '$CC -DOPENMP $CFLAGS $LIBS %%(source)s -o %(name)s')] +cmds_map = [('%(name)s-%(version)s.c', '$CC -DOPENMP $CFLAGS $LIBS %%(source)s -o %(name)s')] files_to_copy = [(['FastTree'], 'bin')] @@ -34,4 +32,6 @@ sanity_check_paths = { 'dirs': [], } +sanity_check_commands = ['FastTree 2>&1 | grep "FastTree Version %(version)s"'] + moduleclass = 'bio' diff --git a/easybuild/easyconfigs/f/FlexiBLAS/FlexiBLAS-3.0.4-GCC-10.3.0.eb b/easybuild/easyconfigs/f/FlexiBLAS/FlexiBLAS-3.0.4-GCC-10.3.0.eb new file mode 100644 index 00000000000..b0f9ad78754 --- /dev/null +++ b/easybuild/easyconfigs/f/FlexiBLAS/FlexiBLAS-3.0.4-GCC-10.3.0.eb @@ -0,0 +1,27 @@ +name = 'FlexiBLAS' +version = '3.0.4' + +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': '10.3.0'} +local_extra_flags = "-fstack-protector-strong -fstack-clash-protection" +toolchainopts = {'pic': True, 'extra_cflags': local_extra_flags, 'extra_fflags': local_extra_flags} + +source_urls = ['https://csc.mpi-magdeburg.mpg.de/mpcsc/software/flexiblas/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['50a88f2e88994dda91b2a2621850afd9654b3b84820e737e335687a46751be5c'] + +builddependencies = [ + ('CMake', '3.20.1'), + ('Python', '3.9.5'), # required for running the tests +] + +# note: first listed library will be used as default by FlexiBLAS, +# unless otherwise specified via easyconfig parameter flexiblas_default +dependencies = [ + ('OpenBLAS', '0.3.15'), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/f/FragGeneScan/FragGeneScan-1.31-GCCcore-10.2.0.eb b/easybuild/easyconfigs/f/FragGeneScan/FragGeneScan-1.31-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..1b21dae3e04 --- /dev/null +++ b/easybuild/easyconfigs/f/FragGeneScan/FragGeneScan-1.31-GCCcore-10.2.0.eb @@ -0,0 +1,38 @@ +easyblock = 'MakeCp' + +name = 'FragGeneScan' +version = '1.31' + +homepage = 'https://omics.informatics.indiana.edu/FragGeneScan/' +description = "FragGeneScan is an application for finding (fragmented) genes in short reads." + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%(name)s%(version)s.tar.gz'] +checksums = ['cd3212d0f148218eb3b17d24fcd1fc897fb9fee9b2c902682edde29f895f426c'] + +builddependencies = [('binutils', '2.35')] + +dependencies = [("Perl", "5.32.0")] + +fix_perl_shebang_for = ['*.pl'] + +prebuildopts = "make clean && " +buildopts = 'CC="$CC" CFLAG="$CFLAGS" fgs && chmod -R go+rx *.pl train example' + +files_to_copy = ['FragGeneScan', 'run_FragGeneScan.pl', 'example', 'train'] + +modextrapaths = {'PATH': ['']} + +sanity_check_paths = { + 'files': ['FragGeneScan', 'run_FragGeneScan.pl'], + 'dirs': ['example', 'train'], +} + +sanity_check_commands = [ + './run_FragGeneScan.pl help', + './run_FragGeneScan.pl -genome=./example/NC_000913.fna -out=./example/NC_000913-fgs -complete=1 -train=complete' +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/f/FragGeneScan/FragGeneScan-1.31-GCCcore-8.2.0.eb b/easybuild/easyconfigs/f/FragGeneScan/FragGeneScan-1.31-GCCcore-8.2.0.eb index 2fdd38fbd03..5cdab53f99b 100644 --- a/easybuild/easyconfigs/f/FragGeneScan/FragGeneScan-1.31-GCCcore-8.2.0.eb +++ b/easybuild/easyconfigs/f/FragGeneScan/FragGeneScan-1.31-GCCcore-8.2.0.eb @@ -22,6 +22,7 @@ dependencies = [("Perl", "5.28.1")] fix_perl_shebang_for = ['*.pl'] +prebuildopts = "make clean && " buildopts = 'CC="$CC" CFLAG="$CFLAGS" fgs && chmod -R go+rx *.pl train example' files_to_copy = ['FragGeneScan', 'run_FragGeneScan.pl', 'example', 'train'] diff --git a/easybuild/easyconfigs/f/FragGeneScan/FragGeneScan-1.31-foss-2018b.eb b/easybuild/easyconfigs/f/FragGeneScan/FragGeneScan-1.31-foss-2018b.eb index 599bdfc11a5..299e090bcf2 100644 --- a/easybuild/easyconfigs/f/FragGeneScan/FragGeneScan-1.31-foss-2018b.eb +++ b/easybuild/easyconfigs/f/FragGeneScan/FragGeneScan-1.31-foss-2018b.eb @@ -12,6 +12,7 @@ source_urls = [SOURCEFORGE_SOURCE] sources = ['%(name)s%(version)s.tar.gz'] checksums = ['cd3212d0f148218eb3b17d24fcd1fc897fb9fee9b2c902682edde29f895f426c'] +prebuildopts = "make clean && " buildopts = 'CC="$CC" CFLAG="$CFLAGS" fgs && chmod -R go+rx *.pl train example' files_to_copy = ['FragGeneScan', 'run_FragGeneScan.pl', 'example', 'train'] diff --git a/easybuild/easyconfigs/f/Fujitsu/Fujitsu-21.05.eb b/easybuild/easyconfigs/f/Fujitsu/Fujitsu-21.05.eb new file mode 100644 index 00000000000..9a68084d7a8 --- /dev/null +++ b/easybuild/easyconfigs/f/Fujitsu/Fujitsu-21.05.eb @@ -0,0 +1,23 @@ +easyblock = 'Toolchain' + +name = 'Fujitsu' +version = '21.05' + +homepage = '(none)' +description = """Toolchain using Fujitsu compilers and libraries.""" + +toolchain = SYSTEM + +local_fccver = '4.5.0' +local_comp_tc = ('FCC', local_fccver) +local_comp_mpi_tc = ('ffmpi', local_fccver) + +dependencies = [ + local_comp_tc, + local_comp_mpi_tc, + # Fujitsu's fork of FFTW doesn't seem to support MPI yet (mpi tests fail) + # ('FFTW', '1.0.0', '-fujitsu', local_comp_mpi_tc), + ('FFTW', '1.0.0', '-fujitsu', local_comp_tc) +] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/f/fastahack/fastahack-1.0.0-GCCcore-9.3.0.eb b/easybuild/easyconfigs/f/fastahack/fastahack-1.0.0-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..10b4c25ef18 --- /dev/null +++ b/easybuild/easyconfigs/f/fastahack/fastahack-1.0.0-GCCcore-9.3.0.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'fastahack' +version = '1.0.0' + +homepage = 'https://github.com/ekg/fastahack' +description = """Utilities for indexing and sequence extraction from FASTA files.""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} + +github_account = 'ekg' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +patches = ['%(name)s-1.0.0_build-libs.patch'] +checksums = [ + 'cc1c04729b0c8ba3647cbb7e15e2b490ce701d73773f30f5892d68c36a1dceae', # v1.0.0.tar.gz + '7f804486c6bafd9b1572cb5f86ff28dbebb4d6da551bde1091d6ff8f82748bf4', # fastahack-1.0.0_build-libs.patch +] + +builddependencies = [('binutils', '2.34')] + +skipsteps = ['configure'] + +installopts = 'PREFIX=%(installdir)s ' + +sanity_check_paths = { + 'files': ['bin/%(name)s', 'lib/libfastahack.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/f/fastahack/fastahack-1.0.0_build-libs.patch b/easybuild/easyconfigs/f/fastahack/fastahack-1.0.0_build-libs.patch new file mode 100644 index 00000000000..20e6c2b4506 --- /dev/null +++ b/easybuild/easyconfigs/f/fastahack/fastahack-1.0.0_build-libs.patch @@ -0,0 +1,97 @@ +# Patch to build static and dynamic libraries. Based on PR by outpaddling: +# https://github.com/ekg/fastahack/pull/10 + + +diff -Nru fastahack-1.0.0.orig/Makefile fastahack-1.0.0/Makefile +--- fastahack-1.0.0.orig/Makefile 2021-05-06 15:18:11.000000000 +0100 ++++ fastahack-1.0.0/Makefile 2021-05-07 14:29:15.000000000 +0100 +@@ -1,42 +1,61 @@ + + # Use ?= to allow overriding from the env or command-line ++CC ?= gcc + CXX ?= g++ + CXXFLAGS ?= -O3 +-PREFIX ?= ./stage +-STRIP_CMD ?= strip ++ ++PREFIX ?= /usr/local ++STRIP ?= strip + INSTALL ?= install -c + MKDIR ?= mkdir -p ++AR ?= ar ++ARFLAGS ?= rs + + # Required flags that we shouldn't override +-CXXFLAGS += -D_FILE_OFFSET_BITS=64 +- +-OBJS = Fasta.o FastaHack.o split.o disorder.o +- +-all: fastahack +- +-fastahack: $(OBJS) +- $(CXX) $(CXXFLAGS) $(OBJS) -o fastahack +- +-FastaHack.o: Fasta.h FastaHack.cpp +- $(CXX) $(CXXFLAGS) -c FastaHack.cpp +- +-Fasta.o: Fasta.h Fasta.cpp +- $(CXX) $(CXXFLAGS) -c Fasta.cpp +- +-split.o: split.h split.cpp +- $(CXX) $(CXXFLAGS) -c split.cpp +- +-disorder.o: disorder.c disorder.h +- $(CXX) $(CXXFLAGS) -c disorder.c +- +-install: fastahack +- $(MKDIR) $(DESTDIR)$(PREFIX)/bin +- $(INSTALL) fastahack $(DESTDIR)$(PREFIX)/bin ++DFLAGS += -D_FILE_OFFSET_BITS=64 ++BIN = fastahack ++LIB = fastahack.a ++SOVERSION = 1 ++SLIB = libfastahack.so ++OBJS = Fasta.o split.o disorder.o ++MAIN = FastaHack.o ++ ++BINDIR = $(DESTDIR)$(PREFIX)/bin ++INCDIR = $(DESTDIR)$(PREFIX)/include/fastahack ++LIBDIR = $(DESTDIR)$(PREFIX)/lib ++ ++.SUFFIXES:.c .cpp .o .pico .so ++ ++.c.o .cpp.o: ++ $(CXX) $(CXXFLAGS) $(DFLAGS) -I. $(CPPFLAGS) -c -o $@ $< ++ ++.c.pico .cpp.pico: ++ $(CXX) $(CXXFLAGS) $(DFLAGS) -I. $(CPPFLAGS) -fPIC -c -o $@ $< ++ ++all: $(BIN) $(SLIB) $(LIB) ++ ++$(LIB): $(OBJS) ++ $(AR) $(ARFLAGS) $@ $^ ++ ++$(SLIB): $(OBJS:.o=.pico) ++ $(CXX) -shared -Wl,-soname,$(SLIB).$(SOVERSION) $(LDFLAGS) -o $@ $^ $(LIBS) ++ ln -sf $@ $(SLIB).$(SOVERSION) ++ ++$(BIN): $(OBJS) $(MAIN) ++ $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) ++ ++install: all ++ $(MKDIR) $(BINDIR) ++ $(MKDIR) $(INCDIR) ++ $(MKDIR) $(LIBDIR) ++ $(INSTALL) $(BIN) $(BINDIR) ++ $(INSTALL) *.h $(INCDIR) ++ $(INSTALL) $(LIB) $(SLIB) $(SLIB).$(SOVERSION) $(LIBDIR) + + install-strip: install +- $(STRIP_CMD) $(DESTDIR)$(PREFIX)/bin/fastahack ++ $(STRIP) $(BINDIR)/$(BIN) $(LIBDIR)/$(LIB) $(LIBDIR)/$(SLIB) + + clean: +- rm -rf fastahack *.o stage ++ rm -rf $(BIN) $(LIB) $(SLIB) $(OBJS) $(DESTDIR) + + .PHONY: clean diff --git a/easybuild/easyconfigs/f/fastqz/fastqz-1.5-GCC-4.8.2.eb b/easybuild/easyconfigs/f/fastqz/fastqz-1.5-GCC-4.8.2.eb index 6bfb2e96799..cd9441ddae1 100644 --- a/easybuild/easyconfigs/f/fastqz/fastqz-1.5-GCC-4.8.2.eb +++ b/easybuild/easyconfigs/f/fastqz/fastqz-1.5-GCC-4.8.2.eb @@ -11,6 +11,7 @@ easyblock = 'CmdCp' name = 'fastqz' version = '1.5' +local_minver = ''.join(version.split('.')) homepage = 'http://mattmahoney.net/dc/fastqz/' description = """fastqz is a compressor for FASTQ files. FASTQ is the output of DNA sequencing machines. @@ -18,17 +19,20 @@ description = """fastqz is a compressor for FASTQ files. FASTQ is the output of FASTQ and SAM Format Sequencing Data. (mirror) PLoS ONE 8(3): e59190. doi:10.1371/journal.pone.0059190""" toolchain = {'name': 'GCC', 'version': '4.8.2'} -toolchainopts = {'opt': True, 'optarch': True} +toolchainopts = {'opt': True} -local_minver = ''.join(version.split('.')) -sources = ['fastqz%s.cpp' % local_minver, 'fapack.cpp'] source_urls = [homepage] -checksums = ['0a55cd15605ddf32c31dac5af8c0f442', '490efab4389637da5566cf5173b1d274'] +sources = [ + {'filename': 'fastqz%s.cpp' % local_minver, 'extract_cmd': "cp %s ."}, + {'filename': 'fapack.cpp', 'extract_cmd': "cp %s ."}, +] +checksums = [ + '67ead53084fe96bad337e66f4447070c113b71726f7e5e586bec0ade4a5b85dd', # fastqz15.cpp + 'cedfb0f3641f7c47333a0a66deff1da1356509fda80a60b1777759c95090b1da', # fapack.cpp +] dependencies = [('ZPAQ', '7.00')] -skipsteps = ['source'] - cmds_map = [ ('fastqz%s.cpp' % local_minver, '$CXX $CFLAGS -lpthread %%(source)s $EBROOTZPAQ/include/libzpaq.cpp -o %(name)s'), ('fapack.cpp', '$CXX $CFLAGS -s %(source)s -o %(target)s') diff --git a/easybuild/easyconfigs/f/fermi-lite/fermi-lite-20190320-GCCcore-9.3.0.eb b/easybuild/easyconfigs/f/fermi-lite/fermi-lite-20190320-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..3da97822972 --- /dev/null +++ b/easybuild/easyconfigs/f/fermi-lite/fermi-lite-20190320-GCCcore-9.3.0.eb @@ -0,0 +1,44 @@ +# Author: Jasper Grimm (UoY) + +easyblock = 'MakeCp' + +name = 'fermi-lite' +version = '20190320' +local_commit = 'b499514' + +homepage = 'https://github.com/lh3/fermi-lite' +description = """Standalone C library for assembling Illumina short reads in small regions.""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} + +github_account = 'lh3' +source_urls = [GITHUB_SOURCE] +sources = ['%s.tar.gz' % local_commit] +patches = [ + '%(name)s-20190320_avoid-bwa-namespace-conflict.patch', + '%(name)s-20190320_build-shared-lib.patch', +] +checksums = [ + 'ea1230e298b8e7193a996b5aceeff7fea44ef00852b0b87d4fcb504bdca0e712', # b499514.tar.gz + # fermi-lite-20190320_avoid-bwa-namespace-conflict.patch + '27600733f1cea8b1d1503b1a67b9d41526e907c1b6321313ff51194e166c1842', + '43398559fbb3910d6d3d1a41af3fb16bf8f26bd7cc34176dfc9a068a551c3f50', # fermi-lite-20190320_build-shared-lib.patch +] + +builddependencies = [('binutils', '2.34')] + +dependencies = [('zlib', '1.2.11')] + +files_to_copy = [ + (['fml-asm'], 'bin'), + (['*.a', '*.%s*' % SHLIB_EXT], 'lib'), + (['*.h'], 'include/fml'), + 'test', +] + +sanity_check_paths = { + 'files': ['bin/fml-asm', 'lib/libfml.a', 'lib/libfml.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/f/fermi-lite/fermi-lite-20190320_avoid-bwa-namespace-conflict.patch b/easybuild/easyconfigs/f/fermi-lite/fermi-lite-20190320_avoid-bwa-namespace-conflict.patch new file mode 100644 index 00000000000..1301a404f4e --- /dev/null +++ b/easybuild/easyconfigs/f/fermi-lite/fermi-lite-20190320_avoid-bwa-namespace-conflict.patch @@ -0,0 +1,597 @@ +Avoid name space conflict with BWA in bseq1_t, bseq_read to allow linking existing BWA, FML libs +Created by tillea: + https://github.com/lh3/fermi-lite/pull/10/ +diff -Nru fermi-lite.orig/bfc.c fermi-lite/bfc.c +--- fermi-lite.orig/bfc.c 2019-03-20 14:21:24.000000000 +0000 ++++ fermi-lite/bfc.c 2018-10-25 13:19:00.000000000 +0100 +@@ -7,24 +7,12 @@ + #include "kmer.h" + #include "internal.h" + #include "fml.h" ++#include "bfc.h" + + /******************* + *** BFC options *** + *******************/ + +-typedef struct { +- int n_threads, q, k, l_pre; +- int min_cov; // a k-mer is considered solid if the count is no less than this +- +- int max_end_ext; +- int win_multi_ec; +- float min_trim_frac; +- +- // these ec options cannot be changed on the command line +- int w_ec, w_ec_high, w_absent, w_absent_high; +- int max_path_diff, max_heap; +-} bfc_opt_t; +- + void bfc_opt_init(bfc_opt_t *opt) + { + memset(opt, 0, sizeof(bfc_opt_t)); +@@ -46,26 +34,6 @@ + opt->max_heap = 100; + } + +-/********************** +- *** K-mer counting *** +- **********************/ +- +-#define CNT_BUF_SIZE 256 +- +-typedef struct { // cache to reduce locking +- uint64_t y[2]; +- int is_high; +-} insbuf_t; +- +-typedef struct { +- int k, q; +- int n_seqs; +- const bseq1_t *seqs; +- bfc_ch_t *ch; +- int *n_buf; +- insbuf_t **buf; +-} cnt_step_t; +- + bfc_kmer_t bfc_kmer_null = {{0,0,0,0}}; + + static int bfc_kmer_bufclear(cnt_step_t *cs, int forced, int tid) +@@ -97,7 +65,7 @@ + static void worker_count(void *_data, long k, int tid) + { + cnt_step_t *cs = (cnt_step_t*)_data; +- const bseq1_t *s = &cs->seqs[k]; ++ const fml_seq1_t *s = &cs->seqs[k]; + int i, l; + bfc_kmer_t x = bfc_kmer_null; + uint64_t qmer = 0, mask = (1ULL<k) - 1; +@@ -111,7 +79,7 @@ + } + } + +-struct bfc_ch_s *fml_count(int n, const bseq1_t *seq, int k, int q, int l_pre, int n_threads) ++struct bfc_ch_s *fml_count(int n, const fml_seq1_t *seq, int k, int q, int l_pre, int n_threads) + { + int i; + cnt_step_t cs; +@@ -127,34 +95,6 @@ + return cs.ch; + } + +-/*************** +- *** Correct *** +- ***************/ +- +-#define BFC_MAX_KMER 63 +-#define BFC_MAX_BF_SHIFT 37 +- +-#define BFC_MAX_PATHS 4 +-#define BFC_EC_HIST 5 +-#define BFC_EC_HIST_HIGH 2 +- +-#define BFC_EC_MIN_COV_COEF .1 +- +-/************************** +- * Sequence struct for ec * +- **************************/ +- +-#include "kvec.h" +- +-typedef struct { // NOTE: unaligned memory +- uint8_t b:3, q:1, ob:3, oq:1; +- uint8_t dummy; +- uint16_t lcov:6, hcov:6, solid_end:1, high_end:1, ec:1, absent:1; +- int i; +-} ecbase_t; +- +-typedef kvec_t(ecbase_t) ecseq_t; +- + static int bfc_seq_conv(const char *s, const char *q, int qthres, ecseq_t *seq) + { + int i, l; +@@ -264,53 +204,6 @@ + return max > 0? (uint64_t)(max_i - max - k + 1) << 32 | max_i : 0; + } + +-/******************** +- * Correct one read * +- ********************/ +- +-#include "ksort.h" +- +-#define ECCODE_MISC 1 +-#define ECCODE_MANY_N 2 +-#define ECCODE_NO_SOLID 3 +-#define ECCODE_UNCORR_N 4 +-#define ECCODE_MANY_FAIL 5 +- +-typedef struct { +- uint32_t ec_code:3, brute:1, n_ec:14, n_ec_high:14; +- uint32_t n_absent:24, max_heap:8; +-} ecstat_t; +- +-typedef struct { +- uint8_t ec:1, ec_high:1, absent:1, absent_high:1, b:4; +-} bfc_penalty_t; +- +-typedef struct { +- int tot_pen; +- int i; // base position +- int k; // position in the stack +- int32_t ecpos_high[BFC_EC_HIST_HIGH]; +- int32_t ecpos[BFC_EC_HIST]; +- bfc_kmer_t x; +-} echeap1_t; +- +-typedef struct { +- int parent, i, tot_pen; +- uint8_t b; +- bfc_penalty_t pen; +- uint16_t cnt; +-} ecstack1_t; +- +-typedef struct { +- const bfc_opt_t *opt; +- const bfc_ch_t *ch; +- kvec_t(echeap1_t) heap; +- kvec_t(ecstack1_t) stack; +- ecseq_t seq, tmp, ec[2]; +- int mode; +- ecstat_t ori_st; +-} bfc_ec1buf_t; +- + #define heap_lt(a, b) ((a).tot_pen > (b).tot_pen) + KSORT_INIT(ec, echeap1_t, heap_lt) + +@@ -567,20 +460,7 @@ + return s; + } + +-/******************** +- * Error correction * +- ********************/ +- +-typedef struct { +- const bfc_opt_t *opt; +- const bfc_ch_t *ch; +- bfc_ec1buf_t **e; +- int64_t n_processed; +- int n_seqs, flt_uniq; +- bseq1_t *seqs; +-} ec_step_t; +- +-static uint64_t max_streak(int k, const bfc_ch_t *ch, const bseq1_t *s) ++static uint64_t max_streak(int k, const bfc_ch_t *ch, const fml_seq1_t *s) + { + int i, l; + uint64_t max = 0, t = 0; +@@ -602,7 +482,7 @@ + static void worker_ec(void *_data, long k, int tid) + { + ec_step_t *es = (ec_step_t*)_data; +- bseq1_t *s = &es->seqs[k]; ++ fml_seq1_t *s = &es->seqs[k]; + if (es->flt_uniq) { + uint64_t max; + max = max_streak(es->opt->k, es->ch, s); +@@ -624,7 +504,7 @@ + } else bfc_ec1(es->e[tid], s->seq, s->qual); + } + +-float fml_correct_core(const fml_opt_t *opt, int flt_uniq, int n, bseq1_t *seq) ++float fml_correct_core(const fml_opt_t *opt, int flt_uniq, int n, fml_seq1_t *seq) + { + bfc_ch_t *ch; + int i, mode; +@@ -663,12 +543,24 @@ + return kcov; + } + +-float fml_correct(const fml_opt_t *opt, int n, bseq1_t *seq) ++// Added by jwala for use in libSeqLib ++void kmer_correct(ec_step_t * es, int mode, bfc_ch_t * ch) { ++ int i = 0; ++ es->e = (bfc_ec1buf_t**)calloc(es->opt->n_threads, sizeof(void*)); //jwala added cast ++ for (i = 0; i < es->opt->n_threads; ++i) ++ es->e[i] = ec1buf_init(es->opt, ch), es->e[i]->mode = mode; ++ kt_for(es->opt->n_threads, worker_ec, es, es->n_seqs); ++ for (i = 0; i < es->opt->n_threads; ++i) ++ ec1buf_destroy(es->e[i]); ++ free(es->e); ++} ++ ++float fml_correct(const fml_opt_t *opt, int n, fml_seq1_t *seq) + { + return fml_correct_core(opt, 0, n, seq); + } + +-float fml_fltuniq(const fml_opt_t *opt, int n, bseq1_t *seq) ++float fml_fltuniq(const fml_opt_t *opt, int n, fml_seq1_t *seq) + { + return fml_correct_core(opt, 1, n, seq); + } +diff -Nru fermi-lite.orig/bfc.h fermi-lite/bfc.h +--- fermi-lite.orig/bfc.h 1970-01-01 01:00:00.000000000 +0100 ++++ fermi-lite/bfc.h 2018-10-25 13:19:00.000000000 +0100 +@@ -0,0 +1,153 @@ ++#ifndef AC_BFC_H__ ++#define AC_BFC_H__ ++ ++#include ++#include ++#include ++#include ++#include ++#include "htab.h" ++/* #include "kmer.h" ... this is actually included by htab.h */ ++#include "internal.h" ++#include "fml.h" ++#include "khash.h" ++ ++/* Andreas Tille : Its not clear where jwala took this from and what its purpose might be - commenting out for the moment ++#define _cnt_eq(a, b) ((a)>>14 == (b)>>14) ++#define _cnt_hash(a) ((a)>>14) ++KHASH_INIT(cnt, uint64_t, char, 0, _cnt_hash, _cnt_eq) ++typedef khash_t(cnt) cnthash_t; ++ ++struct bfc_ch_s { ++ int k; ++ cnthash_t **h; ++ // private ++ int l_pre; ++}; ++*/ ++ ++typedef struct { ++ int n_threads, q, k, l_pre; ++ int min_cov; // a k-mer is considered solid if the count is no less than this ++ ++ int max_end_ext; ++ int win_multi_ec; ++ float min_trim_frac; ++ ++ // these ec options cannot be changed on the command line ++ int w_ec, w_ec_high, w_absent, w_absent_high; ++ int max_path_diff, max_heap; ++} bfc_opt_t; ++ ++/********************** ++ *** K-mer counting *** ++ **********************/ ++ ++#define CNT_BUF_SIZE 256 ++ ++typedef struct { // cache to reduce locking ++ uint64_t y[2]; ++ int is_high; ++} insbuf_t; ++ ++typedef struct { ++ int k, q; ++ int n_seqs; ++ const fml_seq1_t *seqs; ++ bfc_ch_t *ch; ++ int *n_buf; ++ insbuf_t **buf; ++} cnt_step_t; ++ ++/*************** ++ *** Correct *** ++ ***************/ ++ ++#define BFC_MAX_KMER 63 ++#define BFC_MAX_BF_SHIFT 37 ++ ++#define BFC_MAX_PATHS 4 ++#define BFC_EC_HIST 5 ++#define BFC_EC_HIST_HIGH 2 ++ ++#define BFC_EC_MIN_COV_COEF .1 ++ ++/************************** ++ * Sequence struct for ec * ++ **************************/ ++ ++#include "kvec.h" ++ ++typedef struct { // NOTE: unaligned memory ++ uint8_t b:3, q:1, ob:3, oq:1; ++ uint8_t dummy; ++ uint16_t lcov:6, hcov:6, solid_end:1, high_end:1, ec:1, absent:1; ++ int i; ++} ecbase_t; ++ ++typedef kvec_t(ecbase_t) ecseq_t; ++ ++/******************** ++ * Correct one read * ++ ********************/ ++ ++#include "ksort.h" ++ ++#define ECCODE_MISC 1 ++#define ECCODE_MANY_N 2 ++#define ECCODE_NO_SOLID 3 ++#define ECCODE_UNCORR_N 4 ++#define ECCODE_MANY_FAIL 5 ++ ++typedef struct { ++ uint32_t ec_code:3, brute:1, n_ec:14, n_ec_high:14; ++ uint32_t n_absent:24, max_heap:8; ++} ecstat_t; ++ ++typedef struct { ++ uint8_t ec:1, ec_high:1, absent:1, absent_high:1, b:4; ++} bfc_penalty_t; ++ ++typedef struct { ++ int tot_pen; ++ int i; // base position ++ int k; // position in the stack ++ int32_t ecpos_high[BFC_EC_HIST_HIGH]; ++ int32_t ecpos[BFC_EC_HIST]; ++ bfc_kmer_t x; ++} echeap1_t; ++ ++typedef struct { ++ int parent, i, tot_pen; ++ uint8_t b; ++ bfc_penalty_t pen; ++ uint16_t cnt; ++} ecstack1_t; ++ ++typedef struct { ++ const bfc_opt_t *opt; ++ const bfc_ch_t *ch; ++ kvec_t(echeap1_t) heap; ++ kvec_t(ecstack1_t) stack; ++ ecseq_t seq, tmp, ec[2]; ++ int mode; ++ ecstat_t ori_st; ++} bfc_ec1buf_t; ++ ++/******************** ++ * Error correction * ++ ********************/ ++ ++typedef struct { ++ const bfc_opt_t *opt; ++ const bfc_ch_t *ch; ++ bfc_ec1buf_t **e; ++ int64_t n_processed; ++ int n_seqs, flt_uniq; ++ fml_seq1_t *seqs; ++} ec_step_t; ++ ++void kmer_correct(ec_step_t * es, int mode, bfc_ch_t * ch); ++void bfc_opt_init(bfc_opt_t *opt); ++ ++#endif +diff -Nru fermi-lite.orig/bseq.c fermi-lite/bseq.c +--- fermi-lite.orig/bseq.c 2019-03-20 14:21:24.000000000 +0000 ++++ fermi-lite/bseq.c 2018-10-25 13:19:00.000000000 +0100 +@@ -6,10 +6,10 @@ + #include "kseq.h" + KSEQ_INIT(gzFile, gzread) + +-bseq1_t *bseq_read(const char *fn, int *n_) ++fml_seq1_t *fml_seq_read(const char *fn, int *n_) + { + gzFile fp; +- bseq1_t *seqs; ++ fml_seq1_t *seqs; + kseq_t *ks; + int m, n; + uint64_t size = 0; +@@ -21,10 +21,10 @@ + + m = n = 0; seqs = 0; + while (kseq_read(ks) >= 0) { +- bseq1_t *s; ++ fml_seq1_t *s; + if (n >= m) { + m = m? m<<1 : 256; +- seqs = realloc(seqs, m * sizeof(bseq1_t)); ++ seqs = realloc(seqs, m * sizeof(fml_seq1_t)); + } + s = &seqs[n]; + s->seq = strdup(ks->seq.s); +diff -Nru fermi-lite.orig/example.c fermi-lite/example.c +--- fermi-lite.orig/example.c 2019-03-20 14:21:24.000000000 +0000 ++++ fermi-lite/example.c 2018-10-25 13:19:00.000000000 +0100 +@@ -7,7 +7,7 @@ + { + fml_opt_t opt; + int c, n_seqs, n_utg, gfa_out = 0; +- bseq1_t *seqs; ++ fml_seq1_t *seqs; + fml_utg_t *utg; + + fml_opt_init(&opt); +@@ -41,7 +41,7 @@ + fprintf(stderr, " -g output the assembly graph in the GFA format\n"); + return 1; + } +- seqs = bseq_read(argv[optind], &n_seqs); ++ seqs = fml_seq_read(argv[optind], &n_seqs); + utg = fml_assemble(&opt, n_seqs, seqs, &n_utg); + if (!gfa_out) fml_utg_print(n_utg, utg); + else fml_utg_print_gfa(n_utg, utg); +diff -Nru fermi-lite.orig/fml.h fermi-lite/fml.h +--- fermi-lite.orig/fml.h 2019-03-20 14:21:24.000000000 +0000 ++++ fermi-lite/fml.h 2021-05-11 11:55:02.000000000 +0100 +@@ -8,7 +8,7 @@ + typedef struct { + int32_t l_seq; + char *seq, *qual; // NULL-terminated strings; length expected to match $l_seq +-} bseq1_t; ++} fml_seq1_t; + + #define MAG_F_AGGRESSIVE 0x20 // pop variant bubbles (not default) + #define MAG_F_POPOPEN 0x40 // aggressive tip trimming (default) +@@ -63,7 +63,7 @@ + * + * @return array of sequences + */ +-bseq1_t *bseq_read(const char *fn, int *n); ++fml_seq1_t *fml_seq_read(const char *fn, int *n); + + /** + * Initialize default parameters +@@ -82,7 +82,7 @@ + * + * @return array of unitigs + */ +-fml_utg_t *fml_assemble(const fml_opt_t *opt, int n_seqs, bseq1_t *seqs, int *n_utg); ++fml_utg_t *fml_assemble(const fml_opt_t *opt, int n_seqs, fml_seq1_t *seqs, int *n_utg); + + /** + * Free unitigs +@@ -103,7 +103,7 @@ + * @param n_seqs number of sequences + * @param seqs array of sequences + */ +-void fml_opt_adjust(fml_opt_t *opt, int n_seqs, const bseq1_t *seqs); ++void fml_opt_adjust(fml_opt_t *opt, int n_seqs, const fml_seq1_t *seqs); + + /** + * Error correction +@@ -114,8 +114,8 @@ + * + * @return k-mer coverage + */ +-float fml_correct(const fml_opt_t *opt, int n, bseq1_t *seq); +-float fml_fltuniq(const fml_opt_t *opt, int n, bseq1_t *seq); ++float fml_correct(const fml_opt_t *opt, int n, fml_seq1_t *seq); ++float fml_fltuniq(const fml_opt_t *opt, int n, fml_seq1_t *seq); + + /** + * Construct FMD-index +@@ -126,7 +126,7 @@ + * + * @return FMD-index on success; NULL if all input sequences are zero in length + */ +-struct rld_t *fml_seq2fmi(const fml_opt_t *opt, int n, bseq1_t *seq); ++struct rld_t *fml_seq2fmi(const fml_opt_t *opt, int n, fml_seq1_t *seq); + + /** + * Generate initial overlap graph +diff -Nru fermi-lite.orig/internal.h fermi-lite/internal.h +--- fermi-lite.orig/internal.h 2019-03-20 14:21:24.000000000 +0000 ++++ fermi-lite/internal.h 2018-10-25 13:19:00.000000000 +0100 +@@ -12,7 +12,7 @@ + void kt_for(int n_threads, void (*func)(void*,long,int), void *data, long n); + void seq_reverse(int l, unsigned char *s); + void seq_revcomp6(int l, unsigned char *s); +-struct bfc_ch_s *fml_count(int n, const bseq1_t *seq, int k, int q, int l_pre, int n_threads); ++struct bfc_ch_s *fml_count(int n, const fml_seq1_t *seq, int k, int q, int l_pre, int n_threads); + + #ifdef __cplusplus + } +diff -Nru fermi-lite.orig/misc.c fermi-lite/misc.c +--- fermi-lite.orig/misc.c 2019-03-20 14:21:24.000000000 +0000 ++++ fermi-lite/misc.c 2018-10-25 13:19:00.000000000 +0100 +@@ -40,7 +40,7 @@ + opt->mag_opt.flag = MAG_F_NO_SIMPL | MAG_F_POPOPEN; + } + +-void fml_opt_adjust(fml_opt_t *opt, int n_seqs, const bseq1_t *seqs) ++void fml_opt_adjust(fml_opt_t *opt, int n_seqs, const fml_seq1_t *seqs) + { + int i, log_len; + uint64_t tot_len = 0; +@@ -62,7 +62,7 @@ + return (i == l>>1); + } + +-struct rld_t *fml_fmi_gen(int n, bseq1_t *seq, int is_mt) ++struct rld_t *fml_fmi_gen(int n, fml_seq1_t *seq, int is_mt) + { + mrope_t *mr; + kstring_t str = {0,0,0}; +@@ -72,15 +72,10 @@ + rld_t *e = 0; + int k; + +- for (k = 0; k < n; ++k) +- if (seq[k].l_seq > 0) +- break; +- if (k == n) return 0; +- + mr = mr_init(ROPE_DEF_MAX_NODES, ROPE_DEF_BLOCK_LEN, MR_SO_RCLO); + for (k = 0; k < n; ++k) { + int i; +- bseq1_t *s = &seq[k]; ++ fml_seq1_t *s = &seq[k]; + if (s->l_seq == 0) continue; + free(s->qual); + for (i = 0; i < s->l_seq; ++i) +@@ -121,7 +116,7 @@ + return e; + } + +-struct rld_t *fml_seq2fmi(const fml_opt_t *opt, int n, bseq1_t *seq) ++struct rld_t *fml_seq2fmi(const fml_opt_t *opt, int n, fml_seq1_t *seq) + { + return fml_fmi_gen(n, seq, opt->n_threads > 1? 1 : 0); + } +@@ -277,7 +272,7 @@ + + #define MAG_MIN_NSR_COEF .1 + +-fml_utg_t *fml_assemble(const fml_opt_t *opt0, int n_seqs, bseq1_t *seqs, int *n_utg) ++fml_utg_t *fml_assemble(const fml_opt_t *opt0, int n_seqs, fml_seq1_t *seqs, int *n_utg) + { + rld_t *e; + mag_t *g; +@@ -285,12 +280,10 @@ + fml_opt_t opt = *opt0; + float kcov; + +- *n_utg = 0; + fml_opt_adjust(&opt, n_seqs, seqs); + if (opt.ec_k >= 0) fml_correct(&opt, n_seqs, seqs); + kcov = fml_fltuniq(&opt, n_seqs, seqs); + e = fml_seq2fmi(&opt, n_seqs, seqs); +- if (e == 0) return 0; // this may happen when all sequences are filtered out + g = fml_fmi2mag(&opt, e); + opt.mag_opt.min_ensr = opt.mag_opt.min_ensr > kcov * MAG_MIN_NSR_COEF? opt.mag_opt.min_ensr : (int)(kcov * MAG_MIN_NSR_COEF + .499); + opt.mag_opt.min_ensr = opt.mag_opt.min_ensr < opt0->max_cnt? opt.mag_opt.min_ensr : opt0->max_cnt; +diff -Nru fermi-lite.orig/README.md fermi-lite/README.md +--- fermi-lite.orig/README.md 2019-03-20 14:21:24.000000000 +0000 ++++ fermi-lite/README.md 2018-10-25 13:19:00.000000000 +0100 +@@ -34,11 +34,11 @@ + int main(int argc, char *argv[]) + { + int i, n_seqs, n_utgs; +- bseq1_t *seqs; // array of input sequences ++ fml_seq1_t *seqs; // array of input sequences + fml_utg_t *utgs; // array of output unitigs + fml_opt_t opt; + if (argc == 1) return 1; // do nothing if there is no input file +- seqs = bseq_read(argv[1], &n_seqs); // or fill the array with callers' functions ++ seqs = fml_seq_read(argv[1], &n_seqs); // or fill the array with callers' functions + fml_opt_init(&opt); // initialize parameters + utgs = fml_assemble(&opt, n_seqs, seqs, &n_utgs); // assemble! + for (i = 0; i < n_utgs; ++i) // output in fasta diff --git a/easybuild/easyconfigs/f/fermi-lite/fermi-lite-20190320_build-shared-lib.patch b/easybuild/easyconfigs/f/fermi-lite/fermi-lite-20190320_build-shared-lib.patch new file mode 100644 index 00000000000..ebc966a2dd9 --- /dev/null +++ b/easybuild/easyconfigs/f/fermi-lite/fermi-lite-20190320_build-shared-lib.patch @@ -0,0 +1,63 @@ +Patch created by Jasper Grimm (UoY) +Add makefile targets to build shared library as well as static +Avoid setting variables that are already set (CC, CPPFLAGS etc) +diff -Nru fermi-lite/Makefile fermi-lite.2/Makefile +--- fermi-lite/Makefile 2018-10-25 13:19:00.000000000 +0100 ++++ fermi-lite.2/Makefile 2021-05-12 15:22:33.000000000 +0100 +@@ -1,26 +1,39 @@ +-CC= gcc +-CFLAGS= -g -Wall -O2 -Wno-unused-function #-fno-inline-functions -fno-inline-functions-called-once +-CPPFLAGS= +-INCLUDES= +-OBJS= kthread.o misc.o \ +- bseq.o htab.o bfc.o \ +- rle.o rope.o mrope.o rld0.o \ +- unitig.o mag.o bubble.o ksw.o +-PROG= fml-asm +-LIBS= -lm -lz -lpthread ++CC ?= gcc ++CFLAGS ?= -g -Wall -O2 -Wno-unused-function #-fno-inline-functions -fno-inline-functions-called-once ++CPPFLAGS ?= ++INCLUDES ?= ++OBJS = kthread.o misc.o \ ++ bseq.o htab.o bfc.o \ ++ rle.o rope.o mrope.o rld0.o \ ++ unitig.o mag.o bubble.o ksw.o ++PROG = fml-asm ++LIBS = -lm -lz -lpthread ++AR ?= ar ++ARFLAGS ?= csru ++ ++LIB = libfml.a ++SOVER = 1 ++SLIB = libfml.so + +-.SUFFIXES:.c .o ++.SUFFIXES:.c .o .pico + + .c.o: +- $(CC) -c $(CFLAGS) $(CPPFLAGS) $(INCLUDES) $< -o $@ ++ $(CC) $(CFLAGS) -c $(CPPFLAGS) -o $@ $< + +-all:$(PROG) ++.c.pico: ++ $(CC) $(CFLAGS) -fPIC -c $(CPPFLAGS) -o $@ $< + +-fml-asm:libfml.a example.o +- $(CC) $(CFLAGS) $^ -o $@ -L. -lfml $(LIBS) ++all: $(PROG) $(LIB) $(SLIB) + +-libfml.a:$(OBJS) +- $(AR) -csru $@ $(OBJS) ++$(LIB): $(OBJS) ++ $(AR) $(ARFLAGS) $@ $^ ++ ++$(SLIB): $(OBJS:.o=.pico) ++ $(CC) -shared -Wl,-soname,$(SLIB).$(SOVER) $(LDFLAGS) -o $@ $^ $(LIBS) ++ ln -sf $@ $(SLIB).$(SOVER) ++ ++$(PROG): example.o $(LIB) ++ $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ example.o -L. -lfml $(LIBS) + + clean: + rm -fr gmon.out *.o ext/*.o a.out $(PROG) *~ *.a *.dSYM session* diff --git a/easybuild/easyconfigs/f/ffmpi/ffmpi-4.5.0.eb b/easybuild/easyconfigs/f/ffmpi/ffmpi-4.5.0.eb new file mode 100644 index 00000000000..ea8d25a51e0 --- /dev/null +++ b/easybuild/easyconfigs/f/ffmpi/ffmpi-4.5.0.eb @@ -0,0 +1,13 @@ +easyblock = 'Toolchain' + +name = 'ffmpi' +version = '4.5.0' + +homepage = '(none)' +description = """Fujitsu Compiler based compiler toolchain, including Fujitsu MPI for MPI support.""" + +toolchain = SYSTEM + +dependencies = [('FCC', version)] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/f/filevercmp/filevercmp-20141119-GCCcore-9.3.0.eb b/easybuild/easyconfigs/f/filevercmp/filevercmp-20141119-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..7d1d2014556 --- /dev/null +++ b/easybuild/easyconfigs/f/filevercmp/filevercmp-20141119-GCCcore-9.3.0.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'filevercmp' +version = '20141119' +local_commit = '1a9b779' + +homepage = 'https://github.com/ekg/filevercmp' +description = """filevercmp function as in sort --version-sort.""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} + +github_account = 'ekg' +source_urls = [GITHUB_SOURCE] +sources = ['%s.tar.gz' % local_commit] +patches = ['%(name)s-20141119_build-libs.patch'] +checksums = [ + 'a010e807755302ff12eff3949d92d6011a4df439a29f500cc357c8e2b896e57a', # 1a9b779.tar.gz + 'a361dadab37a7295764822141340a4fabfc86a4d367b5d3408feca7ca06fb5c7', # filevercmp-20141119_build-libs.patch +] + +builddependencies = [('binutils', '2.34')] + +skipsteps = ['configure'] + +installopts = 'DESTDIR="" PREFIX=%(installdir)s ' + +sanity_check_paths = { + 'files': ['bin/%(name)s', 'lib/libfilevercmp.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/f/filevercmp/filevercmp-20141119_build-libs.patch b/easybuild/easyconfigs/f/filevercmp/filevercmp-20141119_build-libs.patch new file mode 100644 index 00000000000..4bbc18bd8b1 --- /dev/null +++ b/easybuild/easyconfigs/f/filevercmp/filevercmp-20141119_build-libs.patch @@ -0,0 +1,83 @@ +# Patch to build static and dynamic libraries. Based on PR by outpaddling: +# https://github.com/ekg/filevercmp/pull/2 + +diff -Nru filevercmp-1a9b779b93d0b244040274794d402106907b71b7.orig/Makefile filevercmp-1a9b779b93d0b244040274794d402106907b71b7/Makefile +--- filevercmp-1a9b779b93d0b244040274794d402106907b71b7.orig/Makefile 2021-05-06 15:39:20.000000000 +0100 ++++ filevercmp-1a9b779b93d0b244040274794d402106907b71b7/Makefile 2021-05-07 14:44:55.000000000 +0100 +@@ -1,13 +1,67 @@ +-all: filevercmp + +-clean: +- rm -f filevercmp +- rm -f filevercmp.o ++# Use ?= to allow overriding from the env or command-line, e.g. ++# ++# make CXXFLAGS="-O3 -fPIC" install ++# ++# Package managers will override many of these variables automatically, so ++# this is aimed at making it easy to create packages (Debian packages, ++# FreeBSD ports, MacPorts, pkgsrc, etc.) + +-.PHONY: all clean ++CC ?= cc ++CFLAGS ?= -O -g #-m64 #-arch ppc + +-filevercmp.o: filevercmp.c main.c filevercmp.h +- gcc -c filevercmp.c ++PREFIX ?= /usr/local ++STRIP ?= strip ++INSTALL ?= install -c ++MKDIR ?= mkdir -p ++AR ?= ar ++ARFLAGS ?= rs + +-filevercmp: filevercmp.o +- gcc -o filevercmp main.c filevercmp.o ++BIN = filevercmp ++LIB = libfilevercmp.a ++SOVERSION = 0 ++SLIB = libfilevercmp.so ++OBJS = filevercmp.o ++ ++LIBDIR = $(DESTDIR)$(PREFIX)/lib ++BINDIR = $(DESTDIR)$(PREFIX)/bin ++INCDIR = $(DESTDIR)$(PREFIX)/include/filevercmp ++ ++.SUFFIXES:.c .o .pico .so ++ ++.c.o: ++ $(CC) $(CFLAGS) -I. -c -o $@ $< ++ ++.c.pico: ++ $(CC) $(CFLAGS) -I. -fPIC -c -o $@ $< ++ ++all: $(BIN) $(SLIB) $(LIB) ++ ++$(LIB): $(OBJS) ++ $(AR) $(ARFLAGS) $@ $^ ++ ++$(SLIB): $(OBJS:.o=.pico) ++ $(CC) -shared -Wl,-soname,$(SLIB).$(SOVERSION) $(LDFLAGS) -o $@ $^ $(LIBS) ++ ln -sf $@ $(SLIB).$(SOVERSION) ++ ++$(BIN): $(OBJS) main.c ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) ++ ++install: all ++ $(MKDIR) $(BINDIR) ++ $(MKDIR) $(LIBDIR) ++ $(MKDIR) $(INCDIR) ++ $(INSTALL) $(BIN) $(BINDIR) ++ $(INSTALL) *.h $(INCDIR) ++ $(INSTALL) $(LIB) $(SLIB) $(SLIB).$(SOVERSION) $(LIBDIR) ++ ++install-strip: install ++ $(STRIP) $(BINDIR)/$(BIN) $(LIBDIR)/$(LIB) ++ ++cleanlocal: ++ rm -rf $(BIN) $(LIB) $(SLIB) $(OBJS) $(DESTDIR) ++ rm -fr gmon.out *.o a.out *.dSYM $(BIN) *~ *.a tabix.aux tabix.log \ ++ tabix.pdf *.class libtabix.*.dylib ++ cd htslib && $(MAKE) clean ++ ++clean: cleanlocal-recur diff --git a/easybuild/easyconfigs/f/flex/flex-2.6.4-FCC-4.5.0.eb b/easybuild/easyconfigs/f/flex/flex-2.6.4-FCC-4.5.0.eb new file mode 100644 index 00000000000..3baec387181 --- /dev/null +++ b/easybuild/easyconfigs/f/flex/flex-2.6.4-FCC-4.5.0.eb @@ -0,0 +1,32 @@ +name = 'flex' +version = '2.6.4' + +homepage = 'http://flex.sourceforge.net/' + +description = """ + Flex (Fast Lexical Analyzer) is a tool for generating scanners. A scanner, + sometimes called a tokenizer, is a program which recognizes lexical patterns + in text. +""" + +toolchain = {'name': 'FCC', 'version': '4.5.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/westes/flex/releases/download/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995'] + +builddependencies = [ + ('Bison', '3.7.6'), + ('help2man', '1.48.3'), +] + +dependencies = [ + ('M4', '1.4.18'), +] + +# glibc 2.26 requires _GNU_SOURCE defined to expose reallocarray in the correct +# header, see https://github.com/westes/flex/issues/241 +preconfigopts = 'export CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" && ' + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/f/flex/flex-2.6.4-GCCcore-10.3.0.eb b/easybuild/easyconfigs/f/flex/flex-2.6.4-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..cf948060781 --- /dev/null +++ b/easybuild/easyconfigs/f/flex/flex-2.6.4-GCCcore-10.3.0.eb @@ -0,0 +1,34 @@ +name = 'flex' +version = '2.6.4' + +homepage = 'http://flex.sourceforge.net/' + +description = """ + Flex (Fast Lexical Analyzer) is a tool for generating scanners. A scanner, + sometimes called a tokenizer, is a program which recognizes lexical patterns + in text. +""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/westes/flex/releases/download/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995'] + +builddependencies = [ + ('Bison', '3.7.6'), + ('help2man', '1.48.3'), + # use same binutils version that was used when building GCC toolchain + ('binutils', '2.36.1', '', True), +] + +dependencies = [ + ('M4', '1.4.18'), +] + +# glibc 2.26 requires _GNU_SOURCE defined to expose reallocarray in the correct +# header, see https://github.com/westes/flex/issues/241 +preconfigopts = 'export CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" && ' + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/f/flex/flex-2.6.4-GCCcore-11.1.0.eb b/easybuild/easyconfigs/f/flex/flex-2.6.4-GCCcore-11.1.0.eb new file mode 100644 index 00000000000..4ca376c2d43 --- /dev/null +++ b/easybuild/easyconfigs/f/flex/flex-2.6.4-GCCcore-11.1.0.eb @@ -0,0 +1,34 @@ +name = 'flex' +version = '2.6.4' + +homepage = 'http://flex.sourceforge.net/' + +description = """ + Flex (Fast Lexical Analyzer) is a tool for generating scanners. A scanner, + sometimes called a tokenizer, is a program which recognizes lexical patterns + in text. +""" + +toolchain = {'name': 'GCCcore', 'version': '11.1.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/westes/flex/releases/download/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995'] + +builddependencies = [ + ('Bison', '3.7.6'), + ('help2man', '1.48.3'), + # use same binutils version that was used when building GCC toolchain + ('binutils', '2.36.1', '', True), +] + +dependencies = [ + ('M4', '1.4.18'), +] + +# glibc 2.26 requires _GNU_SOURCE defined to expose reallocarray in the correct +# header, see https://github.com/westes/flex/issues/241 +preconfigopts = 'export CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" && ' + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/f/fontconfig/fontconfig-2.13.93-GCCcore-10.3.0.eb b/easybuild/easyconfigs/f/fontconfig/fontconfig-2.13.93-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..ce22e2d81eb --- /dev/null +++ b/easybuild/easyconfigs/f/fontconfig/fontconfig-2.13.93-GCCcore-10.3.0.eb @@ -0,0 +1,39 @@ +easyblock = 'ConfigureMake' + +name = 'fontconfig' +version = '2.13.93' + +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': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://www.freedesktop.org/software/fontconfig/release/'] +sources = [SOURCE_TAR_GZ] +checksums = ['0f302a18ee52dde0793fe38b266bf269dfe6e0c0ae140e30d72c6cca5dc08db5'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('gperf', '3.1'), + ('pkg-config', '0.29.2'), +] + +dependencies = [ + ('expat', '2.2.9'), + ('freetype', '2.10.4'), + ('util-linux', '2.36'), +] + +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-2021a.eb b/easybuild/easyconfigs/f/foss/foss-2021a.eb new file mode 100644 index 00000000000..83dca5bcec8 --- /dev/null +++ b/easybuild/easyconfigs/f/foss/foss-2021a.eb @@ -0,0 +1,27 @@ +easyblock = 'Toolchain' + +name = 'foss' +version = '2021a' + +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 = '10.3.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.1', '', ('GCC', local_gccver)), + ('FlexiBLAS', '3.0.4', '', ('GCC', local_gccver)), + ('FFTW', '3.3.9', '', local_comp_mpi_tc), + ('ScaLAPACK', '2.1.0', '-fb', local_comp_mpi_tc), +] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/f/freeglut/freeglut-3.2.1-GCCcore-10.2.0.eb b/easybuild/easyconfigs/f/freeglut/freeglut-3.2.1-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..45d3fbdee61 --- /dev/null +++ b/easybuild/easyconfigs/f/freeglut/freeglut-3.2.1-GCCcore-10.2.0.eb @@ -0,0 +1,43 @@ +easyblock = 'CMakeMake' + +name = 'freeglut' +version = '3.2.1' + +homepage = 'http://freeglut.sourceforge.net/' +description = "freeglut is a completely OpenSourced alternative to the OpenGL Utility Toolkit (GLUT) library." + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCE_TAR_GZ] +patches = ['freeglut-3.2.1_gcc10_fix-1.patch'] +checksums = [ + 'd4000e02102acaf259998c870e25214739d1f16f67f99cb35e4f46841399da68', # freeglut-3.2.1.tar.gz + 'f278467e03348b87d9b4ae69f491e503ab80c6d82433cf7468eac89b7f859d37', # freeglut-3.2.1_gcc10_fix-1.patch +] + +builddependencies = [ + ('binutils', '2.35'), + ('CMake', '3.18.4'), +] + +dependencies = [ + ('X11', '20201008'), + ('Mesa', '20.2.1'), + ('libGLU', '9.0.1'), +] + +configopts = ' -DX11_X11_LIB="$EBROOTX11/lib/libX11.%s" ' % SHLIB_EXT +configopts += ' -DX11_X11_INCLUDE_PATH="$EBROOTX11/include/X11" ' +configopts += ' -DX11_Xext_LIB="$EBROOTX11/lib/libXext.%s" ' % SHLIB_EXT +configopts += ' -DX11_Xrandr_LIB="$EBROOTX11/lib/libXrandr.%s" ' % SHLIB_EXT +configopts += ' -DX11_Xrandr_INCLUDE_PATH="$EBROOTX11/include/X11/extensions/" ' +configopts += ' -DX11_Xi_LIB="$EBROOTX11/lib/libXrandr.%s" ' % SHLIB_EXT +configopts += ' -DX11_Xi_INCLUDE_PATH="$EBROOTX11/include/X11/extensions/" ' + +sanity_check_paths = { + 'files': [('lib/libglut.a', 'lib64/libglut.a'), ('lib/libglut.%s' % SHLIB_EXT, 'lib64/libglut.%s' % SHLIB_EXT)], + 'dirs': ['include/GL'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/f/freeglut/freeglut-3.2.1_fix-GCC-10.patch b/easybuild/easyconfigs/f/freeglut/freeglut-3.2.1_fix-GCC-10.patch new file mode 100644 index 00000000000..1006bfbd755 --- /dev/null +++ b/easybuild/easyconfigs/f/freeglut/freeglut-3.2.1_fix-GCC-10.patch @@ -0,0 +1,49 @@ +fix compilation with GCC 10.x +see https://sourceforge.net/p/freeglut/code/1863/ + +--- a/trunk/freeglut/freeglut/src/fg_gl2.c ++++ b/trunk/freeglut/freeglut/src/fg_gl2.c +@@ -26,6 +26,20 @@ + #include + #include "fg_internal.h" + #include "fg_gl2.h" ++ ++#ifndef GL_ES_VERSION_2_0 ++/* GLES2 has the corresponding entry points built-in, and these fgh-prefixed ++ * names are defined in fg_gl2.h header to reference them, for any other case, ++ * define them as function pointers here. ++ */ ++FGH_PFNGLGENBUFFERSPROC fghGenBuffers; ++FGH_PFNGLDELETEBUFFERSPROC fghDeleteBuffers; ++FGH_PFNGLBINDBUFFERPROC fghBindBuffer; ++FGH_PFNGLBUFFERDATAPROC fghBufferData; ++FGH_PFNGLENABLEVERTEXATTRIBARRAYPROC fghEnableVertexAttribArray; ++FGH_PFNGLDISABLEVERTEXATTRIBARRAYPROC fghDisableVertexAttribArray; ++FGH_PFNGLVERTEXATTRIBPOINTERPROC fghVertexAttribPointer; ++#endif + + void FGAPIENTRY glutSetVertexAttribCoord3(GLint attrib) { + if (fgStructure.CurrentWindow != NULL) + +--- a/trunk/freeglut/freeglut/src/fg_gl2.h ++++ b/trunk/freeglut/freeglut/src/fg_gl2.h +@@ -67,13 +67,13 @@ + typedef void (APIENTRY *FGH_PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint); + typedef void (APIENTRY *FGH_PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); + +-FGH_PFNGLGENBUFFERSPROC fghGenBuffers; +-FGH_PFNGLDELETEBUFFERSPROC fghDeleteBuffers; +-FGH_PFNGLBINDBUFFERPROC fghBindBuffer; +-FGH_PFNGLBUFFERDATAPROC fghBufferData; +-FGH_PFNGLENABLEVERTEXATTRIBARRAYPROC fghEnableVertexAttribArray; +-FGH_PFNGLDISABLEVERTEXATTRIBARRAYPROC fghDisableVertexAttribArray; +-FGH_PFNGLVERTEXATTRIBPOINTERPROC fghVertexAttribPointer; ++extern FGH_PFNGLGENBUFFERSPROC fghGenBuffers; ++extern FGH_PFNGLDELETEBUFFERSPROC fghDeleteBuffers; ++extern FGH_PFNGLBINDBUFFERPROC fghBindBuffer; ++extern FGH_PFNGLBUFFERDATAPROC fghBufferData; ++extern FGH_PFNGLENABLEVERTEXATTRIBARRAYPROC fghEnableVertexAttribArray; ++extern FGH_PFNGLDISABLEVERTEXATTRIBARRAYPROC fghDisableVertexAttribArray; ++extern FGH_PFNGLVERTEXATTRIBPOINTERPROC fghVertexAttribPointer; + + # endif diff --git a/easybuild/easyconfigs/f/freeglut/freeglut-3.2.1_gcc10_fix-1.patch b/easybuild/easyconfigs/f/freeglut/freeglut-3.2.1_gcc10_fix-1.patch new file mode 100644 index 00000000000..85fe4d7a99f --- /dev/null +++ b/easybuild/easyconfigs/f/freeglut/freeglut-3.2.1_gcc10_fix-1.patch @@ -0,0 +1,53 @@ +Submitted By: Pierre Labastie +Date: 2020-05-19 +Initial Package Version: 3.2.1 +Upstream Status: Committed +Origin: Upstream https://sourceforge.net/p/freeglut/code/1863/ +Description: Fixes "multiple defition" issues + +--- a/src/fg_gl2.c ++++ b/src/fg_gl2.c +@@ -26,6 +26,20 @@ + #include + #include "fg_internal.h" + #include "fg_gl2.h" ++ ++#ifndef GL_ES_VERSION_2_0 ++/* GLES2 has the corresponding entry points built-in, and these fgh-prefixed ++ * names are defined in fg_gl2.h header to reference them, for any other case, ++ * define them as function pointers here. ++ */ ++FGH_PFNGLGENBUFFERSPROC fghGenBuffers; ++FGH_PFNGLDELETEBUFFERSPROC fghDeleteBuffers; ++FGH_PFNGLBINDBUFFERPROC fghBindBuffer; ++FGH_PFNGLBUFFERDATAPROC fghBufferData; ++FGH_PFNGLENABLEVERTEXATTRIBARRAYPROC fghEnableVertexAttribArray; ++FGH_PFNGLDISABLEVERTEXATTRIBARRAYPROC fghDisableVertexAttribArray; ++FGH_PFNGLVERTEXATTRIBPOINTERPROC fghVertexAttribPointer; ++#endif + + void FGAPIENTRY glutSetVertexAttribCoord3(GLint attrib) { + if (fgStructure.CurrentWindow != NULL) +--- a/src/fg_gl2.h ++++ b/src/fg_gl2.h +@@ -67,13 +67,13 @@ + typedef void (APIENTRY *FGH_PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint); + typedef void (APIENTRY *FGH_PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); + +-FGH_PFNGLGENBUFFERSPROC fghGenBuffers; +-FGH_PFNGLDELETEBUFFERSPROC fghDeleteBuffers; +-FGH_PFNGLBINDBUFFERPROC fghBindBuffer; +-FGH_PFNGLBUFFERDATAPROC fghBufferData; +-FGH_PFNGLENABLEVERTEXATTRIBARRAYPROC fghEnableVertexAttribArray; +-FGH_PFNGLDISABLEVERTEXATTRIBARRAYPROC fghDisableVertexAttribArray; +-FGH_PFNGLVERTEXATTRIBPOINTERPROC fghVertexAttribPointer; ++extern FGH_PFNGLGENBUFFERSPROC fghGenBuffers; ++extern FGH_PFNGLDELETEBUFFERSPROC fghDeleteBuffers; ++extern FGH_PFNGLBINDBUFFERPROC fghBindBuffer; ++extern FGH_PFNGLBUFFERDATAPROC fghBufferData; ++extern FGH_PFNGLENABLEVERTEXATTRIBARRAYPROC fghEnableVertexAttribArray; ++extern FGH_PFNGLDISABLEVERTEXATTRIBARRAYPROC fghDisableVertexAttribArray; ++extern FGH_PFNGLVERTEXATTRIBPOINTERPROC fghVertexAttribPointer; + + # endif + diff --git a/easybuild/easyconfigs/f/freetype-py/freetype-py-2.2.0-GCCcore-8.3.0-Python-3.7.4.eb b/easybuild/easyconfigs/f/freetype-py/freetype-py-2.2.0-GCCcore-8.3.0-Python-3.7.4.eb new file mode 100644 index 00000000000..9c6c6da3372 --- /dev/null +++ b/easybuild/easyconfigs/f/freetype-py/freetype-py-2.2.0-GCCcore-8.3.0-Python-3.7.4.eb @@ -0,0 +1,33 @@ +easyblock = 'PythonPackage' + +name = 'freetype-py' +version = '2.2.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/rougier/freetype-py' +description = "Python binding for the freetype library" + +toolchain = {'name': 'GCCcore', 'version': '8.3.0'} + +sources = [SOURCE_ZIP] +checksums = ['cf43716bc5246cd54a64b2238b942e8dc80b79eda92f814c720286fa6fab387a'] + +builddependencies = [ + ('binutils', '2.32'), +] +dependencies = [ + ('freetype', '2.10.1'), + ('Python', '3.7.4'), +] + +download_dep_fail = True +use_pip = True + +# drop [toml] from setup_requires, see https://github.com/rougier/freetype-py/pull/129 +preinstallopts = "sed -i 's/setuptools_scm\[toml\]/setuptools_scm/g' setup.py && " + +options = {'modulename': 'freetype'} + +sanity_pip_check = True + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/f/freetype/freetype-2.10.4-GCCcore-10.3.0.eb b/easybuild/easyconfigs/f/freetype/freetype-2.10.4-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..57a183eaabc --- /dev/null +++ b/easybuild/easyconfigs/f/freetype/freetype-2.10.4-GCCcore-10.3.0.eb @@ -0,0 +1,40 @@ +name = 'freetype' +version = '2.10.4' + +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': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = [ + GNU_SAVANNAH_SOURCE, + SOURCEFORGE_SOURCE, +] +sources = [SOURCE_TAR_GZ] +checksums = ['5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac'] + +builddependencies = [('binutils', '2.36.1')] + +dependencies = [ + ('bzip2', '1.0.8'), + ('libpng', '1.6.37'), + ('zlib', '1.2.11'), +] + +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'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/f/fsom/fsom-20141119-GCCcore-9.3.0.eb b/easybuild/easyconfigs/f/fsom/fsom-20141119-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..7781af6e261 --- /dev/null +++ b/easybuild/easyconfigs/f/fsom/fsom-20141119-GCCcore-9.3.0.eb @@ -0,0 +1,37 @@ +easyblock = 'ConfigureMake' + +name = 'fsom' +version = '20141119' +local_commit = 'a6ef318' + +homepage = 'https://github.com/ekg/fsom' +description = """A tiny C library for managing SOM (Self-Organizing Maps) neural networks.""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} + +github_account = 'ekg' +source_urls = [GITHUB_SOURCE] +sources = ['%s.tar.gz' % local_commit] +patches = [ + '%(name)s-20141119_build-libs.patch', + '%(name)s-20141119_fix-abs-overload.patch' +] +checksums = [ + '832ec7d0aff53e04fdb8bbaa5be2177de362afac6ed58a59a97abb7eef29cb60', # a6ef318.tar.gz + 'a6349a6462473f011260074eca6ad9826e3c6aeb20674b696c5848d10610cdd7', # fsom-20141119_build-libs.patch + '54dd6ae76033535fe1b0231142d8bd41a815950dc3fd269dc321f698d4973639', # fsom-20141119_fix-abs-overload.patch +] + +builddependencies = [('binutils', '2.34')] + +skipsteps = ['configure'] + +installopts = 'PREFIX=%(installdir)s ' + +sanity_check_paths = { + 'files': ['bin/%(name)s', 'lib/libfsom.%s' % SHLIB_EXT], + 'dirs': [], +} +sanity_check_commands = ["%(name)s --help"] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/f/fsom/fsom-20141119_build-libs.patch b/easybuild/easyconfigs/f/fsom/fsom-20141119_build-libs.patch new file mode 100644 index 00000000000..e5fab33e81b --- /dev/null +++ b/easybuild/easyconfigs/f/fsom/fsom-20141119_build-libs.patch @@ -0,0 +1,73 @@ +# Patch to build static and dynamic libraries. Based on PR by outpaddling: +# https://github.com/ekg/fsom/pull/4 + +diff -Nru fsom-a6ef318fbd347c53189384aef7f670c0e6ce89a3.orig/Makefile fsom-a6ef318fbd347c53189384aef7f670c0e6ce89a3/Makefile +--- fsom-a6ef318fbd347c53189384aef7f670c0e6ce89a3.orig/Makefile 2021-05-05 15:29:54.000000000 +0100 ++++ fsom-a6ef318fbd347c53189384aef7f670c0e6ce89a3/Makefile 2021-05-07 14:58:43.000000000 +0100 +@@ -1,5 +1,62 @@ +-all: +- g++ -w -O3 -pipe -fomit-frame-pointer -ffast-math fsom.c split.cpp main.cpp -o fsom -lm +-clean: +- rm -f *.o fsom ++# Use ?= to allow overriding from the env or command-line, e.g. ++# ++# make CXXFLAGS="-O3 -fPIC" install ++# ++# Package managers will override many of these variables automatically, so ++# this is aimed at making it easy to create packages (Debian packages, ++# FreeBSD ports, MacPorts, pkgsrc, etc.) ++ ++CXX ?= g++ ++CXXFLAGS ?= -w -O3 -pipe -fomit-frame-pointer -ffast-math ++ ++PREFIX ?= /usr/local ++STRIP ?= strip ++INSTALL ?= install -c ++MKDIR ?= mkdir -p ++AR ?= ar ++ARFLAGS ?= rs ++ ++BIN = fsom ++LIB = libfsom.a ++SOVERSION = 0 ++SLIB = libfsom.so ++OBJS = fsom.o split.o ++MAIN = main.o ++ ++BINDIR = $(DESTDIR)$(PREFIX)/bin ++INCDIR = $(DESTDIR)$(PREFIX)/include/fsom ++LIBDIR = $(DESTDIR)$(PREFIX)/lib ++ ++.SUFFIXES:.c .cpp .o .pico .so ++ ++.c.o .cpp.o: ++ $(CXX) $(CXXFLAGS) -I. -c -o $@ $< ++ ++.c.pico .cpp.pico: ++ $(CXX) $(CXXFLAGS) -I. -fPIC -c -o $@ $< + ++all: $(BIN) $(SLIB) $(LIB) ++ ++$(LIB): $(OBJS) ++ $(AR) $(ARFLAGS) $@ $^ ++ ++$(SLIB): $(OBJS:.o=.pico) ++ $(CXX) -shared -Wl,-soname,$(SLIB).$(SOVERSION) $(LDFLAGS) -o $@ $^ $(LIBS) ++ ln -sf $@ $(SLIB).$(SOVERSION) ++ ++$(BIN): $(OBJS) $(MAIN) ++ $(CXX) $(CXXFLAGS) -o $@ $^ $(LIBS) ++ ++install: all ++ $(MKDIR) $(BINDIR) ++ $(MKDIR) $(INCDIR) ++ $(MKDIR) $(LIBDIR) ++ $(INSTALL) $(BIN) $(BINDIR) ++ $(INSTALL) *.h $(INCDIR) ++ $(INSTALL) $(LIB) $(SLIB) $(SLIB).$(SOVERSION) $(LIBDIR) ++ ++install-strip: install ++ $(STRIP) $(BINDIR)/$(BIN) $(LIBDIR)/$(LIB) $(LIBDIR)/$(SLIB) ++ ++clean: ++ rm -rf *.o *.pico $(BIN) $(LIB) $(SLIB) $(DESTDIR) diff --git a/easybuild/easyconfigs/f/fsom/fsom-20141119_fix-abs-overload.patch b/easybuild/easyconfigs/f/fsom/fsom-20141119_fix-abs-overload.patch new file mode 100644 index 00000000000..e1c070923d0 --- /dev/null +++ b/easybuild/easyconfigs/f/fsom/fsom-20141119_fix-abs-overload.patch @@ -0,0 +1,18 @@ +Author: Jasper Grimm (UoY) +Cast size_t to int before calling abs() +diff -Nru fsom-a6ef318fbd347c53189384aef7f670c0e6ce89a3/fsom.c fsom-a6ef318fbd347c53189384aef7f670c0e6ce89a3.2/fsom.c +--- fsom-a6ef318fbd347c53189384aef7f670c0e6ce89a3/fsom.c 2014-11-19 11:03:18.000000000 +0000 ++++ fsom-a6ef318fbd347c53189384aef7f670c0e6ce89a3.2/fsom.c 2021-05-05 15:55:11.000000000 +0100 +@@ -591,10 +591,10 @@ + som_neuron_t *neuron; + for ( i=0; i < net->output_layer->neurons_rows; ++i ) + { +- dist_i = abs( x - i ); ++ dist_i = abs( int(x - i) ); + for ( j=0; j < net->output_layer->neurons_cols; ++j ) + { +- dist = pow( dist_i + abs ( y - j ), 4 ); ++ dist = pow( dist_i + abs ( int(y - j) ), 4 ); + inv_dist = (1.0 / ((double) dist + 1)) * l_rate; + neuron = net->output_layer->neurons[i][j]; + for ( k=0; k < net->input_layer->neurons_count; ++k ) diff --git a/easybuild/easyconfigs/g/GATK/GATK-4.2.0.0-GCCcore-10.2.0-Java-1.8.eb b/easybuild/easyconfigs/g/GATK/GATK-4.2.0.0-GCCcore-10.2.0-Java-1.8.eb new file mode 100644 index 00000000000..610d9d24aa1 --- /dev/null +++ b/easybuild/easyconfigs/g/GATK/GATK-4.2.0.0-GCCcore-10.2.0-Java-1.8.eb @@ -0,0 +1,52 @@ +## +# 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.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': '10.2.0'} + +source_urls = ['https://github.com/broadinstitute/gatk/releases/download/%(version)s/'] +sources = ['gatk-%(version)s.zip'] +checksums = ['dd11cc8e3bc7a23c2c226366428f0908c902765eabbc1c641c736c06b80aaf78'] + +dependencies = [ + ('Java', '1.8', '', True), + ('Python', '3.8.6'), +] + +modextrapaths = {'PATH': ''} + +sanity_check_paths = { + 'files': ['gatk'], + 'dirs': [], +} +sanity_check_commands = [ + "gatk --help", + "gatk --list", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GATK/GATK-4.2.0.0-GCCcore-10.2.0-Java-11.eb b/easybuild/easyconfigs/g/GATK/GATK-4.2.0.0-GCCcore-10.2.0-Java-11.eb new file mode 100644 index 00000000000..f11ab541250 --- /dev/null +++ b/easybuild/easyconfigs/g/GATK/GATK-4.2.0.0-GCCcore-10.2.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.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': '10.2.0'} + +source_urls = ['https://github.com/broadinstitute/gatk/releases/download/%(version)s/'] +sources = ['gatk-%(version)s.zip'] +checksums = ['dd11cc8e3bc7a23c2c226366428f0908c902765eabbc1c641c736c06b80aaf78'] + +dependencies = [ + ('Java', '11', '', True), + ('Python', '3.8.6'), +] + +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/GCC/GCC-10.3.0.eb b/easybuild/easyconfigs/g/GCC/GCC-10.3.0.eb new file mode 100644 index 00000000000..55678d3e7b5 --- /dev/null +++ b/easybuild/easyconfigs/g/GCC/GCC-10.3.0.eb @@ -0,0 +1,22 @@ +easyblock = 'Bundle' + +name = 'GCC' +version = '10.3.0' + +homepage = 'https://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = SYSTEM + +dependencies = [ + ('GCCcore', version), + # binutils built on top of GCCcore, which was built on top of (dummy-built) binutils + ('binutils', '2.36.1', '', ('GCCcore', version)), +] + +altroot = 'GCCcore' +altversion = 'GCCcore' + +# this bundle serves as a compiler-only toolchain, so it should be marked as compiler (important for HMNS) +moduleclass = 'compiler' diff --git a/easybuild/easyconfigs/g/GCC/GCC-11.1.0.eb b/easybuild/easyconfigs/g/GCC/GCC-11.1.0.eb new file mode 100644 index 00000000000..fa9e305dff4 --- /dev/null +++ b/easybuild/easyconfigs/g/GCC/GCC-11.1.0.eb @@ -0,0 +1,22 @@ +easyblock = 'Bundle' + +name = 'GCC' +version = '11.1.0' + +homepage = 'https://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = SYSTEM + +dependencies = [ + ('GCCcore', version), + # binutils built on top of GCCcore, which was built on top of (dummy-built) binutils + ('binutils', '2.36.1', '', ('GCCcore', version)), +] + +altroot = 'GCCcore' +altversion = 'GCCcore' + +# this bundle serves as a compiler-only toolchain, so it should be marked as compiler (important for HMNS) +moduleclass = 'compiler' diff --git a/easybuild/easyconfigs/g/GCCcore/GCCcore-10.2.0.eb b/easybuild/easyconfigs/g/GCCcore/GCCcore-10.2.0.eb index ead740a8624..c145d065992 100644 --- a/easybuild/easyconfigs/g/GCCcore/GCCcore-10.2.0.eb +++ b/easybuild/easyconfigs/g/GCCcore/GCCcore-10.2.0.eb @@ -32,7 +32,8 @@ sources = [ patches = [ 'GCCcore-6.2.0-fix-find-isl.patch', 'GCCcore-9.3.0_gmp-c99.patch', - 'GCC-10.2_fix-has-include-Fortran.patch', + 'GCCcore-10.2.0_fix-has-include-Fortran.patch', + 'GCCcore-10.2.0_fix-vec-builtins-conversion-on-ppc.patch', ] checksums = [ '27e879dccc639cd7b0cc08ed575c1669492579529b53c9ff27b0b96265fa867d', # gcc-10.2.0.tar.gz @@ -44,7 +45,9 @@ checksums = [ 'a25b6f7761bb61c0d8e2a183bcf51fbaaeeac26868dcfc015e3b16a33fe11705', # nvptx-tools-20180301.tar.gz '5ad909606d17d851c6ad629b4fddb6c1621844218b8d139fed18c502a7696c68', # GCCcore-6.2.0-fix-find-isl.patch '0e135e1cc7cec701beea9d7d17a61bab34cfd496b4b555930016b98db99f922e', # GCCcore-9.3.0_gmp-c99.patch - 'f94fa117f3401b28fda0741f3f45439c09dc956d1ed27f9a3ebe40c0e7e404b6', # GCC-10.2_fix-has-include-Fortran.patch + 'f94fa117f3401b28fda0741f3f45439c09dc956d1ed27f9a3ebe40c0e7e404b6', # GCCcore-10.2.0_fix-has-include-Fortran.patch + # GCCcore-10.2.0_fix-vec-builtins-conversion-on-ppc.patch + 'fb160374ba691d8267a19dee4268305a6e34123cab9e65176b5168c36e9f0962', ] builddependencies = [ diff --git a/easybuild/easyconfigs/g/GCCcore/GCC-10.2_fix-has-include-Fortran.patch b/easybuild/easyconfigs/g/GCCcore/GCCcore-10.2.0_fix-has-include-Fortran.patch similarity index 100% rename from easybuild/easyconfigs/g/GCCcore/GCC-10.2_fix-has-include-Fortran.patch rename to easybuild/easyconfigs/g/GCCcore/GCCcore-10.2.0_fix-has-include-Fortran.patch diff --git a/easybuild/easyconfigs/g/GCCcore/GCCcore-10.2.0_fix-vec-builtins-conversion-on-ppc.patch b/easybuild/easyconfigs/g/GCCcore/GCCcore-10.2.0_fix-vec-builtins-conversion-on-ppc.patch new file mode 100644 index 00000000000..94c1ab4a520 --- /dev/null +++ b/easybuild/easyconfigs/g/GCCcore/GCCcore-10.2.0_fix-vec-builtins-conversion-on-ppc.patch @@ -0,0 +1,124 @@ +From a8c8ff7712d2cce5d7f26224160d8422b87babfc Mon Sep 17 00:00:00 2001 +From: Peter Bergner +Date: Sat, 8 Aug 2020 11:54:48 -0500 +Subject: [PATCH] rs6000: MMA built-ins reject typedefs of MMA types + +We do not allow conversions between the MMA types and other types. +However, we are being too strict in not matching MMA types with +typdefs of those types. Use TYPE_CANONICAL to see through the +types to their canonical types before comparing them. + +2020-08-08 Peter Bergner + +gcc/ + PR target/96530 + * config/rs6000/rs6000.c (rs6000_invalid_conversion): Use canonical + types for type comparisons. Refactor code to simplify it. + +gcc/testsuite/ + PR target/96530 + * gcc.target/powerpc/pr96530.c: New test. + +(cherry picked from commit e2882e76089cecdc268d0835c54cabfa80b5b0be) +--- + gcc/config/rs6000/rs6000.c | 48 ++++++++++++++-------- + gcc/testsuite/gcc.target/powerpc/pr96530.c | 20 +++++++++ + 2 files changed, 51 insertions(+), 17 deletions(-) + create mode 100644 gcc/testsuite/gcc.target/powerpc/pr96530.c + +diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c +index a96aaeefefb97..8001fc7a55c37 100644 +--- a/gcc/config/rs6000/rs6000.c ++++ b/gcc/config/rs6000/rs6000.c +@@ -26733,34 +26733,48 @@ rs6000_cannot_substitute_mem_equiv_p (rtx mem) + static const char * + rs6000_invalid_conversion (const_tree fromtype, const_tree totype) + { +- if (element_mode (fromtype) != element_mode (totype)) ++ /* Make sure we're working with the canonical types. */ ++ if (TYPE_CANONICAL (fromtype) != NULL_TREE) ++ fromtype = TYPE_CANONICAL (fromtype); ++ if (TYPE_CANONICAL (totype) != NULL_TREE) ++ totype = TYPE_CANONICAL (totype); ++ ++ machine_mode frommode = TYPE_MODE (fromtype); ++ machine_mode tomode = TYPE_MODE (totype); ++ ++ if (frommode != tomode) + { + /* Do not allow conversions to/from PXImode and POImode types. */ +- if (TYPE_MODE (fromtype) == PXImode) ++ if (frommode == PXImode) + return N_("invalid conversion from type %<__vector_quad%>"); +- if (TYPE_MODE (totype) == PXImode) ++ if (tomode == PXImode) + return N_("invalid conversion to type %<__vector_quad%>"); +- if (TYPE_MODE (fromtype) == POImode) ++ if (frommode == POImode) + return N_("invalid conversion from type %<__vector_pair%>"); +- if (TYPE_MODE (totype) == POImode) ++ if (tomode == POImode) + return N_("invalid conversion to type %<__vector_pair%>"); + } + else if (POINTER_TYPE_P (fromtype) && POINTER_TYPE_P (totype)) + { ++ /* We really care about the modes of the base types. */ ++ frommode = TYPE_MODE (TREE_TYPE (fromtype)); ++ tomode = TYPE_MODE (TREE_TYPE (totype)); ++ + /* Do not allow conversions to/from PXImode and POImode pointer + types, except to/from void pointers. */ +- if (TYPE_MODE (TREE_TYPE (fromtype)) == PXImode +- && TYPE_MODE (TREE_TYPE (totype)) != VOIDmode) +- return N_("invalid conversion from type %<* __vector_quad%>"); +- if (TYPE_MODE (TREE_TYPE (totype)) == PXImode +- && TYPE_MODE (TREE_TYPE (fromtype)) != VOIDmode) +- return N_("invalid conversion to type %<* __vector_quad%>"); +- if (TYPE_MODE (TREE_TYPE (fromtype)) == POImode +- && TYPE_MODE (TREE_TYPE (totype)) != VOIDmode) +- return N_("invalid conversion from type %<* __vector_pair%>"); +- if (TYPE_MODE (TREE_TYPE (totype)) == POImode +- && TYPE_MODE (TREE_TYPE (fromtype)) != VOIDmode) +- return N_("invalid conversion to type %<* __vector_pair%>"); ++ if (frommode != tomode ++ && frommode != VOIDmode ++ && tomode != VOIDmode) ++ { ++ if (frommode == PXImode) ++ return N_("invalid conversion from type %<* __vector_quad%>"); ++ if (tomode == PXImode) ++ return N_("invalid conversion to type %<* __vector_quad%>"); ++ if (frommode == POImode) ++ return N_("invalid conversion from type %<* __vector_pair%>"); ++ if (tomode == POImode) ++ return N_("invalid conversion to type %<* __vector_pair%>"); ++ } + } + + /* Conversion allowed. */ +diff --git a/gcc/testsuite/gcc.target/powerpc/pr96530.c b/gcc/testsuite/gcc.target/powerpc/pr96530.c +new file mode 100644 +index 0000000000000..29bb9e3cc53eb +--- /dev/null ++++ b/gcc/testsuite/gcc.target/powerpc/pr96530.c +@@ -0,0 +1,20 @@ ++/* PR target/96530 */ ++/* { dg-do compile } */ ++/* { dg-require-effective-target power10_ok } */ ++/* { dg-options "-mdejagnu-cpu=power10 -O2" } */ ++ ++/* Verify we do not reject bar() below due to the typedef. */ ++ ++typedef __vector_quad vquad_t; ++ ++void ++foo (__vector_quad *dst) ++{ ++ __builtin_mma_xxsetaccz (dst); ++} ++ ++void ++bar (vquad_t *dst) ++{ ++ __builtin_mma_xxsetaccz (dst); ++} diff --git a/easybuild/easyconfigs/g/GCCcore/GCCcore-10.3.0.eb b/easybuild/easyconfigs/g/GCCcore/GCCcore-10.3.0.eb new file mode 100644 index 00000000000..3bd40126295 --- /dev/null +++ b/easybuild/easyconfigs/g/GCCcore/GCCcore-10.3.0.eb @@ -0,0 +1,62 @@ +easyblock = 'EB_GCC' + +name = 'GCCcore' +version = '10.3.0' + +homepage = 'https://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = SYSTEM + +source_urls = [ + 'https://ftpmirror.gnu.org/gnu/gcc/gcc-%(version)s', # GCC auto-resolving HTTP mirror + 'https://ftpmirror.gnu.org/gnu/gmp', # idem for GMP + 'https://ftpmirror.gnu.org/gnu/mpfr', # idem for MPFR + 'https://ftpmirror.gnu.org/gnu/mpc', # idem for MPC + 'ftp://gcc.gnu.org/pub/gcc/infrastructure/', # GCC dependencies + 'http://gcc.cybermirror.org/infrastructure/', # HTTP mirror for GCC dependencies + 'http://isl.gforge.inria.fr/', # original HTTP source for ISL + 'https://sourceware.org/pub/newlib/', # for newlib + 'https://github.com/MentorEmbedded/nvptx-tools/archive', # for nvptx-tools +] +sources = [ + 'gcc-%(version)s.tar.gz', + 'gmp-6.2.1.tar.bz2', + 'mpfr-4.1.0.tar.bz2', + 'mpc-1.2.1.tar.gz', + 'isl-0.23.tar.bz2', + 'newlib-4.1.0.tar.gz', + {'download_filename': 'd0524fb.tar.gz', 'filename': 'nvptx-tools-20210115.tar.gz'}, +] +patches = [ + 'GCCcore-6.2.0-fix-find-isl.patch', + 'GCCcore-9.3.0_gmp-c99.patch', +] +checksums = [ + '8fcf994811ad4e5c7ac908e8cf62af2c1982319e5551f62ae72016064dacdf16', # gcc-10.3.0.tar.gz + 'eae9326beb4158c386e39a356818031bd28f3124cf915f8c5b1dc4c7a36b4d7c', # gmp-6.2.1.tar.bz2 + 'feced2d430dd5a97805fa289fed3fc8ff2b094c02d05287fd6133e7f1f0ec926', # mpfr-4.1.0.tar.bz2 + '17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459', # mpc-1.2.1.tar.gz + 'c58922c14ae7d0791a77932f377840890f19bc486b653fa64eba7f1026fb214d', # isl-0.23.tar.bz2 + 'f296e372f51324224d387cc116dc37a6bd397198756746f93a2b02e9a5d40154', # newlib-4.1.0.tar.gz + '466abe1cef9cf294318ecb3c221593356f7a9e1674be987d576bc70d833d84a2', # nvptx-tools-20210115.tar.gz + '5ad909606d17d851c6ad629b4fddb6c1621844218b8d139fed18c502a7696c68', # GCCcore-6.2.0-fix-find-isl.patch + '0e135e1cc7cec701beea9d7d17a61bab34cfd496b4b555930016b98db99f922e', # GCCcore-9.3.0_gmp-c99.patch +] + +builddependencies = [ + ('M4', '1.4.18'), + ('binutils', '2.36.1'), +] + +languages = ['c', 'c++', 'fortran'] + +withisl = True +withnvptx = True + +# Perl is only required when building with NVPTX support +if withnvptx: + osdependencies = ['perl'] + +moduleclass = 'compiler' diff --git a/easybuild/easyconfigs/g/GCCcore/GCCcore-11.1.0.eb b/easybuild/easyconfigs/g/GCCcore/GCCcore-11.1.0.eb new file mode 100644 index 00000000000..3b4548535a2 --- /dev/null +++ b/easybuild/easyconfigs/g/GCCcore/GCCcore-11.1.0.eb @@ -0,0 +1,62 @@ +easyblock = 'EB_GCC' + +name = 'GCCcore' +version = '11.1.0' + +homepage = 'https://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = SYSTEM + +source_urls = [ + 'https://ftpmirror.gnu.org/gnu/gcc/gcc-%(version)s', # GCC auto-resolving HTTP mirror + 'https://ftpmirror.gnu.org/gnu/gmp', # idem for GMP + 'https://ftpmirror.gnu.org/gnu/mpfr', # idem for MPFR + 'https://ftpmirror.gnu.org/gnu/mpc', # idem for MPC + 'ftp://gcc.gnu.org/pub/gcc/infrastructure/', # GCC dependencies + 'http://gcc.cybermirror.org/infrastructure/', # HTTP mirror for GCC dependencies + 'http://isl.gforge.inria.fr/', # original HTTP source for ISL + 'https://sourceware.org/pub/newlib/', # for newlib + 'https://github.com/MentorEmbedded/nvptx-tools/archive', # for nvptx-tools +] +sources = [ + 'gcc-%(version)s.tar.gz', + 'gmp-6.2.1.tar.bz2', + 'mpfr-4.1.0.tar.bz2', + 'mpc-1.2.1.tar.gz', + 'isl-0.23.tar.bz2', + 'newlib-4.1.0.tar.gz', + {'download_filename': 'd0524fb.tar.gz', 'filename': 'nvptx-tools-20210115.tar.gz'}, +] +patches = [ + 'GCCcore-6.2.0-fix-find-isl.patch', + 'GCCcore-9.3.0_gmp-c99.patch', +] +checksums = [ + 'e7abb1b4cb58aaa67c5eb49d98e89d13363b8e258ac2b5b105c197b441c09f85', # gcc-11.1.0.tar.gz + 'eae9326beb4158c386e39a356818031bd28f3124cf915f8c5b1dc4c7a36b4d7c', # gmp-6.2.1.tar.bz2 + 'feced2d430dd5a97805fa289fed3fc8ff2b094c02d05287fd6133e7f1f0ec926', # mpfr-4.1.0.tar.bz2 + '17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459', # mpc-1.2.1.tar.gz + 'c58922c14ae7d0791a77932f377840890f19bc486b653fa64eba7f1026fb214d', # isl-0.23.tar.bz2 + 'f296e372f51324224d387cc116dc37a6bd397198756746f93a2b02e9a5d40154', # newlib-4.1.0.tar.gz + '466abe1cef9cf294318ecb3c221593356f7a9e1674be987d576bc70d833d84a2', # nvptx-tools-20210115.tar.gz + '5ad909606d17d851c6ad629b4fddb6c1621844218b8d139fed18c502a7696c68', # GCCcore-6.2.0-fix-find-isl.patch + '0e135e1cc7cec701beea9d7d17a61bab34cfd496b4b555930016b98db99f922e', # GCCcore-9.3.0_gmp-c99.patch +] + +builddependencies = [ + ('M4', '1.4.18'), + ('binutils', '2.36.1'), +] + +languages = ['c', 'c++', 'fortran'] + +withisl = True +withnvptx = True + +# Perl is only required when building with NVPTX support +if withnvptx: + osdependencies = ['perl'] + +moduleclass = 'compiler' diff --git a/easybuild/easyconfigs/g/GDB/GDB-10.2-GCCcore-10.3.0.eb b/easybuild/easyconfigs/g/GDB/GDB-10.2-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..a036bbe3b5d --- /dev/null +++ b/easybuild/easyconfigs/g/GDB/GDB-10.2-GCCcore-10.3.0.eb @@ -0,0 +1,44 @@ +easyblock = 'ConfigureMake' + +name = 'GDB' +version = '10.2' + +homepage = 'https://www.gnu.org/software/gdb/gdb.html' +description = "The GNU Project Debugger" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_XZ] +checksums = ['aaa1223d534c9b700a8bec952d9748ee1977513f178727e1bee520ee000b4f29'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('makeinfo', '6.7'), +] + +dependencies = [ + ('zlib', '1.2.11'), + ('libreadline', '8.1'), + ('ncurses', '6.2'), + ('expat', '2.2.9'), + ('Python', '3.9.5'), + ('ISL', '0.23'), + ('MPC', '1.2.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.2-GCCcore-10.2.0.eb b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.2-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..85810e2394d --- /dev/null +++ b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.2-GCCcore-10.2.0.eb @@ -0,0 +1,52 @@ +easyblock = 'ConfigureMake' + +name = 'GDRCopy' +version = '2.2' + +homepage = 'https://github.com/NVIDIA/gdrcopy' +description = "A low-latency GPU memory copy library based on NVIDIA GPUDirect RDMA technology." + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} +toolchainopts = {'pic': True} + +github_account = 'NVIDIA' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['e4be119809391b18c735346d24b3b398dd9421cbff47ef12befbae40d61da45f'] + +builddependencies = [ + ('binutils', '2.35'), + ('Autotools', '20200321'), + ('pkg-config', '0.29.2'), +] + +# 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/GDRCopy/GDRCopy-2.2-GCCcore-10.3.0.eb b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.2-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..e9750d55747 --- /dev/null +++ b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.2-GCCcore-10.3.0.eb @@ -0,0 +1,52 @@ +easyblock = 'ConfigureMake' + +name = 'GDRCopy' +version = '2.2' + +homepage = 'https://github.com/NVIDIA/gdrcopy' +description = "A low-latency GPU memory copy library based on NVIDIA GPUDirect RDMA technology." + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} +toolchainopts = {'pic': True} + +github_account = 'NVIDIA' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['e4be119809391b18c735346d24b3b398dd9421cbff47ef12befbae40d61da45f'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('Autotools', '20210128'), + ('pkg-config', '0.29.2'), +] + +# 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/GLM/GLM-0.9.9.8-GCCcore-10.2.0.eb b/easybuild/easyconfigs/g/GLM/GLM-0.9.9.8-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..1031e4d395d --- /dev/null +++ b/easybuild/easyconfigs/g/GLM/GLM-0.9.9.8-GCCcore-10.2.0.eb @@ -0,0 +1,33 @@ +easyblock = 'CMakeMake' + +name = 'GLM' +version = '0.9.9.8' + +homepage = 'https://github.com/g-truc/glm' +description = """ +OpenGL Mathematics (GLM) is a header only C++ mathematics library for graphics +software based on the OpenGL Shading Language (GLSL) specifications.""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['https://github.com/g-truc/glm/archive/'] +sources = ['%(version)s.tar.gz'] +patches = [ + 'GLM-0.9.9.8_fix_missing_install.patch', +] +checksums = [ + '7d508ab72cb5d43227a3711420f06ff99b0a0cb63ee2f93631b162bfe1fe9592', # 0.9.9.8.tar.gz + '1cc199f9d66679b0b5e9a9fbe20bca0d9b15760fa172ca8759dd15bab35802ca', # GLM-0.9.9.8_fix_missing_install.patch +] + +builddependencies = [ + ('binutils', '2.35'), + ('CMake', '3.18.4'), +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['include/glm/gtc', 'include/glm/gtx'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/g/GLPK/GLPK-5.0-GCCcore-10.3.0.eb b/easybuild/easyconfigs/g/GLPK/GLPK-5.0-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..c5c9978373d --- /dev/null +++ b/easybuild/easyconfigs/g/GLPK/GLPK-5.0-GCCcore-10.3.0.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'GLPK' +version = '5.0' + +homepage = 'https://www.gnu.org/software/glpk/' +description = """The GLPK (GNU Linear Programming Kit) package is intended for + solving large-scale linear programming (LP), + mixed integer programming (MIP), and other related problems. + It is a set of routines written in ANSI C + and organized in the form of a callable library.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['4a1013eebb50f728fc601bdd833b0b2870333c3b3e5a816eeba921d95bec6f15'] + +builddependencies = [('binutils', '2.36.1')] + +dependencies = [('GMP', '6.2.1')] + +configopts = "--with-gmp" + +sanity_check_paths = { + 'files': ['bin/glpsol', 'include/glpk.h'] + + ['lib/libglpk.%s' % x for x in [SHLIB_EXT, 'a']], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.68.2-GCCcore-10.3.0.eb b/easybuild/easyconfigs/g/GLib/GLib-2.68.2-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..14e8b9b0979 --- /dev/null +++ b/easybuild/easyconfigs/g/GLib/GLib-2.68.2-GCCcore-10.3.0.eb @@ -0,0 +1,52 @@ +easyblock = 'MesonNinja' + +name = 'GLib' +version = '2.68.2' + +homepage = 'https://www.gtk.org/' +description = """GLib is one of the base libraries of the GTK+ project""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = [FTPGNOME_SOURCE] +sources = [SOURCELOWER_TAR_XZ] +checksums = ['ecc7798a9cc034eabdfd7f246e6dd461cdbf1175fcc2e9867cc7da7b7309e0fb'] + +builddependencies = [ + # Python is required for building against GLib, at least when + # gdbus-codegen or one of the other python scripts are used. + # Since Meson 0.50 and later are Python >=3.5 only we can't build + # Python specific versions of GLib that uses Python 2.x + # thus Python should not be a runtime dependency for GLib. + # Packages that use GLib should either have an explicit + # (build)dependency on Python or it will use the system version + # EasyBuild itself uses. + ('Python', '3.9.5'), + ('Meson', '0.58.0'), + ('Ninja', '1.10.2'), + ('binutils', '2.36.1'), + ('pkg-config', '0.29.2'), +] + +dependencies = [ + ('libffi', '3.3'), + ('gettext', '0.21'), + ('libxml2', '2.9.10'), + ('PCRE2', '10.36'), + ('util-linux', '2.36'), +] + +# avoid using hardcoded path to Python binary in build step +preconfigopts = "export PYTHON=python && " + +configopts = "--buildtype=release --default-library=both " + +fix_python_shebang_for = ['bin/*'] + +sanity_check_paths = { + 'files': ['lib/libglib-%(version_major)s.0.a', 'lib/libglib-%%(version_major)s.0.%s' % SHLIB_EXT], + 'dirs': ['bin', 'include'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/GMP/GMP-6.2.1-GCCcore-10.3.0.eb b/easybuild/easyconfigs/g/GMP/GMP-6.2.1-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..827e778e0c4 --- /dev/null +++ b/easybuild/easyconfigs/g/GMP/GMP-6.2.1-GCCcore-10.3.0.eb @@ -0,0 +1,40 @@ +easyblock = 'ConfigureMake' + +name = 'GMP' +version = '6.2.1' + +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': '10.3.0'} +toolchainopts = {'precise': True, 'pic': True} + +source_urls = ['https://ftp.gnu.org/gnu/%(namelower)s'] +sources = [SOURCELOWER_TAR_BZ2] +checksums = ['eae9326beb4158c386e39a356818031bd28f3124cf915f8c5b1dc4c7a36b4d7c'] + +builddependencies = [ + ('Autotools', '20210128'), + ('binutils', '2.36.1'), +] + +# 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/GROMACS/GROMACS-2021.2-fosscuda-2020b.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-2021.2-fosscuda-2020b.eb new file mode 100644 index 00000000000..13d039f411a --- /dev/null +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-2021.2-fosscuda-2020b.eb @@ -0,0 +1,87 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2012-2016 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC, +# Ghent University / The Francis Crick Institute +# Authors:: +# * Wiktor Jurkowski +# * Fotis Georgatos +# * George Tsouloupas +# * Kenneth Hoste +# * Adam Huffman +# * Ake Sandgren +# * J. Sassmannshausen +# * Dugan Witherick +# License:: MIT/GPL + +name = 'GROMACS' +version = '2021.2' + +homepage = 'https://www.gromacs.org' +description = """ +GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the +Newtonian equations of motion for systems with hundreds to millions of +particles. + +This is a GPU enabled build, containing both MPI and threadMPI builds. + +It also contains the gmxapi extension for the single precision MPI build. +""" + +toolchain = {'name': 'fosscuda', 'version': '2020b'} +toolchainopts = {'openmp': True, 'usempi': True} + +source_urls = [ + 'https://ftp.gromacs.org/pub/gromacs/', + 'ftp://ftp.gromacs.org/pub/gromacs/', +] +sources = [SOURCELOWER_TAR_GZ] +patches = [ + 'GROMACS-2019_fix_omp_num_threads_and_google_test_death_style_in_tests.patch', + 'GROMACS-2019_increase_test_timeout_for_GPU.patch', + 'GROMACS-2021_fix_gmxapi_gmx_allowed_cmd_name.patch', + 'GROMACS-2020.5_fix_threads_gpu_Gmxapitests.patch', +] +checksums = [ + 'd940d865ea91e78318043e71f229ce80d32b0dc578d64ee5aa2b1a4be801aadb', # gromacs-2021.2.tar.gz + # GROMACS-2019_fix_omp_num_threads_and_google_test_death_style_in_tests.patch + '406f5edd204be812f095a6f07ebc2673c5f6ddf1b1c1428fd336a80b9c629275', + # GROMACS-2019_increase_test_timeout_for_GPU.patch + '0d16f53d428155197a0ed0b0974ce03422f199d7c463c4a9156a3b99e3c86234', + # GROMACS-2021_fix_gmxapi_gmx_allowed_cmd_name.patch + 'b7ffb292ec362e033db1bedd340353f0644dbaae872127750f3dda1ac7e87d49', + # GROMACS-2020.5_fix_threads_gpu_Gmxapitests.patch + '89fbb7e2754de45573632c74f53563bb979df9758c949238a35865391d6b53fb', +] + +builddependencies = [ + ('CMake', '3.18.4'), + ('scikit-build', '0.11.1'), +] + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), + ('networkx', '2.5'), +] + +exts_defaultclass = 'PythonPackage' + +exts_default_options = { + 'source_urls': [PYPI_SOURCE], + 'use_pip': True, + 'download_dep_fail': True, + 'sanity_pip_check': True, +} + +exts_list = [ + ('gmxapi', '0.2.0', { + 'preinstallopts': "export GMXTOOLCHAINDIR=%(installdir)s/share/cmake/gromacs_mpi && ", + 'checksums': ['3954bf123da12fc60bcfaeed8263f5e2d3e16e5136c2bb5c8207b20fa7406788'], + }), +] + +modextrapaths = { + 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages', +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GST-plugins-base/GST-plugins-base-1.18.4-GCC-10.2.0.eb b/easybuild/easyconfigs/g/GST-plugins-base/GST-plugins-base-1.18.4-GCC-10.2.0.eb new file mode 100644 index 00000000000..c14fb9e9efa --- /dev/null +++ b/easybuild/easyconfigs/g/GST-plugins-base/GST-plugins-base-1.18.4-GCC-10.2.0.eb @@ -0,0 +1,43 @@ +easyblock = 'MesonNinja' + +name = 'GST-plugins-base' +version = '1.18.4' + +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': '10.2.0'} + +source_urls = ['https://gstreamer.freedesktop.org/src/gst-plugins-base'] +sources = [SOURCELOWER_TAR_XZ] +checksums = ['29e53229a84d01d722f6f6db13087231cdf6113dd85c25746b9b58c3d68e8323'] + +builddependencies = [ + ('Meson', '0.55.3'), + ('Ninja', '1.10.1'), + ('GObject-Introspection', '1.66.1'), + ('gettext', '0.21'), + ('pkg-config', '0.29.2'), + ('Bison', '3.7.1'), +] + +dependencies = [ + ('zlib', '1.2.11'), + ('GLib', '2.66.1'), + ('GTK+', '3.24.23'), + ('GStreamer', '1.18.4'), + ('Gdk-Pixbuf', '2.40.0'), + ('X11', '20201008'), + ('Mesa', '20.2.1'), +] + +sanity_check_paths = { + 'files': ['bin/gst-%s-1.0' % x for x in ['discoverer', 'play', 'device-monitor']] + + ['lib/libgst%s-1.0.%s' % (x, SHLIB_EXT) for x in ['app', 'audio', 'video']], + 'dirs': ['include', 'share'] +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/GStreamer/GStreamer-1.18.4-GCC-10.2.0.eb b/easybuild/easyconfigs/g/GStreamer/GStreamer-1.18.4-GCC-10.2.0.eb new file mode 100644 index 00000000000..a4c5be90916 --- /dev/null +++ b/easybuild/easyconfigs/g/GStreamer/GStreamer-1.18.4-GCC-10.2.0.eb @@ -0,0 +1,44 @@ +easyblock = 'MesonNinja' + +name = 'GStreamer' +version = '1.18.4' + +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': '10.2.0'} + +source_urls = ['https://gstreamer.freedesktop.org/src/gstreamer'] +sources = [SOURCELOWER_TAR_XZ] +checksums = ['9aeec99b38e310817012aa2d1d76573b787af47f8a725a65b833880a094dfbc5'] + +builddependencies = [ + ('Meson', '0.55.3'), + ('Ninja', '1.10.1'), + ('Bison', '3.7.1'), + ('flex', '2.6.4'), + ('GObject-Introspection', '1.66.1'), + ('gettext', '0.21'), + ('pkg-config', '0.29.2'), +] + +dependencies = [ + ('zlib', '1.2.11'), + ('GMP', '6.2.0'), + ('GSL', '2.6'), + ('GLib', '2.66.1'), + ('GTK+', '3.24.23'), + ('libunwind', '1.4.0'), +] + +configopts = '-Dlibdw=disabled ' + +sanity_check_paths = { + 'files': [], + 'dirs': ['include', 'share', 'libexec'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/GTDB-Tk/GTDB-Tk-1.5.0-intel-2020b.eb b/easybuild/easyconfigs/g/GTDB-Tk/GTDB-Tk-1.5.0-intel-2020b.eb new file mode 100644 index 00000000000..0ff0be7b625 --- /dev/null +++ b/easybuild/easyconfigs/g/GTDB-Tk/GTDB-Tk-1.5.0-intel-2020b.eb @@ -0,0 +1,43 @@ +# Updated from previous config +# Author: Pavel Grochal (INUITS) +# License: GPLv2 + +easyblock = 'PythonPackage' + +name = 'GTDB-Tk' +version = '1.5.0' + +homepage = 'https://github.com/Ecogenomics/GTDBTk' +description = "A toolkit for assigning objective taxonomic classifications to bacterial and archaeal genomes." + +toolchain = {'name': 'intel', 'version': '2020b'} + +source_urls = ['https://pypi.python.org/packages/source/g/gtdbtk'] +sources = ['gtdbtk-%(version)s.tar.gz'] +checksums = ['3251b5c2ac1f6b904f4a57fd07a77302988d98d5f2a1cbe7b8232c7652dcfd0c'] + +dependencies = [ + ('Python', '3.8.6'), + ('DendroPy', '4.5.2'), + ('matplotlib', '3.3.3'), + ('prodigal', '2.6.3'), + ('HMMER', '3.3.2'), + ('pplacer', '1.1.alpha19', '', True), + ('FastANI', '1.33'), + ('FastTree', '2.1.11'), + ('tqdm', '4.56.2'), +] + +download_dep_fail = True +use_pip = True + +options = {'modulename': 'gtdbtk'} + +sanity_check_paths = { + 'files': ['bin/gtdbtk'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/Geant4-data/Geant4-data-20210510.eb b/easybuild/easyconfigs/g/Geant4-data/Geant4-data-20210510.eb new file mode 100644 index 00000000000..21a1b6c002d --- /dev/null +++ b/easybuild/easyconfigs/g/Geant4-data/Geant4-data-20210510.eb @@ -0,0 +1,47 @@ +easyblock = 'Tarball' +name = 'Geant4-data' +version = '20210510' + +homepage = 'https://geant4.cern.ch/' +description = """Datasets for Geant4.""" + +toolchain = SYSTEM + +local_datasets = [ + ('G4NDL', '4.6', 'G4NDL', 'G4NEUTRONHPDATA'), # NDL + ('G4EMLOW', '7.13', 'G4EMLOW', 'G4LEDATA'), # Low energy electromagnetics + ('PhotonEvaporation', '5.7', 'G4PhotonEvaporation', 'G4LEVELGAMMADATA'), # Photon evaporation + ('RadioactiveDecay', '5.6', 'G4RadioactiveDecay', 'G4RADIOACTIVEDATA'), # Radioisotopes + ('G4SAIDDATA', '2.0', 'G4SAIDDATA', 'G4SAIDXSDATA'), # SAID + ('G4PARTICLEXS', '3.1.1', 'G4PARTICLEXS', 'G4PARTICLEXSDATA'), # Particle XS - replaces Neutron XS + ('G4PII', '1.3', 'G4PII', 'G4PIIDATA'), # PII + ('RealSurface', '2.2', 'G4RealSurface', 'G4REALSURFACEDATA'), # Optical Surfaces + ('G4INCL', '1.0', 'G4INCL', 'G4INCLDATA'), # INCL + ('G4ENSDFSTATE', '2.3', 'G4ENSDFSTATE', 'G4ENSDFSTATEDATA'), # ENSDFSTATE +] + +source_urls = ['https://cern.ch/geant4-data/datasets'] +sources = ['%s.%s.tar.gz' % (x[2], x[1]) for x in local_datasets] +checksums = [ + '9d287cf2ae0fb887a2adce801ee74fb9be21b0d166dab49bcbee9408a5145408', # G4NDL.4.6.tar.gz + '374896b649be776c6c10fea80abe6cf32f9136df0b6ab7c7236d571d49fb8c69', # G4EMLOW.7.13.tar.gz + '761e42e56ffdde3d9839f9f9d8102607c6b4c0329151ee518206f4ee9e77e7e5', # G4PhotonEvaporation.5.7.tar.gz + '3886077c9c8e5a98783e6718e1c32567899eeb2dbb33e402d4476bc2fe4f0df1', # G4RadioactiveDecay.5.6.tar.gz + '1d26a8e79baa71e44d5759b9f55a67e8b7ede31751316a9e9037d80090c72e91', # G4SAIDDATA.2.0.tar.gz + '66c17edd6cb6967375d0497add84c2201907a25e33db782ebc26051d38f2afda', # G4PARTICLEXS.3.1.1.tar.gz + '6225ad902675f4381c98c6ba25fc5a06ce87549aa979634d3d03491d6616e926', # G4PII.1.3.tar.gz + '9954dee0012f5331267f783690e912e72db5bf52ea9babecd12ea22282176820', # G4RealSurface.2.2.tar.gz + '716161821ae9f3d0565fbf3c2cf34f4e02e3e519eb419a82236eef22c2c4367d', # G4INCL.1.0.tar.gz + '9444c5e0820791abd3ccaace105b0e47790fadce286e11149834e79c4a8e9203', # G4ENSDFSTATE.2.3.tar.gz +] + +start_dir = '..' + +modextrapaths = {x[3]: x[0] + x[1] for x in local_datasets} + +sanity_check_paths = { + 'files': [], + 'dirs': [x[0] + x[1] for x in local_datasets], +} + +moduleclass = 'phys' diff --git a/easybuild/easyconfigs/g/Geant4/Geant4-10.7.1-GCC-10.2.0.eb b/easybuild/easyconfigs/g/Geant4/Geant4-10.7.1-GCC-10.2.0.eb new file mode 100644 index 00000000000..1227d2ac3af --- /dev/null +++ b/easybuild/easyconfigs/g/Geant4/Geant4-10.7.1-GCC-10.2.0.eb @@ -0,0 +1,26 @@ +name = 'Geant4' +version = '10.7.1' + +homepage = 'https://geant4.cern.ch/' +description = """Geant4 is a toolkit for the simulation of the passage of particles through matter. + Its areas of application include high energy, nuclear and accelerator physics, + as well as studies in medical and space science.""" + +toolchain = {'name': 'GCC', 'version': '10.2.0'} + +github_account = 'Geant4' +source_urls = [GITHUB_SOURCE] +sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCELOWER_TAR_GZ}] +checksums = ['a22800227713b46ba0b71bc674f6c937e5cc0cf17a6becf4a10d5ef90693a60b'] + +builddependencies = [('CMake', '3.18.4')] +dependencies = [ + ('expat', '2.2.9'), + # recommended CLHEP version, see https://geant4-data.web.cern.ch/geant4-data/ReleaseNotes/ReleaseNotes4.10.6.html + ('CLHEP', '2.4.4.0'), +] + +configopts = "-DEXPAT_LIBRARY=$EBROOTEXPAT/lib/libexpat.so -DEXPAT_INCLUDE_DIR=$EBROOTEXPAT/include" +configopts += " -DGEANT4_INSTALL_DATA=OFF" + +moduleclass = 'phys' diff --git a/easybuild/easyconfigs/g/GeneMark-ET/GeneMark-ET-4.65-GCCcore-10.2.0.eb b/easybuild/easyconfigs/g/GeneMark-ET/GeneMark-ET-4.65-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..f6cc1e00920 --- /dev/null +++ b/easybuild/easyconfigs/g/GeneMark-ET/GeneMark-ET-4.65-GCCcore-10.2.0.eb @@ -0,0 +1,27 @@ +easyblock = 'Tarball' + +name = 'GeneMark-ET' +version = '4.65' + +homepage = 'http://exon.gatech.edu/GeneMark' +description = "Eukaryotic gene prediction suite with automatic training" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +# download via http://exon.gatech.edu/GeneMark/license_download.cgi +# rename gmes_linux_64.tar.gz to gmes_linux_64-4.65.tar.gz +sources = ['gmes_linux_64-%(version)s.tar.gz'] +checksums = ['62ea2dfa1954ab25edcc118dbeaeacf15924274fb9ed47bc54716cfd15ad04fe'] + +dependencies = [('Perl', '5.32.0')] + +fix_perl_shebang_for = ['*.pl'] + +sanity_check_paths = { + 'files': ['gmes.cfg', 'gmes_petap.pl'], + 'dirs': ['lib'], +} + +modextrapaths = {'PATH': ''} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/Genome_Profiler/Genome_Profiler-2.1-foss-2016b-Perl-5.24.0.eb b/easybuild/easyconfigs/g/Genome_Profiler/Genome_Profiler-2.1-foss-2016b-Perl-5.24.0.eb index fd97fa26520..93bffdd51d9 100644 --- a/easybuild/easyconfigs/g/Genome_Profiler/Genome_Profiler-2.1-foss-2016b-Perl-5.24.0.eb +++ b/easybuild/easyconfigs/g/Genome_Profiler/Genome_Profiler-2.1-foss-2016b-Perl-5.24.0.eb @@ -16,16 +16,13 @@ description = """Genome Profiler (GeP) is a program to perform whole-genome mult toolchain = {'name': 'foss', 'version': '2016b'} source_urls = ['https://sourceforge.net/projects/genomeprofiler/files/Genome_Profiler_%(version)s/'] -sources = [{'download_filename': 'GeP.pl', 'filename': 'GeP-%(version)s.pl'}] +sources = [{'download_filename': 'GeP.pl', 'filename': 'GeP-%(version)s.pl', 'extract_cmd': "cp %s ."}] checksums = ['212624965f84316663499751b117608e30b2074675c0e8d38aa8c5f8f6a86a99'] dependencies = [ ('Perl', '5.24.0'), ] -# skip uncompress because this is plain .pl file -skipsteps = ['source'] - cmds_map = [("GeP.*\.pl", "cp %(source)s GeP.pl")] files_to_copy = [(['GeP.pl'], 'bin')] diff --git a/easybuild/easyconfigs/g/GffCompare/GffCompare-0.11.6-GCCcore-9.3.0.eb b/easybuild/easyconfigs/g/GffCompare/GffCompare-0.11.6-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..579f86118c8 --- /dev/null +++ b/easybuild/easyconfigs/g/GffCompare/GffCompare-0.11.6-GCCcore-9.3.0.eb @@ -0,0 +1,44 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild + +easyblock = 'MakeCp' + +name = 'GffCompare' +version = '0.11.6' + +# Some docs also at GitHub site - this is referred to as canonical +homepage = 'https://ccb.jhu.edu/software/stringtie/gffcompare.shtml' +description = """GffCompare provides classification and reference annotation mapping and + matching statistics for RNA-Seq assemblies (transfrags) or other generic GFF/GTF files.""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} +toolchainopts = {'pic': True} + +# Switched to GitHub sources owing to SSL error at original download site +source_urls = ['https://github.com/gpertea/gffcompare/releases/download/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = [ + ( + # GitHub source + '21d37a43b6db1deb30fc5bc5198121a0b65e33edd5be2f55ae6100a34ee5df16', + # Original source + '6095d97301a9c8dbd5e99e8c42860ce5953546277a09a0b46c835019815f6174', + ) + +] + +builddependencies = [('binutils', '2.34')] + +buildopts = " release" + +files_to_copy = ['%(namelower)s', 'LICENSE', 'README.md'] + +modextrapaths = {'PATH': ''} + +sanity_check_paths = { + 'files': ['%(namelower)s'], + 'dirs': [] +} + +sanity_check_commands = ['%(namelower)s -v'] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/Go/Go-1.16.3.eb b/easybuild/easyconfigs/g/Go/Go-1.16.3.eb new file mode 100644 index 00000000000..991f7d4e3ea --- /dev/null +++ b/easybuild/easyconfigs/g/Go/Go-1.16.3.eb @@ -0,0 +1,22 @@ +easyblock = 'Tarball' + +name = 'Go' +version = '1.16.3' + +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/'] +sources = ['%(namelower)s%(version)s.linux-amd64.tar.gz'] +checksums = ['951a3c7c6ce4e56ad883f97d9db74d3d6d80d5fec77455c6ada6c1f7ac4776d2'] + +sanity_check_paths = { + 'files': ['bin/go', 'bin/gofmt'], + 'dirs': ['api', 'doc', 'lib', 'pkg'], +} + +modextravars = {'GOROOT': '%(installdir)s'} +moduleclass = 'compiler' diff --git a/easybuild/easyconfigs/g/Graphviz/Graphviz-2.47.0-GCCcore-10.2.0-Java-11.eb b/easybuild/easyconfigs/g/Graphviz/Graphviz-2.47.0-GCCcore-10.2.0-Java-11.eb new file mode 100644 index 00000000000..fe7ec68c3fe --- /dev/null +++ b/easybuild/easyconfigs/g/Graphviz/Graphviz-2.47.0-GCCcore-10.2.0-Java-11.eb @@ -0,0 +1,91 @@ +easyblock = 'ConfigureMake' + +name = 'Graphviz' +version = '2.47.0' +versionsuffix = '-Java-%(javaver)s' +local_pyver_major = '3' + +homepage = 'https://www.graphviz.org/' +description = """Graphviz is open source graph visualization software. Graph visualization + is a way of representing structural information as diagrams of + abstract graphs and networks. It has important applications in networking, + bioinformatics, software engineering, database and web design, machine learning, + and in visual interfaces for other technical domains.""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} +toolchainopts = {'cstd': 'c++11'} + +source_urls = ['https://gitlab.com/graphviz/graphviz/-/archive/%(version)s'] +sources = [SOURCELOWER_TAR_GZ] +patches = ['Graphviz-2.42.2_skip-install-data-hook.patch'] +checksums = [ + '4b7f61c7c04f39b67b2c87977633d61d9f72ee6f93ff4376acdce140128431d4', # graphviz-2.47.0.tar.gz + '3d06544c435a6255f6a8f3b36df3102060667b50ffd72e4942bbe546b9363859', # Graphviz-2.42.2_skip-install-data-hook.patch +] + +builddependencies = [ + ('Autotools', '20200321'), + ('binutils', '2.35'), + ('Bison', '3.7.1'), + ('flex', '2.6.4'), + ('SWIG', '4.0.2'), + ('pkg-config', '0.29.2'), +] + +dependencies = [ + ('Java', '11', '', True), + ('Python', '3.8.6'), + ('FriBidi', '1.0.10'), + ('Gdk-Pixbuf', '2.40.0'), + ('Ghostscript', '9.53.3'), + ('GTS', '0.7.6'), + ('libgd', '2.3.0'), + ('Pango', '1.47.0'), + ('Perl', '5.32.0'), + ('Qt5', '5.14.2'), + ('Tcl', '8.6.10'), + ('zlib', '1.2.11'), +] + +preconfigopts = './autogen.sh NOCONFIG && ' + +configopts = '--enable-python%s=yes ' % local_pyver_major +configopts += '--enable-guile=no --enable-lua=no --enable-ocaml=no ' +configopts += '--enable-r=no --enable-ruby=no --enable-php=no ' +# Use ltdl from libtool in EB +configopts += '--enable-ltdl --without-included-ltdl --disable-ltdl-install ' +configopts += '--with-ltdl-include=$EBROOTLIBTOOL/include --with-ltdl-lib=$EBROOTLIBTOOL/lib ' +# Override the hardcoded paths to Java libraries +configopts += '--with-javaincludedir=$JAVA_HOME/include --with-javaincludedir=$JAVA_HOME/include/linux ' +configopts += '--with-javalibdir=$JAVA_HOME/lib' + +prebuildopts = 'qmake -o cmd/gvedit/qMakefile cmd/gvedit/gvedit.pro && ' + +postinstallcmds = ['%(installdir)s/bin/dot -c'] # Writes plugin configuration + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['acyclic', 'bcomps', 'ccomps', 'cluster', 'diffimg', 'dijkstra', 'dot', + 'dot_builtins', 'dotty', 'edgepaint', 'gc', 'gml2gv', 'graphml2gv', 'gv2gml', + 'gvcolor', 'gvedit', 'gvgen', 'gvmap', 'gvmap.sh', 'gvpack', 'gvpr', 'gxl2gv', + 'lefty', 'lneato', 'mm2gv', 'nop', 'prune', 'sccmap', 'tred', 'unflatten', + 'vimdot']] + + ['lib/%s.%s' % (x, SHLIB_EXT) for x in ['libcdt', 'libcgraph', 'libgvc', 'libgvpr', 'liblab_gamut', + 'libpathplan', 'libxdot']], + 'dirs': ['include', 'lib/graphviz', 'lib/graphviz/java', 'lib/graphviz/python%s' % local_pyver_major, + 'lib/pkgconfig', 'share'] +} + +sanity_check_commands = [ + ("test ! -d $EBROOTTCL/lib/*/graphviz", ''), + ("test ! -d $EBROOTTCL/lib64/*/graphviz", ''), + ('python', '-c "import gv"'), +] + +modextrapaths = { + 'CLASSPATH': 'lib/graphviz/java', + 'LD_LIBRARY_PATH': 'lib/graphviz/java', + 'PYTHONPATH': 'lib/graphviz/python%s' % local_pyver_major, + 'TCLLIBPATH': 'lib/graphviz/tcl', +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/Groovy/Groovy-2.5.9-Java-11.eb b/easybuild/easyconfigs/g/Groovy/Groovy-2.5.9-Java-11.eb index 6a3d6bee0a0..657d3ba6662 100644 --- a/easybuild/easyconfigs/g/Groovy/Groovy-2.5.9-Java-11.eb +++ b/easybuild/easyconfigs/g/Groovy/Groovy-2.5.9-Java-11.eb @@ -11,7 +11,7 @@ familiar and easy to learn syntax.""" toolchain = SYSTEM -source_urls = ['https://dl.bintray.com/groovy/maven/'] +source_urls = ['https://groovy.jfrog.io/artifactory/dist-release-local/groovy-zips/'] sources = ['apache-groovy-sdk-%(version)s.zip'] checksums = ['6660c5e98226faea4de6c191bc3e33eb9159e8f4251d1a38de612a8e2030cae3'] diff --git a/easybuild/easyconfigs/g/Gurobi/Gurobi-9.0.1_use-eb-python-gurobi-shell.patch b/easybuild/easyconfigs/g/Gurobi/Gurobi-9.0.1_use-eb-python-gurobi-shell.patch new file mode 100644 index 00000000000..29910369535 --- /dev/null +++ b/easybuild/easyconfigs/g/Gurobi/Gurobi-9.0.1_use-eb-python-gurobi-shell.patch @@ -0,0 +1,18 @@ +Use the Python environement from EB in the Guroby Python shell +autho: Alex Domingo (Vrije Universiteit Brussel) +--- a/bin/gurobi.sh 2020-01-29 00:56:47.000000000 +0100 ++++ b/bin/gurobi.sh 2021-01-11 16:07:28.180329000 +0100 +@@ -7,11 +7,6 @@ + echo + fi + +-PATH=$GUROBI_HOME/bin:$PATH;export PATH +-LD_LIBRARY_PATH=$GUROBI_HOME/lib:$LD_LIBRARY_PATH;export LD_LIBRARY_PATH +-PYTHONHOME=$GUROBI_HOME;export PYTHONHOME +-PYTHONPATH=$GUROBI_HOME:$PYTHONPATH;export PYTHONPATH ++PYTHONSTARTUP=$EBROOTGUROBI/lib/gurobi.py;export PYTHONSTARTUP + +-PYTHONSTARTUP=$PYTHONHOME/lib/gurobi.py;export PYTHONSTARTUP +- +-$PYTHONHOME/bin/python3.7 "$@" ++$EBROOTPYTHON/bin/python "$@" diff --git a/easybuild/easyconfigs/g/Gurobi/Gurobi-9.0.3-GCCcore-10.2.0.eb b/easybuild/easyconfigs/g/Gurobi/Gurobi-9.0.3-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..d0177b1ef1d --- /dev/null +++ b/easybuild/easyconfigs/g/Gurobi/Gurobi-9.0.3-GCCcore-10.2.0.eb @@ -0,0 +1,37 @@ +name = 'Gurobi' +version = '9.0.3' + +homepage = 'https://www.gurobi.com' +description = """The Gurobi Optimizer is a state-of-the-art solver for mathematical programming. +The solvers in the Gurobi Optimizer were designed from the ground up to exploit modern +architectures and multi-core processors, using the most advanced implementations of the +latest algorithms.""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['https://packages.gurobi.com/%(version_major_minor)s/'] +sources = ['%(namelower)s%(version)s_linux64.tar.gz'] +patches = ['%(name)s-9.0.1_use-eb-python-gurobi-shell.patch'] +checksums = [ + '4dfdb5fb1ca3bed5a230dd74b9da45d86abae934e6781d14dcfbc97c1c47dc2f', # gurobi9.0.3_linux64.tar.gz + 'b4a998182d05f969d1de519f4746ac9e0c6646dd35233231b6ab5963dfa67d01', # Gurobi-9.0.1_use-eb-python-gurobi-shell.patch +] + +builddependencies = [ + ('binutils', '2.35'), +] + +dependencies = [ + ('Python', '3.8.6'), +] + +# remove bundled Python interpreter in favour of the dependency in EB +postinstallcmds = ['rm %(installdir)s/bin/python*'] + +license_file = HOME + '/licenses/%(name)s.lic' + +modloadmsg = """Gurobi shell based on Python %(pyver)s can be launched with command `gurobi.sh` +Gurobi Python Interface can be loaded in Python %(pyver)s with 'import gurobipy' +""" + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/g/Gurobi/Gurobi-9.0.3.eb b/easybuild/easyconfigs/g/Gurobi/Gurobi-9.0.3.eb new file mode 100644 index 00000000000..8dfb03630fc --- /dev/null +++ b/easybuild/easyconfigs/g/Gurobi/Gurobi-9.0.3.eb @@ -0,0 +1,20 @@ +name = 'Gurobi' +version = '9.0.3' + +homepage = 'https://www.gurobi.com' +description = """The Gurobi Optimizer is a state-of-the-art solver for mathematical programming. +The solvers in the Gurobi Optimizer were designed from the ground up to exploit modern +architectures and multi-core processors, using the most advanced implementations of the +latest algorithms.""" + +toolchain = SYSTEM + +source_urls = ['https://packages.gurobi.com/%(version_major_minor)s/'] +sources = ['%(namelower)s%(version)s_linux64.tar.gz'] +checksums = ['4dfdb5fb1ca3bed5a230dd74b9da45d86abae934e6781d14dcfbc97c1c47dc2f'] + +license_file = HOME + '/licenses/%(name)s/%(namelower)s.lic' + +sanity_check_commands = ["gurobi_cl --help"] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/g/Gurobi/Gurobi-9.1.1-GCCcore-10.2.0.eb b/easybuild/easyconfigs/g/Gurobi/Gurobi-9.1.1-GCCcore-10.2.0.eb index 9e05e99db0f..890b1c101cb 100644 --- a/easybuild/easyconfigs/g/Gurobi/Gurobi-9.1.1-GCCcore-10.2.0.eb +++ b/easybuild/easyconfigs/g/Gurobi/Gurobi-9.1.1-GCCcore-10.2.0.eb @@ -11,7 +11,11 @@ toolchain = {'name': 'GCCcore', 'version': '10.2.0'} source_urls = ['https://packages.gurobi.com/%(version_major_minor)s/'] sources = ['%(namelower)s%(version)s_linux64.tar.gz'] -checksums = ['ba57a83656bf6ab481e1114f5596664385a88a35a47ae51aa2ac307f58aaa44a'] +patches = ['%(name)s-9.0.1_use-eb-python-gurobi-shell.patch'] +checksums = [ + 'ba57a83656bf6ab481e1114f5596664385a88a35a47ae51aa2ac307f58aaa44a', # gurobi9.1.1_linux64.tar.gz + 'b4a998182d05f969d1de519f4746ac9e0c6646dd35233231b6ab5963dfa67d01', # Gurobi-9.0.1_use-eb-python-gurobi-shell.patch +] builddependencies = [ ('binutils', '2.35'), @@ -21,8 +25,13 @@ dependencies = [ ('Python', '3.8.6'), ] -sanity_check_commands = ["gurobi_cl --help"] +# remove bundled Python interpreter in favour of the dependency in EB +postinstallcmds = ['rm %(installdir)s/bin/python*'] license_file = HOME + '/licenses/%(name)s/%(namelower)s.lic' +modloadmsg = """Gurobi shell based on Python %(pyver)s can be launched with command `gurobi.sh` +Gurobi Python Interface can be loaded in Python %(pyver)s with 'import gurobipy' +""" + moduleclass = 'math' diff --git a/easybuild/easyconfigs/g/Gurobi/Gurobi-9.1.2-GCCcore-10.2.0.eb b/easybuild/easyconfigs/g/Gurobi/Gurobi-9.1.2-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..c505ea66ee9 --- /dev/null +++ b/easybuild/easyconfigs/g/Gurobi/Gurobi-9.1.2-GCCcore-10.2.0.eb @@ -0,0 +1,37 @@ +name = 'Gurobi' +version = '9.1.2' + +homepage = 'https://www.gurobi.com' +description = """The Gurobi Optimizer is a state-of-the-art solver for mathematical programming. +The solvers in the Gurobi Optimizer were designed from the ground up to exploit modern +architectures and multi-core processors, using the most advanced implementations of the +latest algorithms.""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['https://packages.gurobi.com/%(version_major_minor)s/'] +sources = ['%(namelower)s%(version)s_linux64.tar.gz'] +patches = ['%(name)s-9.0.1_use-eb-python-gurobi-shell.patch'] +checksums = [ + '7f60bd675f79476bb2b32cd632aa1d470f8246f2b033b7652d8de86f6e7e429b', # gurobi9.1.2_linux64.tar.gz + 'b4a998182d05f969d1de519f4746ac9e0c6646dd35233231b6ab5963dfa67d01', # Gurobi-9.0.1_use-eb-python-gurobi-shell.patch +] + +builddependencies = [ + ('binutils', '2.35'), +] + +dependencies = [ + ('Python', '3.8.6'), +] + +# remove bundled Python interpreter in favour of the dependency in EB +postinstallcmds = ['rm %(installdir)s/bin/python*'] + +license_file = HOME + '/licenses/%(name)s.lic' + +modloadmsg = """Gurobi shell based on Python %(pyver)s can be launched with command `gurobi.sh` +Gurobi Python Interface can be loaded in Python %(pyver)s with 'import gurobipy' +""" + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/g/Gurobi/Gurobi-9.1.2.eb b/easybuild/easyconfigs/g/Gurobi/Gurobi-9.1.2.eb new file mode 100644 index 00000000000..1328419a5cf --- /dev/null +++ b/easybuild/easyconfigs/g/Gurobi/Gurobi-9.1.2.eb @@ -0,0 +1,20 @@ +name = 'Gurobi' +version = '9.1.2' + +homepage = 'https://www.gurobi.com' +description = """The Gurobi Optimizer is a state-of-the-art solver for mathematical programming. +The solvers in the Gurobi Optimizer were designed from the ground up to exploit modern +architectures and multi-core processors, using the most advanced implementations of the +latest algorithms.""" + +toolchain = SYSTEM + +source_urls = ['https://packages.gurobi.com/%(version_major_minor)s/'] +sources = ['%(namelower)s%(version)s_linux64.tar.gz'] +checksums = ['7f60bd675f79476bb2b32cd632aa1d470f8246f2b033b7652d8de86f6e7e429b'] + +license_file = HOME + '/licenses/%(name)s/%(namelower)s.lic' + +sanity_check_commands = ["gurobi_cl --help"] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/g/garnett/garnett-0.1.20-foss-2020b-R-4.0.3.eb b/easybuild/easyconfigs/g/garnett/garnett-0.1.20-foss-2020b-R-4.0.3.eb new file mode 100644 index 00000000000..6e85259214e --- /dev/null +++ b/easybuild/easyconfigs/g/garnett/garnett-0.1.20-foss-2020b-R-4.0.3.eb @@ -0,0 +1,51 @@ +easyblock = 'Bundle' + +name = 'garnett' +local_commit = 'bfca215' +version = '0.1.20' +versionsuffix = '-R-%(rver)s' + +homepage = 'https://cole-trapnell-lab.github.io/garnett' +description = """Garnett is a software package that faciliates automated cell type classification from single-cell +expression data.""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +dependencies = [ + ('R', '4.0.3'), + ('R-bundle-Bioconductor', '3.12', versionsuffix), + ('Monocle3', '0.2.3', versionsuffix), +] + +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 = [ + ('rly', '1.6.2', { + 'checksums': ['22837a41586b6c7afb3d09b1bf71af9189a8bb846a77c55823a2dc98c72b65ad'], + }), + (name, version, { + 'source_urls': ['https://github.com/cole-trapnell-lab/garnett/archive/'], + 'sources': [{ + 'download_filename': '%s.tar.gz' % local_commit, + 'filename': '%%(name)s-%%(version)s-%s.tar.gz' % local_commit, + }], + 'checksums': ['e103de561f5c846ba6ee1ec0f09ca9127d9e392a457bb860929258601485c260'], + }), +] + +modextrapaths = {'R_LIBS_SITE': ''} + +sanity_check_paths = { + 'files': [], + 'dirs': [name], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/gawk/gawk-5.1.0-GCC-10.2.0.eb b/easybuild/easyconfigs/g/gawk/gawk-5.1.0-GCC-10.2.0.eb new file mode 100644 index 00000000000..03d927882b5 --- /dev/null +++ b/easybuild/easyconfigs/g/gawk/gawk-5.1.0-GCC-10.2.0.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'gawk' +version = '5.1.0' + +homepage = 'https://www.gnu.org/software/gawk' +description = """The awk utility interprets a special-purpose programming language that makes it possible to handle +simple data-reformatting jobs with just a few lines of code.""" + +toolchain = {'name': 'GCC', 'version': '10.2.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['03a0360edcd84bec156fe211bbc4fc8c78790973ce4e8b990a11d778d40b1a26'] + +sanity_check_paths = { + 'files': ['bin/gawk'], + 'dirs': [], +} + +sanity_check_commands = ["gawk --help"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/g/gdc-client/gdc-client-1.6.0-GCCcore-10.2.0.eb b/easybuild/easyconfigs/g/gdc-client/gdc-client-1.6.0-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..10bf3fc5603 --- /dev/null +++ b/easybuild/easyconfigs/g/gdc-client/gdc-client-1.6.0-GCCcore-10.2.0.eb @@ -0,0 +1,82 @@ +easyblock = 'PythonBundle' + +name = 'gdc-client' +version = '1.6.0' + +homepage = 'https://gdc.nci.nih.gov/access-data/gdc-data-transfer-tool' +description = """The gdc-client provides several convenience functions over + the GDC API which provides general download/upload via HTTPS.""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +builddependencies = [('binutils', '2.35')] + +dependencies = [ + ('Python', '3.8.6'), + ('libxslt', '1.1.34'), + ('libyaml', '0.2.5'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('cryptography', '2.8', { + 'checksums': ['3cda1f0ed8747339bbdf71b9f38ca74c7b592f24f65cdb3ab3765e4b02871651'], + }), + ('jsonschema', '2.6.0', { + 'checksums': ['6ff5f3180870836cae40f06fa10419f557208175f13ad7bc26caa77beb1f6e02'], + }), + ('lxml', '4.4.2', { + 'checksums': ['eff69ddbf3ad86375c344339371168640951c302450c5d3e9936e98d6459db06'], + }), + ('ndg-httpsclient', '0.5.0', { + 'modulename': 'ndg', + 'source_tmpl': 'ndg_httpsclient-%(version)s.tar.gz', + 'checksums': ['c009f5430790936b3a97eaf9f968516664d97e146ab2bda991f0caadb7cc088b'], + }), + ('pyasn1', '0.4.3', { + 'checksums': ['fb81622d8f3509f0026b0683fe90fea27be7284d3826a5f2edf97f69151ab0fc'], + }), + ('pyOpenSSL', '18.0.0', { + 'modulename': 'OpenSSL', + 'checksums': ['6488f1423b00f73b7ad5167885312bb0ce410d3312eb212393795b53c8caa580'], + }), + ('PyYAML', '3.13', { + 'modulename': 'yaml', + 'checksums': ['3ef3092145e9b70e3ddd2c7ad59bdd0252a94dfe3949721633e41344de00a6bf'], + }), + ('intervaltree', '3.0.2', { + 'checksums': ['cb4f61c81dcb4fea6c09903f3599015a83c9bdad1f0bbd232495e6681e19e273'], + }), + ('termcolor', '1.1.0', { + 'checksums': ['1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b'], + }), + ('idna', '2.8', { + 'checksums': ['c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407'], + }), + ('requests', '2.22.0', { + 'checksums': ['11e007a8a2aa0323f5a921e9e6a2d7e4e67d9877e85773fba9ba6419025cbeb4'], + }), + ('python-utils', '2.5.6', { + 'modulename': 'python_utils', + 'checksums': ['352d5b1febeebf9b3cdb9f3c87a3b26ef22d3c9e274a8ec1e7048ecd2fac4349'], + }), + ('progressbar2', '3.43.1', { + 'modulename': 'progressbar', + 'checksums': ['87a403d2f80f6e48b7b55559feae5c75b903941f55189b22207b574fe5e62276'], + }), + (name, version, { + 'modulename': 'gdc_client', + 'source_tmpl': '%(version)s.tar.gz', + 'source_urls': ['https://github.com/NCI-GDC/gdc-client/archive'], + 'checksums': ['491da966d344b144233d828c82175871803f270ce35c9fd81bc03e48859c0d82'], + }), +] + +sanity_check_paths = { + 'files': ['bin/gdc-client'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/g/gemmi/gemmi-0.4.5-GCCcore-10.2.0.eb b/easybuild/easyconfigs/g/gemmi/gemmi-0.4.5-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..c45a19e3d00 --- /dev/null +++ b/easybuild/easyconfigs/g/gemmi/gemmi-0.4.5-GCCcore-10.2.0.eb @@ -0,0 +1,47 @@ +# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2021/05 +easyblock = 'CMakePythonPackage' + +name = 'gemmi' +version = '0.4.5' + +homepage = 'https://gemmi.readthedocs.io/' +description = """ +Gemmi is a library, accompanied by a set of programs, developed primarily for +use in macromolecular crystallography (MX). For working with: + +macromolecular models (content of PDB, PDBx/mmCIF and mmJSON files), refinement +restraints (CIF files), reflection data (MTZ and mmCIF formats), data on a 3D +grid (electron density maps, masks, MRC/CCP4 format) crystallographic symmetry. +Parts of this library can be useful in structural bioinformatics (for symmetry- +aware analysis of protein models), and in other molecular-structure sciences +that use CIF files (we have the fastest open-source CIF parser). +""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} +toolchainopts = {'opt': True} + +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['af462dbb3a2a144b1437700637e78c0365a5273dc5bffadeea80f73765ab15c7'] + +github_account = 'project-gemmi' + +runtest = 'cpptest ftest ftest_grid test' + +configopts = '-DUSE_PYTHON=1 ' +configopts += '-DUSE_FORTRAN=1 ' +configopts += '-DPYTHON_INSTALL_DIR=%(installdir)s/lib/python%(pyshortver)s/site-packages ' + +builddependencies = [ + ('pybind11', '2.6.0'), + ('CMake', '3.18.4'), + ('binutils', '2.35') +] +dependencies = [('Python', '3.8.6')] + +sanity_check_paths = { + 'files': ['bin/gemmi'], + 'dirs': ['bin', 'lib', 'include/gemmi'] +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/gengetopt/gengetopt-2.23-GCCcore-10.2.0.eb b/easybuild/easyconfigs/g/gengetopt/gengetopt-2.23-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..27bd0e0e7a6 --- /dev/null +++ b/easybuild/easyconfigs/g/gengetopt/gengetopt-2.23-GCCcore-10.2.0.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'gengetopt' +version = '2.23' + +homepage = 'https://www.gnu.org/software/gengetopt/gengetopt.html' +description = "Gengetopt is a tool to write command line option parsing code for C programs." + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_XZ] +checksums = ['b941aec9011864978dd7fdeb052b1943535824169d2aa2b0e7eae9ab807584ac'] + +builddependencies = [ + ('binutils', '2.35'), + ('makeinfo', '6.7'), +] + +sanity_check_paths = { + 'files': ['bin/gengetopt'], + 'dirs': ['share'], +} + +sanity_check_commands = ["gengetopt --help"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/g/georges/georges-2019.2-foss-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/g/georges/georges-2019.2-foss-2019b-Python-3.7.4.eb new file mode 100644 index 00000000000..bb41ff7398f --- /dev/null +++ b/easybuild/easyconfigs/g/georges/georges-2019.2-foss-2019b-Python-3.7.4.eb @@ -0,0 +1,46 @@ +easyblock = 'PythonBundle' + +name = 'georges' +version = '2019.2' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/ULB-Metronu/georges' +description = """Georges the lemur opinionated particle accelerator modeling Python package. +Also a thin wrapper over MAD-X/PTC, BDSim and G4Beamline.""" + +toolchain = {'name': 'foss', 'version': '2019b'} + +builddependencies = [ + ('pkg-config', '0.29.2'), +] + +dependencies = [ + ('Python', '3.7.4'), + ('SciPy-bundle', '2019.10', versionsuffix), + ('LMfit', '1.0.0', versionsuffix), + ('matplotlib', '3.1.1', versionsuffix), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('mistune', '0.8.4', { + 'checksums': ['59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e'], + }), + ('m2r', '0.2.1', { + 'checksums': ['bf90bad66cda1164b17e5ba4a037806d2443f2a4d5ddc9f6a5554a0322aaed99'], + }), + ('pyDOE', '0.3.8', { + 'modulename': '%(name)s', + 'source_tmpl': '%(name)s-%(version)s.zip', + 'checksums': ['cbd6f14ae26d3c9f736013205f53ea1191add4567033c3ee77b7dd356566c4b6'], + }), + (name, version, { + 'source_tmpl': '%(version)s.tar.gz', + 'source_urls': ['https://github.com/ULB-Metronu/georges/archive/'], + 'checksums': ['5801c0655101e46401f4c052edc72e1dbf278fca76acf66a3ee3b10820527276'], + }), +] + +moduleclass = 'phys' diff --git a/easybuild/easyconfigs/g/gettext/gettext-0.21-GCCcore-10.3.0.eb b/easybuild/easyconfigs/g/gettext/gettext-0.21-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..10bb6ad3a5a --- /dev/null +++ b/easybuild/easyconfigs/g/gettext/gettext-0.21-GCCcore-10.3.0.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.21' + +homepage = 'https://www.gnu.org/software/gettext/' +description = """GNU 'gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['c77d0da3102aec9c07f43671e60611ebff89a996ef159497ce8e59d075786b12'] + +builddependencies = [('binutils', '2.36.1')] + +dependencies = [ + ('libxml2', '2.9.10'), + ('ncurses', '6.2'), +] + +configopts = '--without-emacs --with-libxml2-prefix=$EBROOTLIBXML2' + +sanity_check_paths = { + 'files': ['bin/gettext', 'lib/libasprintf.a', 'lib/libasprintf.%s' % SHLIB_EXT, + 'lib/libgettextpo.a', 'lib/libgettextpo.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/g/gffread/gffread-0.11.6-GCCcore-9.3.0.eb b/easybuild/easyconfigs/g/gffread/gffread-0.11.6-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..3343d6f2de1 --- /dev/null +++ b/easybuild/easyconfigs/g/gffread/gffread-0.11.6-GCCcore-9.3.0.eb @@ -0,0 +1,33 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +easyblock = 'MakeCp' + +name = 'gffread' +version = '0.11.6' + +homepage = 'https://ccb.jhu.edu/software/stringtie/gff.shtml#gffread' +description = """GFF/GTF parsing utility providing format conversions, +region filtering, FASTA sequence extraction and more.""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://ccb.jhu.edu/software/stringtie/dl/'] +sources = [SOURCE_TAR_GZ] +checksums = ['05841bfa0ad6eade333ee5fe153197ab74cf300e80d43c255e480f6b1d5da1ab'] + +builddependencies = [('binutils', '2.34')] + +buildopts = " release" + +files_to_copy = ['%(name)s', 'LICENSE'] + +modextrapaths = {'PATH': ''} + +sanity_check_paths = { + 'files': ['%(name)s'], + 'dirs': [] +} + +sanity_check_commands = ['%(name)s '] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/giflib/giflib-5.2.1-GCCcore-10.3.0.eb b/easybuild/easyconfigs/g/giflib/giflib-5.2.1-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..87350331e4d --- /dev/null +++ b/easybuild/easyconfigs/g/giflib/giflib-5.2.1-GCCcore-10.3.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': '10.3.0'} + +builddependencies = [('binutils', '2.36.1')] + +skipsteps = ['configure'] + +installopts = 'PREFIX=%(installdir)s' + +sanity_check_paths = { + 'files': ['bin/giftool'], + 'dirs': [] +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/g/glew/glew-2.1.0-GCCcore-10.2.0.eb b/easybuild/easyconfigs/g/glew/glew-2.1.0-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..bee02ca561b --- /dev/null +++ b/easybuild/easyconfigs/g/glew/glew-2.1.0-GCCcore-10.2.0.eb @@ -0,0 +1,36 @@ +# Contribution from the Crick HPC team +# uploaded by J. Sassmannshausen + +easyblock = 'ConfigureMake' + +name = 'glew' +version = '2.1.0' + +homepage = 'http://glew.sourceforge.net/' +description = """The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source +C/C++ extension loading library. GLEW provides efficient run-time mechanisms +for determining which OpenGL extensions are supported on the target platform.""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%(name)s-%(version)s.tgz'] +checksums = ['04de91e7e6763039bc11940095cd9c7f880baba82196a7765f727ac05a993c95'] + +builddependencies = [('binutils', '2.35')] + +dependencies = [('Mesa', '20.2.1')] + +skipsteps = ['configure'] + +preinstallopts = 'GLEW_PREFIX=%(installdir)s GLEW_DEST=%(installdir)s ' +install_cmd = 'make install.all' + +sanity_check_paths = { + 'files': ['lib/libGLEW.a', 'lib/libGLEW.%s' % SHLIB_EXT] + + ['bin/glewinfo', 'bin/visualinfo'] + + ['include/GL/%s.h' % h for h in ['glew', 'glxew', 'wglew']], + 'dirs': ['', ] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/g/glew/glew-2.2.0-GCCcore-10.2.0-egl.eb b/easybuild/easyconfigs/g/glew/glew-2.2.0-GCCcore-10.2.0-egl.eb new file mode 100644 index 00000000000..61dd4c138ad --- /dev/null +++ b/easybuild/easyconfigs/g/glew/glew-2.2.0-GCCcore-10.2.0-egl.eb @@ -0,0 +1,43 @@ +# Contribution from the Crick HPC team +# uploaded by J. Sassmannshausen +# th77embl updated to GCCcore 10.2.0 +easyblock = 'ConfigureMake' +versionsuffix = '-egl' +# available: -glx, -osmesa, -egl acc. to @Micket's suggestion: +# GLEW does support GLX (onscreen or requiring VirtualGL), EGL (technically can do both onscreen and +# offscreen), and OSMESA (offscreen software only). + +name = 'glew' +version = '2.2.0' + +homepage = 'https://github.com/nigels-com/glew' +description = """The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source +C/C++ extension loading library. GLEW provides efficient run-time mechanisms +for determining which OpenGL extensions are supported on the target platform.""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['https://github.com/nigels-com/glew/releases/download/%(name)s-%(version)s/'] +sources = ['%(name)s-%(version)s.tgz'] +checksums = ['d4fc82893cfb00109578d0a1a2337fb8ca335b3ceccf97b97e5cc7f08e4353e1'] + +builddependencies = [('binutils', '2.35')] +buildopts = 'SYSTEM=linux`echo %(versionsuffix)s|sed -e "s/-glx//g"`' +dependencies = [ + ('Mesa', '20.2.1'), + ('X11', '20201008'), +] + +skipsteps = ['configure'] + +preinstallopts = 'GLEW_PREFIX=%(installdir)s GLEW_DEST=%(installdir)s ' +install_cmd = 'make install.all' + +sanity_check_paths = { + 'files': ['lib/libGLEW.a', 'lib/libGLEW.%s' % SHLIB_EXT] + + ['bin/glewinfo', 'bin/visualinfo'] + + ['include/GL/%s.h' % h for h in ['glew', 'glxew', 'wglew']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/g/glew/glew-2.2.0-GCCcore-10.2.0-glx.eb b/easybuild/easyconfigs/g/glew/glew-2.2.0-GCCcore-10.2.0-glx.eb new file mode 100644 index 00000000000..b995d85444f --- /dev/null +++ b/easybuild/easyconfigs/g/glew/glew-2.2.0-GCCcore-10.2.0-glx.eb @@ -0,0 +1,43 @@ +# Contribution from the Crick HPC team +# uploaded by J. Sassmannshausen +# th77embl updated to GCCcore 10.2.0 +easyblock = 'ConfigureMake' +versionsuffix = '-glx' +# available: -glx, -osmesa, -egl acc. to @Micket's suggestion: +# GLEW does support GLX (onscreen or requiring VirtualGL), EGL (technically can do both onscreen and +# offscreen), and OSMESA (offscreen software only). + +name = 'glew' +version = '2.2.0' + +homepage = 'https://github.com/nigels-com/glew' +description = """The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source +C/C++ extension loading library. GLEW provides efficient run-time mechanisms +for determining which OpenGL extensions are supported on the target platform.""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['https://github.com/nigels-com/glew/releases/download/%(name)s-%(version)s/'] +sources = ['%(name)s-%(version)s.tgz'] +checksums = ['d4fc82893cfb00109578d0a1a2337fb8ca335b3ceccf97b97e5cc7f08e4353e1'] + +builddependencies = [('binutils', '2.35')] +buildopts = 'SYSTEM=linux`echo %(versionsuffix)s|sed -e "s/-glx//g"`' +dependencies = [ + ('Mesa', '20.2.1'), + ('X11', '20201008'), +] + +skipsteps = ['configure'] + +preinstallopts = 'GLEW_PREFIX=%(installdir)s GLEW_DEST=%(installdir)s ' +install_cmd = 'make install.all' + +sanity_check_paths = { + 'files': ['lib/libGLEW.a', 'lib/libGLEW.%s' % SHLIB_EXT] + + ['bin/glewinfo', 'bin/visualinfo'] + + ['include/GL/%s.h' % h for h in ['glew', 'glxew', 'wglew']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/g/glew/glew-2.2.0-GCCcore-10.2.0-osmesa.eb b/easybuild/easyconfigs/g/glew/glew-2.2.0-GCCcore-10.2.0-osmesa.eb new file mode 100644 index 00000000000..77964f2f35f --- /dev/null +++ b/easybuild/easyconfigs/g/glew/glew-2.2.0-GCCcore-10.2.0-osmesa.eb @@ -0,0 +1,43 @@ +# Contribution from the Crick HPC team +# uploaded by J. Sassmannshausen +# th77embl updated to GCCcore 10.2.0 +easyblock = 'ConfigureMake' +versionsuffix = '-osmesa' +# available: -glx, -osmesa, -egl acc. to @Micket's suggestion: +# GLEW does support GLX (onscreen or requiring VirtualGL), EGL (technically can do both onscreen and +# offscreen), and OSMESA (offscreen software only). + +name = 'glew' +version = '2.2.0' + +homepage = 'https://github.com/nigels-com/glew' +description = """The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source +C/C++ extension loading library. GLEW provides efficient run-time mechanisms +for determining which OpenGL extensions are supported on the target platform.""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['https://github.com/nigels-com/glew/releases/download/%(name)s-%(version)s/'] +sources = ['%(name)s-%(version)s.tgz'] +checksums = ['d4fc82893cfb00109578d0a1a2337fb8ca335b3ceccf97b97e5cc7f08e4353e1'] + +builddependencies = [('binutils', '2.35')] +buildopts = 'SYSTEM=linux`echo %(versionsuffix)s|sed -e "s/-glx//g"`' +dependencies = [ + ('Mesa', '20.2.1'), + ('X11', '20201008'), +] + +skipsteps = ['configure'] + +preinstallopts = 'GLEW_PREFIX=%(installdir)s GLEW_DEST=%(installdir)s ' +install_cmd = 'make install.all' + +sanity_check_paths = { + 'files': ['lib/libGLEW.a', 'lib/libGLEW.%s' % SHLIB_EXT] + + ['bin/glewinfo', 'bin/visualinfo'] + + ['include/GL/%s.h' % h for h in ['glew', 'glxew', 'wglew']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/g/gomkl/gomkl-2021a.eb b/easybuild/easyconfigs/g/gomkl/gomkl-2021a.eb new file mode 100644 index 00000000000..dd0a94b5f8e --- /dev/null +++ b/easybuild/easyconfigs/g/gomkl/gomkl-2021a.eb @@ -0,0 +1,19 @@ +easyblock = "Toolchain" + +name = 'gomkl' +version = '2021a' + +homepage = '(none)' +description = """GNU Compiler Collection (GCC) based compiler toolchain with OpenMPI and MKL""" + +toolchain = SYSTEM + +local_comp = ('GCC', '10.3.0') + +dependencies = [ + local_comp, + ('OpenMPI', '4.1.1', '', local_comp), + ('imkl', '2021.2.0', '', ('gompi', version)), +] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/g/gompi/gompi-2021a.eb b/easybuild/easyconfigs/g/gompi/gompi-2021a.eb new file mode 100644 index 00000000000..9bb0cddff8b --- /dev/null +++ b/easybuild/easyconfigs/g/gompi/gompi-2021a.eb @@ -0,0 +1,23 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'Toolchain' + +name = 'gompi' +version = '2021a' + +homepage = '(none)' +description = """GNU Compiler Collection (GCC) based compiler toolchain, + including OpenMPI for MPI support.""" + +toolchain = SYSTEM + +local_gccver = '10.3.0' + +# compiler toolchain dependencies +dependencies = [ + ('GCC', local_gccver), # includes both GCC and binutils + ('OpenMPI', '4.1.1', '', ('GCC', local_gccver)), +] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/g/googletest/googletest-1.10.0-GCCcore-10.2.0.eb b/easybuild/easyconfigs/g/googletest/googletest-1.10.0-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..ff55b9164e1 --- /dev/null +++ b/easybuild/easyconfigs/g/googletest/googletest-1.10.0-GCCcore-10.2.0.eb @@ -0,0 +1,29 @@ +easyblock = 'CMakeMake' + +name = 'googletest' +version = '1.10.0' + +homepage = 'https://github.com/google/googletest' +description = "Google's framework for writing C++ tests on a variety of platforms" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['https://github.com/google/googletest/archive/'] +sources = ['release-%(version)s.tar.gz'] +checksums = ['9dc9157a9a1551ec7a7e43daea9a694a0bb5fb8bec81235d8a1e6ef64c716dcb'] + +builddependencies = [ + ('binutils', '2.35'), + ('CMake', '3.18.4'), +] +# build twice, once for static, once for shared libraries +configopts = ['', ' -DBUILD_SHARED_LIBS=ON '] +separate_build_dir = True + +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-10.3.0.eb b/easybuild/easyconfigs/g/gperf/gperf-3.1-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..ee7bd4020fa --- /dev/null +++ b/easybuild/easyconfigs/g/gperf/gperf-3.1-GCCcore-10.3.0.eb @@ -0,0 +1,31 @@ +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': '10.3.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['588546b945bba4b70b6a3a616e80b4ab466e3f33024a352fc2198112cdbb3ae2'] + +builddependencies = [ + ('binutils', '2.36.1'), +] + + +sanity_check_paths = { + 'files': ['bin/%(name)s'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/g/gpustat/gpustat-0.6.0-gcccuda-2020b.eb b/easybuild/easyconfigs/g/gpustat/gpustat-0.6.0-gcccuda-2020b.eb new file mode 100644 index 00000000000..aa1e4ba5b74 --- /dev/null +++ b/easybuild/easyconfigs/g/gpustat/gpustat-0.6.0-gcccuda-2020b.eb @@ -0,0 +1,39 @@ +easyblock = 'PythonBundle' + +name = 'gpustat' +version = '0.6.0' + +homepage = 'https://github.com/wookayin/gpustat' +description = 'dstat-like utilization monitor for NVIDIA GPUs' + +toolchain = {'name': 'gcccuda', 'version': '2020b'} + +dependencies = [ + ('Python', '3.8.6'), +] + +use_pip = True + +exts_list = [ + ('blessings', '1.7', { + 'checksums': ['98e5854d805f50a5b58ac2333411b0482516a8210f23f43308baeb58d77c157d'], + }), + ('nvidia-ml-py3', '7.352.0', { + 'modulename': 'pynvml', + 'checksums': ['390f02919ee9d73fe63a98c73101061a6b37fa694a793abf56673320f1f51277'], + }), + (name, version, { + 'checksums': ['f69135080b2668b662822633312c2180002c10111597af9631bb02e042755b6c'], + }), +] + +sanity_check_paths = { + 'files': ['bin/gpustat'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["gpustat --help"] + +sanity_pip_check = True + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/g/groff/groff-1.22.4-FCC-4.5.0.eb b/easybuild/easyconfigs/g/groff/groff-1.22.4-FCC-4.5.0.eb new file mode 100644 index 00000000000..454055a271d --- /dev/null +++ b/easybuild/easyconfigs/g/groff/groff-1.22.4-FCC-4.5.0.eb @@ -0,0 +1,29 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'groff' +version = '1.22.4' + +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': 'FCC', 'version': '4.5.0'} + +source_urls = ['https://ftp.gnu.org/gnu/groff'] +sources = [SOURCE_TAR_GZ] +checksums = ['e78e7b4cb7dec310849004fa88847c44701e8d133b5d4c13057d876c1bad0293'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('makeinfo', '6.7'), +] + +sanity_check_paths = { + 'files': ['bin/groff', 'bin/nroff', 'bin/troff'], + 'dirs': ['lib/groff', 'share'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/g/groff/groff-1.22.4-GCCcore-10.3.0.eb b/easybuild/easyconfigs/g/groff/groff-1.22.4-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..95b41f84fdf --- /dev/null +++ b/easybuild/easyconfigs/g/groff/groff-1.22.4-GCCcore-10.3.0.eb @@ -0,0 +1,29 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'groff' +version = '1.22.4' + +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': '10.3.0'} + +source_urls = ['https://ftp.gnu.org/gnu/groff'] +sources = [SOURCE_TAR_GZ] +checksums = ['e78e7b4cb7dec310849004fa88847c44701e8d133b5d4c13057d876c1bad0293'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('makeinfo', '6.7'), +] + +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.10-GCCcore-10.3.0.eb b/easybuild/easyconfigs/g/gzip/gzip-1.10-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..c3f0dd556d6 --- /dev/null +++ b/easybuild/easyconfigs/g/gzip/gzip-1.10-GCCcore-10.3.0.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'gzip' +version = '1.10' + +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': '10.3.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['c91f74430bf7bc20402e1f657d0b252cb80aa66ba333a25704512af346633c68'] + +builddependencies = [('binutils', '2.36.1')] + +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/HDF5/HDF5-1.10.5-GCCcore-8.3.0-serial.eb b/easybuild/easyconfigs/h/HDF5/HDF5-1.10.5-GCCcore-8.3.0-serial.eb new file mode 100644 index 00000000000..7bc2b35825e --- /dev/null +++ b/easybuild/easyconfigs/h/HDF5/HDF5-1.10.5-GCCcore-8.3.0-serial.eb @@ -0,0 +1,26 @@ +name = 'HDF5' +version = '1.10.5' +versionsuffix = '-serial' + +homepage = 'https://portal.hdfgroup.org/display/support' +description = """HDF5 is a data model, library, and file format for storing and managing data. + It supports an unlimited variety of datatypes, and is designed for flexible + and efficient I/O and for high volume and complex data.""" + +toolchain = {'name': 'GCCcore', 'version': '8.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-%(version_major_minor)s/hdf5-%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['6d4ce8bf902a97b050f6f491f4268634e252a63dadd6656a1a9be5b7b7726fa8'] + +builddependencies = [ + ('binutils', '2.32'), +] + +dependencies = [ + ('zlib', '1.2.11'), + ('Szip', '2.1.1'), +] + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/h/HMMER/HMMER-3.3.2-iimpi-2020b.eb b/easybuild/easyconfigs/h/HMMER/HMMER-3.3.2-iimpi-2020b.eb new file mode 100644 index 00000000000..ea00c7b7ecb --- /dev/null +++ b/easybuild/easyconfigs/h/HMMER/HMMER-3.3.2-iimpi-2020b.eb @@ -0,0 +1,68 @@ +## +# EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Nils Christian , +# Fotis Georgatos +# 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 +## + +easyblock = 'ConfigureMake' + +name = 'HMMER' +version = '3.3.2' + +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': 'iimpi', 'version': '2020b'} + +source_urls = [ + 'http://eddylab.org/software/hmmer/', + 'http://eddylab.org/software/hmmer%(version_major)s/%(version)s/', +] +sources = ['hmmer-%(version)s.tar.gz'] +checksums = ['92fee9b5efe37a5276352d3502775e7c46e9f7a0ee45a331eacb2a0cac713c69'] + +builddependencies = [('Python', '3.8.6')] + +configopts = '--enable-mpi' + +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/HPL/HPL-2.3-Fujitsu-21.05.eb b/easybuild/easyconfigs/h/HPL/HPL-2.3-Fujitsu-21.05.eb new file mode 100644 index 00000000000..e6a43addd5f --- /dev/null +++ b/easybuild/easyconfigs/h/HPL/HPL-2.3-Fujitsu-21.05.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': 'Fujitsu', 'version': '21.05'} +toolchainopts = {'usempi': True, 'openmp': 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-foss-2021a.eb b/easybuild/easyconfigs/h/HPL/HPL-2.3-foss-2021a.eb new file mode 100644 index 00000000000..7f6921bb112 --- /dev/null +++ b/easybuild/easyconfigs/h/HPL/HPL-2.3-foss-2021a.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': '2021a'} +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-gomkl-2021a.eb b/easybuild/easyconfigs/h/HPL/HPL-2.3-gomkl-2021a.eb new file mode 100644 index 00000000000..36f56a97ca4 --- /dev/null +++ b/easybuild/easyconfigs/h/HPL/HPL-2.3-gomkl-2021a.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': 'gomkl', 'version': '2021a'} +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-2020.12.eb b/easybuild/easyconfigs/h/HPL/HPL-2.3-intel-2020.12.eb new file mode 100644 index 00000000000..8aabdc2f013 --- /dev/null +++ b/easybuild/easyconfigs/h/HPL/HPL-2.3-intel-2020.12.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': '2020.12'} +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-2021a.eb b/easybuild/easyconfigs/h/HPL/HPL-2.3-intel-2021a.eb new file mode 100644 index 00000000000..256c3c648aa --- /dev/null +++ b/easybuild/easyconfigs/h/HPL/HPL-2.3-intel-2021a.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': '2021a'} +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/Hadoop/Hadoop-2.10.0-GCCcore-10.2.0-native.eb b/easybuild/easyconfigs/h/Hadoop/Hadoop-2.10.0-GCCcore-10.2.0-native-Java-1.8.eb similarity index 97% rename from easybuild/easyconfigs/h/Hadoop/Hadoop-2.10.0-GCCcore-10.2.0-native.eb rename to easybuild/easyconfigs/h/Hadoop/Hadoop-2.10.0-GCCcore-10.2.0-native-Java-1.8.eb index a6fb73e0bfe..cb15f9404ed 100644 --- a/easybuild/easyconfigs/h/Hadoop/Hadoop-2.10.0-GCCcore-10.2.0-native.eb +++ b/easybuild/easyconfigs/h/Hadoop/Hadoop-2.10.0-GCCcore-10.2.0-native-Java-1.8.eb @@ -1,6 +1,6 @@ name = 'Hadoop' version = '2.10.0' -versionsuffix = '-native' +versionsuffix = '-native-Java-%(javaver)s' homepage = 'https://archive.cloudera.com/cdh5/cdh/5/' description = """Hadoop MapReduce by Cloudera""" diff --git a/easybuild/easyconfigs/h/Horovod/Horovod-0.21.3-foss-2020a-TensorFlow-2.3.1-Python-3.8.2.eb b/easybuild/easyconfigs/h/Horovod/Horovod-0.21.3-foss-2020a-TensorFlow-2.3.1-Python-3.8.2.eb new file mode 100644 index 00000000000..ff534564e70 --- /dev/null +++ b/easybuild/easyconfigs/h/Horovod/Horovod-0.21.3-foss-2020a-TensorFlow-2.3.1-Python-3.8.2.eb @@ -0,0 +1,44 @@ +easyblock = 'PythonBundle' + +name = 'Horovod' +version = '0.21.3' +local_tf_version = '2.3.1' +versionsuffix = '-TensorFlow-{}-Python-%(pyver)s'.format(local_tf_version) + +homepage = 'https://github.com/uber/horovod' +description = "Horovod is a distributed training framework for TensorFlow." + +toolchain = {'name': 'foss', 'version': '2020a'} + +builddependencies = [ + ('CMake', '3.16.4'), + ('flatbuffers', '1.12.0'), +] + +dependencies = [ + ('Python', '3.8.2'), + ('PyYAML', '5.3'), + ('TensorFlow', local_tf_version, '-Python-%(pyver)s'), +] + +use_pip = True +sanity_pip_check = True + +preinstallopts = 'HOROVOD_WITH_MPI=1 ' +preinstallopts += 'HOROVOD_WITH_TENSORFLOW=1 HOROVOD_WITHOUT_PYTORCH=1 HOROVOD_WITHOUT_MXNET=1 ' + +exts_list = [ + ('cloudpickle', '1.6.0', { + 'checksums': ['9bc994f9e9447593bd0a45371f0e7ac7333710fcf64a4eb9834bf149f4ef2f32'], + }), + ('horovod', version, { + 'checksums': ['dee8b2387b1ec9f54fe1737a95b992a52ce20cb3f1a4388017215fae14978f95'], + }), +] + +sanity_check_paths = { + 'files': ['bin/horovodrun'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/Horovod/Horovod-0.21.3-fosscuda-2020a-TensorFlow-2.3.1-Python-3.8.2.eb b/easybuild/easyconfigs/h/Horovod/Horovod-0.21.3-fosscuda-2020a-TensorFlow-2.3.1-Python-3.8.2.eb new file mode 100644 index 00000000000..819a73e57db --- /dev/null +++ b/easybuild/easyconfigs/h/Horovod/Horovod-0.21.3-fosscuda-2020a-TensorFlow-2.3.1-Python-3.8.2.eb @@ -0,0 +1,47 @@ +easyblock = 'PythonBundle' + +name = 'Horovod' +version = '0.21.3' +local_tf_version = '2.3.1' +versionsuffix = '-TensorFlow-{}-Python-%(pyver)s'.format(local_tf_version) + +homepage = 'https://github.com/uber/horovod' +description = "Horovod is a distributed training framework for TensorFlow." + +toolchain = {'name': 'fosscuda', 'version': '2020a'} + +builddependencies = [ + ('CMake', '3.16.4'), + ('flatbuffers', '1.12.0'), +] + +dependencies = [ + ('Python', '3.8.2'), + ('PyYAML', '5.3'), + ('NCCL', '2.8.3', '-CUDA-%(cudaver)s', True), + ('TensorFlow', local_tf_version, '-Python-%(pyver)s'), +] + +use_pip = True +sanity_pip_check = True + +preinstallopts = 'HOROVOD_WITH_MPI=1 HOROVOD_GPU_OPERATIONS=NCCL ' +preinstallopts += 'HOROVOD_WITH_TENSORFLOW=1 HOROVOD_WITHOUT_PYTORCH=1 HOROVOD_WITHOUT_MXNET=1 ' + +parallel = 1 # Bug in CMake causes a race condition on horovod_cuda_kernels_generated_cuda_kernels.cu.o.NVCC-depend + +exts_list = [ + ('cloudpickle', '1.6.0', { + 'checksums': ['9bc994f9e9447593bd0a45371f0e7ac7333710fcf64a4eb9834bf149f4ef2f32'], + }), + ('horovod', version, { + 'checksums': ['dee8b2387b1ec9f54fe1737a95b992a52ce20cb3f1a4388017215fae14978f95'], + }), +] + +sanity_check_paths = { + 'files': ['bin/horovodrun'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/Horovod/Horovod-0.21.3-fosscuda-2020b-PyTorch-1.7.1.eb b/easybuild/easyconfigs/h/Horovod/Horovod-0.21.3-fosscuda-2020b-PyTorch-1.7.1.eb new file mode 100644 index 00000000000..fe80381811b --- /dev/null +++ b/easybuild/easyconfigs/h/Horovod/Horovod-0.21.3-fosscuda-2020b-PyTorch-1.7.1.eb @@ -0,0 +1,46 @@ +easyblock = 'PythonBundle' + +name = 'Horovod' +version = '0.21.3' +local_pt_version = '1.7.1' +versionsuffix = '-PyTorch-%s' % local_pt_version + +homepage = 'https://github.com/uber/horovod' +description = "Horovod is a distributed training framework for TensorFlow." + +toolchain = {'name': 'fosscuda', 'version': '2020b'} + +builddependencies = [ + ('CMake', '3.18.4'), + ('flatbuffers', '1.12.0'), +] +dependencies = [ + ('Python', '3.8.6'), + ('PyYAML', '5.3.1'), + ('NCCL', '2.8.3', '-CUDA-%(cudaver)s', True), + ('PyTorch', local_pt_version), +] + +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 ' + +parallel = 1 # Bug in CMake causes a race condition on horovod_cuda_kernels_generated_cuda_kernels.cu.o.NVCC-depend + +exts_list = [ + ('cloudpickle', '1.6.0', { + 'checksums': ['9bc994f9e9447593bd0a45371f0e7ac7333710fcf64a4eb9834bf149f4ef2f32'], + }), + ('horovod', version, { + 'checksums': ['dee8b2387b1ec9f54fe1737a95b992a52ce20cb3f1a4388017215fae14978f95'], + }), +] + +sanity_check_paths = { + 'files': ['bin/horovodrun'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/help2man/help2man-1.48.3-FCC-4.5.0.eb b/easybuild/easyconfigs/h/help2man/help2man-1.48.3-FCC-4.5.0.eb new file mode 100644 index 00000000000..0bfc535fb8e --- /dev/null +++ b/easybuild/easyconfigs/h/help2man/help2man-1.48.3-FCC-4.5.0.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'help2man' +version = '1.48.3' + +homepage = 'https://www.gnu.org/software/help2man/' +description = """help2man produces simple manual pages from the '--help' and '--version' output of other commands.""" + +toolchain = {'name': 'FCC', 'version': '4.5.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_XZ] +checksums = ['8361ff3c643fbd391064e97e5f54592ca28b880eaffbf566a68e0ad800d1a8ac'] + +sanity_check_paths = { + 'files': ['bin/help2man'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/help2man/help2man-1.48.3-GCCcore-10.3.0.eb b/easybuild/easyconfigs/h/help2man/help2man-1.48.3-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..8697c849e41 --- /dev/null +++ b/easybuild/easyconfigs/h/help2man/help2man-1.48.3-GCCcore-10.3.0.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'help2man' +version = '1.48.3' + +homepage = 'https://www.gnu.org/software/help2man/' +description = """help2man produces simple manual pages from the '--help' and '--version' output of other commands.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_XZ] +checksums = ['8361ff3c643fbd391064e97e5f54592ca28b880eaffbf566a68e0ad800d1a8ac'] + +builddependencies = [ + # use same binutils version that was used when building GCC toolchain + ('binutils', '2.36.1', '', True), +] + +sanity_check_paths = { + 'files': ['bin/help2man'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/help2man/help2man-1.48.3-GCCcore-11.1.0.eb b/easybuild/easyconfigs/h/help2man/help2man-1.48.3-GCCcore-11.1.0.eb new file mode 100644 index 00000000000..c5323938915 --- /dev/null +++ b/easybuild/easyconfigs/h/help2man/help2man-1.48.3-GCCcore-11.1.0.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'help2man' +version = '1.48.3' + +homepage = 'https://www.gnu.org/software/help2man/' +description = """help2man produces simple manual pages from the '--help' and '--version' output of other commands.""" + +toolchain = {'name': 'GCCcore', 'version': '11.1.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_XZ] +checksums = ['8361ff3c643fbd391064e97e5f54592ca28b880eaffbf566a68e0ad800d1a8ac'] + +builddependencies = [ + # use same binutils version that was used when building GCC toolchain + ('binutils', '2.36.1', '', True), +] + +sanity_check_paths = { + 'files': ['bin/help2man'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/hifiasm/hifiasm-0.15.2-GCCcore-9.3.0.eb b/easybuild/easyconfigs/h/hifiasm/hifiasm-0.15.2-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..0fff990852e --- /dev/null +++ b/easybuild/easyconfigs/h/hifiasm/hifiasm-0.15.2-GCCcore-9.3.0.eb @@ -0,0 +1,36 @@ +# Author: Jasper Grimm (UoY) + +easyblock = 'MakeCp' + +name = 'hifiasm' +version = '0.15.2' + +homepage = 'https://github.com/chhylp123/hifiasm' +description = """Hifiasm: a haplotype-resolved assembler for accurate Hifi reads.""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} + +github_account = 'chhylp123' +source_urls = [GITHUB_SOURCE] +sources = ['%(version)s.tar.gz'] +checksums = ['e49e38341d6c943902cebc8b0e517e20a6e919659f3dab2bcc24c062524a72da'] + +builddependencies = [('binutils', '2.34')] + +dependencies = [('zlib', '1.2.11')] + +buildopts = 'CC="$CC" CXX="$CXX" CPPFLAGS="$CPPFLAGS"' + +files_to_copy = [ + ([name], 'bin'), + (['*.h'], 'include/hifiasm'), + 'LICENSE', 'README.md', +] + +sanity_check_paths = { + 'files': ['bin/%(name)s'], + 'dirs': [], +} +sanity_check_commands = ["%(name)s -h"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/h/hwloc/hwloc-2.4.1-GCCcore-10.3.0.eb b/easybuild/easyconfigs/h/hwloc/hwloc-2.4.1-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..d107ffdc713 --- /dev/null +++ b/easybuild/easyconfigs/h/hwloc/hwloc-2.4.1-GCCcore-10.3.0.eb @@ -0,0 +1,51 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'hwloc' +version = '2.4.1' + +homepage = 'https://www.open-mpi.org/projects/hwloc/' + +description = """ + The Portable Hardware Locality (hwloc) software package provides a portable + abstraction (across OS, versions, architectures, ...) of the hierarchical + topology of modern architectures, including NUMA memory nodes, sockets, shared + caches, cores and simultaneous multithreading. It also gathers various system + attributes such as cache and memory information as well as the locality of I/O + devices such as network interfaces, InfiniBand HCAs or GPUs. It primarily + aims at helping applications with gathering information about modern computing + hardware so as to exploit it accordingly and efficiently. +""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} +# need to build with -fno-tree-vectorize to avoid segfaulting lstopo on Intel Skylake +# cfr. https://github.com/open-mpi/hwloc/issues/315 +toolchainopts = {'vectorize': False} + +source_urls = ['https://www.open-mpi.org/software/hwloc/v%(version_major_minor)s/downloads/'] +sources = [SOURCE_TAR_GZ] +checksums = ['4267fe1193a8989f3ab7563a7499e047e77e33fed8f4dec16822a7aebcf78459'] + +builddependencies = [ + ('binutils', '2.36.1'), +] + +dependencies = [ + ('numactl', '2.0.14'), + ('libxml2', '2.9.10'), + ('libpciaccess', '0.16'), +] + +configopts = "--enable-libnuma=$EBROOTNUMACTL " +configopts += "--disable-cairo --disable-opencl --disable-cuda --disable-nvml --disable-gl --disable-libudev " + +sanity_check_paths = { + 'files': ['bin/lstopo', 'include/hwloc/linux.h', + 'lib/libhwloc.%s' % SHLIB_EXT], + 'dirs': ['share/man/man3'], +} +sanity_check_commands = ['lstopo'] + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/h/hypothesis/hypothesis-6.13.1-GCCcore-10.3.0.eb b/easybuild/easyconfigs/h/hypothesis/hypothesis-6.13.1-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..70bac367386 --- /dev/null +++ b/easybuild/easyconfigs/h/hypothesis/hypothesis-6.13.1-GCCcore-10.3.0.eb @@ -0,0 +1,24 @@ +easyblock = 'PythonPackage' + +name = 'hypothesis' +version = '6.13.1' + +homepage = "https://github.com/HypothesisWorks/hypothesis" +description = """Hypothesis is an advanced testing library for Python. It lets you write tests which are parametrized + by a source of examples, and then generates simple and comprehensible examples that make your tests fail. This lets + you find more bugs in your code with less work.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['074e27e514b305ba0b0c6bc0037faad1abbe2ea641ab4a8ec90e12a5e3238009'] + +builddependencies = [('binutils', '2.36.1')] + +dependencies = [('Python', '3.9.5')] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/hypothesis/hypothesis-6.7.0-GCCcore-10.2.0.eb b/easybuild/easyconfigs/h/hypothesis/hypothesis-6.7.0-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..cf62caebaa0 --- /dev/null +++ b/easybuild/easyconfigs/h/hypothesis/hypothesis-6.7.0-GCCcore-10.2.0.eb @@ -0,0 +1,24 @@ +easyblock = 'PythonPackage' + +name = 'hypothesis' +version = '6.7.0' + +homepage = "https://github.com/HypothesisWorks/hypothesis" +description = """Hypothesis is an advanced testing library for Python. It lets you write tests which are parametrized + by a source of examples, and then generates simple and comprehensible examples that make your tests fail. This lets + you find more bugs in your code with less work.""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['a62eedc72630575f4c3f38e288a4bbc29ffdf91267bbadc0ba969c786ede1d70'] + +builddependencies = [('binutils', '2.35')] + +dependencies = [('Python', '3.8.6')] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/i/IDBA-UD/IDBA-UD-1.1.3-GCC-10.2.0.eb b/easybuild/easyconfigs/i/IDBA-UD/IDBA-UD-1.1.3-GCC-10.2.0.eb new file mode 100644 index 00000000000..554db4afcb9 --- /dev/null +++ b/easybuild/easyconfigs/i/IDBA-UD/IDBA-UD-1.1.3-GCC-10.2.0.eb @@ -0,0 +1,49 @@ +# 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 +# Updated: Pavel Grochal (INUITS) +# License: GPLv2 + +# "make install" doesnt copy all the compiled binaries so we use the "MakeCp" easyblock +# to be sure everything is copied and we run ./configure in prebuildopts + +# modified by Tom Strempel +easyblock = 'MakeCp' + +name = 'IDBA-UD' +version = '1.1.3' + +homepage = 'https://i.cs.hku.hk/~alse/hkubrg/projects/idba_ud/' +description = """ IDBA-UD is a iterative De Bruijn Graph De Novo Assembler for Short Reads +Sequencing data with Highly Uneven Sequencing Depth. It is an extension of IDBA algorithm. +IDBA-UD also iterates from small k to a large k. In each iteration, short and low-depth +contigs are removed iteratively with cutoff threshold from low to high to reduce the errors +in low-depth and high-depth regions. Paired-end reads are aligned to contigs and assembled +locally to generate some missing k-mers in low-depth regions. With these technologies, IDBA-UD +can iterate k value of de Bruijn graph to a very large value with less gaps and less branches +to form long contigs in both low-depth and high-depth regions.""" + +toolchain = {'name': 'GCC', 'version': '10.2.0'} + +source_urls = ['https://github.com/loneknightpy/idba/releases/download/%(version)s'] +sources = ['idba-%(version)s.tar.gz'] +checksums = ['030e24463c6d725c1c202baabf773b605b51e310844fd0f27f4688ecfbae26d0'] + +prebuildopts = './configure && ' + +# we delete every .o and Makefile file which is left in bin folder +buildopts = ' && rm -fr bin/*.o bin/Makefile*' + +files_to_copy = ["bin", "script", "ChangeLog", "NEWS"] + +pretestopts = "cd test && " +runtest = "check" + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["idba", "idba_hybrid", "idba_tran", + "idba_ud", "parallel_blat", "idba_tran_test"]], + 'dirs': [""], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/i/IDBA-UD/IDBA-UD-1.1.3-GCC-9.3.0.eb b/easybuild/easyconfigs/i/IDBA-UD/IDBA-UD-1.1.3-GCC-9.3.0.eb new file mode 100644 index 00000000000..4ef50bfe528 --- /dev/null +++ b/easybuild/easyconfigs/i/IDBA-UD/IDBA-UD-1.1.3-GCC-9.3.0.eb @@ -0,0 +1,49 @@ +# 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 +# Updated: Pavel Grochal (INUITS) +# License: GPLv2 + +# "make install" doesnt copy all the compiled binaries so we use the "MakeCp" easyblock +# to be sure everything is copied and we run ./configure in prebuildopts + +# modified by Tom Strempel +easyblock = 'MakeCp' + +name = 'IDBA-UD' +version = '1.1.3' + +homepage = 'https://i.cs.hku.hk/~alse/hkubrg/projects/idba_ud/' +description = """ IDBA-UD is a iterative De Bruijn Graph De Novo Assembler for Short Reads + Sequencing data with Highly Uneven Sequencing Depth. It is an extension of IDBA algorithm. + IDBA-UD also iterates from small k to a large k. In each iteration, short and low-depth + contigs are removed iteratively with cutoff threshold from low to high to reduce the errors + in low-depth and high-depth regions. Paired-end reads are aligned to contigs and assembled + locally to generate some missing k-mers in low-depth regions. With these technologies, IDBA-UD + can iterate k value of de Bruijn graph to a very large value with less gaps and less branches + to form long contigs in both low-depth and high-depth regions.""" + +toolchain = {'name': 'GCC', 'version': '9.3.0'} + +source_urls = ['https://github.com/loneknightpy/idba/releases/download/%(version)s'] +sources = ['idba-%(version)s.tar.gz'] +checksums = ['030e24463c6d725c1c202baabf773b605b51e310844fd0f27f4688ecfbae26d0'] + +prebuildopts = './configure && ' + +# we delete every .o and Makefile file which is left in bin folder +buildopts = ' && rm -fr bin/*.o bin/Makefile*' + +files_to_copy = ["bin", "script", "ChangeLog", "NEWS"] + +pretestopts = "cd test && " +runtest = "check" + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["idba", "idba_hybrid", "idba_tran", + "idba_ud", "parallel_blat", "idba_tran_test"]], + 'dirs': [""], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/i/IGV/IGV-2.9.4-Java-11.eb b/easybuild/easyconfigs/i/IGV/IGV-2.9.4-Java-11.eb new file mode 100644 index 00000000000..3e9176b8a21 --- /dev/null +++ b/easybuild/easyconfigs/i/IGV/IGV-2.9.4-Java-11.eb @@ -0,0 +1,34 @@ +# EasyBuild easyconfig +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics +# Modified by Adam Huffman +# Big Data Institute, University of Oxford + +easyblock = 'Tarball' + +name = 'IGV' +version = '2.9.4' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'https://www.broadinstitute.org/software/igv/' +description = """This package contains command line utilities for + preprocessing, computing feature count density (coverage), sorting, and + indexing data files.""" + +toolchain = SYSTEM + +source_urls = ['http://data.broadinstitute.org/igv/projects/downloads/%(version_major)s.%(version_minor)s'] +sources = ['%(name)s_%(version)s.zip'] +checksums = ['05717ec6d0386a5eafe93c8b1af371c0013355eae74312b78eae5fdd99fc5fc1'] + +dependencies = [('Java', '11', '', True)] + +sanity_check_paths = { + 'files': ['%(namelower)s.sh', 'lib/%(namelower)s.jar'], + 'dirs': [], +} + +modextrapaths = {'PATH': ''} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/i/ISL/ISL-0.23-GCCcore-10.3.0.eb b/easybuild/easyconfigs/i/ISL/ISL-0.23-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..6219f2674a1 --- /dev/null +++ b/easybuild/easyconfigs/i/ISL/ISL-0.23-GCCcore-10.3.0.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'ISL' +version = '0.23' + +homepage = 'http://isl.gforge.inria.fr/' +description = "isl is a library for manipulating sets and relations of integer points bounded by linear constraints." + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['http://isl.gforge.inria.fr/'] +sources = [SOURCELOWER_TAR_BZ2] +checksums = ['c58922c14ae7d0791a77932f377840890f19bc486b653fa64eba7f1026fb214d'] + +builddependencies = [('binutils', '2.36.1')] +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/igraph/igraph-0.9.1-foss-2020b.eb b/easybuild/easyconfigs/i/igraph/igraph-0.9.1-foss-2020b.eb new file mode 100644 index 00000000000..227d6a8a2e3 --- /dev/null +++ b/easybuild/easyconfigs/i/igraph/igraph-0.9.1-foss-2020b.eb @@ -0,0 +1,44 @@ +# Author: Denis Krišťák (INUITS) + +easyblock = 'CMakeMake' + +name = 'igraph' +version = '0.9.1' + +homepage = 'https://igraph.org' +description = """igraph is a collection of network analysis tools with the emphasis on +efficiency, portability and ease of use. igraph is open source and free. igraph can be +programmed in R, Python and C/C++.""" + +toolchain = {'name': 'foss', 'version': '2020b'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/igraph/igraph/releases/download/%(version)s'] +sources = ['%(name)s-%(version)s.tar.gz'] +checksums = ['1902810650e8f9d98feefa3eca735db5a879416d00a08f68aad2ca07964cee9f'] + +builddependencies = [ + ('Autotools', '20200321'), + ('pkg-config', '0.29.2'), + ('CMake', '3.18.4'), +] + +dependencies = [ + ('GLPK', '4.65'), + ('libxml2', '2.9.10'), + ('zlib', '1.2.11'), +] + +configopts = "--with-external-blas --with-external-lapack --with-external-glpk" + +# extra folder `igraph` is wrong, since all other software expects it to be in ./include folder directly +postinstallcmds = [ + 'mv %(installdir)s/include/igraph/* %(installdir)s/include/ && rmdir %(installdir)s/include/igraph ', +] + +sanity_check_paths = { + 'files': ['include/igraph%s.h' % x for x in ['', '_blas', '_constants', '_lapack', '_types', '_version']], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/i/iimpi/iimpi-2020.12.eb b/easybuild/easyconfigs/i/iimpi/iimpi-2020.12.eb new file mode 100644 index 00000000000..9cf9d3045b3 --- /dev/null +++ b/easybuild/easyconfigs/i/iimpi/iimpi-2020.12.eb @@ -0,0 +1,18 @@ +# This is an easyconfig file for EasyBuild, see http://easybuilders.github.io/easybuild +easyblock = 'Toolchain' + +name = 'iimpi' +version = '2020.12' + +homepage = 'https://software.intel.com/parallel-studio-xe' +description = """Intel C/C++ and Fortran compilers, alongside Intel MPI.""" + +toolchain = SYSTEM + +local_compver = '2021.1.2' +dependencies = [ + ('intel-compilers', local_compver), + ('impi', '2021.1.1', '', ('intel-compilers', local_compver)), +] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/i/iimpi/iimpi-2021a.eb b/easybuild/easyconfigs/i/iimpi/iimpi-2021a.eb new file mode 100644 index 00000000000..b5ebf60d374 --- /dev/null +++ b/easybuild/easyconfigs/i/iimpi/iimpi-2021a.eb @@ -0,0 +1,18 @@ +# This is an easyconfig file for EasyBuild, see http://easybuilders.github.io/easybuild +easyblock = 'Toolchain' + +name = 'iimpi' +version = '2021a' + +homepage = 'https://software.intel.com/parallel-studio-xe' +description = """Intel C/C++ and Fortran compilers, alongside Intel MPI.""" + +toolchain = SYSTEM + +local_comp_ver = '2021.2.0' +dependencies = [ + ('intel-compilers', local_comp_ver), + ('impi', local_comp_ver, '', ('intel-compilers', local_comp_ver)), +] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/i/imake/imake-1.0.8-GCCcore-10.2.0.eb b/easybuild/easyconfigs/i/imake/imake-1.0.8-GCCcore-10.2.0.eb index 98c68c42979..773071072b0 100644 --- a/easybuild/easyconfigs/i/imake/imake-1.0.8-GCCcore-10.2.0.eb +++ b/easybuild/easyconfigs/i/imake/imake-1.0.8-GCCcore-10.2.0.eb @@ -13,7 +13,11 @@ source_urls = ['https://artfiles.org/x.org/pub/individual/util/'] sources = [SOURCE_TAR_GZ] checksums = ['8178a09bfef33ad5f61cb5cb62283df7d3a5682f014507d2e7cfd922485a5c00'] -builddependencies = [('binutils', '2.35')] +builddependencies = [ + ('binutils', '2.35'), + ('pkg-config', '0.29.2'), + ('xproto', '7.0.31'), +] sanity_check_paths = { 'files': ['bin/%s' % x for x in ['ccmakedep', 'cleanlinks', 'imake', diff --git a/easybuild/easyconfigs/i/imake/imake-1.0.8-GCCcore-10.3.0.eb b/easybuild/easyconfigs/i/imake/imake-1.0.8-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..52100bb9e67 --- /dev/null +++ b/easybuild/easyconfigs/i/imake/imake-1.0.8-GCCcore-10.3.0.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'imake' +version = '1.0.8' + +homepage = 'https://www.x.org/' +description = """imake is a Makefile-generator that is intended to make it +easier to develop software portably for multiple systems.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://artfiles.org/x.org/pub/individual/util/'] +sources = [SOURCE_TAR_GZ] +checksums = ['8178a09bfef33ad5f61cb5cb62283df7d3a5682f014507d2e7cfd922485a5c00'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('pkg-config', '0.29.2'), + ('xproto', '7.0.31'), +] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['ccmakedep', 'cleanlinks', 'imake', + 'makeg', 'mergelib', 'mkdirhier', + 'mkhtmlindex', 'revpath', 'xmkmf']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/i/imkl/imkl-2020.0.166-iimpi-2020.00.eb b/easybuild/easyconfigs/i/imkl/imkl-2020.0.166-iimpi-2020.00.eb index 7ebb4dd310a..610ba004009 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-2020.0.166-iimpi-2020.00.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-2020.0.166-iimpi-2020.00.eb @@ -23,17 +23,4 @@ license_file = HOME + '/licenses/intel/license.lic' interfaces = True -postinstallcmds = [ - # extract the examples - 'tar xvzf %(installdir)s/mkl/examples/examples_cluster_c.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_cluster_f.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_core_c.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_core_f.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_f95.tgz -C %(installdir)s/mkl/examples/', -] - -modextravars = { - 'MKL_EXAMPLES': '%(installdir)s/mkl/examples/', -} - moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-gompi-2020a.eb b/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-gompi-2020a.eb index 43fd8bd284d..dcb4894a2a4 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-gompi-2020a.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-gompi-2020a.eb @@ -23,17 +23,4 @@ license_file = HOME + '/licenses/intel/license.lic' interfaces = True -postinstallcmds = [ - # extract the examples - 'tar xvzf %(installdir)s/mkl/examples/examples_cluster_c.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_cluster_f.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_core_c.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_core_f.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_f95.tgz -C %(installdir)s/mkl/examples/', -] - -modextravars = { - 'MKL_EXAMPLES': '%(installdir)s/mkl/examples/', -} - moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iimpi-2020.06-impi-18.5.eb b/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iimpi-2020.06-impi-18.5.eb index 7c2b0baa605..89aac0e1547 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iimpi-2020.06-impi-18.5.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iimpi-2020.06-impi-18.5.eb @@ -23,17 +23,4 @@ license_file = HOME + '/licenses/intel/license.lic' interfaces = True -postinstallcmds = [ - # extract the examples - 'tar xvzf %(installdir)s/mkl/examples/examples_cluster_c.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_cluster_f.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_core_c.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_core_f.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_f95.tgz -C %(installdir)s/mkl/examples/', -] - -modextravars = { - 'MKL_EXAMPLES': '%(installdir)s/mkl/examples/', -} - moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iimpi-2020a.eb b/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iimpi-2020a.eb index 7f816072147..3111a3509b0 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iimpi-2020a.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iimpi-2020a.eb @@ -23,17 +23,4 @@ license_file = HOME + '/licenses/intel/license.lic' interfaces = True -postinstallcmds = [ - # extract the examples - 'tar xvzf %(installdir)s/mkl/examples/examples_cluster_c.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_cluster_f.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_core_c.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_core_f.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_f95.tgz -C %(installdir)s/mkl/examples/', -] - -modextravars = { - 'MKL_EXAMPLES': '%(installdir)s/mkl/examples/', -} - moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iimpic-2020a.eb b/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iimpic-2020a.eb index fd364d8c74f..3475dab254a 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iimpic-2020a.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iimpic-2020a.eb @@ -23,17 +23,4 @@ license_file = HOME + '/licenses/intel/license.lic' interfaces = True -postinstallcmds = [ - # extract the examples - 'tar xvzf %(installdir)s/mkl/examples/examples_cluster_c.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_cluster_f.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_core_c.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_core_f.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_f95.tgz -C %(installdir)s/mkl/examples/', -] - -modextravars = { - 'MKL_EXAMPLES': '%(installdir)s/mkl/examples/', -} - moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iompi-2020a.eb b/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iompi-2020a.eb index a5cc65d4131..3eca90fc0a2 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iompi-2020a.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iompi-2020a.eb @@ -23,17 +23,4 @@ license_file = HOME + '/licenses/intel/license.lic' interfaces = True -postinstallcmds = [ - # extract the examples - 'tar xvzf %(installdir)s/mkl/examples/examples_cluster_c.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_cluster_f.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_core_c.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_core_f.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_f95.tgz -C %(installdir)s/mkl/examples/', -] - -modextravars = { - 'MKL_EXAMPLES': '%(installdir)s/mkl/examples/', -} - moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-gompi-2020b.eb b/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-gompi-2020b.eb index d292d071b16..541c3c12aea 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-gompi-2020b.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-gompi-2020b.eb @@ -23,17 +23,4 @@ license_file = HOME + '/licenses/intel/license.lic' interfaces = True -postinstallcmds = [ - # extract the examples - 'tar xvzf %(installdir)s/mkl/examples/examples_cluster_c.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_cluster_f.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_core_c.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_core_f.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_f95.tgz -C %(installdir)s/mkl/examples/', -] - -modextravars = { - 'MKL_EXAMPLES': '%(installdir)s/mkl/examples/', -} - moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-iimpi-2020b.eb b/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-iimpi-2020b.eb index 9675315f1dd..e1f7dd0c3fd 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-iimpi-2020b.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-iimpi-2020b.eb @@ -23,17 +23,4 @@ license_file = HOME + '/licenses/intel/license.lic' interfaces = True -postinstallcmds = [ - # extract the examples - 'tar xvzf %(installdir)s/mkl/examples/examples_cluster_c.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_cluster_f.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_core_c.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_core_f.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_f95.tgz -C %(installdir)s/mkl/examples/', -] - -modextravars = { - 'MKL_EXAMPLES': '%(installdir)s/mkl/examples/', -} - moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-iimpic-2020b.eb b/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-iimpic-2020b.eb index e26a6afff2f..a350ab4a6ed 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-iimpic-2020b.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-iimpic-2020b.eb @@ -23,17 +23,4 @@ license_file = HOME + '/licenses/intel/license.lic' interfaces = True -postinstallcmds = [ - # extract the examples - 'tar xvzf %(installdir)s/mkl/examples/examples_cluster_c.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_cluster_f.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_core_c.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_core_f.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_f95.tgz -C %(installdir)s/mkl/examples/', -] - -modextravars = { - 'MKL_EXAMPLES': '%(installdir)s/mkl/examples/', -} - moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-iompi-2020b.eb b/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-iompi-2020b.eb index 7536b658532..89d0c991d88 100644 --- a/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-iompi-2020b.eb +++ b/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-iompi-2020b.eb @@ -23,17 +23,4 @@ license_file = HOME + '/licenses/intel/license.lic' interfaces = True -postinstallcmds = [ - # extract the examples - 'tar xvzf %(installdir)s/mkl/examples/examples_cluster_c.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_cluster_f.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_core_c.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_core_f.tgz -C %(installdir)s/mkl/examples/', - 'tar xvzf %(installdir)s/mkl/examples/examples_f95.tgz -C %(installdir)s/mkl/examples/', -] - -modextravars = { - 'MKL_EXAMPLES': '%(installdir)s/mkl/examples/', -} - moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/i/imkl/imkl-2021.1.1-iimpi-2020.12.eb b/easybuild/easyconfigs/i/imkl/imkl-2021.1.1-iimpi-2020.12.eb new file mode 100644 index 00000000000..737f7462d7d --- /dev/null +++ b/easybuild/easyconfigs/i/imkl/imkl-2021.1.1-iimpi-2020.12.eb @@ -0,0 +1,14 @@ +name = 'imkl' +version = '2021.1.1' + +homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl.html' +description = "Intel oneAPI Math Kernel Library" + +toolchain = {'name': 'iimpi', 'version': '2020.12'} + +# 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/17402/'] +sources = ['l_onemkl_p_%(version)s.52_offline.sh'] +checksums = ['818b6bd9a6c116f4578cda3151da0612ec9c3ce8b2c8a64730d625ce5b13cc0c'] + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/i/imkl/imkl-2021.2.0-gompi-2021a.eb b/easybuild/easyconfigs/i/imkl/imkl-2021.2.0-gompi-2021a.eb new file mode 100644 index 00000000000..ff7c13049ea --- /dev/null +++ b/easybuild/easyconfigs/i/imkl/imkl-2021.2.0-gompi-2021a.eb @@ -0,0 +1,14 @@ +name = 'imkl' +version = '2021.2.0' + +homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl.html' +description = "Intel oneAPI Math Kernel Library" + +toolchain = {'name': 'gompi', 'version': '2021a'} + +# 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/tec/17757/'] +sources = ['l_onemkl_p_%(version)s.296_offline.sh'] +checksums = ['816e9df26ff331d6c0751b86ed5f7d243f9f172e76f14e83b32bf4d1d619dbae'] + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/i/imkl/imkl-2021.2.0-iimpi-2021a.eb b/easybuild/easyconfigs/i/imkl/imkl-2021.2.0-iimpi-2021a.eb new file mode 100644 index 00000000000..aa8f14f2250 --- /dev/null +++ b/easybuild/easyconfigs/i/imkl/imkl-2021.2.0-iimpi-2021a.eb @@ -0,0 +1,14 @@ +name = 'imkl' +version = '2021.2.0' + +homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl.html' +description = "Intel oneAPI Math Kernel Library" + +toolchain = {'name': 'iimpi', 'version': '2021a'} + +# 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/tec/17757/'] +sources = ['l_onemkl_p_%(version)s.296_offline.sh'] +checksums = ['816e9df26ff331d6c0751b86ed5f7d243f9f172e76f14e83b32bf4d1d619dbae'] + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/i/impi/impi-2019.12.320-iccifort-2020.4.304.eb b/easybuild/easyconfigs/i/impi/impi-2019.12.320-iccifort-2020.4.304.eb new file mode 100644 index 00000000000..a5ba5409ff0 --- /dev/null +++ b/easybuild/easyconfigs/i/impi/impi-2019.12.320-iccifort-2020.4.304.eb @@ -0,0 +1,36 @@ +# This is an easyconfig file for EasyBuild, see http://easybuilders.github.io/easybuild + +name = 'impi' +version = '2019.12.320' + +homepage = 'https://software.intel.com/en-us/intel-mpi-library/' +description = "Intel MPI Library, compatible with MPICH ABI" + +toolchain = {'name': 'iccifort', 'version': '2020.4.304'} + +source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/17836/'] +sources = ['l_mpi_%(version)s.tgz'] +checksums = ['8108fbf2353a9f1926036bb67647b65c0e4933a3eb66e1dc933960e5b055f320'] + +dependencies = [ + # needed by libfabric provider MLX introduced in Intel MPI v2019.6, + # https://software.intel.com/en-us/articles/improve-performance-and-stability-with-intel-mpi-library-on-infiniband + ('UCX', '1.9.0'), +] + +dontcreateinstalldir = True + +components = ['intel-mpi', 'intel-psxe', 'intel-imb'] + +# set up all the mpi commands to default to intel compilers +# set_mpi_wrappers_all = True + +modextravars = { + # to enable SLURM integration with srun (site-specific) + # 'I_MPI_PMI_LIBRARY': 'libpmi2.so', +} + +# may be needed if you enable I_MPI_PMI_LIBRARY above +# osdependencies = [('slurm-libpmi')] + +moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/i/impi/impi-2021.1.1-intel-compilers-2021.1.2.eb b/easybuild/easyconfigs/i/impi/impi-2021.1.1-intel-compilers-2021.1.2.eb index 9f36c8608af..1a0fbe3b035 100644 --- a/easybuild/easyconfigs/i/impi/impi-2021.1.1-intel-compilers-2021.1.2.eb +++ b/easybuild/easyconfigs/i/impi/impi-2021.1.1-intel-compilers-2021.1.2.eb @@ -11,4 +11,6 @@ source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/1739 sources = ['l_mpi_oneapi_p_%(version)s.76_offline.sh'] checksums = ['8b7693a156c6fc6269637bef586a8fd3ea6610cac2aae4e7f48c1fbb601625fe'] -moduleclass = 'compiler' +dependencies = [('UCX', '1.9.0')] + +moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/i/impi/impi-2021.2.0-intel-compilers-2021.2.0.eb b/easybuild/easyconfigs/i/impi/impi-2021.2.0-intel-compilers-2021.2.0.eb new file mode 100644 index 00000000000..345fd82fc3d --- /dev/null +++ b/easybuild/easyconfigs/i/impi/impi-2021.2.0-intel-compilers-2021.2.0.eb @@ -0,0 +1,16 @@ +name = 'impi' +version = '2021.2.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': '2021.2.0'} + +# 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/17729/'] +sources = ['l_mpi_oneapi_p_%(version)s.215_offline.sh'] +checksums = ['d0d4cdd11edaff2e7285e38f537defccff38e37a3067c02f4af43a3629ad4aa3'] + +dependencies = [('UCX', '1.10.0')] + +moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2021.2.0.eb b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2021.2.0.eb new file mode 100644 index 00000000000..4fe1af0da99 --- /dev/null +++ b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2021.2.0.eb @@ -0,0 +1,32 @@ +name = 'intel-compilers' +version = '2021.2.0' + +homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/hpc-toolkit.html' +description = "Intel C, C++ & Fortran compilers (classic and oneAPI)" + +toolchain = SYSTEM + +# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html +sources = [ + { + 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/irc_nas/17749/'], + 'filename': 'l_dpcpp-cpp-compiler_p_%(version)s.118_offline.sh', + }, + { + 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/irc_nas/17756/'], + 'filename': 'l_fortran-compiler_p_%(version)s.136_offline.sh', + }, +] +checksums = [ + # l_dpcpp-cpp-compiler_p_2021.2.0.118_offline.sh + '5d01cbff1a574c3775510cd97ffddd27fdf56d06a6b0c89a826fb23da4336d59', + 'a62e04a80f6d2f05e67cd5acb03fa58857ee22c6bd581ec0651c0ccd5bdec5a1', # l_fortran-compiler_p_2021.2.0.136_offline.sh +] + +local_gccver = '10.3.0' +dependencies = [ + ('GCCcore', local_gccver), + ('binutils', '2.36.1', '', ('GCCcore', local_gccver)), +] + +moduleclass = 'compiler' diff --git a/easybuild/easyconfigs/i/intel/intel-2020.12.eb b/easybuild/easyconfigs/i/intel/intel-2020.12.eb new file mode 100644 index 00000000000..ce1386acf68 --- /dev/null +++ b/easybuild/easyconfigs/i/intel/intel-2020.12.eb @@ -0,0 +1,21 @@ +easyblock = 'Toolchain' + +name = 'intel' +version = '2020.12' + +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_compver = '2021.1.2' +local_gccver = '10.2.0' +dependencies = [ + ('GCCcore', local_gccver), + ('binutils', '2.35', '', ('GCCcore', local_gccver)), + ('intel-compilers', local_compver), + ('impi', '2021.1.1', '', ('intel-compilers', local_compver)), + ('imkl', '2021.1.1', '', ('iimpi', version)), +] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/i/intel/intel-2021a.eb b/easybuild/easyconfigs/i/intel/intel-2021a.eb new file mode 100644 index 00000000000..840f0d87045 --- /dev/null +++ b/easybuild/easyconfigs/i/intel/intel-2021a.eb @@ -0,0 +1,21 @@ +easyblock = 'Toolchain' + +name = 'intel' +version = '2021a' + +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 = '2021.2.0' +local_gccver = '10.3.0' +dependencies = [ + ('GCCcore', local_gccver), + ('binutils', '2.36.1', '', ('GCCcore', local_gccver)), + ('intel-compilers', local_comp_ver), + ('impi', local_comp_ver, '', ('intel-compilers', local_comp_ver)), + ('imkl', local_comp_ver, '', ('iimpi', version)), +] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/i/intervaltree/intervaltree-0.1-GCCcore-9.3.0.eb b/easybuild/easyconfigs/i/intervaltree/intervaltree-0.1-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..b72834694a6 --- /dev/null +++ b/easybuild/easyconfigs/i/intervaltree/intervaltree-0.1-GCCcore-9.3.0.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'intervaltree' +version = '0.1' + +homepage = 'https://github.com/ekg/intervaltree' +description = """An interval tree can be used to efficiently find a set of numeric intervals + overlapping or containing another interval. This library provides a basic implementation of an + interval tree using C++ templates, allowing the insertion of arbitrary types into the tree. +""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} + +github_account = 'ekg' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['7ba41f164a98bdcd570f1416fde1634b23d3b0d885b11ccebeec76f58810c307'] + +builddependencies = [('binutils', '2.34')] + +skipsteps = ['configure'] + +preinstallopts = 'DESTDIR="" PREFIX=%(installdir)s' + +sanity_check_paths = { + 'files': ['bin/interval_tree_test', 'include/intervaltree/IntervalTree.h'], + 'dirs': [], +} +sanity_check_commands = ["interval_tree_test"] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/i/intltool/intltool-0.51.0-GCCcore-10.3.0.eb b/easybuild/easyconfigs/i/intltool/intltool-0.51.0-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..41419ab7336 --- /dev/null +++ b/easybuild/easyconfigs/i/intltool/intltool-0.51.0-GCCcore-10.3.0.eb @@ -0,0 +1,35 @@ +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': '10.3.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.36.1'), +] + +dependencies = [ + ('Perl', '5.32.1'), +] + +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/j/JAGS/JAGS-4.3.0-foss-2020b.eb b/easybuild/easyconfigs/j/JAGS/JAGS-4.3.0-foss-2020b.eb new file mode 100644 index 00000000000..ceb7e97810b --- /dev/null +++ b/easybuild/easyconfigs/j/JAGS/JAGS-4.3.0-foss-2020b.eb @@ -0,0 +1,36 @@ +# 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 + +easyblock = 'ConfigureMake' + +name = 'JAGS' +version = '4.3.0' + +homepage = 'http://mcmc-jags.sourceforge.net/' +description = """JAGS is Just Another Gibbs Sampler. It is a program for analysis + of Bayesian hierarchical models using Markov Chain Monte Carlo (MCMC) simulation """ + +toolchain = {'name': 'foss', 'version': '2020b'} + +source_urls = [ + ('https://sourceforge.net/projects/mcmc-%(namelower)s/files/%(name)s/%(version_major)s.x/Source/', 'download') +] +sources = [SOURCE_TAR_GZ] +checksums = ['8ac5dd57982bfd7d5f0ee384499d62f3e0bb35b5f1660feb368545f1186371fc'] + +configopts = ' --with-blas="$LIBBLAS" --with-lapack="$LIBLAPACK"' + + +sanity_check_paths = { + 'files': ['bin/%(namelower)s', 'libexec/%(namelower)s-terminal', 'lib/libjags.%s' % SHLIB_EXT], + 'dirs': [], +} + +modextrapaths = { + 'JAGS_INCLUDE': 'include/%(name)s', + 'JAGS_LIB': 'lib', +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/j/JasPer/JasPer-2.0.28-GCCcore-10.3.0.eb b/easybuild/easyconfigs/j/JasPer/JasPer-2.0.28-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..5fad5147c94 --- /dev/null +++ b/easybuild/easyconfigs/j/JasPer/JasPer-2.0.28-GCCcore-10.3.0.eb @@ -0,0 +1,36 @@ +easyblock = 'CMakeMake' + +name = 'JasPer' +version = '2.0.28' + +homepage = 'https://www.ece.uvic.ca/~frodo/jasper/' + +description = """ + The JasPer Project is an open-source initiative to provide a free + software-based reference implementation of the codec specified in + the JPEG-2000 Part-1 standard. +""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} +toolchainopts = {'pic': True} + +github_account = 'jasper-software' +source_urls = [GITHUB_SOURCE] +sources = ['version-%(version)s.tar.gz'] +checksums = ['6b4e5f682be0ab1a5acb0eeb6bf41d6ce17a658bb8e2dbda95de40100939cc88'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('CMake', '3.20.1'), +] + +configopts = '-DJAS_ENABLE_DOC=OFF ' + +sanity_check_paths = { + 'files': ['bin/jasper', ('lib/libjasper.%s' % SHLIB_EXT, 'lib64/libjasper.%s' % SHLIB_EXT)], + 'dirs': ['include'], +} + +sanity_check_commands = ['jasper --version'] + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/j/Julia/Julia-1.6.1-linux-x86_64.eb b/easybuild/easyconfigs/j/Julia/Julia-1.6.1-linux-x86_64.eb new file mode 100644 index 00000000000..5ce44a8efc0 --- /dev/null +++ b/easybuild/easyconfigs/j/Julia/Julia-1.6.1-linux-x86_64.eb @@ -0,0 +1,27 @@ +# 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 +# Updated by: Dugan Witherick, University of Warwick + +easyblock = 'Tarball' + +name = 'Julia' +version = '1.6.1' +versionsuffix = '-linux-x86_64' + +homepage = 'https://julialang.org' +description = "Julia is a high-level, high-performance dynamic programming language for numerical computing" + +toolchain = SYSTEM + +source_urls = ['https://julialang-s3.julialang.org/bin/linux/x64/%(version_major_minor)s/'] +sources = ['%(namelower)s-%(version)s%(versionsuffix)s.tar.gz'] +checksums = ['7c888adec3ea42afbfed2ce756ce1164a570d50fa7506c3f2e1e2cbc49d52506'] + +sanity_check_paths = { + 'files': ['bin/julia', 'include/julia/julia.h', 'lib/libjulia.so'], + 'dirs': ['bin', 'etc', 'include', 'lib', 'share'] +} + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/k/Kaleido/Kaleido-0.1.0-GCCcore-10.2.0.eb b/easybuild/easyconfigs/k/Kaleido/Kaleido-0.1.0-GCCcore-10.2.0.eb index ce0683e82db..d5a6b4d2ec1 100644 --- a/easybuild/easyconfigs/k/Kaleido/Kaleido-0.1.0-GCCcore-10.2.0.eb +++ b/easybuild/easyconfigs/k/Kaleido/Kaleido-0.1.0-GCCcore-10.2.0.eb @@ -17,8 +17,6 @@ builddependencies = [ dependencies = [('Python', '3.8.6')] -unpack_sources = False - download_dep_fail = True use_pip = True diff --git a/easybuild/easyconfigs/k/Keras/Keras-2.4.3-foss-2020b.eb b/easybuild/easyconfigs/k/Keras/Keras-2.4.3-foss-2020b.eb new file mode 100644 index 00000000000..32ae992ae3b --- /dev/null +++ b/easybuild/easyconfigs/k/Keras/Keras-2.4.3-foss-2020b.eb @@ -0,0 +1,37 @@ +easyblock = 'PythonBundle' + +name = 'Keras' +version = '2.4.3' + +homepage = 'https://keras.io/' +description = """ +Keras is a deep learning API written in Python, running on top of the machine learning platform TensorFlow. +""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +dependencies = [ + ('Python', '3.8.6'), + ('Theano', '1.1.2', '-PyMC'), + ('PyYAML', '5.3.1'), + ('h5py', '3.1.0'), + ('TensorFlow', '2.4.1'), +] + +use_pip = True + +exts_list = [ + ('Keras_Applications', '1.0.8', { + 'checksums': ['5579f9a12bcde9748f4a12233925a59b93b73ae6947409ff34aa2ba258189fe5'], + }), + ('Keras_Preprocessing', '1.1.2', { + 'checksums': ['add82567c50c8bc648c14195bf544a5ce7c1f76761536956c3d2978970179ef3'], + }), + (name, version, { + 'checksums': ['fedd729b52572fb108a98e3d97e1bac10a81d3917d2103cc20ab2a5f03beb973'], + }), +] + +sanity_pip_check = True + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/k/Keras/Keras-2.4.3-fosscuda-2020b.eb b/easybuild/easyconfigs/k/Keras/Keras-2.4.3-fosscuda-2020b.eb new file mode 100644 index 00000000000..48fc18c305e --- /dev/null +++ b/easybuild/easyconfigs/k/Keras/Keras-2.4.3-fosscuda-2020b.eb @@ -0,0 +1,37 @@ +easyblock = 'PythonBundle' + +name = 'Keras' +version = '2.4.3' + +homepage = 'https://keras.io/' +description = """ +Keras is a deep learning API written in Python, running on top of the machine learning platform TensorFlow. +""" + +toolchain = {'name': 'fosscuda', 'version': '2020b'} + +dependencies = [ + ('Python', '3.8.6'), + ('Theano', '1.1.2', '-PyMC'), + ('PyYAML', '5.3.1'), + ('h5py', '3.1.0'), + ('TensorFlow', '2.4.1'), +] + +use_pip = True + +exts_list = [ + ('Keras_Applications', '1.0.8', { + 'checksums': ['5579f9a12bcde9748f4a12233925a59b93b73ae6947409ff34aa2ba258189fe5'], + }), + ('Keras_Preprocessing', '1.1.2', { + 'checksums': ['add82567c50c8bc648c14195bf544a5ce7c1f76761536956c3d2978970179ef3'], + }), + (name, version, { + 'checksums': ['fedd729b52572fb108a98e3d97e1bac10a81d3917d2103cc20ab2a5f03beb973'], + }), +] + +sanity_pip_check = True + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/k/Kraken/Kraken-1.1.1-GCCcore-10.2.0.eb b/easybuild/easyconfigs/k/Kraken/Kraken-1.1.1-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..de1ed07683d --- /dev/null +++ b/easybuild/easyconfigs/k/Kraken/Kraken-1.1.1-GCCcore-10.2.0.eb @@ -0,0 +1,50 @@ +easyblock = 'PackedBinary' + +name = 'Kraken' +version = '1.1.1' + +homepage = 'https://ccb.jhu.edu/software/%(namelower)s/' +description = """Kraken is a system for assigning taxonomic labels to short DNA sequences, + usually obtained through metagenomic studies. Previous attempts by other + bioinformatics software to accomplish this task have often used sequence + alignment or machine learning techniques that were quite slow, leading to + the development of less sensitive but much faster abundance estimation + programs. Kraken aims to achieve high sensitivity and high speed by + utilizing exact alignments of k-mers and a novel classification algorithm.""" + +# Part is compiled with CXX, the rest is in Perl +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} +toolchainopts = {'openmp': True} + +github_account = 'DerrickWood' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%(version)s.tar.gz'] +patches = ['%(name)s-1.1_CXX-CXXFLAGS.patch'] +checksums = [ + '73e48f40418f92b8cf036ca1da727ca3941da9b78d4c285b81ba3267326ac4ee', # v1.1.1.tar.gz + '84c017d6a80ccaac1e23561c83cac90bcc3d62baa8d31657a7dafbc2c3f29726', # Kraken-1.1.1_CXX-CXXFLAGS.patch +] + +builddependencies = [ + ('binutils', '2.35'), +] + +dependencies = [ + ('Perl', '5.32.0'), + ('wget', '1.20.3'), +] + +install_cmd = 'cd %(builddir)s/%(namelower)s-%(version)s && ' +install_cmd += './install_%(namelower)s.sh %(installdir)s' + +sanity_check_paths = { + 'files': ['add_to_library.sh', 'build_kraken_db.sh', 'check_for_jellyfish.sh', 'classify', 'clean_db.sh', + 'cp_into_tempfile.pl', 'db_shrink', 'db_sort', 'download_genomic_library.sh', + 'download_taxonomy.sh', 'kraken', 'kraken-build', 'kraken-filter', 'krakenlib.pm', + 'kraken-mpa-report', 'kraken-report', 'kraken-translate', 'make_seqid_to_taxid_map', + 'read_merger.pl', 'report_gi_numbers.pl', 'set_lcas', 'shrink_db.sh', + 'standard_installation.sh', 'upgrade_db.sh', 'verify_gi_numbers.pl'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/k/Kraken2/Kraken2-2.1.1-gompi-2020b.eb b/easybuild/easyconfigs/k/Kraken2/Kraken2-2.1.1-gompi-2020b.eb new file mode 100644 index 00000000000..f24d9c3b21e --- /dev/null +++ b/easybuild/easyconfigs/k/Kraken2/Kraken2-2.1.1-gompi-2020b.eb @@ -0,0 +1,49 @@ +easyblock = 'PackedBinary' + +name = 'Kraken2' +version = '2.1.1' + +homepage = 'https://github.com/DerrickWood/kraken2/wiki' +description = """Kraken is a system for assigning taxonomic labels to short DNA sequences, + usually obtained through metagenomic studies. Previous attempts by other + bioinformatics software to accomplish this task have often used sequence + alignment or machine learning techniques that were quite slow, leading to + the development of less sensitive but much faster abundance estimation + programs. Kraken aims to achieve high sensitivity and high speed by + utilizing exact alignments of k-mers and a novel classification algorithm.""" + +# part is compiled with $CXX, the rest is in Perl +toolchain = {'name': 'gompi', 'version': '2020b'} +toolchainopts = {'openmp': True, 'cstd': 'c++11'} + +github_account = 'DerrickWood' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%(version)s.tar.gz'] +patches = ['Kraken2-2.1.1_fix_installation_for_easybuild.patch'] +checksums = [ + '8f3e928cdb32b9e8e6f55b44703d1557b2a5fc3f30f63e8d16e465e19a81dee4', # v2.1.1.tar.gz + # Kraken2-2.1.1_fix_installation_for_easybuild.patch + '5ea9093becbdf7705a29fd2e56050118700c850ac5374aae5ee9b5e5924d3a11', +] + +dependencies = [ + ('Perl', '5.32.0'), + ('BLAST+', '2.11.0'), + ('wget', '1.20.3'), +] + +install_cmd = 'cd %(builddir)s/%(namelower)s-%(version)s && ' +install_cmd += './install_kraken2.sh %(installdir)s/bin' + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in [ + '16S_gg_installation.sh', '16S_rdp_installation.sh', '16S_silva_installation.sh', 'add_to_library.sh', + 'build_db', 'build_gg_taxonomy.pl', 'build_kraken2_db.sh', 'build_rdp_taxonomy.pl', 'build_silva_taxonomy.pl', + 'classify', 'clean_db.sh', 'cp_into_tempfile.pl', 'download_genomic_library.sh', 'download_taxonomy.sh', + 'dump_table', 'estimate_capacity', 'kraken2', 'kraken2-build', 'kraken2-inspect', 'kraken2lib.pm', + 'lookup_accession_numbers.pl', 'make_seqid2taxid_map.pl', 'mask_low_complexity.sh', 'rsync_from_ncbi.pl', + 'scan_fasta_file.pl']], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/k/Kraken2/Kraken2-2.1.1_fix_installation_for_easybuild.patch b/easybuild/easyconfigs/k/Kraken2/Kraken2-2.1.1_fix_installation_for_easybuild.patch new file mode 100644 index 00000000000..ec21671c1ab --- /dev/null +++ b/easybuild/easyconfigs/k/Kraken2/Kraken2-2.1.1_fix_installation_for_easybuild.patch @@ -0,0 +1,28 @@ +Fix install script and src/Makefile for EasyBuild. + +Åke Sandgren, 2021-04-30 +diff -ru kraken2-2.1.1.orig/install_kraken2.sh kraken2-2.1.1/install_kraken2.sh +--- kraken2-2.1.1.orig/install_kraken2.sh 2020-11-09 01:31:23.000000000 +0100 ++++ kraken2-2.1.1/install_kraken2.sh 2021-04-30 12:33:16.790133181 +0200 +@@ -23,7 +23,9 @@ + + # Perl cmd used to canonicalize dirname - "readlink -f" doesn't work + # on OS X. +-export KRAKEN2_DIR=$(perl -MCwd=abs_path -le 'print abs_path(shift)' "$1") ++#export KRAKEN2_DIR=$(perl -MCwd=abs_path -le 'print abs_path(shift)' "$1") ++ ++export KRAKEN2_DIR=$1 + + mkdir -p "$KRAKEN2_DIR" + make -C src install +diff -ru kraken2-2.1.1.orig/src/Makefile kraken2-2.1.1/src/Makefile +--- kraken2-2.1.1.orig/src/Makefile 2020-11-09 01:31:23.000000000 +0100 ++++ kraken2-2.1.1/src/Makefile 2021-04-30 11:08:03.911343499 +0200 +@@ -1,5 +1,5 @@ +-CXX = g++ +-CXXFLAGS = -fopenmp -Wall -std=c++11 -O3 ++CXX ?= g++ ++CXXFLAGS ?= -fopenmp -Wall -std=c++11 -O3 + CXXFLAGS += -DLINEAR_PROBING + + .PHONY: all clean install diff --git a/easybuild/easyconfigs/k/KronaTools/KronaTools-2.7-GCCcore-7.3.0.eb b/easybuild/easyconfigs/k/KronaTools/KronaTools-2.7-GCCcore-7.3.0.eb index d1fa52b5f8d..726d97c29a0 100644 --- a/easybuild/easyconfigs/k/KronaTools/KronaTools-2.7-GCCcore-7.3.0.eb +++ b/easybuild/easyconfigs/k/KronaTools/KronaTools-2.7-GCCcore-7.3.0.eb @@ -5,7 +5,7 @@ # This build also links updateTaxonomy.sh and updateAccessions.sh in the bin folder # so users can install their own Taxonomy database -easyblock = 'Binary' +easyblock = 'Tarball' name = 'KronaTools' version = '2.7' @@ -17,27 +17,25 @@ several Bioinformatics tools as well as from text and XML files.""" toolchain = {'name': 'GCCcore', 'version': '7.3.0'} source_urls = ['https://github.com/marbl/Krona/releases/download/v%(version)s/'] -sources = [{ - 'filename': '%(name)s-%(version)s.tar', - 'extract_cmd': 'tar xvf %s -C %(installdir)s/../', -}] - +sources = ['%(name)s-%(version)s.tar'] checksums = ['388270ac299da7e38b96bb144e72bd6844d42176c327c03a594e338d19a56f73'] -extract_sources = True - -builddependencies = [('binutils', '2.30')] dependencies = [('Perl', '5.28.0')] - -install_cmd = 'cd %(installdir)s/../%(name)s-%(version)s; ./install.pl --prefix=%(installdir)s; ' -install_cmd += 'cd %(installdir)s/bin; ' -install_cmd += 'ln -s ../../%(name)s-%(version)s/updateTaxonomy.sh . ;' -install_cmd += 'ln -s ../../%(name)s-%(version)s/updateAccessions.sh . ' +postinstallcmds = [ + "cd %(installdir)s && ./install.pl --prefix=%(installdir)s;", + "cd %(installdir)s/bin && ln -s ../updateAccessions.sh . && ln -s ../updateTaxonomy.sh .", +] sanity_check_paths = { - 'files': ['bin/ktClassifyBLAST', 'bin/ktImportBLAST', 'bin/ktImportTaxonomy'], - 'dirs': [], + 'files': ['bin/ktClassifyBLAST', 'bin/ktImportBLAST', 'bin/ktImportTaxonomy', + 'bin/updateAccessions.sh', 'bin/updateTaxonomy.sh'], + 'dirs': ['data', 'img', 'scripts'], } +sanity_check_commands = [ + "updateAccessions.sh --help", + "ktImportText", +] + moduleclass = 'bio' diff --git a/easybuild/easyconfigs/k/KronaTools/KronaTools-2.7.1-GCCcore-8.2.0.eb b/easybuild/easyconfigs/k/KronaTools/KronaTools-2.7.1-GCCcore-8.2.0.eb index e4c421554d5..5fcebf6778b 100644 --- a/easybuild/easyconfigs/k/KronaTools/KronaTools-2.7.1-GCCcore-8.2.0.eb +++ b/easybuild/easyconfigs/k/KronaTools/KronaTools-2.7.1-GCCcore-8.2.0.eb @@ -5,7 +5,7 @@ # This build also links updateTaxonomy.sh and updateAccessions.sh in the bin folder # so users can install their own Taxonomy database -easyblock = 'Binary' +easyblock = 'Tarball' name = 'KronaTools' version = '2.7.1' @@ -17,25 +17,25 @@ several Bioinformatics tools as well as from text and XML files.""" toolchain = {'name': 'GCCcore', 'version': '8.2.0'} source_urls = ['https://github.com/marbl/Krona/releases/download/v%(version)s/'] -sources = [{ - 'filename': '%(name)s-%(version)s.tar', - 'extract_cmd': 'tar xvf %s -C %(installdir)s/../', -}] - +sources = ['%(name)s-%(version)s.tar'] checksums = ['8fb35e742085ad7cd6ae202fcac05b55e95470361dd409e670fdb62c7e7e6a1a'] -extract_sources = True -builddependencies = [('binutils', '2.31.1')] dependencies = [('Perl', '5.28.1')] -install_cmd = 'cd %(installdir)s/../%(name)s-%(version)s; ./install.pl --prefix=%(installdir)s; ' -install_cmd += 'cd %(installdir)s/bin; ' -install_cmd += 'ln -s ../../%(name)s-%(version)s/updateTaxonomy.sh . ;' -install_cmd += 'ln -s ../../%(name)s-%(version)s/updateAccessions.sh . ' +postinstallcmds = [ + "cd %(installdir)s && ./install.pl --prefix=%(installdir)s;", + "cd %(installdir)s/bin && ln -s ../updateAccessions.sh . && ln -s ../updateTaxonomy.sh .", +] sanity_check_paths = { - 'files': ['bin/ktClassifyBLAST', 'bin/ktImportBLAST', 'bin/ktImportTaxonomy'], - 'dirs': [], + 'files': ['bin/ktClassifyBLAST', 'bin/ktImportBLAST', 'bin/ktImportTaxonomy', + 'bin/updateAccessions.sh', 'bin/updateTaxonomy.sh'], + 'dirs': ['data', 'img', 'scripts'], } +sanity_check_commands = [ + "updateAccessions.sh --help", + "ktImportText", +] + moduleclass = 'bio' diff --git a/easybuild/easyconfigs/k/KronaTools/KronaTools-2.8-GCCcore-10.2.0.eb b/easybuild/easyconfigs/k/KronaTools/KronaTools-2.8-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..4838f91cdad --- /dev/null +++ b/easybuild/easyconfigs/k/KronaTools/KronaTools-2.8-GCCcore-10.2.0.eb @@ -0,0 +1,41 @@ +# Contribution from the Crick HPC team +# uploaded by J. Sassmannshausen +# this is a bug fix to make sure the symlinks in bin are not getting destroyed +# by Easybuild when it is tidying up +# This build also links updateTaxonomy.sh and updateAccessions.sh in the bin folder +# so users can install their own Taxonomy database + +easyblock = 'Tarball' + +name = 'KronaTools' +version = '2.8' + +homepage = 'https://github.com/marbl/Krona/wiki/KronaTools' +description = """Krona Tools is a set of scripts to create Krona charts from +several Bioinformatics tools as well as from text and XML files.""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['https://github.com/marbl/Krona/releases/download/v%(version)s/'] +sources = ['%(name)s-%(version)s.tar'] +checksums = ['56efc028b6226a1aea8ec4e9f049836b07d4833e7e4d5b9189118ed51a47c9c0'] + +dependencies = [('Perl', '5.32.0')] + +postinstallcmds = [ + "cd %(installdir)s && ./install.pl --prefix=%(installdir)s;", + "cd %(installdir)s/bin && ln -s ../updateAccessions.sh . && ln -s ../updateTaxonomy.sh .", +] + +sanity_check_paths = { + 'files': ['bin/ktClassifyBLAST', 'bin/ktImportBLAST', 'bin/ktImportTaxonomy', + 'bin/updateAccessions.sh', 'bin/updateTaxonomy.sh'], + 'dirs': ['data', 'img', 'scripts'], +} + +sanity_check_commands = [ + "updateAccessions.sh --help", + "ktImportText", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/k/kallisto/kallisto-0.46.1-iimpi-2020a.eb b/easybuild/easyconfigs/k/kallisto/kallisto-0.46.1-iimpi-2020a.eb new file mode 100644 index 00000000000..b6987f1c0fb --- /dev/null +++ b/easybuild/easyconfigs/k/kallisto/kallisto-0.46.1-iimpi-2020a.eb @@ -0,0 +1,38 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild + +easyblock = 'CMakeMake' + +name = 'kallisto' +version = '0.46.1' + +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': 'iimpi', 'version': '2020a'} +toolchainopts = {'pic': True, 'usempi': True} + +github_account = 'pachterlab' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['492ef081395e8858fcd9832aceb8b61c79358f00afb45e6709146c0fb51dd231'] + +builddependencies = [ + ('Autotools', '20180311'), + ('CMake', '3.16.4'), +] + +dependencies = [('HDF5', '1.10.6')] + +preconfigopts = "cd ../%(name)s-%(version)s/ext/htslib/ && autoreconf && cd - &&" + +parallel = 1 + +separate_build_dir = True + +sanity_check_paths = { + 'files': ['bin/kallisto'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/k/kallisto/kallisto-0.46.1-iimpi-2020b.eb b/easybuild/easyconfigs/k/kallisto/kallisto-0.46.1-iimpi-2020b.eb new file mode 100644 index 00000000000..491b5541b70 --- /dev/null +++ b/easybuild/easyconfigs/k/kallisto/kallisto-0.46.1-iimpi-2020b.eb @@ -0,0 +1,38 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild + +easyblock = 'CMakeMake' + +name = 'kallisto' +version = '0.46.1' + +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': 'iimpi', 'version': '2020b'} +toolchainopts = {'pic': True, 'usempi': True} + +github_account = 'pachterlab' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['492ef081395e8858fcd9832aceb8b61c79358f00afb45e6709146c0fb51dd231'] + +builddependencies = [ + ('Autotools', '20200321'), + ('CMake', '3.18.4'), +] + +dependencies = [('HDF5', '1.10.7')] + +preconfigopts = "cd ../%(name)s-%(version)s/ext/htslib/ && autoreconf && cd - &&" + +parallel = 1 + +separate_build_dir = True + +sanity_check_paths = { + 'files': ['bin/kallisto'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/l/LDC/LDC-0.17.6-x86_64.eb b/easybuild/easyconfigs/l/LDC/LDC-0.17.6-x86_64.eb new file mode 100644 index 00000000000..76a446f2434 --- /dev/null +++ b/easybuild/easyconfigs/l/LDC/LDC-0.17.6-x86_64.eb @@ -0,0 +1,25 @@ +easyblock = 'Tarball' + +name = 'LDC' +version = '0.17.6' +versionsuffix = '-x86_64' + +homepage = 'https://wiki.dlang.org/LDC' +description = "The LLVM-based D Compiler" + +toolchain = SYSTEM + +source_urls = ['https://github.com/ldc-developers/ldc/releases/download/v%(version)s/'] +sources = ['ldc2-%(version)s-linux%(versionsuffix)s.tar.xz'] +checksums = ['f7709d39d6a2fd985e610a5d0b9a66e094ab694b2b5dc28e7349c60a5c5d916c'] + +unpack_options = '--strip-components=1' + +sanity_check_paths = { + 'files': ['bin/dub', 'bin/ldc2', 'bin/ldmd2', 'lib/libdruntime-ldc.a'], + 'dirs': [], +} + +sanity_check_commands = ["ldc2 --help"] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/l/LDC/LDC-1.25.1-GCCcore-10.2.0.eb b/easybuild/easyconfigs/l/LDC/LDC-1.25.1-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..f509313572d --- /dev/null +++ b/easybuild/easyconfigs/l/LDC/LDC-1.25.1-GCCcore-10.2.0.eb @@ -0,0 +1,39 @@ +easyblock = 'CMakeNinja' + +name = 'LDC' +version = '1.25.1' + +homepage = 'https://wiki.dlang.org/LDC' +description = "The LLVM-based D Compiler" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['https://github.com/ldc-developers/ldc/releases/download/v%(version)s'] +sources = ['ldc-%(version)s-src.tar.gz'] +checksums = ['0e3716fe9927be91264d1fde5c41071026f6c44262735e9ebda538089b612d40'] + +builddependencies = [ + ('binutils', '2.35'), + ('CMake', '3.18.4'), + ('Ninja', '1.10.1'), + # building LDC from source required LDC 0.17.x + ('LDC', '0.17.6', '-%(arch)s', True), +] + +dependencies = [ + ('LLVM', '11.0.0'), +] + +configopts = "-DLLVM_ROOT_DIR=$EBROOTLLVM" + +sanity_check_paths = { + 'files': ['bin/ldc2', 'bin/ldmd2'], + 'dirs': ['include/d', 'lib'], +} + +sanity_check_commands = [ + "ldc2 --help", + "ldmd2 --help", +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/l/LIBSVM/LIBSVM-3.24-GCCcore-9.3.0.eb b/easybuild/easyconfigs/l/LIBSVM/LIBSVM-3.24-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..0c8d372d0a2 --- /dev/null +++ b/easybuild/easyconfigs/l/LIBSVM/LIBSVM-3.24-GCCcore-9.3.0.eb @@ -0,0 +1,37 @@ +easyblock = 'MakeCp' + +name = 'LIBSVM' +version = '3.24' + +homepage = 'https://www.csie.ntu.edu.tw/~cjlin/libsvm/' +description = """LIBSVM is an integrated software for support vector classification, (C-SVC, nu-SVC), regression + (epsilon-SVR, nu-SVR) and distribution estimation (one-class SVM). It supports multi-class classification.""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} + +source_urls = [homepage] +sources = [SOURCELOWER_TAR_GZ] +patches = ['LIBSVM-3.23_shared_lib.patch'] +checksums = [ + 'd5881a201a4e6227bf8e2f5de7d6eeaef481c6c2bb9540aeca547737844f8696', # libsvm-3.24.tar.gz + 'c0ede89365949644f5d7f11382a3f176fd76317c7f5ae5769226ff7c3a801fe6', # LIBSVM-3.23_shared_lib.patch +] + +dependencies = [('binutils', '2.34')] + +local_bins = ['svm-%s' % x for x in ['predict', 'scale', 'train']] + +files_to_copy = [ + (local_bins, 'bin'), + (['svm.o'], 'lib'), + (['libsvm*'], 'lib'), + (['svm.h'], 'include/libsvm'), + 'tools' +] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in local_bins] + ['lib/libsvm.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/LLVM/LLVM-11.1.0-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/LLVM/LLVM-11.1.0-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..1796d4bfc1d --- /dev/null +++ b/easybuild/easyconfigs/l/LLVM/LLVM-11.1.0-GCCcore-10.3.0.eb @@ -0,0 +1,40 @@ +name = 'LLVM' +version = '11.1.0' + +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': '10.3.0'} +toolchainopts = {'cstd': 'gnu++11'} + +source_urls = ['https://github.com/llvm/llvm-project/releases/download/llvmorg-%(version)s/'] +sources = ['llvm-%(version)s.src.tar.xz'] +checksums = ['ce8508e318a01a63d4e8b3090ab2ded3c598a50258cc49e2625b9120d4c03ea5'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('CMake', '3.20.1'), + ('Python', '3.9.5'), +] + +dependencies = [ + ('ncurses', '6.2'), + ('zlib', '1.2.11'), +] + +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.28-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/LMDB/LMDB-0.9.28-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..e0f185b2cad --- /dev/null +++ b/easybuild/easyconfigs/l/LMDB/LMDB-0.9.28-GCCcore-10.3.0.eb @@ -0,0 +1,34 @@ +easyblock = 'MakeCp' + +name = 'LMDB' +version = '0.9.28' + +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': '10.3.0'} + +source_urls = ['https://github.com/LMDB/lmdb/archive/'] +sources = ['%(name)s_%(version)s.tar.gz'] +checksums = ['47457d3d3ae2c489b52078a07e9f55ec6e094b48c2204029c7754e2972fe1882'] + +builddependencies = [('binutils', '2.36.1')] + +buildopts = 'CC="$CC" OPT="$CFLAGS"' + +runtest = 'test' + +files_to_copy = [ + (['lmdb.h', 'midl.h'], 'include'), + (['mdb_copy', 'mdb_dump', 'mdb_load', 'mdb_stat'], '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': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/LMfit/LMfit-1.0.0-foss-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/l/LMfit/LMfit-1.0.0-foss-2019b-Python-3.7.4.eb new file mode 100644 index 00000000000..8d861b9a503 --- /dev/null +++ b/easybuild/easyconfigs/l/LMfit/LMfit-1.0.0-foss-2019b-Python-3.7.4.eb @@ -0,0 +1,34 @@ +easyblock = 'PythonBundle' + +name = 'LMfit' +version = '1.0.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://lmfit.github.io/lmfit-py' +description = """Lmfit provides a high-level interface to non-linear optimization +and curve fitting problems for Python""" + +toolchain = {'name': 'foss', 'version': '2019b'} + +dependencies = [ + ('Python', '3.7.4'), + ('SciPy-bundle', '2019.10', versionsuffix), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('asteval', '0.9.18', { + 'checksums': ['5d64e18b8a72c2c7ae8f9b70d1f80b68bbcaa98c1c0d7047c35489d03209bc86'], + }), + ('uncertainties', '3.1.2', { + 'checksums': ['ba07c17a8a78cb58a47cd373079c7ea459f8b26cd474e29163b6ba0d72856a1e'], + }), + (name, version, { + 'source_tmpl': '%(namelower)s-%(version)s.tar.gz', + 'checksums': ['aa005a3ed8fe759e89cba59c5e130b5ff0b73e9379c6d6b10240daabff706ed5'], + }), +] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/l/LUMPY/LUMPY-0.3.1-foss-2020b.eb b/easybuild/easyconfigs/l/LUMPY/LUMPY-0.3.1-foss-2020b.eb new file mode 100644 index 00000000000..6b1e20f8dfe --- /dev/null +++ b/easybuild/easyconfigs/l/LUMPY/LUMPY-0.3.1-foss-2020b.eb @@ -0,0 +1,51 @@ +easyblock = 'MakeCp' + +name = 'LUMPY' +version = '0.3.1' + +homepage = 'https://github.com/arq5x/lumpy-sv' +description = """A probabilistic framework for structural variant discovery. +""" + +toolchain = {'name': 'foss', 'version': '2020b'} +toolchainopts = {'usempi': True} + +source_urls = ['https://github.com/arq5x/lumpy-sv/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['6a75dffafd238417011416c62d4351f64ea71bd018b5a7660383566f2cbb7c5d'] + +builddependencies = [('CMake', '3.18.4')] + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), + ('Pysam', '0.16.0.1'), + ('SAMtools', '1.11'), + ('samblaster', '0.1.26'), + ('Sambamba', '0.8.0'), + ('gawk', '5.1.0'), + ('bzip2', '1.0.8'), + ('cURL', '7.72.0'), + ('XZ', '5.2.5'), + ('zlib', '1.2.11'), +] + +prebuildopts = "export ZLIB_PATH=$EBROOTZLIB/lib && " + +# prevent building of included HTSlib for lumpy_filter +prebuildopts += "mkdir bin && ln -s $EBROOTSAMTOOLS/lib/libhts.a lib/htslib/libhts.a && " +prebuildopts += "sed -i 's/-lz/-lz -llzma -lbz2/g' src/filter/Makefile && " +prebuildopts += "make -C src/filter && cp src/filter/lumpy_filter bin/ && " + +buildopts = "lumpyexpress lumpy" + +files_to_copy = [(['bin/*'], 'bin'), 'data', 'LICENSE'] + +sanity_check_paths = { + 'files': ['bin/lumpy', 'bin/lumpy_filter', 'bin/lumpyexpress'], + 'dirs': [], +} + +sanity_check_commands = ["lumpyexpress -h"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/l/LZO/LZO-2.10-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/LZO/LZO-2.10-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..f0345b1af98 --- /dev/null +++ b/easybuild/easyconfigs/l/LZO/LZO-2.10-GCCcore-10.3.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': '10.3.0'} +toolchainopts = {'pic': True} + +builddependencies = [('binutils', '2.36.1')] + +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/LibTIFF/LibTIFF-4.2.0-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.2.0-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..ea453d26399 --- /dev/null +++ b/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.2.0-GCCcore-10.3.0.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'LibTIFF' +version = '4.2.0' + +homepage = 'https://libtiff.maptools.org/' +description = "tiff: Library and tools for reading and writing TIFF data files" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = [ + 'https://download.osgeo.org/libtiff/', +] +sources = ['tiff-%(version)s.tar.gz'] +checksums = ['eb0484e568ead8fa23b513e9b0041df7e327f4ee2d22db5a533929dfc19633cb'] + +builddependencies = [('binutils', '2.36.1')] + +dependencies = [ + ('zlib', '1.2.11'), + ('libjpeg-turbo', '2.0.6') +] + +configopts = " --enable-ld-version-script " + +sanity_check_paths = { + 'files': ['bin/tiffinfo'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/leidenalg/leidenalg-0.8.3-foss-2020b.eb b/easybuild/easyconfigs/l/leidenalg/leidenalg-0.8.3-foss-2020b.eb new file mode 100644 index 00000000000..b5307684eb1 --- /dev/null +++ b/easybuild/easyconfigs/l/leidenalg/leidenalg-0.8.3-foss-2020b.eb @@ -0,0 +1,46 @@ +# Author: Denis Krišťák (INUITS) + +easyblock = 'PythonBundle' + +name = 'leidenalg' +version = '0.8.3' + +homepage = 'https://github.com/vtraag/leidenalg' +description = """Implementation of the Leiden algorithm for various quality +functions to be used with igraph in Python.""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +builddependencies = [ + ('pkg-config', '0.29.2'), + ('PyYAML', '5.3.1'), + ('Bison', '3.7.1'), + ('libtool', '2.4.6'), +] + +dependencies = [ + ('Python', '3.8.6'), + ('igraph', '0.9.1'), + ('python-igraph', '0.9.0'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('ddt', '1.4.2', { + 'checksums': ['64a67366a2715e636b88694cc6075cc02db292f01098b8e385397c894d395378'], + }), + (name, version, { + 'checksums': ['84c2fa673390b62986e51258cbe048a49c163e516ee791b372c2779c928d8e7e'], + 'buildopts': '--use-pkg-config', + 'runtest': "python setup.py test", + 'testopts': '--use-pkg-config', + }), +] + +sanity_check_commands = ["python -c 'import leidenalg; import igraph as ig; " + "leidenalg.find_partition(ig.Graph.Erdos_Renyi(100, 0.1), " + "leidenalg.ModularityVertexPartition)'"] + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/leidenalg/leidenalg-0.8.3-fosscuda-2020b.eb b/easybuild/easyconfigs/l/leidenalg/leidenalg-0.8.3-fosscuda-2020b.eb index f0e29a156c6..66efa3a2fc8 100644 --- a/easybuild/easyconfigs/l/leidenalg/leidenalg-0.8.3-fosscuda-2020b.eb +++ b/easybuild/easyconfigs/l/leidenalg/leidenalg-0.8.3-fosscuda-2020b.eb @@ -15,6 +15,7 @@ builddependencies = [ ('pkg-config', '0.29.2'), ('PyYAML', '5.3.1'), ('Bison', '3.7.1'), + ('libtool', '2.4.6'), ] dependencies = [ diff --git a/easybuild/easyconfigs/l/libGLU/libGLU-9.0.1-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libGLU/libGLU-9.0.1-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..8cedd2e5f45 --- /dev/null +++ b/easybuild/easyconfigs/l/libGLU/libGLU-9.0.1-GCCcore-10.3.0.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'libGLU' +version = '9.0.1' + +homepage = 'https://mesa.freedesktop.org/archive/glu/' +description = """The OpenGL Utility Library (GLU) is a computer graphics library for OpenGL. """ + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://mesa.freedesktop.org/archive/glu/'] +sources = ['glu-%(version)s.tar.gz'] +checksums = ['f6f484cfcd51e489afe88031afdea1e173aa652697e4c19ddbcb8260579a10f7'] + +builddependencies = [('binutils', '2.36.1')] + +dependencies = [ + ('Mesa', '21.1.1'), +] + +sanity_check_paths = { + 'files': ['lib/libGLU.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libRmath/libRmath-4.0.0-GCCcore-9.3.0.eb b/easybuild/easyconfigs/l/libRmath/libRmath-4.0.0-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..db147d0f4e3 --- /dev/null +++ b/easybuild/easyconfigs/l/libRmath/libRmath-4.0.0-GCCcore-9.3.0.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 = 'ConfigureMake' + +name = 'libRmath' +version = '4.0.0' + +homepage = 'https://cran.r-project.org/doc/manuals/r-release/R-admin.html#The-standalone-Rmath-library' +description = """The routines supporting the distribution and special functions in R and a few others are declared + in C header file Rmath.h. These can be compiled into a standalone library for linking to other applications.""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} + +source_urls = ['https://cloud.r-project.org/src/base/R-%(version_major)s'] +sources = ['R-%(version)s.tar.gz'] +checksums = ['06beb0291b569978484eb0dcb5d2339665ec745737bdfb4e873e7a5a75492940'] + +builddependencies = [ + ('binutils', '2.34'), + ('pkg-config', '0.29.2'), +] + +dependencies = [ + ('cURL', '7.69.1'), + ('bzip2', '1.0.8'), + ('XZ', '5.2.5'), + ('zlib', '1.2.11'), + ('PCRE2', '10.34'), +] + +parallel = 1 + +start_dir = 'src/nmath/standalone' + +preconfigopts = 'cd %(builddir)s/R-%(version)s && ' +configopts = '--with-readline=no --with-recommended-packages=no --with-x=no' + +postinstallcmds = ["cp -r %(builddir)s/R-%(version)s/src/include/R_ext %(installdir)s/include/"] + +runtest = 'check' + +sanity_check_paths = { + 'files': ["lib/libRmath.%s" % SHLIB_EXT, "lib/libRmath.a", + "lib/pkgconfig/libRmath.pc", + "include/Rmath.h"], + 'dirs': [] +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libarchive/libarchive-3.5.1-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libarchive/libarchive-3.5.1-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..f366494c3d8 --- /dev/null +++ b/easybuild/easyconfigs/l/libarchive/libarchive-3.5.1-GCCcore-10.3.0.eb @@ -0,0 +1,32 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'libarchive' +version = '3.5.1' + +homepage = 'https://www.libarchive.org/' + +description = """ + Multi-format archive and compression library +""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://www.libarchive.org/downloads/'] +sources = [SOURCE_TAR_GZ] +checksums = ['9015d109ec00bb9ae1a384b172bf2fc1dff41e2c66e5a9eeddf933af9db37f5a'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('XZ', '5.2.5'), + ('OpenSSL', '1.1', '', True), +] + +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/libdeflate/libdeflate-1.5-GCCcore-7.3.0.eb b/easybuild/easyconfigs/l/libdeflate/libdeflate-1.5-GCCcore-7.3.0.eb index 4e7cad2274f..342229ca54d 100644 --- a/easybuild/easyconfigs/l/libdeflate/libdeflate-1.5-GCCcore-7.3.0.eb +++ b/easybuild/easyconfigs/l/libdeflate/libdeflate-1.5-GCCcore-7.3.0.eb @@ -7,7 +7,7 @@ name = 'libdeflate' version = '1.5' homepage = 'https://github.com/ebiggers/libdeflate' -description = """Generic PCI access library.""" +description = """Heavily optimized library for DEFLATE/zlib/gzip compression and decompression.""" toolchain = {'name': 'GCCcore', 'version': '7.3.0'} diff --git a/easybuild/easyconfigs/l/libdeflate/libdeflate-1.7-GCCcore-9.3.0.eb b/easybuild/easyconfigs/l/libdeflate/libdeflate-1.7-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..ed28e6f2838 --- /dev/null +++ b/easybuild/easyconfigs/l/libdeflate/libdeflate-1.7-GCCcore-9.3.0.eb @@ -0,0 +1,38 @@ +# Author: Pavel Grochal (INUITS) +# License: GPLv2 + +easyblock = 'ConfigureMake' + +name = 'libdeflate' +version = '1.7' + +homepage = 'https://github.com/ebiggers/libdeflate' +description = """Heavily optimized library for DEFLATE/zlib/gzip compression and decompression.""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} + +github_account = 'ebiggers' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['a5e6a0a9ab69f40f0f59332106532ca76918977a974e7004977a9498e3f11350'] + +builddependencies = [('binutils', '2.34')] + +skipsteps = ['configure'] + +installopts = 'PREFIX=%(installdir)s' + +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.106-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libdrm/libdrm-2.4.106-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..e9e5f8291a9 --- /dev/null +++ b/easybuild/easyconfigs/l/libdrm/libdrm-2.4.106-GCCcore-10.3.0.eb @@ -0,0 +1,32 @@ +easyblock = 'MesonNinja' + +name = 'libdrm' +version = '2.4.106' + +homepage = 'https://dri.freedesktop.org' +description = """Direct Rendering Manager runtime library.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://dri.freedesktop.org/libdrm/'] +sources = [SOURCELOWER_TAR_XZ] +checksums = ['92d8ac54429b171e087e61c2894dc5399fe6a549b1fbba09fa6a3cb9d4e57bd4'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('pkg-config', '0.29.2'), + ('Meson', '0.58.0'), + ('Ninja', '1.10.2'), +] +dependencies = [('X11', '20210518')] + +# installing manpages requires an extra build dependency (docbook xsl) +configopts = '-Dman-pages=false' + +sanity_check_paths = { + 'files': ['lib/libdrm.%s' % SHLIB_EXT, 'include/libdrm/drm.h'], + 'dirs': ['include', 'lib'], +} + + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libevent/libevent-2.1.12-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libevent/libevent-2.1.12-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..b5cc4b2c7c0 --- /dev/null +++ b/easybuild/easyconfigs/l/libevent/libevent-2.1.12-GCCcore-10.3.0.eb @@ -0,0 +1,41 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'libevent' +version = '2.1.12' + +homepage = 'https://libevent.org/' + +description = """ + The libevent API provides a mechanism to execute a callback function when + a specific event occurs on a file descriptor or after a timeout has been + reached. Furthermore, libevent also support callbacks due to signals or + regular timeouts. +""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/%(name)s/%(name)s/releases/download/release-%(version)s-stable/'] +sources = ['%(name)s-%(version)s-stable.tar.gz'] +checksums = ['92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('pkg-config', '0.29.2'), +] + +dependencies = [ + ('zlib', '1.2.11'), + ('OpenSSL', '1.1', '', True), +] + +sanity_check_paths = { + 'files': ['bin/event_rpcgen.py', 'include/event.h', 'include/event2/event.h', + 'lib/libevent_core.%s' % SHLIB_EXT, 'lib/pkgconfig/libevent.pc'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libfabric/libfabric-1.10.1-GCCcore-9.3.0.eb b/easybuild/easyconfigs/l/libfabric/libfabric-1.10.1-GCCcore-9.3.0.eb index 76ce2eb153c..3451ec30995 100644 --- a/easybuild/easyconfigs/l/libfabric/libfabric-1.10.1-GCCcore-9.3.0.eb +++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.10.1-GCCcore-9.3.0.eb @@ -27,7 +27,12 @@ builddependencies = [ osdependencies = [OS_PKG_IBVERBS_DEV] # Disable deprecated "sockets" provider -configopts = "--disable-sockets" +configopts = "--disable-sockets " + +# Disable usNIC provider by default as this requires specific osdependencies +# If you want to enable this provider you need to uncomment the following line: +# osdependencies.append(('libnl3-devel', 'libnl3-dev')) +configopts += "--disable-usnic " sanity_check_paths = { 'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror'] + diff --git a/easybuild/easyconfigs/l/libfabric/libfabric-1.11.0-GCCcore-10.2.0.eb b/easybuild/easyconfigs/l/libfabric/libfabric-1.11.0-GCCcore-10.2.0.eb index e95e33215a4..d7da6e3a9e6 100644 --- a/easybuild/easyconfigs/l/libfabric/libfabric-1.11.0-GCCcore-10.2.0.eb +++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.11.0-GCCcore-10.2.0.eb @@ -27,7 +27,12 @@ builddependencies = [ osdependencies = [OS_PKG_IBVERBS_DEV] # Disable deprecated "sockets" provider -configopts = "--disable-sockets" +configopts = "--disable-sockets " + +# Disable usNIC provider by default as this requires specific osdependencies +# If you want to enable this provider you need to uncomment the following line: +# osdependencies.append(('libnl3-devel', 'libnl3-dev')) +configopts += "--disable-usnic " sanity_check_paths = { 'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror'] + diff --git a/easybuild/easyconfigs/l/libfabric/libfabric-1.11.0-GCCcore-9.3.0.eb b/easybuild/easyconfigs/l/libfabric/libfabric-1.11.0-GCCcore-9.3.0.eb index 03b00a6045b..364cc1d6484 100644 --- a/easybuild/easyconfigs/l/libfabric/libfabric-1.11.0-GCCcore-9.3.0.eb +++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.11.0-GCCcore-9.3.0.eb @@ -27,7 +27,12 @@ builddependencies = [ osdependencies = [OS_PKG_IBVERBS_DEV] # Disable deprecated "sockets" provider -configopts = "--disable-sockets" +configopts = "--disable-sockets " + +# Disable usNIC provider by default as this requires specific osdependencies +# If you want to enable this provider you need to uncomment the following line: +# osdependencies.append(('libnl3-devel', 'libnl3-dev')) +configopts += "--disable-usnic " sanity_check_paths = { 'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror'] + diff --git a/easybuild/easyconfigs/l/libfabric/libfabric-1.12.1-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libfabric/libfabric-1.12.1-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..308b71928cf --- /dev/null +++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.12.1-GCCcore-10.3.0.eb @@ -0,0 +1,53 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'libfabric' +version = '1.12.1' + +homepage = 'https://ofiwg.github.io/libfabric/' +description = """ +Libfabric is a core component of OFI. It is the library that defines and exports +the user-space API of OFI, and is typically the only software that applications +deal with directly. It works in conjunction with provider libraries, which are +often integrated directly into libfabric. +""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} +toolchainopts = {'pic': True} + +github_account = 'ofiwg' +source_urls = ['https://github.com/ofiwg/%(name)s/releases/download/v%(version)s'] +sources = [SOURCE_TAR_BZ2] +patches = ['%(name)s-%(version)s_fix-psm3-multiep-default.patch'] +checksums = [ + 'db3c8e0a495e6e9da6a7436adab905468aedfbd4579ee3da5232a5c111ba642c', # libfabric-1.12.1.tar.bz2 + # libfabric-1.12.1_fix-psm3-multiep-default.patch + '298ba67bc04472bc627e642525dd4333fe18f80774814ae86c8e18437ada4e7d', +] + +builddependencies = [ + ('binutils', '2.36.1'), + ('pkg-config', '0.29.2'), +] + +osdependencies = [OS_PKG_IBVERBS_DEV] + +# Disable deprecated "sockets" provider +configopts = "--disable-sockets " + +# Disable usNIC provider by default as this requires specific osdependencies +# If you want to enable this provider you need to uncomment the following line: +# osdependencies.append(('libnl3-devel', 'libnl3-dev')) +configopts += "--disable-usnic " + +sanity_check_paths = { + 'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror'] + + ['lib/libfabric.%s' % x for x in ['a', SHLIB_EXT]], + 'dirs': ['include/rdma', 'lib/pkgconfig', 'share'] +} + +sanity_check_commands = ['fi_info'] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libfabric/libfabric-1.12.1_fix-psm3-multiep-default.patch b/easybuild/easyconfigs/l/libfabric/libfabric-1.12.1_fix-psm3-multiep-default.patch new file mode 100644 index 00000000000..0e2be72e929 --- /dev/null +++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.12.1_fix-psm3-multiep-default.patch @@ -0,0 +1,24 @@ +Set Default MultiEP to 1 in psmx3_init code +https://github.com/ofiwg/libfabric/pull/6737 +diff --git a/prov/psm3/src/psmx3_init.c b/prov/psm3/src/psmx3_init.c +index b6f615435f..f54f5bcf00 100644 +--- a/prov/psm3/src/psmx3_init.c ++++ b/prov/psm3/src/psmx3_init.c +@@ -51,7 +51,7 @@ struct psmx3_env psmx3_env = { + .conn_timeout = 10, + .prog_interval = -1, + .prog_affinity = NULL, +- .multi_ep = 0, ++ .multi_ep = 1, + .inject_size = 64, + .lock_level = 2, + .lazy_conn = 0, +@@ -222,7 +222,7 @@ static int psmx3_check_multi_ep_cap(void) + uint64_t caps = PSM2_MULTI_EP_CAP; + char *s = getenv("PSM3_MULTI_EP"); + +- if (psm2_get_capability_mask(caps) == caps && psmx3_get_yes_no(s, 0)) ++ if (psm2_get_capability_mask(caps) == caps && psmx3_get_yes_no(s, 1)) + psmx3_env.multi_ep = 1; + else + psmx3_env.multi_ep = 0; diff --git a/easybuild/easyconfigs/l/libfabric/libfabric-1.9.1-GCCcore-9.3.0.eb b/easybuild/easyconfigs/l/libfabric/libfabric-1.9.1-GCCcore-9.3.0.eb index 0fae3270c1f..1f256aaa914 100644 --- a/easybuild/easyconfigs/l/libfabric/libfabric-1.9.1-GCCcore-9.3.0.eb +++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.9.1-GCCcore-9.3.0.eb @@ -30,7 +30,12 @@ osdependencies = [OS_PKG_IBVERBS_DEV] preconfigopts = "./autogen.sh && " # Disable deprecated "sockets" provider -configopts = "--disable-sockets" +configopts = "--disable-sockets " + +# Disable usNIC provider by default as this requires specific osdependencies +# If you want to enable this provider you need to uncomment the following line: +# osdependencies.append(('libnl3-devel', 'libnl3-dev')) +configopts += "--disable-usnic " sanity_check_paths = { 'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror'] + diff --git a/easybuild/easyconfigs/l/libffi/libffi-3.3-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libffi/libffi-3.3-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..aa8555634d1 --- /dev/null +++ b/easybuild/easyconfigs/l/libffi/libffi-3.3-GCCcore-10.3.0.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'libffi' +version = '3.3' + +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': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = [ + 'ftp://sourceware.org/pub/%(name)s/', + 'https://www.mirrorservice.org/sites/sourceware.org/pub/%(name)s/', +] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['72fba7922703ddfa7a028d513ac15a85c8d54c8d67f55fa5a4802885dc652056'] + +builddependencies = [ + ('binutils', '2.36.1'), +] + +sanity_check_paths = { + 'files': ['lib/libffi.a', 'lib/libffi.%s' % SHLIB_EXT], + 'dirs': ['include', 'share'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libgcrypt/libgcrypt-1.9.2-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libgcrypt/libgcrypt-1.9.2-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..e3289cfdee9 --- /dev/null +++ b/easybuild/easyconfigs/l/libgcrypt/libgcrypt-1.9.2-GCCcore-10.3.0.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'libgcrypt' +version = '1.9.2' + +homepage = 'https://gnupg.org/related_software/libgcrypt/index.html' +description = """Libgcrypt is a general purpose cryptographic library originally based on code from GnuPG""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://gnupg.org/ftp/gcrypt/%(name)s/'] +sources = [SOURCE_TAR_BZ2] +checksums = ['b2c10d091513b271e47177274607b1ffba3d95b188bbfa8797f948aec9053c5a'] + +builddependencies = [('binutils', '2.36.1')] + +dependencies = [('libgpg-error', '1.42')] + +sanity_check_paths = { + 'files': ['bin/libgcrypt-config', 'include/gcrypt.h', 'lib/libgcrypt.%s' % SHLIB_EXT], + 'dirs': ['share'] +} + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/l/libgit2/libgit2-1.1.0-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libgit2/libgit2-1.1.0-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..363d1410af2 --- /dev/null +++ b/easybuild/easyconfigs/l/libgit2/libgit2-1.1.0-GCCcore-10.3.0.eb @@ -0,0 +1,34 @@ +easyblock = 'CMakeMake' + +name = 'libgit2' +version = '1.1.0' + +homepage = 'https://libgit2.org/' +description = """libgit2 is a portable, pure C implementation of the Git core methods provided as a re-entrant +linkable library with a solid API, allowing you to write native speed custom Git applications in any language +which supports C bindings.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +github_account = 'libgit2' +source_urls = [GITHUB_SOURCE] +sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}] +checksums = ['41a6d5d740fd608674c7db8685685f45535323e73e784062cf000a633d420d1e'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('CMake', '3.20.1'), + ('pkg-config', '0.29.2'), +] + +dependencies = [ + ('PCRE', '8.44'), + ('OpenSSL', '1.1', '', True), +] + +sanity_check_paths = { + 'files': ['include/git2.h', 'lib64/libgit2.%s' % SHLIB_EXT, 'lib64/pkgconfig/libgit2.pc'], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/l/libglvnd/libglvnd-1.3.3-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libglvnd/libglvnd-1.3.3-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..3e970534b93 --- /dev/null +++ b/easybuild/easyconfigs/l/libglvnd/libglvnd-1.3.3-GCCcore-10.3.0.eb @@ -0,0 +1,33 @@ +easyblock = 'MesonNinja' + +name = 'libglvnd' +version = '1.3.3' + +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': '10.3.0'} + +source_urls = ['https://gitlab.freedesktop.org/glvnd/libglvnd/-/archive/v%(version)s/'] +sources = ['libglvnd-v%(version)s.tar.gz'] +checksums = ['e768f43a0b23d9a8c9f1bed425f7f15d8491a1780253945a4445ddc40e5f6f84'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('pkg-config', '0.29.2'), + ('Meson', '0.58.0'), + ('Ninja', '1.10.2'), +] + +dependencies = [('X11', '20210518')] + +# 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/libgpg-error/libgpg-error-1.36-GCCcore-8.2.0.eb b/easybuild/easyconfigs/l/libgpg-error/libgpg-error-1.36-GCCcore-8.2.0.eb index 1efe63c47f3..8a3affa48a8 100644 --- a/easybuild/easyconfigs/l/libgpg-error/libgpg-error-1.36-GCCcore-8.2.0.eb +++ b/easybuild/easyconfigs/l/libgpg-error/libgpg-error-1.36-GCCcore-8.2.0.eb @@ -10,7 +10,12 @@ toolchain = {'name': 'GCCcore', 'version': '8.2.0'} source_urls = ['https://gnupg.org/ftp/gcrypt/%(name)s/'] sources = [SOURCE_TAR_BZ2] -checksums = ['babd98437208c163175c29453f8681094bcaf92968a15cafb1a276076b33c97c'] +patches = ['%(name)s-%(version)s_fix_use_of_gawk_builtin.patch'] +checksums = [ + 'babd98437208c163175c29453f8681094bcaf92968a15cafb1a276076b33c97c', # libgpg-error-1.36.tar.bz2 + # libgpg-error-1.36_fix_use_of_gawk_builtin.patch + 'abf98055f6a022f078a9ff66783e5b5d8d5b2f290d08bdd2af0880b3e5b684dd', +] builddependencies = [('binutils', '2.31.1')] diff --git a/easybuild/easyconfigs/l/libgpg-error/libgpg-error-1.36_fix_use_of_gawk_builtin.patch b/easybuild/easyconfigs/l/libgpg-error/libgpg-error-1.36_fix_use_of_gawk_builtin.patch new file mode 100644 index 00000000000..76bd08c27db --- /dev/null +++ b/easybuild/easyconfigs/l/libgpg-error/libgpg-error-1.36_fix_use_of_gawk_builtin.patch @@ -0,0 +1,55 @@ +This patch does the same thing as is done in 1.38 to avoid +the use of a gawk builtin as a variable. + +Åke Sandgren, 2021-04-22 +diff -ru libgpg-error-1.36.orig/src/Makefile.in libgpg-error-1.36/src/Makefile.in +--- libgpg-error-1.36.orig/src/Makefile.in 2019-03-19 09:58:04.000000000 +0100 ++++ libgpg-error-1.36/src/Makefile.in 2021-04-22 13:53:19.443779131 +0200 +@@ -1615,7 +1615,7 @@ + + errnos-sym.h: Makefile mkstrtable.awk errnos.in + $(AWK) -f $(srcdir)/mkstrtable.awk -v textidx=2 -v nogettext=1 \ +- -v prefix=GPG_ERR_ -v namespace=errnos_ \ ++ -v prefix=GPG_ERR_ -v pkg_namespace=errnos_ \ + $(srcdir)/errnos.in >$@ + + mkheader$(EXEEXT_FOR_BUILD): mkheader.c Makefile +diff -ru libgpg-error-1.36.orig/src/mkstrtable.awk libgpg-error-1.36/src/mkstrtable.awk +--- libgpg-error-1.36.orig/src/mkstrtable.awk 2013-03-15 20:24:25.000000000 +0100 ++++ libgpg-error-1.36/src/mkstrtable.awk 2021-04-22 13:53:16.195791803 +0200 +@@ -77,7 +77,7 @@ + # + # The variable prefix can be used to prepend a string to each message. + # +-# The variable namespace can be used to prepend a string to each ++# The variable pkg_namespace can be used to prepend a string to each + # variable and macro name. + + BEGIN { +@@ -102,7 +102,7 @@ + print "/* The purpose of this complex string table is to produce"; + print " optimal code with a minimum of relocations. */"; + print ""; +- print "static const char " namespace "msgstr[] = "; ++ print "static const char " pkg_namespace "msgstr[] = "; + header = 0; + } + else +@@ -150,7 +150,7 @@ + else + print " gettext_noop (\"" last_msgstr "\");"; + print ""; +- print "static const int " namespace "msgidx[] ="; ++ print "static const int " pkg_namespace "msgidx[] ="; + print " {"; + for (i = 0; i < coded_msgs; i++) + print " " pos[i] ","; +@@ -158,7 +158,7 @@ + print " };"; + print ""; + print "static GPG_ERR_INLINE int"; +- print namespace "msgidxof (int code)"; ++ print pkg_namespace "msgidxof (int code)"; + print "{"; + print " return (0 ? 0"; + diff --git a/easybuild/easyconfigs/l/libgpg-error/libgpg-error-1.42-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libgpg-error/libgpg-error-1.42-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..656d4a7fb6e --- /dev/null +++ b/easybuild/easyconfigs/l/libgpg-error/libgpg-error-1.42-GCCcore-10.3.0.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'libgpg-error' +version = '1.42' + +homepage = 'https://gnupg.org/related_software/libgpg-error/index.html' +description = """Libgpg-error is a small library that defines common error values for all GnuPG components.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://gnupg.org/ftp/gcrypt/%(name)s/'] +sources = [SOURCE_TAR_BZ2] +checksums = ['fc07e70f6c615f8c4f590a8e37a9b8dd2e2ca1e9408f8e60459c67452b925e23'] + +builddependencies = [('binutils', '2.36.1')] + +sanity_check_paths = { + 'files': ['bin/gpg-error-config', 'include/gpg-error.h', 'lib/libgpg-error.%s' % SHLIB_EXT], + 'dirs': ['share'] +} + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/l/libiconv/libiconv-1.16-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libiconv/libiconv-1.16-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..b6bf32a513f --- /dev/null +++ b/easybuild/easyconfigs/l/libiconv/libiconv-1.16-GCCcore-10.3.0.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'libiconv' +version = '1.16' + +homepage = 'https://www.gnu.org/software/libiconv' +description = "Libiconv converts from one character encoding to another through Unicode conversion" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['e6a1b1b589654277ee790cce3734f07876ac4ccfaecbee8afa0b649cf529cc04'] + +builddependencies = [('binutils', '2.36.1')] + +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/libidn/libidn-1.36-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libidn/libidn-1.36-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..ee904d3d997 --- /dev/null +++ b/easybuild/easyconfigs/l/libidn/libidn-1.36-GCCcore-10.3.0.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'libidn' +version = '1.36' + +homepage = 'http://www.gnu.org/software/%(name)s' +description = """GNU Libidn is a fully documented implementation of the Stringprep, Punycode and IDNA specifications. +Libidn's purpose is to encode and decode internationalized domain names.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['14b67108344d81ba844631640df77c9071d9fb0659b080326ff5424e86b14038'] + +builddependencies = [('binutils', '2.36.1')] + +sanity_check_paths = { + 'files': ['bin/idn', 'lib/libidn.%s' % SHLIB_EXT], + 'dirs': ['include'], +} +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libidn2/libidn2-2.3.0-GCCcore-10.2.0.eb b/easybuild/easyconfigs/l/libidn2/libidn2-2.3.0-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..684e717287d --- /dev/null +++ b/easybuild/easyconfigs/l/libidn2/libidn2-2.3.0-GCCcore-10.2.0.eb @@ -0,0 +1,25 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'libidn2' +version = '2.3.0' + +homepage = 'https://www.gnu.org/software/libidn' +description = """GNU Libidn is a fully documented implementation of the Stringprep, Punycode and IDNA specifications. +Libidn's purpose is to encode and decode internationalized domain names.""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['https://ftpmirror.gnu.org/gnu/libidn'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['e1cb1db3d2e249a6a3eb6f0946777c2e892d5c5dc7bd91c74394fc3a01cab8b5'] + +builddependencies = [('binutils', '2.35')] + +sanity_check_paths = { + 'files': ['bin/idn2', 'lib/libidn2.%s' % SHLIB_EXT], + 'dirs': ['include'], +} +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libidn2/libidn2-2.3.0-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libidn2/libidn2-2.3.0-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..14d4114c112 --- /dev/null +++ b/easybuild/easyconfigs/l/libidn2/libidn2-2.3.0-GCCcore-10.3.0.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'libidn2' +version = '2.3.0' + +homepage = 'http://www.gnu.org/software/%(name)s' +description = """Libidn2 implements the revised algorithm for internationalized domain names called IDNA2008/TR46.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://ftp.gnu.org/gnu/libidn/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['e1cb1db3d2e249a6a3eb6f0946777c2e892d5c5dc7bd91c74394fc3a01cab8b5'] + +builddependencies = [('binutils', '2.36.1')] + +sanity_check_paths = { + 'files': ['bin/idn2', 'lib/libidn2.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +sanity_check_commands = ["idn2 --help"] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libidn2/libidn2-2.3.0-GCCcore-5.4.0.eb b/easybuild/easyconfigs/l/libidn2/libidn2-2.3.0-GCCcore-5.4.0.eb new file mode 100644 index 00000000000..160e79719f9 --- /dev/null +++ b/easybuild/easyconfigs/l/libidn2/libidn2-2.3.0-GCCcore-5.4.0.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'libidn2' +version = '2.3.0' + +homepage = 'https://www.gnu.org/software/libidn' +description = """GNU Libidn is a fully documented implementation of the Stringprep, Punycode and IDNA specifications. +Libidn's purpose is to encode and decode internationalized domain names.""" + +toolchain = {'name': 'GCCcore', 'version': '5.4.0'} + +source_urls = ['https://ftpmirror.gnu.org/gnu/libidn'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['e1cb1db3d2e249a6a3eb6f0946777c2e892d5c5dc7bd91c74394fc3a01cab8b5'] + +builddependencies = [('binutils', '2.26', '', True)] + +sanity_check_paths = { + 'files': ['bin/idn2', 'lib/libidn2.%s' % SHLIB_EXT], + 'dirs': ['include'], +} +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libidn2/libidn2-2.3.0-GCCcore-6.4.0.eb b/easybuild/easyconfigs/l/libidn2/libidn2-2.3.0-GCCcore-6.4.0.eb new file mode 100644 index 00000000000..0db260178e6 --- /dev/null +++ b/easybuild/easyconfigs/l/libidn2/libidn2-2.3.0-GCCcore-6.4.0.eb @@ -0,0 +1,25 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'libidn2' +version = '2.3.0' + +homepage = 'https://www.gnu.org/software/libidn' +description = """GNU Libidn is a fully documented implementation of the Stringprep, Punycode and IDNA specifications. +Libidn's purpose is to encode and decode internationalized domain names.""" + +toolchain = {'name': 'GCCcore', 'version': '6.4.0'} + +source_urls = ['https://ftpmirror.gnu.org/gnu/libidn'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['e1cb1db3d2e249a6a3eb6f0946777c2e892d5c5dc7bd91c74394fc3a01cab8b5'] + +builddependencies = [('binutils', '2.28')] + +sanity_check_paths = { + 'files': ['bin/idn2', 'lib/libidn2.%s' % SHLIB_EXT], + 'dirs': ['include'], +} +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libidn2/libidn2-2.3.0-GCCcore-7.3.0.eb b/easybuild/easyconfigs/l/libidn2/libidn2-2.3.0-GCCcore-7.3.0.eb new file mode 100644 index 00000000000..15f56ad202b --- /dev/null +++ b/easybuild/easyconfigs/l/libidn2/libidn2-2.3.0-GCCcore-7.3.0.eb @@ -0,0 +1,25 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'libidn2' +version = '2.3.0' + +homepage = 'https://www.gnu.org/software/libidn' +description = """GNU Libidn is a fully documented implementation of the Stringprep, Punycode and IDNA specifications. +Libidn's purpose is to encode and decode internationalized domain names.""" + +toolchain = {'name': 'GCCcore', 'version': '7.3.0'} + +source_urls = ['https://ftpmirror.gnu.org/gnu/libidn'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['e1cb1db3d2e249a6a3eb6f0946777c2e892d5c5dc7bd91c74394fc3a01cab8b5'] + +builddependencies = [('binutils', '2.30')] + +sanity_check_paths = { + 'files': ['bin/idn2', 'lib/libidn2.%s' % SHLIB_EXT], + 'dirs': ['include'], +} +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libidn2/libidn2-2.3.0-GCCcore-8.3.0.eb b/easybuild/easyconfigs/l/libidn2/libidn2-2.3.0-GCCcore-8.3.0.eb new file mode 100644 index 00000000000..7fc49c4e886 --- /dev/null +++ b/easybuild/easyconfigs/l/libidn2/libidn2-2.3.0-GCCcore-8.3.0.eb @@ -0,0 +1,25 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'libidn2' +version = '2.3.0' + +homepage = 'https://www.gnu.org/software/libidn' +description = """GNU Libidn is a fully documented implementation of the Stringprep, Punycode and IDNA specifications. +Libidn's purpose is to encode and decode internationalized domain names.""" + +toolchain = {'name': 'GCCcore', 'version': '8.3.0'} + +source_urls = ['https://ftpmirror.gnu.org/gnu/libidn'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['e1cb1db3d2e249a6a3eb6f0946777c2e892d5c5dc7bd91c74394fc3a01cab8b5'] + +builddependencies = [('binutils', '2.32')] + +sanity_check_paths = { + 'files': ['bin/idn2', 'lib/libidn2.%s' % SHLIB_EXT], + 'dirs': ['include'], +} +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libidn2/libidn2-2.3.0-GCCcore-9.3.0.eb b/easybuild/easyconfigs/l/libidn2/libidn2-2.3.0-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..9ed652bbf0c --- /dev/null +++ b/easybuild/easyconfigs/l/libidn2/libidn2-2.3.0-GCCcore-9.3.0.eb @@ -0,0 +1,25 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'libidn2' +version = '2.3.0' + +homepage = 'https://www.gnu.org/software/libidn' +description = """GNU Libidn is a fully documented implementation of the Stringprep, Punycode and IDNA specifications. +Libidn's purpose is to encode and decode internationalized domain names.""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} + +source_urls = ['https://ftpmirror.gnu.org/gnu/libidn'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['e1cb1db3d2e249a6a3eb6f0946777c2e892d5c5dc7bd91c74394fc3a01cab8b5'] + +builddependencies = [('binutils', '2.34')] + +sanity_check_paths = { + 'files': ['bin/idn2', 'lib/libidn2.%s' % SHLIB_EXT], + 'dirs': ['include'], +} +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libjpeg-turbo/libjpeg-turbo-2.0.6-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libjpeg-turbo/libjpeg-turbo-2.0.6-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..13a118e1614 --- /dev/null +++ b/easybuild/easyconfigs/l/libjpeg-turbo/libjpeg-turbo-2.0.6-GCCcore-10.3.0.eb @@ -0,0 +1,42 @@ +easyblock = 'CMakeMake' + +name = 'libjpeg-turbo' +version = '2.0.6' + +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': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['d74b92ac33b0e3657123ddcf6728788c90dc84dcb6a52013d758af3c4af481bb'] + +builddependencies = [ + ('CMake', '3.20.1'), + ('binutils', '2.36.1'), +] + +dependencies = [ + ('NASM', '2.15.05'), +] + +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/libmicrohttpd/libmicrohttpd-0.9.73-GCCcore-10.2.0.eb b/easybuild/easyconfigs/l/libmicrohttpd/libmicrohttpd-0.9.73-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..8665a8d9e26 --- /dev/null +++ b/easybuild/easyconfigs/l/libmicrohttpd/libmicrohttpd-0.9.73-GCCcore-10.2.0.eb @@ -0,0 +1,31 @@ +# Authors:: Jack Perdue - TAMU HPRC - https://hprc.tamu.edu + +easyblock = 'ConfigureMake' + +name = 'libmicrohttpd' +version = '0.9.73' + +homepage = 'https://www.gnu.org/software/libmicrohttpd/' + +description = """ + GNU libmicrohttpd is a small C library that is supposed to make it easy to run + an HTTP server as part of another application. +""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['https://ftp.gnu.org/gnu/libmicrohttpd/'] +sources = [SOURCE_TAR_GZ] +checksums = ['a37b2f1b88fd1bfe74109586be463a434d34e773530fc2a74364cfcf734c032e'] + +builddependencies = [('binutils', '2.35')] + +dependencies = [('cURL', '7.72.0')] + +sanity_check_paths = { + 'files': ['include/microhttpd.h', 'lib/%%(name)s.%s' % SHLIB_EXT, + 'share/man/man3/%(name)s.3'], + 'dirs': [] +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libogg/libogg-1.3.4-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libogg/libogg-1.3.4-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..2aa992248c8 --- /dev/null +++ b/easybuild/easyconfigs/l/libogg/libogg-1.3.4-GCCcore-10.3.0.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'libogg' +version = '1.3.4' + +homepage = 'https://xiph.org/ogg/' +description = """Ogg is a multimedia container format, and the native file and stream format for the Xiph.org +multimedia codecs.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://ftp.osuosl.org/pub/xiph/releases/ogg/'] +sources = [SOURCELOWER_TAR_XZ] +checksums = ['c163bc12bc300c401b6aa35907ac682671ea376f13ae0969a220f7ddf71893fe'] + +builddependencies = [('binutils', '2.36.1')] + +configopts = '--enable-static --enable-shared' + +sanity_check_paths = { + 'files': ['lib/libogg.a', 'lib/libogg.%s' % SHLIB_EXT], + 'dirs': ['include/ogg'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libpci/libpci-3.7.0-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libpci/libpci-3.7.0-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..6d5c9da3979 --- /dev/null +++ b/easybuild/easyconfigs/l/libpci/libpci-3.7.0-GCCcore-10.3.0.eb @@ -0,0 +1,41 @@ +easyblock = 'ConfigureMake' + +name = 'libpci' +version = '3.7.0' + +homepage = 'https://github.com/pciutils/pciutils' +description = "Library for portable access to PCI bus configuration registers from PCI Utils." + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/pciutils/pciutils/archive/'] +sources = ['v%(version)s.tar.gz'] +patches = ['%(name)s-%(version)s_fix-install-lib-symlinks.patch'] +checksums = [ + 'ea768aa0187ba349391c6c157445ecc2b42e7d671fc1ce8c53ff5ef513f1e2ab', # v3.7.0.tar.gz + '4f078fcfe76b79d82a7b428afcfe866aab94c9e4bd52d0bf41c57a4ef47d124c', # libpci-3.7.0_fix-install-lib-symlinks.patch +] + +builddependencies = [ + ('binutils', '2.36.1'), +] + +dependencies = [ + ('zlib', '1.2.11'), +] + +skipsteps = ['configure'] + +buildopts = "PREFIX=%(installdir)s SHARED=yes ZLIB=yes" + +# only install the library and header files +install_cmd = "make install-lib" +installopts = buildopts + +sanity_check_paths = { + 'files': ['lib/libpci.%s' % SHLIB_EXT], + 'dirs': ['include/pci', 'lib/pkgconfig'], +} + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.16-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.16-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..96a9c4f3f6b --- /dev/null +++ b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.16-GCCcore-10.3.0.eb @@ -0,0 +1,29 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'libpciaccess' +version = '0.16' + +homepage = 'https://cgit.freedesktop.org/xorg/lib/libpciaccess/' +description = """Generic PCI access library.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://www.x.org/releases/individual/lib/'] +sources = [SOURCE_TAR_GZ] +checksums = ['84413553994aef0070cf420050aa5c0a51b1956b404920e21b81e96db6a61a27'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('Autotools', '20210128'), + ('xorg-macros', '1.19.3'), +] + +sanity_check_paths = { + 'files': ['include/pciaccess.h', 'lib/libpciaccess.a'], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/l/libpng/libpng-1.6.37-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libpng/libpng-1.6.37-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..e4bac559445 --- /dev/null +++ b/easybuild/easyconfigs/l/libpng/libpng-1.6.37-GCCcore-10.3.0.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'libpng' +version = '1.6.37' + +homepage = 'http://www.libpng.org/pub/png/libpng.html' + +description = "libpng is the official PNG reference library" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['daeb2620d829575513e35fecc83f0d3791a620b9b93d800b763542ece9390fb4'] + +builddependencies = [('binutils', '2.36.1')] + +dependencies = [('zlib', '1.2.11')] + +local_majminver = ''.join(version.split('.')[:2]) + +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/libpsl/libpsl-0.21.0-GCCcore-8.2.0.eb b/easybuild/easyconfigs/l/libpsl/libpsl-0.21.0-GCCcore-8.2.0.eb index 0b578b7c1ab..de162fc5b90 100644 --- a/easybuild/easyconfigs/l/libpsl/libpsl-0.21.0-GCCcore-8.2.0.eb +++ b/easybuild/easyconfigs/l/libpsl/libpsl-0.21.0-GCCcore-8.2.0.eb @@ -12,7 +12,10 @@ source_urls = ['https://github.com/rockdaboot/%(name)s/releases/download/%(name) sources = [SOURCELOWER_TAR_GZ] checksums = ['41bd1c75a375b85c337b59783f5deb93dbb443fb0a52d257f403df7bd653ee12'] -builddependencies = [('binutils', '2.31.1')] +builddependencies = [ + ('binutils', '2.31.1'), + ('Python', '2.7.15'), +] sanity_check_paths = { 'files': ['bin/psl', 'lib/libpsl.a'], diff --git a/easybuild/easyconfigs/l/libpsl/libpsl-0.21.0-GCCcore-8.3.0.eb b/easybuild/easyconfigs/l/libpsl/libpsl-0.21.0-GCCcore-8.3.0.eb index 46f9cae9ede..62d34bf116e 100644 --- a/easybuild/easyconfigs/l/libpsl/libpsl-0.21.0-GCCcore-8.3.0.eb +++ b/easybuild/easyconfigs/l/libpsl/libpsl-0.21.0-GCCcore-8.3.0.eb @@ -12,7 +12,10 @@ source_urls = ['https://github.com/rockdaboot/%(name)s/releases/download/%(name) sources = [SOURCELOWER_TAR_GZ] checksums = ['41bd1c75a375b85c337b59783f5deb93dbb443fb0a52d257f403df7bd653ee12'] -builddependencies = [('binutils', '2.32')] +builddependencies = [ + ('binutils', '2.32'), + ('Python', '2.7.16'), +] sanity_check_paths = { 'files': ['bin/psl', 'lib/libpsl.a'], diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-8.1-FCC-4.5.0.eb b/easybuild/easyconfigs/l/libreadline/libreadline-8.1-FCC-4.5.0.eb new file mode 100644 index 00000000000..ca514afa042 --- /dev/null +++ b/easybuild/easyconfigs/l/libreadline/libreadline-8.1-FCC-4.5.0.eb @@ -0,0 +1,44 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'libreadline' +version = '8.1' + +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': 'FCC', 'version': '4.5.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://ftp.gnu.org/gnu/readline'] +sources = ['readline-%(version)s.tar.gz'] +checksums = ['f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02'] + +builddependencies = [ + ('binutils', '2.36.1'), +] +dependencies = [ + ('ncurses', '6.2'), +] + +# 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/libreadline/libreadline-8.1-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libreadline/libreadline-8.1-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..46fa72955f3 --- /dev/null +++ b/easybuild/easyconfigs/l/libreadline/libreadline-8.1-GCCcore-10.3.0.eb @@ -0,0 +1,44 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'libreadline' +version = '8.1' + +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': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://ftp.gnu.org/gnu/readline'] +sources = ['readline-%(version)s.tar.gz'] +checksums = ['f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02'] + +builddependencies = [ + ('binutils', '2.36.1'), +] +dependencies = [ + ('ncurses', '6.2'), +] + +# 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/librosa/librosa-0.7.2-foss-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/l/librosa/librosa-0.7.2-foss-2019b-Python-3.7.4.eb new file mode 100644 index 00000000000..2688e33e6cb --- /dev/null +++ b/easybuild/easyconfigs/l/librosa/librosa-0.7.2-foss-2019b-Python-3.7.4.eb @@ -0,0 +1,40 @@ +easyblock = 'PythonBundle' + +name = 'librosa' +version = '0.7.2' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://librosa.github.io' +description = "Python module for audio and music processing" + +toolchain = {'name': 'foss', 'version': '2019b'} + +dependencies = [ + ('Python', '3.7.4'), + ('SciPy-bundle', '2019.10', versionsuffix), + ('FFmpeg', '4.2.1'), + ('matplotlib', '3.1.1', versionsuffix), + ('scikit-learn', '0.21.3', versionsuffix), + ('numba', '0.47.0', versionsuffix), + ('libsndfile', '1.0.28'), +] + +exts_list = [ + ('audioread', '2.1.8', { + 'checksums': ['073904fabc842881e07bd3e4a5776623535562f70b1655b635d22886168dd168'], + }), + ('SoundFile', '0.10.3.post1', { + 'checksums': ['490cff42650733d1832728b937fe99fa1802896f5ef4d61bcf78cf7ebecb107b'], + }), + ('resampy', '0.2.2', { + 'checksums': ['62af020d8a6674d8117f62320ce9470437bb1d738a5d06cd55591b69b463929e'], + }), + (name, version, { + 'checksums': ['656bbda80e98e6330db1ead79cd084b13a762284834d7603fcf7cf7c0dc65f3c'], + }), +] + +use_pip = True +sanity_pip_check = True + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/librosa/librosa-0.7.2-fosscuda-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/l/librosa/librosa-0.7.2-fosscuda-2019b-Python-3.7.4.eb new file mode 100644 index 00000000000..9e7257daf01 --- /dev/null +++ b/easybuild/easyconfigs/l/librosa/librosa-0.7.2-fosscuda-2019b-Python-3.7.4.eb @@ -0,0 +1,40 @@ +easyblock = 'PythonBundle' + +name = 'librosa' +version = '0.7.2' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://librosa.github.io' +description = "Python module for audio and music processing" + +toolchain = {'name': 'fosscuda', 'version': '2019b'} + +dependencies = [ + ('Python', '3.7.4'), + ('SciPy-bundle', '2019.10', versionsuffix), + ('FFmpeg', '4.2.1'), + ('matplotlib', '3.1.1', versionsuffix), + ('scikit-learn', '0.21.3', versionsuffix), + ('numba', '0.47.0', versionsuffix), + ('libsndfile', '1.0.28'), +] + +exts_list = [ + ('audioread', '2.1.8', { + 'checksums': ['073904fabc842881e07bd3e4a5776623535562f70b1655b635d22886168dd168'], + }), + ('SoundFile', '0.10.3.post1', { + 'checksums': ['490cff42650733d1832728b937fe99fa1802896f5ef4d61bcf78cf7ebecb107b'], + }), + ('resampy', '0.2.2', { + 'checksums': ['62af020d8a6674d8117f62320ce9470437bb1d738a5d06cd55591b69b463929e'], + }), + (name, version, { + 'checksums': ['656bbda80e98e6330db1ead79cd084b13a762284834d7603fcf7cf7c0dc65f3c'], + }), +] + +use_pip = True +sanity_pip_check = True + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/librsb/librsb-1.2.0.9-GCC-10.2.0.eb b/easybuild/easyconfigs/l/librsb/librsb-1.2.0.9-GCC-10.2.0.eb new file mode 100644 index 00000000000..1e66ae9aa3b --- /dev/null +++ b/easybuild/easyconfigs/l/librsb/librsb-1.2.0.9-GCC-10.2.0.eb @@ -0,0 +1,29 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'librsb' +version = '1.2.0.9' + +homepage = 'https://sourceforge.net/projects/librsb/' +description = """A shared memory parallel sparse matrix computations library for the Recursive Sparse Blocks format""" + +toolchain = {'name': 'GCC', 'version': '10.2.0'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['f421f5d572461601120933e3c1cfee2ca69e6ecc92cbb11baa4e86bdedd3d9fa'] + +dependencies = [ + ('zlib', '1.2.11') +] + +configopts = '--enable-openmp --enable-fortran-module-install' + +sanity_check_paths = { + 'files': ['bin/rsbench', 'lib/librsb.a', 'lib/librsb.%s' % SHLIB_EXT], + 'dirs': ['include', 'share'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libsndfile/libsndfile-1.0.31-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libsndfile/libsndfile-1.0.31-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..7641532c989 --- /dev/null +++ b/easybuild/easyconfigs/l/libsndfile/libsndfile-1.0.31-GCCcore-10.3.0.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'libsndfile' +version = '1.0.31' + +homepage = 'http://www.mega-nerd.com/libsndfile' +description = """Libsndfile is a C library for reading and writing files containing sampled sound + (such as MS Windows WAV and the Apple/SGI AIFF format) through one standard library interface.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://github.com/libsndfile/libsndfile/releases/download/%(version)s/'] +sources = [SOURCE_TAR_BZ2] +checksums = ['a8cfb1c09ea6e90eff4ca87322d4168cdbe5035cb48717b40bf77e751cc02163'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('pkg-config', '0.29.2'), +] + +dependencies = [ + ('FLAC', '1.3.3'), + ('libvorbis', '1.3.7'), +] + +configopts = '--enable-octave=no' + +sanity_check_paths = { + 'files': ['include/sndfile.h', 'include/sndfile.hh', 'lib/libsndfile.a', 'lib/libsndfile.%s' % SHLIB_EXT], + 'dirs': ['bin'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libtool/libtool-2.4.6-FCC-4.5.0.eb b/easybuild/easyconfigs/l/libtool/libtool-2.4.6-FCC-4.5.0.eb new file mode 100644 index 00000000000..157c8b2ee55 --- /dev/null +++ b/easybuild/easyconfigs/l/libtool/libtool-2.4.6-FCC-4.5.0.eb @@ -0,0 +1,35 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'libtool' +version = '2.4.6' + +homepage = 'https://www.gnu.org/software/libtool' + +description = """ + GNU libtool is a generic library support script. Libtool hides the complexity + of using shared libraries behind a consistent, portable interface. +""" + +toolchain = {'name': 'FCC', 'version': '4.5.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['e3bd4d5d3d025a36c21dd6af7ea818a2afcd4dfc1ea5a17b39d7854bcd0c06e3'] + +builddependencies = [ + ('binutils', '2.36.1'), +] + +dependencies = [ + ('M4', '1.4.18'), +] + +sanity_check_paths = { + 'files': ['bin/libtool', 'bin/libtoolize', 'lib/libltdl.%s' % SHLIB_EXT], + 'dirs': ['include/libltdl', 'share/libtool/loaders', 'share/man/man1'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libtool/libtool-2.4.6-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libtool/libtool-2.4.6-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..8f10b80009d --- /dev/null +++ b/easybuild/easyconfigs/l/libtool/libtool-2.4.6-GCCcore-10.3.0.eb @@ -0,0 +1,35 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'libtool' +version = '2.4.6' + +homepage = 'https://www.gnu.org/software/libtool' + +description = """ + GNU libtool is a generic library support script. Libtool hides the complexity + of using shared libraries behind a consistent, portable interface. +""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['e3bd4d5d3d025a36c21dd6af7ea818a2afcd4dfc1ea5a17b39d7854bcd0c06e3'] + +builddependencies = [ + ('binutils', '2.36.1'), +] + +dependencies = [ + ('M4', '1.4.18'), +] + +sanity_check_paths = { + 'files': ['bin/libtool', 'bin/libtoolize', 'lib/libltdl.%s' % SHLIB_EXT], + 'dirs': ['include/libltdl', 'share/libtool/loaders', 'share/man/man1'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libunwind/libunwind-1.4.0-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libunwind/libunwind-1.4.0-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..57157bb40bb --- /dev/null +++ b/easybuild/easyconfigs/l/libunwind/libunwind-1.4.0-GCCcore-10.3.0.eb @@ -0,0 +1,40 @@ +easyblock = 'ConfigureMake' + +name = 'libunwind' +version = '1.4.0' + +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': '10.3.0'} + +source_urls = [GNU_SAVANNAH_SOURCE] +sources = [SOURCE_TAR_GZ] +patches = [ + 'libunwind-1.3.1_fix_ppc64_fpreg_t.patch', + 'libunwind-1.4.0_weak_symbol_fix.patch', +] +checksums = [ + 'df59c931bd4d7ebfd83ee481c943edf015138089b8e50abed8d9c57ba9338435', # libunwind-1.4.0.tar.gz + '61a507eec7ece286b06be698c742f0016d8c605eaeedf34f451cf1d0e510ec86', # libunwind-1.3.1_fix_ppc64_fpreg_t.patch + 'fdaf565dc8de48d564562a7258d04fe23f594af1741c49a3062f9f60cde220c8', # libunwind-1.4.0_weak_symbol_fix.patch +] + +builddependencies = [('binutils', '2.36.1')] + +dependencies = [ + ('XZ', '5.2.5'), +] + +preconfigopts = 'export LIBS="$LIBS -llzma" && export CFLAGS="$CFLAGS -fuse-ld=bfd -fno-common" && ' + +sanity_check_paths = { + 'files': ['include/libunwind.h', 'lib/libunwind.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libunwind/libunwind-1.5.0-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libunwind/libunwind-1.5.0-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..901e2defd37 --- /dev/null +++ b/easybuild/easyconfigs/l/libunwind/libunwind-1.5.0-GCCcore-10.3.0.eb @@ -0,0 +1,36 @@ +easyblock = 'ConfigureMake' + +name = 'libunwind' +version = '1.5.0' + +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': '10.3.0'} + +source_urls = [GNU_SAVANNAH_SOURCE] +sources = [SOURCE_TAR_GZ] +patches = ['libunwind-1.3.1_fix_ppc64_fpreg_t.patch'] +checksums = [ + '90337653d92d4a13de590781371c604f9031cdb50520366aa1e3a91e1efb1017', # libunwind-1.5.0.tar.gz + '61a507eec7ece286b06be698c742f0016d8c605eaeedf34f451cf1d0e510ec86', # libunwind-1.3.1_fix_ppc64_fpreg_t.patch +] + +builddependencies = [('binutils', '2.36.1')] + +dependencies = [ + ('XZ', '5.2.5'), +] + +preconfigopts = 'export LIBS="$LIBS -llzma" && export CFLAGS="$CFLAGS -fuse-ld=bfd -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-2020a.eb b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2020a.eb new file mode 100644 index 00000000000..c6769e53157 --- /dev/null +++ b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2020a.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': '2020a'} + +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/libvorbis/libvorbis-1.3.7-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libvorbis/libvorbis-1.3.7-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..e694e79eafc --- /dev/null +++ b/easybuild/easyconfigs/l/libvorbis/libvorbis-1.3.7-GCCcore-10.3.0.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'libvorbis' +version = '1.3.7' + +homepage = 'https://xiph.org/vorbis/' +description = """Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general-purpose compressed +audio format""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://ftp.osuosl.org/pub/xiph/releases/vorbis/'] +sources = [SOURCE_TAR_XZ] +checksums = ['b33cc4934322bcbf6efcbacf49e3ca01aadbea4114ec9589d1b1e9d20f72954b'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('pkg-config', '0.29.2'), +] + +dependencies = [('libogg', '1.3.4')] + +configopts = '--enable-static --enable-shared' + +sanity_check_paths = { + 'files': ['lib/libvorbis.a', 'lib/libvorbis.%s' % SHLIB_EXT], + 'dirs': ['include/vorbis'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libwebp/libwebp-1.2.0-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libwebp/libwebp-1.2.0-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..0fb99780e9a --- /dev/null +++ b/easybuild/easyconfigs/l/libwebp/libwebp-1.2.0-GCCcore-10.3.0.eb @@ -0,0 +1,36 @@ +easyblock = 'ConfigureMake' + +name = 'libwebp' +version = '1.2.0' + +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': '10.3.0'} + +source_urls = ['https://storage.googleapis.com/downloads.webmproject.org/releases/webp'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['2fc8bbde9f97f2ab403c0224fb9ca62b2e6852cbc519e91ceaa7c153ffd88a0c'] + +builddependencies = [('binutils', '2.36.1')] + +dependencies = [ + ('libjpeg-turbo', '2.0.6'), + ('libpng', '1.6.37'), + ('LibTIFF', '4.2.0'), + ('giflib', '5.2.1'), +] + +configopts = "--enable-libwebpmux" + +sanity_check_paths = { + 'files': ['include/webp/%s' % f for f in ['decode.h', 'demux.h', 'encode.h', 'mux.h', 'mux_types.h', 'types.h']] + + ['lib/lib%s.a' % l for l in ['webp', 'webpdemux', 'webpmux']] + + ['lib/lib%s.%s' % (l, SHLIB_EXT) for l in ['webp', 'webpdemux', 'webpmux']], + 'dirs': ['lib/'] +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libxc/libxc-4.3.4-GCC-10.2.0.eb b/easybuild/easyconfigs/l/libxc/libxc-4.3.4-GCC-10.2.0.eb index 1bd1ee4c450..2d16f4413bf 100644 --- a/easybuild/easyconfigs/l/libxc/libxc-4.3.4-GCC-10.2.0.eb +++ b/easybuild/easyconfigs/l/libxc/libxc-4.3.4-GCC-10.2.0.eb @@ -30,6 +30,8 @@ builddependencies = [ separate_build_dir = True +parallel = 1 + local_common_configopts = "-DENABLE_FORTRAN=ON -DENABLE_FORTRAN03=ON -DENABLE_XHOST=OFF" # perform iterative build to get both static and shared libraries @@ -38,6 +40,10 @@ configopts = [ 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 = { @@ -46,6 +52,4 @@ sanity_check_paths = { 'dirs': ['include', 'lib/pkgconfig', 'share/cmake/Libxc'], } -parallel = 1 - moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/libxc/libxc-4.3.4-GCC-8.2.0-2.31.1.eb b/easybuild/easyconfigs/l/libxc/libxc-4.3.4-GCC-8.2.0-2.31.1.eb index 3a0eeb68db1..c39a90a13f4 100644 --- a/easybuild/easyconfigs/l/libxc/libxc-4.3.4-GCC-8.2.0-2.31.1.eb +++ b/easybuild/easyconfigs/l/libxc/libxc-4.3.4-GCC-8.2.0-2.31.1.eb @@ -38,6 +38,12 @@ 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 && " + runtest = 'test' sanity_check_paths = { @@ -46,6 +52,4 @@ sanity_check_paths = { 'dirs': ['include', 'lib/pkgconfig', 'share/cmake/Libxc'], } -parallel = 1 - moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/libxc/libxc-4.3.4-GCC-8.3.0.eb b/easybuild/easyconfigs/l/libxc/libxc-4.3.4-GCC-8.3.0.eb index 4e3f5e14fa6..2cee494fb3f 100644 --- a/easybuild/easyconfigs/l/libxc/libxc-4.3.4-GCC-8.3.0.eb +++ b/easybuild/easyconfigs/l/libxc/libxc-4.3.4-GCC-8.3.0.eb @@ -38,6 +38,12 @@ 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 && " + runtest = 'test' sanity_check_paths = { @@ -46,6 +52,4 @@ sanity_check_paths = { 'dirs': ['include', 'lib/pkgconfig', 'share/cmake/Libxc'], } -parallel = 1 - moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/libxc/libxc-4.3.4-GCC-9.3.0.eb b/easybuild/easyconfigs/l/libxc/libxc-4.3.4-GCC-9.3.0.eb index a18ca37fc08..d57ae6f7ed6 100644 --- a/easybuild/easyconfigs/l/libxc/libxc-4.3.4-GCC-9.3.0.eb +++ b/easybuild/easyconfigs/l/libxc/libxc-4.3.4-GCC-9.3.0.eb @@ -38,6 +38,12 @@ 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 && " + runtest = 'test' sanity_check_paths = { @@ -46,6 +52,4 @@ sanity_check_paths = { 'dirs': ['include', 'lib/pkgconfig', 'share/cmake/Libxc'], } -parallel = 1 - moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/libxc/libxc-4.3.4-iccifort-2019.1.144-GCC-8.2.0-2.31.1.eb b/easybuild/easyconfigs/l/libxc/libxc-4.3.4-iccifort-2019.1.144-GCC-8.2.0-2.31.1.eb index ff4dc62dd58..c16040e959c 100644 --- a/easybuild/easyconfigs/l/libxc/libxc-4.3.4-iccifort-2019.1.144-GCC-8.2.0-2.31.1.eb +++ b/easybuild/easyconfigs/l/libxc/libxc-4.3.4-iccifort-2019.1.144-GCC-8.2.0-2.31.1.eb @@ -46,6 +46,10 @@ configopts = [ 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 && " + runtest = 'test' sanity_check_paths = { diff --git a/easybuild/easyconfigs/l/libxc/libxc-4.3.4-iccifort-2019.5.281.eb b/easybuild/easyconfigs/l/libxc/libxc-4.3.4-iccifort-2019.5.281.eb index 9c51d016cac..dc1729bb654 100644 --- a/easybuild/easyconfigs/l/libxc/libxc-4.3.4-iccifort-2019.5.281.eb +++ b/easybuild/easyconfigs/l/libxc/libxc-4.3.4-iccifort-2019.5.281.eb @@ -46,6 +46,10 @@ configopts = [ 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 && " + runtest = 'test' sanity_check_paths = { diff --git a/easybuild/easyconfigs/l/libxc/libxc-4.3.4-iccifort-2020.1.217.eb b/easybuild/easyconfigs/l/libxc/libxc-4.3.4-iccifort-2020.1.217.eb index 9eaef59d67e..21a6399c430 100644 --- a/easybuild/easyconfigs/l/libxc/libxc-4.3.4-iccifort-2020.1.217.eb +++ b/easybuild/easyconfigs/l/libxc/libxc-4.3.4-iccifort-2020.1.217.eb @@ -46,6 +46,10 @@ configopts = [ 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 && " + runtest = 'test' sanity_check_paths = { diff --git a/easybuild/easyconfigs/l/libxc/libxc-4.3.4-iccifort-2020.4.304.eb b/easybuild/easyconfigs/l/libxc/libxc-4.3.4-iccifort-2020.4.304.eb index a07e6e4dbc0..81cacc26ca8 100644 --- a/easybuild/easyconfigs/l/libxc/libxc-4.3.4-iccifort-2020.4.304.eb +++ b/easybuild/easyconfigs/l/libxc/libxc-4.3.4-iccifort-2020.4.304.eb @@ -46,6 +46,10 @@ configopts = [ 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 && " + runtest = 'test' sanity_check_paths = { diff --git a/easybuild/easyconfigs/l/libxc/libxc-5.1.2-GCC-10.2.0.eb b/easybuild/easyconfigs/l/libxc/libxc-5.1.2-GCC-10.2.0.eb index e38add051dc..e62a0ad0fac 100644 --- a/easybuild/easyconfigs/l/libxc/libxc-5.1.2-GCC-10.2.0.eb +++ b/easybuild/easyconfigs/l/libxc/libxc-5.1.2-GCC-10.2.0.eb @@ -28,6 +28,12 @@ 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 && " + runtest = 'test' sanity_check_paths = { @@ -36,6 +42,4 @@ sanity_check_paths = { 'dirs': ['include', 'lib/pkgconfig', 'share/cmake/Libxc'], } -parallel = 1 - moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/libxc/libxc-5.1.3-GCC-10.2.0.eb b/easybuild/easyconfigs/l/libxc/libxc-5.1.3-GCC-10.2.0.eb index 59a421a6ea9..8aa007ac6f1 100644 --- a/easybuild/easyconfigs/l/libxc/libxc-5.1.3-GCC-10.2.0.eb +++ b/easybuild/easyconfigs/l/libxc/libxc-5.1.3-GCC-10.2.0.eb @@ -28,6 +28,12 @@ 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 && " + runtest = 'test' sanity_check_paths = { @@ -36,6 +42,4 @@ sanity_check_paths = { 'dirs': ['include', 'lib/pkgconfig', 'share/cmake/Libxc'], } -parallel = 1 - moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.9.10-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.10-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..8b050c1144f --- /dev/null +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.9.10-GCCcore-10.3.0.eb @@ -0,0 +1,31 @@ +## +# Author: Robert Mijakovic +## +name = 'libxml2' +version = '2.9.10' + +homepage = 'http://xmlsoft.org/' + +description = """ + Libxml2 is the XML C parser and toolchain developed for the Gnome project + (but usable outside of the Gnome platform). +""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['aafee193ffb8fe0c82d4afef6ef91972cbaf5feea100edc2f262750611b4be1f'] + +builddependencies = [('binutils', '2.36.1')] + +dependencies = [ + ('XZ', '5.2.5'), + ('zlib', '1.2.11'), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libyaml/libyaml-0.2.5-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libyaml/libyaml-0.2.5-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..b51697bbe23 --- /dev/null +++ b/easybuild/easyconfigs/l/libyaml/libyaml-0.2.5-GCCcore-10.3.0.eb @@ -0,0 +1,23 @@ +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': '10.3.0'} + +source_urls = ['https://pyyaml.org/download/libyaml/'] +sources = ['yaml-%(version)s.tar.gz'] +checksums = ['c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4'] + +builddependencies = [('binutils', '2.36.1')] + +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/libzip/libzip-1.7.3-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libzip/libzip-1.7.3-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..e7d3e3db35e --- /dev/null +++ b/easybuild/easyconfigs/l/libzip/libzip-1.7.3-GCCcore-10.3.0.eb @@ -0,0 +1,32 @@ +easyblock = 'CMakeMake' + +name = 'libzip' +version = '1.7.3' + +homepage = 'https://libzip.org/' +description = "libzip is a C library for reading, creating, and modifying zip archives." + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://github.com/nih-at/libzip/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['c0a086901dfc8bda0fb8695f2d3c8050ed140b7899536b9348bcc72b47b2f307'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('CMake', '3.20.1'), +] + +dependencies = [('zlib', '1.2.11')] + +sanity_check_paths = { + 'files': [ + 'bin/zipcmp', + 'bin/zipmerge', + 'bin/ziptool', + 'lib64/libzip.%s' % SHLIB_EXT, + ], + 'dirs': ['include', 'lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/line_profiler/line_profiler-3.1.0-foss-2020a-Python-3.8.2.eb b/easybuild/easyconfigs/l/line_profiler/line_profiler-3.1.0-foss-2020a-Python-3.8.2.eb new file mode 100644 index 00000000000..649d75f9fbe --- /dev/null +++ b/easybuild/easyconfigs/l/line_profiler/line_profiler-3.1.0-foss-2020a-Python-3.8.2.eb @@ -0,0 +1,39 @@ +easyblock = 'PythonPackage' + +name = 'line_profiler' +version = '3.1.0' +versionsuffix = '-Python-%(pyver)s' + +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': 'foss', 'version': '2020a'} + +sources = [SOURCE_TAR_GZ] +checksums = ['e73ff429236d59d48ce7028484becfa01449b3d52abdcf7337e0ff2acdc5093c'] + +builddependencies = [ + ('scikit-build', '0.10.0', versionsuffix), + ('CMake', '3.16.4'), + ('Ninja', '1.10.0'), +] +dependencies = [ + ('Python', '3.8.2'), + ('IPython', '7.15.0', versionsuffix), +] + +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/loompy/loompy-3.0.6-intel-2020b.eb b/easybuild/easyconfigs/l/loompy/loompy-3.0.6-intel-2020b.eb new file mode 100644 index 00000000000..64f5e587928 --- /dev/null +++ b/easybuild/easyconfigs/l/loompy/loompy-3.0.6-intel-2020b.eb @@ -0,0 +1,38 @@ +easyblock = 'PythonBundle' + +name = 'loompy' +version = '3.0.6' + +homepage = 'https://loompy.org/' +description = "Python implementation of the Loom file format, an efficient file format for large omics datasets" + +toolchain = {'name': 'intel', 'version': '2020b'} + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), + ('h5py', '3.1.0'), + ('numba', '0.52.0'), +] + +use_pip = True + +exts_list = [ + ('numpy_groupies', '0.9.13', { + 'checksums': ['7b17b291322353f07c51598512d077e3731da0a048cfa8f738f3460d1ef0658d'], + }), + (name, version, { + 'checksums': ['58e9763b8ab1af2a4a0e3805d120458b5184fd2b0f3031657ecce33c63ca4c46'], + }), +] + +sanity_check_paths = { + 'files': ['bin/loompy'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["loompy --help"] + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/l/lz4/lz4-1.9.3-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/lz4/lz4-1.9.3-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..74248d08f64 --- /dev/null +++ b/easybuild/easyconfigs/l/lz4/lz4-1.9.3-GCCcore-10.3.0.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'lz4' +version = '1.9.3' + +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': '10.3.0'} + +github_account = '%(name)s' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['030644df4611007ff7dc962d981f390361e6c97a34e5cbc393ddfbe019ffe2c1'] + +builddependencies = [('binutils', '2.36.1')] + +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/M4/M4-1.4.18-FCC-4.5.0.eb b/easybuild/easyconfigs/m/M4/M4-1.4.18-FCC-4.5.0.eb new file mode 100644 index 00000000000..bc8af908fd7 --- /dev/null +++ b/easybuild/easyconfigs/m/M4/M4-1.4.18-FCC-4.5.0.eb @@ -0,0 +1,36 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.18' + +homepage = 'https://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'FCC', 'version': '4.5.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +patches = ['M4-1.4.18_glibc_2.28.patch'] +checksums = [ + 'ab2633921a5cd38e48797bf5521ad259bdc4b979078034a3b790d7fec5493fab', # m4-1.4.18.tar.gz + 'a613c18f00b1a3caa46ae4b8b849a0f4f71095ad860f4fcd6c6bb4ae211681fa', # M4-1.4.18_glibc_2.28.patch +] + +# use binutils from the OS, since M4 is itself a dependency of the easybuilt binutils (via flex and Bison) +osdependencies = [('binutils')] + +# workaround for https://bugs.llvm.org/show_bug.cgi?id=16404 +preconfigopts = 'export LDFLAGS="--rtlib=compiler-rt $LDFLAGS" && ' + +# '-fgnu89-inline' is required to avoid linking errors with older glibc's, +# see https://github.com/easybuilders/easybuild-easyconfigs/issues/529 +configopts = "--enable-c++ CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ['bin/m4'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.18-GCCcore-10.3.0.eb b/easybuild/easyconfigs/m/M4/M4-1.4.18-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..e7dee0ddd89 --- /dev/null +++ b/easybuild/easyconfigs/m/M4/M4-1.4.18-GCCcore-10.3.0.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.18' + +homepage = 'https://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +patches = ['M4-1.4.18_glibc_2.28.patch'] +checksums = [ + 'ab2633921a5cd38e48797bf5521ad259bdc4b979078034a3b790d7fec5493fab', # m4-1.4.18.tar.gz + 'a613c18f00b1a3caa46ae4b8b849a0f4f71095ad860f4fcd6c6bb4ae211681fa', # M4-1.4.18_glibc_2.28.patch +] + +# use same binutils version that was used when building GCC toolchain +builddependencies = [('binutils', '2.36.1', '', True)] + +# '-fgnu89-inline' is required to avoid linking errors with older glibc's, +# see https://github.com/easybuilders/easybuild-easyconfigs/issues/529 +configopts = "--enable-c++ CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ['bin/m4'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.18-GCCcore-11.1.0.eb b/easybuild/easyconfigs/m/M4/M4-1.4.18-GCCcore-11.1.0.eb new file mode 100644 index 00000000000..e63d5912066 --- /dev/null +++ b/easybuild/easyconfigs/m/M4/M4-1.4.18-GCCcore-11.1.0.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.18' + +homepage = 'https://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'GCCcore', 'version': '11.1.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +patches = ['M4-1.4.18_glibc_2.28.patch'] +checksums = [ + 'ab2633921a5cd38e48797bf5521ad259bdc4b979078034a3b790d7fec5493fab', # m4-1.4.18.tar.gz + 'a613c18f00b1a3caa46ae4b8b849a0f4f71095ad860f4fcd6c6bb4ae211681fa', # M4-1.4.18_glibc_2.28.patch +] + +# use same binutils version that was used when building GCC toolchain +builddependencies = [('binutils', '2.36.1', '', True)] + +# '-fgnu89-inline' is required to avoid linking errors with older glibc's, +# see https://github.com/easybuilders/easybuild-easyconfigs/issues/529 +configopts = "--enable-c++ CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ['bin/m4'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/m/MATLAB/MATLAB-2020a.eb b/easybuild/easyconfigs/m/MATLAB/MATLAB-2020a.eb new file mode 100644 index 00000000000..bebecb62be0 --- /dev/null +++ b/easybuild/easyconfigs/m/MATLAB/MATLAB-2020a.eb @@ -0,0 +1,27 @@ +name = 'MATLAB' +version = '2020a' + +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%(version)s_Linux.iso'] +checksums = ['6a6ef2a854591132fe7674df8c86665913480a8d945a40aa2ad2bd632a51abf4'] + +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 = 'my-license-server' +# license_server_port = '1234' + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/m/MATLAB/MATLAB-2020b.eb b/easybuild/easyconfigs/m/MATLAB/MATLAB-2020b.eb new file mode 100644 index 00000000000..fcb42923753 --- /dev/null +++ b/easybuild/easyconfigs/m/MATLAB/MATLAB-2020b.eb @@ -0,0 +1,27 @@ +name = 'MATLAB' +version = '2020b' + +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%(version)s_Linux.iso'] +checksums = ['08fd0ca01ac5511d4f6755d5ef1e554974557ffeb9ae44ee161bafe33ecd5b1a'] + +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 = 'my-license-server' +# license_server_port = '1234' + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/m/MATLAB/MATLAB-2021a.eb b/easybuild/easyconfigs/m/MATLAB/MATLAB-2021a.eb new file mode 100644 index 00000000000..28b216ae2e9 --- /dev/null +++ b/easybuild/easyconfigs/m/MATLAB/MATLAB-2021a.eb @@ -0,0 +1,27 @@ +name = 'MATLAB' +version = '2021a' + +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%(version)s_Linux.iso'] +checksums = ['52289d5338ed11a011084eb0f6174e4e0e57c73fe88d6bcc4b8545968bf6371e'] + +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 = 'my-license-server' +# license_server_port = '1234' + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/m/MDTraj/MDTraj-1.9.5-fosscuda-2020b.eb b/easybuild/easyconfigs/m/MDTraj/MDTraj-1.9.5-fosscuda-2020b.eb new file mode 100644 index 00000000000..8a14999b771 --- /dev/null +++ b/easybuild/easyconfigs/m/MDTraj/MDTraj-1.9.5-fosscuda-2020b.eb @@ -0,0 +1,43 @@ +# Updated: Pavel Grochal (INUITS) + +easyblock = 'PythonBundle' + +name = 'MDTraj' +version = '1.9.5' + +homepage = 'https://mdtraj.org' +description = "Read, write and analyze MD trajectories with only a few lines of Python code." + +toolchain = {'name': 'fosscuda', 'version': '2020b'} +toolchainopts = {'openmp': True} + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), + ('zlib', '1.2.11'), +] + +use_pip = True +exts_list = [ + ('astor', '0.8.1', { + 'checksums': ['6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e'], + }), + ('pymbar', '3.0.5', { + 'checksums': ['b079a7d0b9fbc8a92850277b664bb582991ef5ac399b3607e695569148f6c784'], + }), + # must be astunparse < 1.6.3 with Python 3.8, see https://github.com/mdtraj/mdtraj/pull/1621 + ('astunparse', '1.6.2', { + 'checksums': ['dab3e426715373fd76cd08bb1abe64b550f5aa494cf1e32384f26fd60961eb67'], + }), + ('mdtraj', version, { + 'checksums': ['f22c28c9dd51aa0f8692078dd3c2c7a338a7ca27cbd9aaeb669a60361e95adc4'], + }), +] + +# The unit tests of MDTraj are a pain to get to work: they require +# a massive number of extra dependencies. See +# https://github.com/mdtraj/mdtraj/blob/master/devtools/conda-recipe/meta.yaml + +sanity_pip_check = True + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/m/MEGAHIT/MEGAHIT-1.2.9-GCCcore-10.2.0-Python-2.7.18.eb b/easybuild/easyconfigs/m/MEGAHIT/MEGAHIT-1.2.9-GCCcore-10.2.0-Python-2.7.18.eb new file mode 100644 index 00000000000..3a5d31987a2 --- /dev/null +++ b/easybuild/easyconfigs/m/MEGAHIT/MEGAHIT-1.2.9-GCCcore-10.2.0-Python-2.7.18.eb @@ -0,0 +1,40 @@ +easyblock = 'CMakeMake' + +name = 'MEGAHIT' +version = '1.2.9' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/voutcn/megahit' +description = """An ultra-fast single-node solution for large and complex +metagenomics assembly via succinct de Bruijn graph""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['https://github.com/voutcn/%(namelower)s/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['09026eb07cc4e2d24f58b0a13f7a826ae8bb73da735a47cb1cbe6e4693118852'] + +builddependencies = [ + ('binutils', '2.35'), + ('CMake', '3.18.4'), + ('zlib', '1.2.11'), +] + +dependencies = [ + ('Python', '2.7.18'), + ('bzip2', '1.0.8'), + ('gzip', '1.10'), +] + +sanity_check_paths = { + 'files': [ + 'bin/%(namelower)s', + 'bin/%(namelower)s_core', + 'bin/%(namelower)s_core_no_hw_accel', + 'bin/%(namelower)s_core_popcnt', + 'bin/%(namelower)s_toolkit', + ], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/MPC/MPC-1.2.1-GCCcore-10.3.0.eb b/easybuild/easyconfigs/m/MPC/MPC-1.2.1-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..18eac558029 --- /dev/null +++ b/easybuild/easyconfigs/m/MPC/MPC-1.2.1-GCCcore-10.3.0.eb @@ -0,0 +1,35 @@ +easyblock = 'ConfigureMake' + +name = 'MPC' +version = '1.2.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': '10.3.0'} + +source_urls = ['https://ftpmirror.gnu.org/gnu/mpc/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459'] + +builddependencies = [('binutils', '2.36.1')] + +dependencies = [ + ('GMP', '6.2.1'), + ('MPFR', '4.1.0'), +] + +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.1.0-GCCcore-10.3.0.eb b/easybuild/easyconfigs/m/MPFR/MPFR-4.1.0-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..11af3a6a733 --- /dev/null +++ b/easybuild/easyconfigs/m/MPFR/MPFR-4.1.0-GCCcore-10.3.0.eb @@ -0,0 +1,39 @@ +easyblock = 'ConfigureMake' + +name = 'MPFR' +version = '4.1.0' + +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': '10.3.0'} + +source_urls = ['https://www.mpfr.org/mpfr-%(version)s/'] +sources = [SOURCELOWER_TAR_BZ2] +checksums = ['feced2d430dd5a97805fa289fed3fc8ff2b094c02d05287fd6133e7f1f0ec926'] + +builddependencies = [ + ('binutils', '2.36.1'), +] + +dependencies = [ + ('GMP', '6.2.1'), +] + +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/Mako/Mako-1.1.4-GCCcore-10.3.0.eb b/easybuild/easyconfigs/m/Mako/Mako-1.1.4-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..baeb145b652 --- /dev/null +++ b/easybuild/easyconfigs/m/Mako/Mako-1.1.4-GCCcore-10.3.0.eb @@ -0,0 +1,29 @@ +easyblock = 'PythonPackage' + +name = 'Mako' +version = '1.1.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': '10.3.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['17831f0b7087c313c0ffae2bcbbd3c1d5ba9eeac9c38f2eb7b50e8c99fe9d5ab'] + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +builddependencies = [('binutils', '2.36.1')] + +dependencies = [('Python', '3.9.5')] + +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/MaxBin/MaxBin-2.2.7-GCC-8.2.0-2.31.1-Perl-5.28.1.eb b/easybuild/easyconfigs/m/MaxBin/MaxBin-2.2.7-GCC-8.2.0-2.31.1-Perl-5.28.1.eb index 363dc9ce25e..80bda19231f 100644 --- a/easybuild/easyconfigs/m/MaxBin/MaxBin-2.2.7-GCC-8.2.0-2.31.1-Perl-5.28.1.eb +++ b/easybuild/easyconfigs/m/MaxBin/MaxBin-2.2.7-GCC-8.2.0-2.31.1-Perl-5.28.1.eb @@ -16,7 +16,7 @@ toolchain = {'name': 'GCC', 'version': '8.2.0-2.31.1'} source_urls = [SOURCEFORGE_SOURCE] sources = [SOURCE_TAR_GZ] -checksums = ['e40c8db96efe3d132a179e740208099105f231a8e10f95ef286631423472fda7'] +checksums = ['cb6429e857280c2b75823c8cd55058ed169c93bc707a46bde0c4383f2bffe09e'] builddependencies = [('binutils', '2.31.1')] diff --git a/easybuild/easyconfigs/m/MaxBin/MaxBin-2.2.7-gompi-2020b.eb b/easybuild/easyconfigs/m/MaxBin/MaxBin-2.2.7-gompi-2020b.eb new file mode 100644 index 00000000000..65c321a1695 --- /dev/null +++ b/easybuild/easyconfigs/m/MaxBin/MaxBin-2.2.7-gompi-2020b.eb @@ -0,0 +1,38 @@ +easyblock = 'MakeCp' + +name = 'MaxBin' +version = '2.2.7' + +# https://downloads.jbei.org/data/microbial_communities/MaxBin/MaxBin.html doesn't work +homepage = 'https://sourceforge.net/projects/maxbin/' +description = """MaxBin is software for binning assembled metagenomic sequences +based on an Expectation-Maximization algorithm.""" + +toolchain = {'name': 'gompi', 'version': '2020b'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['cb6429e857280c2b75823c8cd55058ed169c93bc707a46bde0c4383f2bffe09e'] + +builddependencies = [('binutils', '2.35')] + +dependencies = [ + ('Perl', '5.32.0'), + ('Bowtie2', '2.4.2'), + ('FragGeneScan', '1.31'), + ('HMMER', '3.3.2'), + ('IDBA-UD', '1.1.3'), +] + +prebuildopts = "cd src && " + +files_to_copy = ['*'] + +sanity_check_paths = { + 'files': ['run_MaxBin.pl', 'src/MaxBin'], + 'dirs': [], +} + +modextrapaths = {'PATH': ['', 'src']} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/Mercurial/Mercurial-5.7.1-GCCcore-9.3.0-Python-3.8.2.eb b/easybuild/easyconfigs/m/Mercurial/Mercurial-5.7.1-GCCcore-9.3.0-Python-3.8.2.eb new file mode 100644 index 00000000000..28dddebb5f5 --- /dev/null +++ b/easybuild/easyconfigs/m/Mercurial/Mercurial-5.7.1-GCCcore-9.3.0-Python-3.8.2.eb @@ -0,0 +1,32 @@ +## +# Author: Robert Mijakovic +## +easyblock = "PythonPackage" + +name = 'Mercurial' +version = '5.7.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://www.mercurial-scm.org' +description = """Mercurial is a free, distributed source control management tool. It efficiently handles projects +of any size and offers an easy and intuitive interface. +""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} + +source_urls = ['https://www.mercurial-scm.org/release/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['cb5139144ccb2ef648f36963c8606d47dea1cb0e22aa2c055d6f860ce3fde7b0'] + +dependencies = [ + ('binutils', '2.34'), + ('Python', '3.8.2') +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +sanity_check_commands = ["hg --help"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-21.1.1-GCCcore-10.3.0.eb b/easybuild/easyconfigs/m/Mesa/Mesa-21.1.1-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..fd898dcf82c --- /dev/null +++ b/easybuild/easyconfigs/m/Mesa/Mesa-21.1.1-GCCcore-10.3.0.eb @@ -0,0 +1,69 @@ +# 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 are enabled based on system architecture: +# - llvmpipe: the high-performance Gallium LLVM driver +# - swr: Intel's OpenSWR +# Default renderer is llvmpipe. SWR can be enabled by setting the environment +# variable GALLIUM_DRIVER=swr + +name = 'Mesa' +version = '21.1.1' + +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': '10.3.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 = ['eec25ea379054e8911bc5de816aeb50f581b5b708414725003d2f00386b38dd2'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('Meson', '0.58.0'), + ('Ninja', '1.10.2'), + ('flex', '2.6.4'), + ('Bison', '3.7.6'), + ('pkg-config', '0.29.2'), + ('Mako', '1.1.4'), + ('libxml2', '2.9.10'), + ('expat', '2.2.9'), + ('gettext', '0.21'), +] + +dependencies = [ + ('zlib', '1.2.11'), + ('zstd', '1.4.9'), + ('libdrm', '2.4.106'), + ('libglvnd', '1.3.3'), + ('libunwind', '1.4.0'), + ('LLVM', '11.1.0'), + ('X11', '20210518'), +] + +configopts = "-Dplatforms=x11 -Dosmesa=true -Ddri-drivers='' -Dvulkan-drivers='' " +configopts += "-Dllvm=true -Dshared-llvm=true -Dlibunwind=true -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,swr -Dswr-arches=avx,avx2,skx,knl" + +# 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"] + +# Tells libglvnd where to find EGL libraries +modextrapaths = {"__EGL_VENDOR_LIBRARY_DIRS": "share/glvnd/egl_vendor.d"} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/m/Meson/Meson-0.58.0-GCCcore-10.3.0.eb b/easybuild/easyconfigs/m/Meson/Meson-0.58.0-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..6bd94d88117 --- /dev/null +++ b/easybuild/easyconfigs/m/Meson/Meson-0.58.0-GCCcore-10.3.0.eb @@ -0,0 +1,38 @@ +easyblock = 'PythonPackage' + +name = 'Meson' +version = '0.58.0' + +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': '10.3.0'} + +sources = [SOURCELOWER_TAR_GZ] +patches = ['Meson-%(version)s_fix-regression.patch'] +checksums = [ + 'f4820df0bc969c99019fd4af8ca5f136ee94c63d8a5ad67e7eb73bdbc9182fdd', # meson-0.58.0.tar.gz + '54a3407b3d6aaab95ac1ce6efd5dc31f8548125e21b8b85a528535bd81e23712', # Meson-0.58.0_fix-regression.patch +] + +builddependencies = [ + ('binutils', '2.36.1'), +] + +dependencies = [ + ('Python', '3.9.5'), + ('Ninja', '1.10.2'), +] + +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'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/m/Meson/Meson-0.58.0_fix-regression.patch b/easybuild/easyconfigs/m/Meson/Meson-0.58.0_fix-regression.patch new file mode 100644 index 00000000000..4158bf98ffc --- /dev/null +++ b/easybuild/easyconfigs/m/Meson/Meson-0.58.0_fix-regression.patch @@ -0,0 +1,61 @@ +fix for "ERROR: List item must be one of , not " error, +which is a regression in Meson 0.58.0, see https://github.com/mesonbuild/meson/issues/8727 + +From 96e8e019303abe5626e737867e1249ab6eb53dff Mon Sep 17 00:00:00 2001 +From: Xavier Claessens +Date: Wed, 12 May 2021 16:16:41 -0400 +Subject: [PATCH] interpreter: flatten environment() initial values + +Turns out listify() flattens by default, but stringlistify() cannot +flatten... How do I realize this only now? + +Fixes: #8727 +--- + mesonbuild/interpreter/interpreterobjects.py | 4 +++- + test cases/common/41 test args/meson.build | 2 +- + test cases/common/41 test args/tester.py | 4 ++++ + 3 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/mesonbuild/interpreter/interpreterobjects.py b/mesonbuild/interpreter/interpreterobjects.py +index 7d43752cfcf..10e681aeb46 100644 +--- a/mesonbuild/interpreter/interpreterobjects.py ++++ b/mesonbuild/interpreter/interpreterobjects.py +@@ -165,7 +165,9 @@ def __init__(self, initial_values=None, subproject: str = ''): + for k, v in initial_values.items(): + self.set_method([k, v], {}) + elif initial_values is not None: +- for e in mesonlib.stringlistify(initial_values): ++ for e in mesonlib.listify(initial_values): ++ if not isinstance(e, str): ++ raise InterpreterException('Env var definition must be a list of strings.') + if '=' not in e: + raise InterpreterException('Env var definition must be of type key=val.') + (k, val) = e.split('=', 1) +diff --git a/test cases/common/41 test args/meson.build b/test cases/common/41 test args/meson.build +index 81d34915abe..b21f1ad00b1 100644 +--- a/test cases/common/41 test args/meson.build ++++ b/test cases/common/41 test args/meson.build +@@ -23,7 +23,7 @@ test('environment variables 2', e3, env : env2) + env_array = ['MESONTESTING=picklerror'] + testfile = files('testfile.txt') + testerpy = find_program('tester.py') +-test('file arg', testerpy, args : testfile, env : env_array) ++test('file arg', testerpy, args : testfile, env : [env_array, 'TEST_LIST_FLATTENING=1']) + + copy = find_program('copyfile.py') + tester = executable('tester', 'tester.c') +diff --git a/test cases/common/41 test args/tester.py b/test cases/common/41 test args/tester.py +index 0b4010ab909..b5884cc61a2 100755 +--- a/test cases/common/41 test args/tester.py ++++ b/test cases/common/41 test args/tester.py +@@ -1,6 +1,10 @@ + #!/usr/bin/env python3 + + import sys ++import os ++ ++assert os.environ['MESONTESTING'] == 'picklerror' ++assert os.environ['TEST_LIST_FLATTENING'] == '1' + + with open(sys.argv[1]) as f: + if f.read() != 'contents\n': diff --git a/easybuild/easyconfigs/m/MetaBAT/MetaBAT-2.15-gompi-2020b-Python-2.7.18.eb b/easybuild/easyconfigs/m/MetaBAT/MetaBAT-2.15-gompi-2020b-Python-2.7.18.eb new file mode 100644 index 00000000000..827c80520e1 --- /dev/null +++ b/easybuild/easyconfigs/m/MetaBAT/MetaBAT-2.15-gompi-2020b-Python-2.7.18.eb @@ -0,0 +1,41 @@ +easyblock = 'CMakeMake' + +name = 'MetaBAT' +version = '2.15' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://bitbucket.org/berkeleylab/metabat' +description = "An efficient tool for accurately reconstructing single genomes from complex microbial communities" + +toolchain = {'name': 'gompi', 'version': '2020b'} + +source_urls = ['https://bitbucket.org/berkeleylab/metabat/get/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['550487b66ec9b3bc53edf513d00c9deda594a584f53802165f037bde29b4d34e'] + +builddependencies = [ + ('binutils', '2.35'), + ('CMake', '3.18.4'), + ('pkg-config', '0.29.2'), +] + +dependencies = [ + ('Python', '2.7.18'), + ('Perl', '5.32.0'), + ('Boost', '1.74.0'), + ('zlib', '1.2.11'), + ('SAMtools', '1.11'), + ('XZ', '5.2.5'), + ('bzip2', '1.0.8'), +] + +fix_perl_shebang_for = ['bin/*.pl'] + +prebuildopts = "cp -a $EBROOTSAMTOOLS samtools && " + +sanity_check_paths = { + 'files': ['bin/aggregateBinDepths.pl', 'bin/aggregateContigOverlapsByBin.pl', 'bin/metabat', 'bin/metabat2'], + 'dirs': [""], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/MetaPhlAn2/MetaPhlAn2-2.7.8-foss-2020a-Python-3.8.2.eb b/easybuild/easyconfigs/m/MetaPhlAn2/MetaPhlAn2-2.7.8-foss-2020a-Python-3.8.2.eb new file mode 100644 index 00000000000..56ae20a89fe --- /dev/null +++ b/easybuild/easyconfigs/m/MetaPhlAn2/MetaPhlAn2-2.7.8-foss-2020a-Python-3.8.2.eb @@ -0,0 +1,56 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild + +easyblock = 'Tarball' + +name = 'MetaPhlAn2' +version = '2.7.8' +versionsuffix = '-Python-%(pyver)s' + +bitbucket_account = 'biobakery' +homepage = 'https://bitbucket.org/%(bitbucket_account)s/%(namelower)s/' +description = """MetaPhlAn is a computational tool for profiling the composition of microbial + communities (Bacteria, Archaea, Eukaryotes and Viruses) from metagenomic shotgun sequencing + data (i.e. not 16S) with species-level. With the newly added StrainPhlAn module, it is now + possible to perform accurate strain-level microbial profiling.""" + +toolchain = {'name': 'foss', 'version': '2020a'} + +source_urls = ['https://github.com/biobakery/MetaPhlAn/archive/'] +sources = ['%(version)s.tar.gz'] +patches = ['MetaPhlAn2-2.7.8_fix-download-db.patch'] +checksums = [ + ( + # checksum for 2.7.8.tar.gz downloaded from GitHub + 'f28fa38c4a23265bae8e3e07d53ad8cc1f4f504c115932d90d3e852120bb6180', + # alternative checksum for original 2.7.8.tar.gz downloaded from Bitbucket (same source files) + '24cd29c8b1d475adbe6b354391ce455fcfe9ef2266b6fb6635dee2bdb6a3edd3', + ), + '55b49148a48a5685b2456f420ddc6caa0b1f480f845f95869a656bba4194b9ca', # MetaPhlAn2-2.7.8_fix-download-db.patch +] + +dependencies = [ + ('Bowtie2', '2.4.1'), + ('Perl', '5.30.2'), + ('Python', '3.8.2'), + ('SciPy-bundle', '2020.03', versionsuffix), +] + +# needed to create database during installation +# the database is used if --input_type is fastq, fasta, multifasta, or multifastq +# otherwise database creation will be tried on first use with one of the above options +# and likely fail because a normal user can't write in the software directory +postinstallcmds = ['%(installdir)s/%(namelower)s.py --install'] + +modextrapaths = { + 'PATH': '', + 'mpa_dir': '', +} + +sanity_check_paths = { + 'files': ['%(namelower)s.py', 'strainphlan.py'], + 'dirs': ['utils', 'strainphlan_src', 'strainphlan_tutorial'], +} + +sanity_check_commands = ['%(namelower)s.py -v'] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/Molden/Molden-6.8-GCCcore-10.2.0.eb b/easybuild/easyconfigs/m/Molden/Molden-6.8-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..4245f9b4d6a --- /dev/null +++ b/easybuild/easyconfigs/m/Molden/Molden-6.8-GCCcore-10.2.0.eb @@ -0,0 +1,30 @@ +easyblock = 'MakeCp' + +name = 'Molden' +version = '6.8' + +homepage = 'https://www3.cmbi.umcn.nl/molden/' +description = """Molden is a package for displaying Molecular Density from the + Ab Initio packages GAMESS-UK, GAMESS-US and GAUSSIAN and the Semi-Empirical + packages Mopac/Ampac""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['ftp://ftp.cmbi.umcn.nl/pub/molgraph/molden'] +sources = ['%(namelower)s%(version)s.tar.gz'] +checksums = ['4dfbf6524b60112afb5720cba3c200a07a0f57b5d190e05ec14cceae1edf5782'] + +builddependencies = [('binutils', '2.35')] + +dependencies = [('X11', '20201008')] + +buildopts = 'CC="$CC" FC="$F90 -std=legacy" molden' + +files_to_copy = [(['bin/molden'], 'bin'), 'CopyRight', 'README', 'REGISTER'] + +sanity_check_paths = { + 'files': ['bin/molden', 'README', 'REGISTER'], + 'dirs': [], +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/m/Molden/Molden-6.8-GCCcore-9.3.0.eb b/easybuild/easyconfigs/m/Molden/Molden-6.8-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..000fa329363 --- /dev/null +++ b/easybuild/easyconfigs/m/Molden/Molden-6.8-GCCcore-9.3.0.eb @@ -0,0 +1,48 @@ +easyblock = 'MakeCp' + +name = 'Molden' +version = '6.8' + +homepage = 'https://www3.cmbi.umcn.nl/molden' +description = """Molden is a package for displaying Molecular Density from the + Ab Initio packages GAMESS-UK, GAMESS-US and GAUSSIAN and the Semi-Empirical + packages Mopac/Ampac""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} + +source_urls = ['ftp://ftp.cmbi.umcn.nl/pub/molgraph/molden'] +sources = ['%(namelower)s%(version)s.tar.gz'] +patches = [ + 'Molden-6.8_fix_makefile_for_easybuild.patch', + 'Molden-6.8_fix_arg_handling.patch', +] +checksums = [ + '4dfbf6524b60112afb5720cba3c200a07a0f57b5d190e05ec14cceae1edf5782', # molden6.8.tar.gz + '0f516ba436595dad9b3cdfa60fe4d9c85652b2210203bebe9d7962f3a1702e68', # Molden-6.8_fix_makefile_for_easybuild.patch + '1fc29a8a62044d04cdd0495ea6c9ff79af6e77628b941b4822c2a46f8c8c705e', # Molden-6.8_fix_arg_handling.patch +] + +builddependencies = [ + ('binutils', '2.34'), + ('makedepend', '1.0.6'), +] + +dependencies = [ + ('X11', '20200222'), + ('libglvnd', '1.2.0'), + ('libGLU', '9.0.1'), +] + +buildopts = 'CC="$CC" FC="$F90" all' + +parallel = 1 + +files_to_copy = [(['bin/%s' % x for x in ['ambfor', 'ambmd', 'gmolden', 'molden', 'surf']], 'bin'), + 'CopyRight', 'README', 'REGISTER'] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['ambfor', 'ambmd', 'gmolden', 'molden', 'surf']] + ['README', 'REGISTER'], + 'dirs': [], +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/m/Molden/Molden-6.8_fix_arg_handling.patch b/easybuild/easyconfigs/m/Molden/Molden-6.8_fix_arg_handling.patch new file mode 100644 index 00000000000..6b49322e750 --- /dev/null +++ b/easybuild/easyconfigs/m/Molden/Molden-6.8_fix_arg_handling.patch @@ -0,0 +1,25 @@ +Use F2003 functions for argument handling. + +Åke Sandgren, 2021-04-29 +diff -ru molden6.8.orig/src/molden.f molden6.8/src/molden.f +--- molden6.8.orig/src/molden.f 2021-01-20 17:54:58.000000000 +0100 ++++ molden6.8/src/molden.f 2021-04-29 08:49:09.667816492 +0200 +@@ -3812,15 +3812,15 @@ + endif + + iredir = 0 +- nargs = iargc() +- call getarg(0,liris) ++ nargs = COMMAND_ARGUMENT_COUNT() ++ call GET_COMMAND_ARGUMENT(0,liris) + call parsfn(liris,linlen(liris),20) + + ntargs = 0 + n = 0 + if (nargs.gt.0) then + 2013 n = n + 1 +- call getarg(n,liris) ++ call GET_COMMAND_ARGUMENT(n,liris) + if (liris(1:1).eq.'-') then + if (liris(1:2).eq.'-5') ido5d = 1 + if (liris(1:2).eq.'-7') ido7f = 1 diff --git a/easybuild/easyconfigs/m/Molden/Molden-6.8_fix_makefile_for_easybuild.patch b/easybuild/easyconfigs/m/Molden/Molden-6.8_fix_makefile_for_easybuild.patch new file mode 100644 index 00000000000..12facfb0934 --- /dev/null +++ b/easybuild/easyconfigs/m/Molden/Molden-6.8_fix_makefile_for_easybuild.patch @@ -0,0 +1,81 @@ +Make makefile EasyBuild friendly. + +Åke Sandgren, 2021-04-29 +diff -ru molden6.8.orig/makefile molden6.8/makefile +--- molden6.8.orig/makefile 2021-04-07 20:48:56.000000000 +0200 ++++ molden6.8/makefile 2021-04-29 08:52:17.139037202 +0200 +@@ -13,10 +13,10 @@ + # Disregard compiler warnings on rdmolf.f + # + # +-CC = cc ++#CC = cc + LIBS = -lX11 -lm + LDR = ${FC} +-LIBSG = -L/usr/X11R6/lib -lGLU -lGL -lXmu -lX11 -lm ++LIBSG = -lGLU -lGL -lXmu -lX11 -lm + ARCH := $(shell getconf LONG_BIT) + AFLAG= -m$(ARCH) + EXTEN= +@@ -29,20 +29,6 @@ + uname := $(shell uname -s) + os := + +-ifeq ($(uname), Linux) +- os := $(shell head -n 1 /etc/issue | cut -d" " -f1) +- ifeq ($(os), Ubuntu) +- EXTEN = exten +- EXTENZ = exten2 +- LIBSG = -L/usr/X11R6/lib -lGLU -lGL -lX11 -lm +- endif +- ifeq ($(os), Debian) +- LIBSG = -L/usr/lib/X11 -lGLU -lGL -lX11 -lm +- endif +- +- choosefc := 'yes' +-endif +- + ifneq (,$(findstring CYGWIN,$(uname))) + uname := Linux + choosefc := 'yes' +@@ -53,16 +39,6 @@ + endif + + +-ifneq ($(choosefc), $(empty)) +- comg77 := $(shell which g77 | grep -i g77) +- comgfort := $(shell which gfortran | grep -i gfortran) +- ifneq ($(comg77), $(empty)) +- FC = g77 +- endif +- ifneq ($(comgfort), $(empty)) +- FC = gfortran +- endif +-endif + + print-% : ; @echo $* = $($*) + # +@@ -108,17 +84,17 @@ + EXT = ${EXTRAZ} + endif + FFLAGS = -g ${AFLAG} +-LIBS = -L/usr/X11R6/lib -lX11 -lm ++LIBS = -lX11 -lm + ifeq ($(AFLAG),"-m64") +-LIBS = -L/usr/X11R6/lib64 -lX11 -lm ++LIBS = -lX11 -lm + endif + LDR = ${FC} -g ${AFLAG} +-CFLAGS = ${AFLAG} ${EXTRAZ} -c -g -I/usr/X11R6/include -DDOBACK -DHASTIMER -DCOLOR_OFFSET=0.0 ++CFLAGS = ${AFLAG} ${EXTRAZ} -c -g -DDOBACK -DHASTIMER -DCOLOR_OFFSET=0.0 + ifeq ($(os), Debian) +- CFLAGS = ${AFLAG} ${EXTRAZ} -c -I/usr/include/X11 -DDOBACK -DHASTIMER -DCOLOR_OFFSET=0.0 +- LIBS = -L/usr/lib/X11 -lX11 -lm ++ CFLAGS = ${AFLAG} ${EXTRAZ} -c -DDOBACK -DHASTIMER -DCOLOR_OFFSET=0.0 ++ LIBS = -lX11 -lm + ifeq ($(AFLAG),"-m64") +- LIBS = -L/usr/X11R6/lib64 -lX11 -lm ++ LIBS = -lX11 -lm + endif + endif + ifeq ($(os), FreeBSD) diff --git a/easybuild/easyconfigs/m/MotionCor2/MotionCor2-1.4.2-GCCcore-10.2.0.eb b/easybuild/easyconfigs/m/MotionCor2/MotionCor2-1.4.2-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..4f2bf4aeabb --- /dev/null +++ b/easybuild/easyconfigs/m/MotionCor2/MotionCor2-1.4.2-GCCcore-10.2.0.eb @@ -0,0 +1,48 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Ake Sandgren +# HPC2N +# Umea University + +name = 'MotionCor2' +version = '1.4.2' + +homepage = 'https://msg.ucsf.edu/' +description = """MotionCor2 correct anisotropic image motion at the +single pixel level across the whole frame, suitable for both single +particle and tomographic images. Iterative, patch-based motion detection +is combined with spatial and temporal constraints and dose weighting. + +Cite publication: Shawn Q. Zheng, Eugene Palovcak, Jean-Paul Armache, +Yifan Cheng and David A. Agard (2016) Anisotropic Correction of +Beam-induced Motion for Improved Single-particle Electron +Cryo-microscopy, Nature Methods, submitted. +BioArxiv: https://biorxiv.org/content/early/2016/07/04/061960 +""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +# No longer directly downloadable, available from https://msg.ucsf.edu/software +sources = [ + '%(name)s_%(version)s.zip', +] +checksums = ['5a1b952f46816e396b918b92fcb118376c02be3636371bd6fcef00f315685b8d'] + +# CUDA is a build dependency to make sure it gets installed. +# It's actually a runtime dependency, but that's handled in the wrapper to +# make sure it doesn't conflict with whatever toolchain happens to be loaded. +# Change CUDA version to match the latest one used in this version +# of MotionCor2 +builddependencies = [ + ('binutils', '2.35'), + ('CUDAcore', '11.1.1', '', True), +] + +dependencies = [ + ('zlib', '1.2.11'), + ('libjpeg-turbo', '2.0.5'), + ('XZ', '5.2.5'), + ('LibTIFF', '4.1.0'), + ('jbigkit', '2.1'), +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/Myokit/Myokit-1.32.0-fosscuda-2020b.eb b/easybuild/easyconfigs/m/Myokit/Myokit-1.32.0-fosscuda-2020b.eb new file mode 100644 index 00000000000..44daa4b5631 --- /dev/null +++ b/easybuild/easyconfigs/m/Myokit/Myokit-1.32.0-fosscuda-2020b.eb @@ -0,0 +1,46 @@ +easyblock = 'PythonPackage' + +name = 'Myokit' +version = '1.32.0' + +homepage = 'http://myokit.org' +description = """Myokit is an open-source Python-based toolkit that facilitates modeling and simulation of cardiac +cellular electrophysiology.""" + +toolchain = {'name': 'fosscuda', 'version': '2020b'} + +sources = [SOURCELOWER_TAR_GZ] +checksums = ['393ebc85413bd1b573909736caeadd9d7757f41cceb7bd29f3b30f5107237cba'] + +download_dep_fail = True +use_pip = True + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), + ('matplotlib', '3.3.3'), + ('Pillow', '8.0.1'), + ('lxml', '4.6.2'), + ('PyQt5', '5.15.1'), + ('SUNDIALS', '5.7.0'), + ('pocl', '1.6'), +] + +# configparser is part of stdlib in Python 3 +preinstallopts = "sed -i 's/.*configparser.*//g' setup.py && " + +sanity_pip_check = True + +sanity_check_paths = { + 'files': ['bin/myokit'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + "myokit -h", + "myokit system", + "myokit opencl", # make sure OpenCL features work (requires pocl or other dependency providing OpenCL runtime) + "myokit run example", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/magma/magma-2.5.4-intelcuda-2019b.eb b/easybuild/easyconfigs/m/magma/magma-2.5.4-intelcuda-2019b.eb new file mode 100644 index 00000000000..65ceaa4d043 --- /dev/null +++ b/easybuild/easyconfigs/m/magma/magma-2.5.4-intelcuda-2019b.eb @@ -0,0 +1,37 @@ +easyblock = "CMakeMake" + +name = 'magma' +version = '2.5.4' + +homepage = 'https://icl.cs.utk.edu/magma/' +description = """The MAGMA project aims to develop a dense linear algebra library similar to + LAPACK but for heterogeneous/hybrid architectures, starting with current Multicore+GPU systems.""" + +toolchain = {'name': 'intelcuda', 'version': '2019b'} +toolchainopts = {'pic': True, 'openmp': True} + +source_urls = ['https://icl.cs.utk.edu/projectsfiles/magma/downloads/'] +sources = [SOURCE_TAR_GZ] +patches = ['magma-2.5.4_allow-all-sms.patch'] +checksums = [ + '7734fb417ae0c367b418dea15096aef2e278a423e527c615aab47f0683683b67', # magma-2.5.4.tar.gz + '4e47ecc080ff761866f179c9b383b8930e4daa2fcee1c2a48db585fc50531561', # magma-2.5.4_allow-all-sms.patch +] + +builddependencies = [ + ('CMake', '3.15.3'), +] + +# default CUDA compute capabilities to use (override via --cuda-compute-capabilities) +cuda_compute_capabilities = ['3.5', '5.0', '6.0', '7.0', '7.5'] +# make sure both static and shared libs are built +configopts = [ + '-DBUILD_SHARED_LIBS=%s -DGPU_TARGET="%%(cuda_sm_space_sep)s" ' % local_shared for local_shared in ('ON', 'OFF') +] + +sanity_check_paths = { + 'files': ['lib/libmagma.%s' % SHLIB_EXT, 'lib/libmagma.a'], + 'dirs': ['include'], +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/m/magma/magma-2.5.4-intelcuda-2020b.eb b/easybuild/easyconfigs/m/magma/magma-2.5.4-intelcuda-2020b.eb new file mode 100644 index 00000000000..8fe0d955a94 --- /dev/null +++ b/easybuild/easyconfigs/m/magma/magma-2.5.4-intelcuda-2020b.eb @@ -0,0 +1,37 @@ +easyblock = "CMakeMake" + +name = 'magma' +version = '2.5.4' + +homepage = 'https://icl.cs.utk.edu/magma/' +description = """The MAGMA project aims to develop a dense linear algebra library similar to + LAPACK but for heterogeneous/hybrid architectures, starting with current Multicore+GPU systems.""" + +toolchain = {'name': 'intelcuda', 'version': '2020b'} +toolchainopts = {'pic': True, 'openmp': True} + +source_urls = ['https://icl.cs.utk.edu/projectsfiles/magma/downloads/'] +sources = [SOURCE_TAR_GZ] +patches = ['magma-2.5.4_allow-all-sms.patch'] +checksums = [ + '7734fb417ae0c367b418dea15096aef2e278a423e527c615aab47f0683683b67', # magma-2.5.4.tar.gz + '4e47ecc080ff761866f179c9b383b8930e4daa2fcee1c2a48db585fc50531561', # magma-2.5.4_allow-all-sms.patch +] + +builddependencies = [ + ('CMake', '3.18.4'), +] + +# default CUDA compute capabilities to use (override via --cuda-compute-capabilities) +cuda_compute_capabilities = ['3.5', '5.0', '6.0', '7.0', '7.5', '8.0'] +# make sure both static and shared libs are built +configopts = [ + '-DBUILD_SHARED_LIBS=%s -DGPU_TARGET="%%(cuda_sm_space_sep)s" ' % local_shared for local_shared in ('ON', 'OFF') +] + +sanity_check_paths = { + 'files': ['lib/libmagma.%s' % SHLIB_EXT, 'lib/libmagma.a'], + 'dirs': ['include'], +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/m/make/make-4.3-GCCcore-10.3.0.eb b/easybuild/easyconfigs/m/make/make-4.3-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..2125b8d1c24 --- /dev/null +++ b/easybuild/easyconfigs/m/make/make-4.3-GCCcore-10.3.0.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'make' +version = '4.3' + +homepage = 'https://www.gnu.org/software/make/make.html' +description = "GNU version of make utility" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['e05fdde47c5f7ca45cb697e973894ff4f5d79e13b750ed57d7b66d8defc78e19'] + +builddependencies = [('binutils', '2.36.1')] + +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/makeinfo/makeinfo-6.7-FCC-4.5.0.eb b/easybuild/easyconfigs/m/makeinfo/makeinfo-6.7-FCC-4.5.0.eb new file mode 100644 index 00000000000..a2aec147f59 --- /dev/null +++ b/easybuild/easyconfigs/m/makeinfo/makeinfo-6.7-FCC-4.5.0.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'makeinfo' +version = '6.7' + +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': 'FCC', 'version': '4.5.0'} + +source_urls = ['https://ftpmirror.gnu.org/gnu/texinfo'] +sources = ['texinfo-%(version)s.tar.xz'] +checksums = ['988403c1542d15ad044600b909997ba3079b10e03224c61188117f3676b02caa'] + +builddependencies = [('binutils', '2.36.1')] + +sanity_check_paths = { + 'files': ['bin/makeinfo'], + 'dirs': ['share'], +} + +sanity_check_commands = ["makeinfo --help"] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/m/makeinfo/makeinfo-6.7-GCCcore-10.3.0.eb b/easybuild/easyconfigs/m/makeinfo/makeinfo-6.7-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..442dd922d7e --- /dev/null +++ b/easybuild/easyconfigs/m/makeinfo/makeinfo-6.7-GCCcore-10.3.0.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'makeinfo' +version = '6.7' + +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': '10.3.0'} + +source_urls = ['https://ftpmirror.gnu.org/gnu/texinfo'] +sources = ['texinfo-%(version)s.tar.xz'] +checksums = ['988403c1542d15ad044600b909997ba3079b10e03224c61188117f3676b02caa'] + +builddependencies = [('binutils', '2.36.1')] + +sanity_check_paths = { + 'files': ['bin/makeinfo'], + 'dirs': ['share'], +} + +sanity_check_commands = ["makeinfo --help"] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/m/matplotlib/matplotlib-2.2.5-foss-2020b-Python-2.7.18.eb b/easybuild/easyconfigs/m/matplotlib/matplotlib-2.2.5-foss-2020b-Python-2.7.18.eb new file mode 100644 index 00000000000..39d7dd5cf4c --- /dev/null +++ b/easybuild/easyconfigs/m/matplotlib/matplotlib-2.2.5-foss-2020b-Python-2.7.18.eb @@ -0,0 +1,64 @@ +easyblock = 'PythonBundle' + +name = 'matplotlib' +version = '2.2.5' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://matplotlib.org' +description = """matplotlib is a python 2D plotting library which produces publication quality figures in a variety of + hardcopy formats and interactive environments across platforms. matplotlib can be used in python scripts, the python + and ipython shell, web application servers, and six graphical user interface toolkits.""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +builddependencies = [ + ('pkg-config', '0.29.2'), +] + +dependencies = [ + ('Python', '2.7.18'), + ('SciPy-bundle', '2020.11', versionsuffix), + ('libpng', '1.6.37'), + ('freetype', '2.10.3'), + ('Tkinter', '%(pyver)s'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('Cycler', '0.10.0', { + 'modulename': 'cycler', + 'source_tmpl': 'cycler-%(version)s.tar.gz', + 'checksums': ['cd7b2d1018258d7247a71425e9f26463dfb444d411c39569972f4ce586b0c9d8'], + }), + ('subprocess32', '3.5.4', { + 'checksums': ['eb2937c80497978d181efa1b839ec2d9622cf9600a039a79d0e108d1f9aec79d'], + }), + ('backports.functools_lru_cache', '1.6.1', { + 'checksums': ['8fde5f188da2d593bd5bc0be98d9abc46c95bb8a9dde93429570192ee6cc2d4a'], + }), + ('kiwisolver', '1.1.0', { + 'checksums': ['53eaed412477c836e1b9522c19858a8557d6e595077830146182225613b11a75'], + }), + (name, version, { + 'prebuildopts': "export CPLUS_INCLUDE_PATH=$EBROOTFREETYPE/include/freetype2:${CPLUS_INCLUDE_PATH} && ", + 'preinstallopts': "export CPLUS_INCLUDE_PATH=$EBROOTFREETYPE/include/freetype2:${CPLUS_INCLUDE_PATH} && ", + 'checksums': ['a3037a840cd9dfdc2df9fee8af8f76ca82bfab173c0f9468193ca7a89a2b60ea'], + }), +] + +postinstallcmds = [ + 'touch %(installdir)s/lib/python%(pyshortver)s/site-packages/mpl_toolkits/__init__.py', +] + +sanity_check_commands = [ + """python -c 'import matplotlib; matplotlib.use("TkAgg"); import matplotlib.pyplot' """, + "python -c 'from mpl_toolkits.mplot3d import Axes3D'", +] + +# use non-interactive plotting backend as default +# see https://matplotlib.org/tutorials/introductory/usage.html#what-is-a-backend +modextravars = {'MPLBACKEND': 'Agg'} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/m/matplotlib/matplotlib-2.2.5-fosscuda-2020a-Python-2.7.18.eb b/easybuild/easyconfigs/m/matplotlib/matplotlib-2.2.5-fosscuda-2020a-Python-2.7.18.eb new file mode 100644 index 00000000000..455d029e9c4 --- /dev/null +++ b/easybuild/easyconfigs/m/matplotlib/matplotlib-2.2.5-fosscuda-2020a-Python-2.7.18.eb @@ -0,0 +1,64 @@ +easyblock = 'PythonBundle' + +name = 'matplotlib' +version = '2.2.5' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://matplotlib.org' +description = """matplotlib is a python 2D plotting library which produces publication quality figures in a variety of + hardcopy formats and interactive environments across platforms. matplotlib can be used in python scripts, the python + and ipython shell, web application servers, and six graphical user interface toolkits.""" + +toolchain = {'name': 'fosscuda', 'version': '2020a'} + +builddependencies = [ + ('pkg-config', '0.29.2'), +] + +dependencies = [ + ('Python', '2.7.18'), + ('SciPy-bundle', '2020.03', versionsuffix), + ('libpng', '1.6.37'), + ('freetype', '2.10.1'), + ('Tkinter', '%(pyver)s'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('Cycler', '0.10.0', { + 'modulename': 'cycler', + 'source_tmpl': 'cycler-%(version)s.tar.gz', + 'checksums': ['cd7b2d1018258d7247a71425e9f26463dfb444d411c39569972f4ce586b0c9d8'], + }), + ('subprocess32', '3.5.4', { + 'checksums': ['eb2937c80497978d181efa1b839ec2d9622cf9600a039a79d0e108d1f9aec79d'], + }), + ('backports.functools_lru_cache', '1.6.1', { + 'checksums': ['8fde5f188da2d593bd5bc0be98d9abc46c95bb8a9dde93429570192ee6cc2d4a'], + }), + ('kiwisolver', '1.1.0', { + 'checksums': ['53eaed412477c836e1b9522c19858a8557d6e595077830146182225613b11a75'], + }), + (name, version, { + 'prebuildopts': "export CPLUS_INCLUDE_PATH=$EBROOTFREETYPE/include/freetype2:${CPLUS_INCLUDE_PATH} && ", + 'preinstallopts': "export CPLUS_INCLUDE_PATH=$EBROOTFREETYPE/include/freetype2:${CPLUS_INCLUDE_PATH} && ", + 'checksums': ['a3037a840cd9dfdc2df9fee8af8f76ca82bfab173c0f9468193ca7a89a2b60ea'], + }), +] + +postinstallcmds = [ + 'touch %(installdir)s/lib/python%(pyshortver)s/site-packages/mpl_toolkits/__init__.py', +] + +sanity_check_commands = [ + """python -c 'import matplotlib; matplotlib.use("TkAgg"); import matplotlib.pyplot' """, + "python -c 'from mpl_toolkits.mplot3d import Axes3D'", +] + +# use non-interactive plotting backend as default +# see https://matplotlib.org/tutorials/introductory/usage.html#what-is-a-backend +modextravars = {'MPLBACKEND': 'Agg'} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/m/meshalyzer/meshalyzer-2.2-foss-2020b.eb b/easybuild/easyconfigs/m/meshalyzer/meshalyzer-2.2-foss-2020b.eb new file mode 100644 index 00000000000..04d794caa9f --- /dev/null +++ b/easybuild/easyconfigs/m/meshalyzer/meshalyzer-2.2-foss-2020b.eb @@ -0,0 +1,41 @@ +easyblock = 'MakeCp' + +name = 'meshalyzer' +version = '2.2' + +homepage = 'https://git.opencarp.org/openCARP/meshalyzer' +description = "Graphical program for display time dependent data on 3D finite elment meshes" + +toolchain = {'name': 'foss', 'version': '2020b'} + +source_urls = ['https://git.opencarp.org/openCARP/%(name)s/-/archive/%(version)s'] +sources = [SOURCE_TAR_GZ] +patches = ['meshalyzer-2.0_fix-VTK-linking.patch'] +checksums = [ + '635a4d6a5febfaabc9792a3bbde0215d1b838d342d428e29487be3efc5dc595b', # meshalyzer-2.2.tar.gz + '23f55c2290ea9b62440bdf8e0c1006116438beb7c4b7065b8cf136387a537e0f', # meshalyzer-2.0_fix-VTK-linking.patch +] + +local_vtk_majmin_ver = '9.0' +dependencies = [ + ('libpng', '1.6.37'), + ('FLTK', '1.3.5'), + ('glew', '2.1.0'), + ('freeglut', '3.2.1'), + ('HDF5', '1.10.7'), + ('VTK', '%s.1' % local_vtk_majmin_ver), +] + +buildopts = 'HDF5_ROOT=$EBROOTHDF5 LIB_EXT=".so" ' +buildopts += 'VTK_INCDIR=$EBROOTVTK/include/vtk-%s/ VTK_LIBDIR=$EBROOTVTK/lib' % local_vtk_majmin_ver + +files_to_copy = [(['meshalyzer'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/meshalyzer'], + 'dirs': [], +} + +sanity_check_commands = ["meshalyzer --help"] + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/m/meshtool/meshtool-16-GCC-10.2.0.eb b/easybuild/easyconfigs/m/meshtool/meshtool-16-GCC-10.2.0.eb new file mode 100644 index 00000000000..be073468001 --- /dev/null +++ b/easybuild/easyconfigs/m/meshtool/meshtool-16-GCC-10.2.0.eb @@ -0,0 +1,27 @@ +easyblock = 'MakeCp' + +name = 'meshtool' +version = '16' + +homepage = 'https://bitbucket.org/aneic/meshtool' +description = """Meshtool is a comand-line tool written in C++. It is designed to apply various manipulations to +volumetric meshes.""" + +toolchain = {'name': 'GCC', 'version': '10.2.0'} + +source_urls = ['https://bitbucket.org/aneic/meshtool/get/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['822e715b363603dfe320b4b530ad4a77cc5ecd0ccb692d77e01b6ecfe7da9d38'] + +prebuildopts = 'sed -i "s/-march=native/$CXXFLAGS/g" switches.def && ' + +files_to_copy = [(['meshtool'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/meshtool'], + 'dirs': [], +} + +sanity_check_commands = ["meshtool help"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/m/meshtool/meshtool-16-GCC-9.3.0.eb b/easybuild/easyconfigs/m/meshtool/meshtool-16-GCC-9.3.0.eb index 4d773d473e4..1bec74fe8df 100644 --- a/easybuild/easyconfigs/m/meshtool/meshtool-16-GCC-9.3.0.eb +++ b/easybuild/easyconfigs/m/meshtool/meshtool-16-GCC-9.3.0.eb @@ -13,6 +13,8 @@ source_urls = ['https://bitbucket.org/aneic/meshtool/get/'] sources = ['v%(version)s.tar.gz'] checksums = ['822e715b363603dfe320b4b530ad4a77cc5ecd0ccb692d77e01b6ecfe7da9d38'] +prebuildopts = 'sed -i "s/-march=native/$CXXFLAGS/g" switches.def && ' + files_to_copy = [(['meshtool'], 'bin')] sanity_check_paths = { diff --git a/easybuild/easyconfigs/m/metaWRAP/metaWRAP-1.3-foss-2020b-Python-2.7.18.eb b/easybuild/easyconfigs/m/metaWRAP/metaWRAP-1.3-foss-2020b-Python-2.7.18.eb new file mode 100644 index 00000000000..bb979fb26e2 --- /dev/null +++ b/easybuild/easyconfigs/m/metaWRAP/metaWRAP-1.3-foss-2020b-Python-2.7.18.eb @@ -0,0 +1,57 @@ +easyblock = 'Tarball' + +name = 'metaWRAP' +version = '1.3' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/bxlab/metaWRAP' +description = """MetaWRAP aims to be an easy-to-use metagenomic wrapper suite +that accomplishes the core tasks of metagenomic analysis from start to finish: +read quality control, assembly, visualization, taxonomic profiling, extracting +draft genomes (binning), and functional annotation.""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +source_urls = ['https://github.com/bxlab/metaWRAP/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['ffdbccf340dc0b1ebd0ad6f222e3bdef1e22bbd6e4e5156bf93500a3a834dd52'] + +builddependencies = [ + ('Java', '11', '', True), +] + +# see https://github.com/bxlab/metaWRAP/blob/master/installation/dependancies.md +dependencies = [ + ('Python', '2.7.18'), + ('Perl', '5.32.0'), + ('R', '4.0.3'), + ('BLAST+', '2.11.0'), + ('bmtagger', '3.101'), + ('Bowtie2', '2.4.2'), + ('BWA', '0.7.17'), + ('CheckM', '1.0.18', versionsuffix), + ('FastQC', '0.11.9', '-Java-11', True), + ('Kraken', '1.1.1'), + ('KronaTools', '2.8'), + ('MEGAHIT', '1.2.9', versionsuffix), + ('MetaBAT', '2.15', versionsuffix), + ('CONCOCT', '1.1.0', versionsuffix), + ('MaxBin', '2.2.7'), + ('QUAST', '5.0.2', versionsuffix), + ('SAMtools', '1.11'), + ('SPAdes', '3.15.2', versionsuffix), + ('Trim_Galore', '0.6.6', versionsuffix), + ('Seaborn', '0.9.1', versionsuffix), + ('Salmon', '1.4.0'), + ('taxator-tk', '1.3.3'), + ('prokka', '1.14.5'), +] + +sanity_check_paths = { + 'files': ['bin/config-metawrap', 'bin/metaWRAP'], + 'dirs': [], +} + +sanity_check_commands = ["metaWRAP --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/minimap2/minimap2-2.18-GCCcore-10.2.0.eb b/easybuild/easyconfigs/m/minimap2/minimap2-2.18-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..9f7b208cc9f --- /dev/null +++ b/easybuild/easyconfigs/m/minimap2/minimap2-2.18-GCCcore-10.2.0.eb @@ -0,0 +1,44 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Adam Huffman +# Big Data Institute, University of Oxford + +easyblock = 'MakeCp' + +name = 'minimap2' +version = '2.18' + +homepage = 'https://github.com/lh3/minimap2' +description = """Minimap2 is a fast sequence mapping and alignment +program that can find overlaps between long noisy reads, or map long +reads or their assemblies to a reference genome optionally with detailed +alignment (i.e. CIGAR). At present, it works efficiently with query +sequences from a few kilobases to ~100 megabases in length at an error +rate ~15%. Minimap2 outputs in the PAF or the SAM format. On limited +test data sets, minimap2 is over 20 times faster than most other +long-read aligners. It will replace BWA-MEM for long reads and contig +alignment.""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['https://github.com/lh3/%(name)s/releases/download/v%(version)s/'] +sources = ['%(name)s-%(version)s.tar.bz2'] +checksums = ['7a55101d58ecaec545db51079ad82b214632dc697ee67290b6dc34cc70dbeeb4'] + +builddependencies = [('binutils', '2.35')] + +files_to_copy = [ + (['%(name)s'], 'bin'), + (['lib%(name)s.a'], 'lib'), + (['*.h'], 'include'), + 'LICENSE.txt', 'NEWS.md', 'README.md', + (['%(name)s.1'], 'share/man/man1') +] + +sanity_check_paths = { + 'files': ['bin/%(name)s', 'lib/lib%(name)s.a'], + 'dirs': ['include'] +} + +sanity_check_commands = ["minimap2 --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/mmtf-cpp/mmtf-cpp-1.0.0-GCCcore-10.2.0.eb b/easybuild/easyconfigs/m/mmtf-cpp/mmtf-cpp-1.0.0-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..d692be29e51 --- /dev/null +++ b/easybuild/easyconfigs/m/mmtf-cpp/mmtf-cpp-1.0.0-GCCcore-10.2.0.eb @@ -0,0 +1,38 @@ +# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2021/04 +easyblock = 'CMakeNinja' + +name = 'mmtf-cpp' +version = '1.0.0' + +homepage = 'https://mmtf.rcsb.org/' +description = """ +The Macromolecular Transmission Format (MMTF) is a new compact binary format to +transmit and store biomolecular structures for fast 3D visualization and +analysis. +""" + + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['https://github.com/rcsb/mmtf-cpp/archive/refs/tags/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['881f69c4bb56605fa63fd5ca50842facc4947f686cbf678ad04930674d714f40'] + +github_account = 'rscb' +builddependencies = [ + ('CMake', '3.18.4'), + ('binutils', '2.35'), + ('Ninja', '1.10.1'), + ('Doxygen', '1.8.20'), +] + +dependencies = [ + ('msgpack-c', '3.3.0'), +] +postinstallcmds = ['cd ../%(name)s-%(version)s/docs && doxygen && cd .. && mv docs %(installdir)s/doc'] +sanity_check_paths = { + 'files': [], + 'dirs': ['include', 'doc'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/m/mongolite/mongolite-2.3.0-foss-2020a-R-4.0.0.eb b/easybuild/easyconfigs/m/mongolite/mongolite-2.3.0-foss-2020a-R-4.0.0.eb new file mode 100644 index 00000000000..c4bc5ce6c21 --- /dev/null +++ b/easybuild/easyconfigs/m/mongolite/mongolite-2.3.0-foss-2020a-R-4.0.0.eb @@ -0,0 +1,31 @@ +easyblock = 'RPackage' + +name = 'mongolite' +version = '2.3.0' +versionsuffix = '-R-%(rver)s' + +homepage = 'https://cran.r-project.org/web/packages/%(name)s' +description = """High-performance MongoDB client based on 'mongo-c-driver' and 'jsonlite'. + Includes support for aggregation, indexing, map-reduce, streaming, encryption, + enterprise authentication, and GridFS. The online user manual provides an overview + of the available methods in the package: .""" + +toolchain = {'name': 'foss', 'version': '2020a'} + +source_urls = ['https://github.com/jeroen/mongolite/archive'] +sources = ['v%(version)s.tar.gz'] +checksums = ['ea691b3f74571152212f3ab96e1f0413240534d1ca4659f12b653bffac97bf66'] + +dependencies = [('R', '4.0.0')] + +osdependencies = [ + OS_PKG_OPENSSL_DEV, + ('cyrus-sasl-devel', 'libsasl2-dev'), +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['mongolite'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/m/mongolite/mongolite-2.3.0-foss-2020b-R-4.0.3.eb b/easybuild/easyconfigs/m/mongolite/mongolite-2.3.0-foss-2020b-R-4.0.3.eb new file mode 100644 index 00000000000..c5ed32c3dc7 --- /dev/null +++ b/easybuild/easyconfigs/m/mongolite/mongolite-2.3.0-foss-2020b-R-4.0.3.eb @@ -0,0 +1,31 @@ +easyblock = 'RPackage' + +name = 'mongolite' +version = '2.3.0' +versionsuffix = '-R-%(rver)s' + +homepage = 'https://cran.r-project.org/web/packages/%(name)s' +description = """High-performance MongoDB client based on 'mongo-c-driver' and 'jsonlite'. + Includes support for aggregation, indexing, map-reduce, streaming, encryption, + enterprise authentication, and GridFS. The online user manual provides an overview + of the available methods in the package: .""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +source_urls = ['https://github.com/jeroen/mongolite/archive'] +sources = ['v%(version)s.tar.gz'] +checksums = ['ea691b3f74571152212f3ab96e1f0413240534d1ca4659f12b653bffac97bf66'] + +dependencies = [('R', '4.0.3')] + +osdependencies = [ + OS_PKG_OPENSSL_DEV, + ('cyrus-sasl-devel', 'libsasl2-dev'), +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['mongolite'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/m/mongolite/mongolite-2.3.0-foss-2020b-R-4.0.4.eb b/easybuild/easyconfigs/m/mongolite/mongolite-2.3.0-foss-2020b-R-4.0.4.eb new file mode 100644 index 00000000000..551c52c4f58 --- /dev/null +++ b/easybuild/easyconfigs/m/mongolite/mongolite-2.3.0-foss-2020b-R-4.0.4.eb @@ -0,0 +1,31 @@ +easyblock = 'RPackage' + +name = 'mongolite' +version = '2.3.0' +versionsuffix = '-R-%(rver)s' + +homepage = 'https://cran.r-project.org/web/packages/%(name)s' +description = """High-performance MongoDB client based on 'mongo-c-driver' and 'jsonlite'. + Includes support for aggregation, indexing, map-reduce, streaming, encryption, + enterprise authentication, and GridFS. The online user manual provides an overview + of the available methods in the package: .""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +source_urls = ['https://github.com/jeroen/mongolite/archive'] +sources = ['v%(version)s.tar.gz'] +checksums = ['ea691b3f74571152212f3ab96e1f0413240534d1ca4659f12b653bffac97bf66'] + +dependencies = [('R', '4.0.4')] + +osdependencies = [ + OS_PKG_OPENSSL_DEV, + ('cyrus-sasl-devel', 'libsasl2-dev'), +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['mongolite'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/m/msgpack-c/msgpack-c-3.3.0-GCCcore-10.2.0.eb b/easybuild/easyconfigs/m/msgpack-c/msgpack-c-3.3.0-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..73c851471ff --- /dev/null +++ b/easybuild/easyconfigs/m/msgpack-c/msgpack-c-3.3.0-GCCcore-10.2.0.eb @@ -0,0 +1,32 @@ +# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2021/04 +easyblock = 'CMakeMake' + +name = 'msgpack-c' +version = '3.3.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': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['https://github.com/msgpack/msgpack-c/releases/download/cpp-%(version)s'] +sources = ['msgpack-%(version)s.tar.gz'] +checksums = ['6e114d12a5ddb8cb11f669f83f32246e484a8addd0ce93f274996f1941c1f07b'] + +builddependencies = [ + ('CMake', '3.18.4'), + ('binutils', '2.35'), +] + +sanity_check_paths = { + 'files': [ + ['lib/libmsgpackc.%s' % x for x in ['a', '%s' % SHLIB_EXT]], + ['include/msgpack.%s' % x for x in ['h', 'hpp']] # check for both, C and C++ headers + ], + 'dirs': ['lib/pkgconfig', 'include/msgpack'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/m/muParser/muParser-2.3.2-GCCcore-10.2.0.eb b/easybuild/easyconfigs/m/muParser/muParser-2.3.2-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..d7822f8a35c --- /dev/null +++ b/easybuild/easyconfigs/m/muParser/muParser-2.3.2-GCCcore-10.2.0.eb @@ -0,0 +1,33 @@ +easyblock = 'CMakeMake' + +name = 'muParser' +version = '2.3.2' + +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': '10.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/beltoforion/muparser/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['b35fc84e3667d432e3414c8667d5764dfa450ed24a99eeef7ee3f6647d44f301'] + +builddependencies = [ + ('binutils', '2.35'), + ('CMake', '3.18.4'), +] + +configopts = "-DENABLE_SAMPLES=OFF -DBUILD_SHARED_LIBS=ON" + +sanity_check_paths = { + 'files': ['include/muParser.h', 'lib/libmuparser.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/m/multichoose/multichoose-1.0.3-GCCcore-9.3.0.eb b/easybuild/easyconfigs/m/multichoose/multichoose-1.0.3-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..f50a0f7a19c --- /dev/null +++ b/easybuild/easyconfigs/m/multichoose/multichoose-1.0.3-GCCcore-9.3.0.eb @@ -0,0 +1,26 @@ +easyblock = 'MakeCp' + +name = 'multichoose' +version = '1.0.3' + +homepage = 'https://github.com/ekg/multichoose' +description = """generate multiset combinations (n multichoose k).""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} + +github_account = 'ekg' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['74f0a223c670f5aa81b14191c53ad8d84281838a47471c10253ae391f736c877'] + +builddependencies = [('binutils', '2.34')] + +local_bins = [name, 'multipermute'] +files_to_copy = [(local_bins, 'bin'), (['*.h'], 'include/multichoose')] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in local_bins], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/n/NAMD/NAMD-2.14-intel-2020a-mpi.eb b/easybuild/easyconfigs/n/NAMD/NAMD-2.14-intel-2020a-mpi.eb index 7e640a16284..576c8836ad9 100644 --- a/easybuild/easyconfigs/n/NAMD/NAMD-2.14-intel-2020a-mpi.eb +++ b/easybuild/easyconfigs/n/NAMD/NAMD-2.14-intel-2020a-mpi.eb @@ -11,7 +11,11 @@ toolchainopts = {'usempi': True, 'openmp': False, 'pic': True} source_urls = ['https://www.ks.uiuc.edu/Research/namd/%(version)s/download/946183/'] sources = ['NAMD_%(version)s_Source.tar.gz'] -checksums = ['34044d85d9b4ae61650ccdba5cda4794088c3a9075932392dd0752ef8c049235'] +patches = ['NAMD-2.14-use_system_mremap_decl.patch'] +checksums = [ + '34044d85d9b4ae61650ccdba5cda4794088c3a9075932392dd0752ef8c049235', # NAMD_2.14_Source.tar.gz + 'a838bd66a8f741247436687bd355c439f3d77542996d96e091b8b6bd0ccc34e2', # NAMD-2.14-use_system_mremap_decl.patch +] dependencies = [ ('Tcl', '8.6.10'), diff --git a/easybuild/easyconfigs/n/NAMD/NAMD-2.14-use_system_mremap_decl.patch b/easybuild/easyconfigs/n/NAMD/NAMD-2.14-use_system_mremap_decl.patch new file mode 100644 index 00000000000..d51af26b6d6 --- /dev/null +++ b/easybuild/easyconfigs/n/NAMD/NAMD-2.14-use_system_mremap_decl.patch @@ -0,0 +1,4391 @@ +Patch as-is from upstream Charm++ except paths have been adjusted for +the embedding of Charm++ in NAMD. + +https://github.com/UIUC-PPL/charm/commit/26ef223352336541781b994022f79439a76f74eb + +From 26ef223352336541781b994022f79439a76f74eb Mon Sep 17 00:00:00 2001 +From: Evan Ramos +Date: Wed, 22 Jan 2020 17:34:00 -0600 +Subject: [PATCH] Memory: Update dlmalloc in ptmalloc3 to version 2.8.6 + +--- + src/conv-core/memory-gnu-internal.C | 2802 +++++++++++++++++---------- + src/conv-core/memory-gnu.C | 3 +- + 2 files changed, 1794 insertions(+), 1011 deletions(-) + +diff --git a/charm-6.10.2/src/conv-core/memory-gnu-internal.C b/charm-6.10.2/src/conv-core/memory-gnu-internal.C +index 1f4c37bdd5..6077676474 100644 +--- a/charm-6.10.2/src/conv-core/memory-gnu-internal.C ++++ b/charm-6.10.2/src/conv-core/memory-gnu-internal.C +@@ -1,4 +1,12 @@ + /* ++ This version of ptmalloc3 has been updated to use the latest dlmalloc ++ version, 2.8.6. It appears that all malloc.c changes in ptmalloc3 were ++ merged into dlmalloc as of version 2.8.4. Differences between dlmalloc ++ and this file are extremely minimal, so all comments apply despite the ++ below warning. ++ ++ ----------------------------------------------------------------------- ++ + $Id: malloc.c,v 1.4 2006/03/30 16:47:29 wg Exp $ + + This version of malloc.c was adapted for ptmalloc3 by Wolfram Gloger +@@ -11,11 +19,10 @@ + + This is a version (aka dlmalloc) of malloc/free/realloc written by + Doug Lea and released to the public domain, as explained at +- http://creativecommons.org/licenses/publicdomain. Send questions, ++ http://creativecommons.org/publicdomain/zero/1.0/ Send questions, + comments, complaints, performance data, etc to dl@cs.oswego.edu + +-* Version pre-2.8.4 Wed Mar 29 19:46:29 2006 (dl at gee) +- ++* Version 2.8.6 Wed Aug 29 06:57:58 2012 Doug Lea + Note: There may be an updated version of this malloc obtainable at + ftp://gee.cs.oswego.edu/pub/misc/malloc.c + Check before installing! +@@ -29,7 +36,7 @@ + compile-time and dynamic tuning options. + + For convenience, an include file for code using this malloc is at: +- ftp://gee.cs.oswego.edu/pub/misc/malloc-2.8.3.h ++ ftp://gee.cs.oswego.edu/pub/misc/malloc-2.8.6.h + You don't really need this .h file unless you call functions not + defined in your system include files. The .h file contains only the + excerpts from this file needed for using this malloc on ANSI C/C++ +@@ -51,7 +58,7 @@ + than pointers, you can use a previous release of this malloc + (e.g. 2.7.2) supporting these.) + +- Alignment: 8 bytes (default) ++ Alignment: 8 bytes (minimum) + This suffices for nearly all current machines and C compilers. + However, you can define MALLOC_ALIGNMENT to be wider than this + if necessary (up to 128bytes), at the expense of using more space. +@@ -114,17 +121,28 @@ + no errors or vulnerabilities, you can define INSECURE to 1, + which might (or might not) provide a small performance improvement. + +- Thread-safety: NOT thread-safe unless USE_LOCKS defined ++ It is also possible to limit the maximum total allocatable ++ space, using malloc_set_footprint_limit. This is not ++ designed as a security feature in itself (calls to set limits ++ are not screened or privileged), but may be useful as one ++ aspect of a secure implementation. ++ ++ Thread-safety: NOT thread-safe unless USE_LOCKS defined non-zero + When USE_LOCKS is defined, each public call to malloc, free, +- etc is surrounded with either a pthread mutex or a win32 +- spinlock (depending on WIN32). This is not especially fast, and +- can be a major bottleneck. It is designed only to provide +- minimal protection in concurrent environments, and to provide a +- basis for extensions. If you are using malloc in a concurrent +- program, consider instead using nedmalloc ++ etc is surrounded with a lock. By default, this uses a plain ++ pthread mutex, win32 critical section, or a spin-lock if if ++ available for the platform and not disabled by setting ++ USE_SPIN_LOCKS=0. However, if USE_RECURSIVE_LOCKS is defined, ++ recursive versions are used instead (which are not required for ++ base functionality but may be needed in layered extensions). ++ Using a global lock is not especially fast, and can be a major ++ bottleneck. It is designed only to provide minimal protection ++ in concurrent environments, and to provide a basis for ++ extensions. If you are using malloc in a concurrent program, ++ consider instead using nedmalloc + (http://www.nedprod.com/programs/portable/nedmalloc/) or +- ptmalloc (See http://www.malloc.de), which are derived +- from versions of this malloc. ++ ptmalloc (See http://www.malloc.de), which are derived from ++ versions of this malloc. + + System requirements: Any combination of MORECORE and/or MMAP/MUNMAP + This malloc can use unix sbrk or any emulation (invoked using +@@ -213,7 +231,7 @@ + conformance is only weakly checked, so usage errors are not always + caught). If FOOTERS is defined, then each chunk carries around a tag + indicating its originating mspace, and frees are directed to their +- originating spaces. ++ originating spaces. Normally, this requires use of locks. + + ------------------------- Compile-time options --------------------------- + +@@ -224,9 +242,28 @@ use the symbolic values MAX_SIZE_T, SIZE_T_ONE, etc below. + + WIN32 default: defined if _WIN32 defined + Defining WIN32 sets up defaults for MS environment and compilers. +- Otherwise defaults are for unix. +- +-MALLOC_ALIGNMENT default: (size_t)8 ++ Otherwise defaults are for unix. Beware that there seem to be some ++ cases where this malloc might not be a pure drop-in replacement for ++ Win32 malloc: Random-looking failures from Win32 GDI API's (eg; ++ SetDIBits()) may be due to bugs in some video driver implementations ++ when pixel buffers are malloc()ed, and the region spans more than ++ one VirtualAlloc()ed region. Because dlmalloc uses a small (64Kb) ++ default granularity, pixel buffers may straddle virtual allocation ++ regions more often than when using the Microsoft allocator. You can ++ avoid this by using VirtualAlloc() and VirtualFree() for all pixel ++ buffers rather than using malloc(). If this is not possible, ++ recompile this malloc with a larger DEFAULT_GRANULARITY. Note: ++ in cases where MSC and gcc (cygwin) are known to differ on WIN32, ++ conditions use _MSC_VER to distinguish them. ++ ++DLMALLOC_EXPORT default: extern ++ Defines how public APIs are declared. If you want to export via a ++ Windows DLL, you might define this as ++ #define DLMALLOC_EXPORT extern __declspec(dllexport) ++ If you want a POSIX ELF shared object, you might use ++ #define DLMALLOC_EXPORT extern __attribute__((visibility("default"))) ++ ++MALLOC_ALIGNMENT default: (size_t)(2 * sizeof(void *)) + Controls the minimum alignment for malloc'ed chunks. It must be a + power of two and at least 8, even on machines for which smaller + alignments would suffice. It may be defined as larger than this +@@ -245,12 +282,25 @@ USE_LOCKS default: 0 (false) + pthread or WIN32 mutex lock/unlock. (If set true, this can be + overridden on a per-mspace basis for mspace versions.) If set to a + non-zero value other than 1, locks are used, but their +- implementation is left out, so lock functions must be supplied manually. ++ implementation is left out, so lock functions must be supplied manually, ++ as described below. + +-USE_SPIN_LOCKS default: 1 iff USE_LOCKS and on x86 using gcc or MSC ++USE_SPIN_LOCKS default: 1 iff USE_LOCKS and spin locks available + If true, uses custom spin locks for locking. This is currently +- supported only for x86 platforms using gcc or recent MS compilers. +- Otherwise, posix locks or win32 critical sections are used. ++ supported only gcc >= 4.1, older gccs on x86 platforms, and recent ++ MS compilers. Otherwise, posix locks or win32 critical sections are ++ used. ++ ++USE_RECURSIVE_LOCKS default: not defined ++ If defined nonzero, uses recursive (aka reentrant) locks, otherwise ++ uses plain mutexes. This is not required for malloc proper, but may ++ be needed for layered allocators such as nedmalloc. ++ ++LOCK_AT_FORK default: not defined ++ If defined nonzero, performs pthread_atfork upon initialization ++ to initialize child lock while holding parent lock. The implementation ++ assumes that pthread locks (not custom locks) are being used. In other ++ cases, you may need to customize the implementation. + + FOOTERS default: 0 + If true, provide extra checking and dispatching by placing +@@ -265,6 +315,12 @@ USE_DL_PREFIX default: NOT defined + This can be useful when you only want to use this malloc in one part + of a program, using your regular system malloc elsewhere. + ++MALLOC_INSPECT_ALL default: NOT defined ++ If defined, compiles malloc_inspect_all and mspace_inspect_all, that ++ perform traversal of all heap space. Unless access to these ++ functions is otherwise restricted, you probably do not want to ++ include them in secure implementations. ++ + ABORT default: defined as abort() + Defines how to abort on failed checks. On most systems, a failed + check cannot die with an "assert" or even print an informative +@@ -321,9 +377,7 @@ MORECORE default: sbrk + size_t (sometimes declared as "intptr_t"). It doesn't much matter + though. Internally, we only call it with arguments less than half + the max value of a size_t, which should work across all reasonable +- possibilities, although sometimes generating compiler warnings. See +- near the end of this file for guidelines for creating a custom +- version of MORECORE. ++ possibilities, although sometimes generating compiler warnings. + + MORECORE_CONTIGUOUS default: 1 (true) if HAVE_MORECORE + If true, take advantage of fact that consecutive calls to MORECORE +@@ -392,6 +446,10 @@ MALLINFO_FIELD_TYPE default: size_t + defined as "int" in SVID etc, but is more usefully defined as + size_t. The value is used only if HAVE_USR_INCLUDE_MALLOC_H is not set + ++NO_MALLOC_STATS default: 0 ++ If defined, don't compile "malloc_stats". This avoids calls to ++ fprintf and bringing in stdio dependencies you might not want. ++ + REALLOC_ZERO_BYTES_FREES default: not defined + This should be set if a call to realloc with zero bytes should + be the same as a call to free. Some people think it should. Otherwise, +@@ -400,7 +458,7 @@ REALLOC_ZERO_BYTES_FREES default: not defined + + LACKS_UNISTD_H, LACKS_FCNTL_H, LACKS_SYS_PARAM_H, LACKS_SYS_MMAN_H + LACKS_STRINGS_H, LACKS_STRING_H, LACKS_SYS_TYPES_H, LACKS_ERRNO_H +-LACKS_STDLIB_H default: NOT defined unless on WIN32 ++LACKS_STDLIB_H LACKS_SCHED_H LACKS_TIME_H default: NOT defined unless on WIN32 + Define these if your system does not have these header files. + You might need to manually insert some of the declarations they provide. + +@@ -466,7 +524,7 @@ DEFAULT_MMAP_THRESHOLD default: 256K + empirically derived value that works well in most systems. You can + disable mmap by setting to MAX_SIZE_T. + +-MAX_RELEASE_CHECK_RATE default: 255 unless not HAVE_MMAP ++MAX_RELEASE_CHECK_RATE default: 4095 unless not HAVE_MMAP + The number of consolidated frees between checks to release + unused segments when freeing. When using non-contiguous segments, + especially with multiple mspaces, checking only for topmost space +@@ -481,14 +539,28 @@ MAX_RELEASE_CHECK_RATE default: 255 unless not HAVE_MMAP + improvement at the expense of carrying around more memory. + */ + ++/* Version identifier to allow people to support multiple versions */ ++#ifndef DLMALLOC_VERSION ++#define DLMALLOC_VERSION 20806 ++#endif /* DLMALLOC_VERSION */ ++ ++#ifndef DLMALLOC_EXPORT ++#define DLMALLOC_EXPORT extern ++#endif ++ + #ifndef WIN32 + #ifdef _WIN32 + #define WIN32 1 + #endif /* _WIN32 */ ++#ifdef _WIN32_WCE ++#define LACKS_FCNTL_H ++#define WIN32 1 ++#endif /* _WIN32_WCE */ + #endif /* WIN32 */ + #ifdef WIN32 + #define WIN32_LEAN_AND_MEAN + #include ++#include + #define HAVE_MMAP 1 + #define HAVE_MORECORE 0 + #define LACKS_UNISTD_H +@@ -498,12 +570,17 @@ MAX_RELEASE_CHECK_RATE default: 255 unless not HAVE_MMAP + #define LACKS_STRINGS_H + #define LACKS_SYS_TYPES_H + #define LACKS_ERRNO_H ++#define LACKS_SCHED_H ++#ifndef MALLOC_FAILURE_ACTION + #define MALLOC_FAILURE_ACTION ++#endif /* MALLOC_FAILURE_ACTION */ ++#ifndef MMAP_CLEARS + #ifdef _WIN32_WCE /* WINCE reportedly does not clear */ + #define MMAP_CLEARS 0 + #else + #define MMAP_CLEARS 1 + #endif /* _WIN32_WCE */ ++#endif /*MMAP_CLEARS */ + #endif /* WIN32 */ + + #if defined(DARWIN) || defined(_DARWIN) +@@ -511,6 +588,10 @@ MAX_RELEASE_CHECK_RATE default: 255 unless not HAVE_MMAP + #ifndef HAVE_MORECORE + #define HAVE_MORECORE 0 + #define HAVE_MMAP 1 ++/* OSX allocators provide 16 byte alignment */ ++#ifndef MALLOC_ALIGNMENT ++#define MALLOC_ALIGNMENT ((size_t)16U) ++#endif + #endif /* HAVE_MORECORE */ + #endif /* DARWIN */ + +@@ -521,6 +602,26 @@ MAX_RELEASE_CHECK_RATE default: 255 unless not HAVE_MMAP + /* The maximum possible size_t value has all bits set */ + #define MAX_SIZE_T (~(size_t)0) + ++#ifndef USE_LOCKS /* ensure true if spin or recursive locks set */ ++#define USE_LOCKS ((defined(USE_SPIN_LOCKS) && USE_SPIN_LOCKS != 0) || \ ++ (defined(USE_RECURSIVE_LOCKS) && USE_RECURSIVE_LOCKS != 0)) ++#endif /* USE_LOCKS */ ++ ++#if USE_LOCKS /* Spin locks for gcc >= 4.1, older gcc on x86, MSC >= 1310 */ ++#if ((defined(__GNUC__) && \ ++ ((__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)) || \ ++ defined(__i386__) || defined(__x86_64__))) || \ ++ (defined(_MSC_VER) && _MSC_VER>=1310)) ++#ifndef USE_SPIN_LOCKS ++#define USE_SPIN_LOCKS 1 ++#endif /* USE_SPIN_LOCKS */ ++#elif USE_SPIN_LOCKS ++#error "USE_SPIN_LOCKS defined without implementation" ++#endif /* ... locks available... */ ++#elif !defined(USE_SPIN_LOCKS) ++#define USE_SPIN_LOCKS 0 ++#endif /* USE_LOCKS */ ++ + #ifndef ONLY_MSPACES + #define ONLY_MSPACES 0 + #endif /* ONLY_MSPACES */ +@@ -532,7 +633,7 @@ MAX_RELEASE_CHECK_RATE default: 255 unless not HAVE_MMAP + #endif /* ONLY_MSPACES */ + #endif /* MSPACES */ + #ifndef MALLOC_ALIGNMENT +-#define MALLOC_ALIGNMENT ((size_t)(ALIGN_BYTES)) ++#define MALLOC_ALIGNMENT ((size_t)(2 * sizeof(void *))) + #endif /* MALLOC_ALIGNMENT */ + #ifndef FOOTERS + #define FOOTERS 0 +@@ -546,19 +647,13 @@ MAX_RELEASE_CHECK_RATE default: 255 unless not HAVE_MMAP + #ifndef PROCEED_ON_ERROR + #define PROCEED_ON_ERROR 0 + #endif /* PROCEED_ON_ERROR */ +-#ifndef USE_LOCKS +-#define USE_LOCKS 0 +-#endif /* USE_LOCKS */ +-#ifndef USE_SPIN_LOCKS +-#if USE_LOCKS && (defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))) || (defined(_MSC_VER) && _MSC_VER>=1310) +-#define USE_SPIN_LOCKS 1 +-#else +-#define USE_SPIN_LOCKS 0 +-#endif /* USE_LOCKS && ... */ +-#endif /* USE_SPIN_LOCKS */ ++ + #ifndef INSECURE + #define INSECURE 0 + #endif /* INSECURE */ ++#ifndef MALLOC_INSPECT_ALL ++#define MALLOC_INSPECT_ALL 0 ++#endif /* MALLOC_INSPECT_ALL */ + #ifndef HAVE_MMAP + #define HAVE_MMAP 1 + #endif /* HAVE_MMAP */ +@@ -568,6 +663,7 @@ MAX_RELEASE_CHECK_RATE default: 255 unless not HAVE_MMAP + #ifndef HAVE_MREMAP + #ifdef linux + #define HAVE_MREMAP 1 ++#define _GNU_SOURCE /* Turns on mremap() definition */ + #else /* linux */ + #define HAVE_MREMAP 0 + #endif /* linux */ +@@ -585,15 +681,13 @@ MAX_RELEASE_CHECK_RATE default: 255 unless not HAVE_MMAP + #if !HAVE_MORECORE + #define MORECORE_CONTIGUOUS 0 + #else /* !HAVE_MORECORE */ +-#ifndef MORECORE +-#define MORECORE sbrk +-#endif /* MORECORE */ ++#define MORECORE_DEFAULT sbrk + #ifndef MORECORE_CONTIGUOUS + #define MORECORE_CONTIGUOUS 1 + #endif /* MORECORE_CONTIGUOUS */ + #endif /* HAVE_MORECORE */ + #ifndef DEFAULT_GRANULARITY +-#if MORECORE_CONTIGUOUS ++#if (MORECORE_CONTIGUOUS || defined(WIN32)) + #define DEFAULT_GRANULARITY (0) /* 0 means to compute in init_mparams */ + #else /* MORECORE_CONTIGUOUS */ + #define DEFAULT_GRANULARITY ((size_t)64U * (size_t)1024U) +@@ -615,7 +709,7 @@ MAX_RELEASE_CHECK_RATE default: 255 unless not HAVE_MMAP + #endif /* DEFAULT_MMAP_THRESHOLD */ + #ifndef MAX_RELEASE_CHECK_RATE + #if HAVE_MMAP +-#define MAX_RELEASE_CHECK_RATE 255 ++#define MAX_RELEASE_CHECK_RATE 4095 + #else + #define MAX_RELEASE_CHECK_RATE MAX_SIZE_T + #endif /* HAVE_MMAP */ +@@ -632,6 +726,9 @@ MAX_RELEASE_CHECK_RATE default: 255 unless not HAVE_MMAP + #ifndef MALLINFO_FIELD_TYPE + #define MALLINFO_FIELD_TYPE size_t + #endif /* MALLINFO_FIELD_TYPE */ ++#ifndef NO_MALLOC_STATS ++#define NO_MALLOC_STATS 0 ++#endif /* NO_MALLOC_STATS */ + #ifndef NO_SEGMENT_TRAVERSAL + #define NO_SEGMENT_TRAVERSAL 0 + #endif /* NO_SEGMENT_TRAVERSAL */ +@@ -677,7 +774,10 @@ MAX_RELEASE_CHECK_RATE default: 255 unless not HAVE_MMAP + #ifdef HAVE_USR_INCLUDE_MALLOC_H + #include "/usr/include/malloc.h" + #else /* HAVE_USR_INCLUDE_MALLOC_H */ +- ++#ifndef STRUCT_MALLINFO_DECLARED ++/* HP-UX (and others?) redefines mallinfo unless _STRUCT_MALLINFO is defined */ ++#define _STRUCT_MALLINFO ++#define STRUCT_MALLINFO_DECLARED 1 + struct mallinfo { + MALLINFO_FIELD_TYPE arena; /* non-mmapped space allocated from system */ + MALLINFO_FIELD_TYPE ordblks; /* number of free chunks */ +@@ -690,7 +790,7 @@ struct mallinfo { + MALLINFO_FIELD_TYPE fordblks; /* total free space */ + MALLINFO_FIELD_TYPE keepcost; /* releasable (via malloc_trim) space */ + }; +- ++#endif /* STRUCT_MALLINFO_DECLARED */ + #endif /* HAVE_USR_INCLUDE_MALLOC_H */ + #endif /* NO_MALLINFO */ + +@@ -735,7 +835,9 @@ extern "C" { + #define dlfree free + #define dlmalloc malloc + #define dlmemalign memalign ++#define dlposix_memalign posix_memalign + #define dlrealloc realloc ++#define dlrealloc_in_place realloc_in_place + #define dlvalloc valloc + #define dlpvalloc pvalloc + #define dlmallinfo mallinfo +@@ -745,11 +847,14 @@ extern "C" { + #define dlmalloc_usable_size malloc_usable_size + #define dlmalloc_footprint malloc_footprint + #define dlmalloc_max_footprint malloc_max_footprint ++#define dlmalloc_footprint_limit malloc_footprint_limit ++#define dlmalloc_set_footprint_limit malloc_set_footprint_limit ++#define dlmalloc_inspect_all malloc_inspect_all + #define dlindependent_calloc independent_calloc + #define dlindependent_comalloc independent_comalloc ++#define dlbulk_free bulk_free + #endif /* USE_DL_PREFIX */ + +- + /* + malloc(size_t n) + Returns a pointer to a newly allocated chunk of at least n bytes, or +@@ -764,7 +869,7 @@ extern "C" { + maximum supported value of n differs across systems, but is in all + cases less than the maximum representable value of a size_t. + */ +-void* dlmalloc(size_t); ++DLMALLOC_EXPORT void* dlmalloc(size_t); + + /* + free(void* p) +@@ -773,14 +878,14 @@ void* dlmalloc(size_t); + It has no effect if p is null. If p was not malloced or already + freed, free(p) will by default cause the current program to abort. + */ +-void dlfree(void*); ++DLMALLOC_EXPORT void dlfree(void*); + + /* + calloc(size_t n_elements, size_t element_size); + Returns a pointer to n_elements * element_size bytes, with all locations + set to zero. + */ +-void* dlcalloc(size_t, size_t); ++DLMALLOC_EXPORT void* dlcalloc(size_t, size_t); + + /* + realloc(void* p, size_t n) +@@ -804,8 +909,22 @@ void* dlcalloc(size_t, size_t); + The old unix realloc convention of allowing the last-free'd chunk + to be used as an argument to realloc is not supported. + */ ++DLMALLOC_EXPORT void* dlrealloc(void*, size_t); + +-void* dlrealloc(void*, size_t); ++/* ++ realloc_in_place(void* p, size_t n) ++ Resizes the space allocated for p to size n, only if this can be ++ done without moving p (i.e., only if there is adjacent space ++ available if n is greater than p's current allocated size, or n is ++ less than or equal to p's size). This may be used instead of plain ++ realloc if an alternative allocation strategy is needed upon failure ++ to expand space; for example, reallocation of a buffer that must be ++ memory-aligned or cleared. You can use realloc_in_place to trigger ++ these alternatives only when needed. ++ ++ Returns p if successful; otherwise null. ++*/ ++DLMALLOC_EXPORT void* dlrealloc_in_place(void*, size_t); + + /* + memalign(size_t alignment, size_t n); +@@ -819,14 +938,24 @@ void* dlrealloc(void*, size_t); + + Overreliance on memalign is a sure way to fragment space. + */ +-void* dlmemalign(size_t, size_t); ++DLMALLOC_EXPORT void* dlmemalign(size_t, size_t); ++ ++/* ++ int posix_memalign(void** pp, size_t alignment, size_t n); ++ Allocates a chunk of n bytes, aligned in accord with the alignment ++ argument. Differs from memalign only in that it (1) assigns the ++ allocated memory to *pp rather than returning it, (2) fails and ++ returns EINVAL if the alignment is not a power of two (3) fails and ++ returns ENOMEM if memory cannot be allocated. ++*/ ++DLMALLOC_EXPORT int dlposix_memalign(void**, size_t, size_t); + + /* + valloc(size_t n); + Equivalent to memalign(pagesize, n), where pagesize is the page + size of the system. If the pagesize is unknown, 4096 is used. + */ +-void* dlvalloc(size_t); ++DLMALLOC_EXPORT void* dlvalloc(size_t); + + /* + mallopt(int parameter_number, int parameter_value) +@@ -834,7 +963,11 @@ void* dlvalloc(size_t); + (parameter-number, parameter-value) pair. mallopt then sets the + corresponding parameter to the argument value if it can (i.e., so + long as the value is meaningful), and returns 1 if successful else +- 0. SVID/XPG/ANSI defines four standard param numbers for mallopt, ++ 0. To workaround the fact that mallopt is specified to use int, ++ not size_t parameters, the value -1 is specially treated as the ++ maximum unsigned size_t value. ++ ++ SVID/XPG/ANSI defines four standard param numbers for mallopt, + normally defined in malloc.h. None of these are use in this malloc, + so setting them has no effect. But this malloc also supports other + options in mallopt. See below for details. Briefly, supported +@@ -842,11 +975,11 @@ void* dlvalloc(size_t); + configurations). + + Symbol param # default allowed param values +- M_TRIM_THRESHOLD -1 2*1024*1024 any (MAX_SIZE_T disables) ++ M_TRIM_THRESHOLD -1 2*1024*1024 any (-1 disables) + M_GRANULARITY -2 page size any power of 2 >= page size + M_MMAP_THRESHOLD -3 256*1024 any (or 0 if no MMAP support) + */ +-int dlmallopt(int, int); ++DLMALLOC_EXPORT int dlmallopt(int, int); + + /* + malloc_footprint(); +@@ -857,7 +990,7 @@ int dlmallopt(int, int); + Even if locks are otherwise defined, this function does not use them, + so results might not be up to date. + */ +-size_t dlmalloc_footprint(void); ++DLMALLOC_EXPORT size_t dlmalloc_footprint(void); + + /* + malloc_max_footprint(); +@@ -870,7 +1003,66 @@ size_t dlmalloc_footprint(void); + otherwise defined, this function does not use them, so results might + not be up to date. + */ +-size_t dlmalloc_max_footprint(void); ++DLMALLOC_EXPORT size_t dlmalloc_max_footprint(void); ++ ++/* ++ malloc_footprint_limit(); ++ Returns the number of bytes that the heap is allowed to obtain from ++ the system, returning the last value returned by ++ malloc_set_footprint_limit, or the maximum size_t value if ++ never set. The returned value reflects a permission. There is no ++ guarantee that this number of bytes can actually be obtained from ++ the system. ++*/ ++DLMALLOC_EXPORT size_t dlmalloc_footprint_limit(); ++ ++/* ++ malloc_set_footprint_limit(); ++ Sets the maximum number of bytes to obtain from the system, causing ++ failure returns from malloc and related functions upon attempts to ++ exceed this value. The argument value may be subject to page ++ rounding to an enforceable limit; this actual value is returned. ++ Using an argument of the maximum possible size_t effectively ++ disables checks. If the argument is less than or equal to the ++ current malloc_footprint, then all future allocations that require ++ additional system memory will fail. However, invocation cannot ++ retroactively deallocate existing used memory. ++*/ ++DLMALLOC_EXPORT size_t dlmalloc_set_footprint_limit(size_t bytes); ++ ++#if MALLOC_INSPECT_ALL ++/* ++ malloc_inspect_all(void(*handler)(void *start, ++ void *end, ++ size_t used_bytes, ++ void* callback_arg), ++ void* arg); ++ Traverses the heap and calls the given handler for each managed ++ region, skipping all bytes that are (or may be) used for bookkeeping ++ purposes. Traversal does not include include chunks that have been ++ directly memory mapped. Each reported region begins at the start ++ address, and continues up to but not including the end address. The ++ first used_bytes of the region contain allocated data. If ++ used_bytes is zero, the region is unallocated. The handler is ++ invoked with the given callback argument. If locks are defined, they ++ are held during the entire traversal. It is a bad idea to invoke ++ other malloc functions from within the handler. ++ ++ For example, to count the number of in-use chunks with size greater ++ than 1000, you could write: ++ static int count = 0; ++ void count_chunks(void* start, void* end, size_t used, void* arg) { ++ if (used >= 1000) ++count; ++ } ++ then: ++ malloc_inspect_all(count_chunks, NULL); ++ ++ malloc_inspect_all is compiled only if MALLOC_INSPECT_ALL is defined. ++*/ ++DLMALLOC_EXPORT void dlmalloc_inspect_all(void(*handler)(void*, void *, size_t, void*), ++ void* arg); ++ ++#endif /* MALLOC_INSPECT_ALL */ + + #if !NO_MALLINFO + /* +@@ -895,7 +1087,7 @@ size_t dlmalloc_max_footprint(void); + be kept as longs, the reported values may wrap around zero and + thus be inaccurate. + */ +-struct mallinfo dlmallinfo(void); ++DLMALLOC_EXPORT struct mallinfo dlmallinfo(void); + #endif /* NO_MALLINFO */ + + /* +@@ -922,11 +1114,8 @@ struct mallinfo dlmallinfo(void); + is null, it returns a chunk representing an array with zero elements + (which should be freed if not wanted). + +- Each element must be individually freed when it is no longer +- needed. If you'd like to instead be able to free all at once, you +- should instead use regular calloc and assign pointers into this +- space to represent elements. (In this case though, you cannot +- independently free elements.) ++ Each element must be freed when it is no longer needed. This can be ++ done all at once using bulk_free. + + independent_calloc simplifies and speeds up implementations of many + kinds of pools. It may also be useful when constructing large data +@@ -950,7 +1139,7 @@ struct mallinfo dlmallinfo(void); + return first; + } + */ +-void** dlindependent_calloc(size_t, size_t, void**); ++DLMALLOC_EXPORT void** dlindependent_calloc(size_t, size_t, void**); + + /* + independent_comalloc(size_t n_elements, size_t sizes[], void* chunks[]); +@@ -974,11 +1163,8 @@ void** dlindependent_calloc(size_t, size_t, void**); + null, it returns a chunk representing an array with zero elements + (which should be freed if not wanted). + +- Each element must be individually freed when it is no longer +- needed. If you'd like to instead be able to free all at once, you +- should instead use a single regular malloc, and assign pointers at +- particular offsets in the aggregate space. (In this case though, you +- cannot independently free elements.) ++ Each element must be freed when it is no longer needed. This can be ++ done all at once using bulk_free. + + independent_comallac differs from independent_calloc in that each + element may have a different size, and also that it does not +@@ -1011,15 +1197,25 @@ void** dlindependent_calloc(size_t, size_t, void**); + since it cannot reuse existing noncontiguous small chunks that + might be available for some of the elements. + */ +-void** dlindependent_comalloc(size_t, size_t*, void**); ++DLMALLOC_EXPORT void** dlindependent_comalloc(size_t, size_t*, void**); + ++/* ++ bulk_free(void* array[], size_t n_elements) ++ Frees and clears (sets to null) each non-null pointer in the given ++ array. This is likely to be faster than freeing them one-by-one. ++ If footers are used, pointers that have been allocated in different ++ mspaces are not freed or cleared, and the count of all such pointers ++ is returned. For large arrays of pointers with poor locality, it ++ may be worthwhile to sort this array before calling bulk_free. ++*/ ++DLMALLOC_EXPORT size_t dlbulk_free(void**, size_t n_elements); + + /* + pvalloc(size_t n); + Equivalent to valloc(minimum-page-that-holds(n)), that is, + round up n to nearest pagesize. + */ +-void* dlpvalloc(size_t); ++DLMALLOC_EXPORT void* dlpvalloc(size_t); + + /* + malloc_trim(size_t pad); +@@ -1042,23 +1238,7 @@ void* dlpvalloc(size_t); + + Malloc_trim returns 1 if it actually released any memory, else 0. + */ +-int dlmalloc_trim(size_t); +- +-/* +- malloc_usable_size(void* p); +- +- Returns the number of bytes you can actually use in +- an allocated chunk, which may be more than you requested (although +- often not) due to alignment and minimum size constraints. +- You can use this many bytes without worrying about +- overwriting other allocated objects. This is not a particularly great +- programming practice. malloc_usable_size can be more useful in +- debugging and assertions, for example: +- +- p = malloc(n); +- assert(malloc_usable_size(p) >= 256); +-*/ +-size_t dlmalloc_usable_size(void*); ++DLMALLOC_EXPORT int dlmalloc_trim(size_t); + + /* + malloc_stats(); +@@ -1079,7 +1259,23 @@ size_t dlmalloc_usable_size(void*); + malloc_stats prints only the most commonly interesting statistics. + More information can be obtained by calling mallinfo. + */ +-void dlmalloc_stats(void); ++DLMALLOC_EXPORT void dlmalloc_stats(void); ++ ++/* ++ malloc_usable_size(void* p); ++ ++ Returns the number of bytes you can actually use in ++ an allocated chunk, which may be more than you requested (although ++ often not) due to alignment and minimum size constraints. ++ You can use this many bytes without worrying about ++ overwriting other allocated objects. This is not a particularly great ++ programming practice. malloc_usable_size can be more useful in ++ debugging and assertions, for example: ++ ++ p = malloc(n); ++ assert(malloc_usable_size(p) >= 256); ++*/ ++size_t dlmalloc_usable_size(void*); + + #endif /* ONLY_MSPACES */ + +@@ -1102,7 +1298,7 @@ typedef void* mspace; + compiling with a different DEFAULT_GRANULARITY or dynamically + setting with mallopt(M_GRANULARITY, value). + */ +-mspace create_mspace(size_t capacity, int locked); ++DLMALLOC_EXPORT mspace create_mspace(size_t capacity, int locked); + + /* + destroy_mspace destroys the given space, and attempts to return all +@@ -1110,7 +1306,7 @@ mspace create_mspace(size_t capacity, int locked); + bytes freed. After destruction, the results of access to all memory + used by the space become undefined. + */ +-size_t destroy_mspace(mspace msp); ++DLMALLOC_EXPORT size_t destroy_mspace(mspace msp); + + /* + create_mspace_with_base uses the memory supplied as the initial base +@@ -1121,13 +1317,27 @@ size_t destroy_mspace(mspace msp); + Destroying this space will deallocate all additionally allocated + space (if possible) but not the initial base. + */ +-mspace create_mspace_with_base(void* base, size_t capacity, int locked); ++DLMALLOC_EXPORT mspace create_mspace_with_base(void* base, size_t capacity, int locked); ++ ++/* ++ mspace_track_large_chunks controls whether requests for large chunks ++ are allocated in their own untracked mmapped regions, separate from ++ others in this mspace. By default large chunks are not tracked, ++ which reduces fragmentation. However, such chunks are not ++ necessarily released to the system upon destroy_mspace. Enabling ++ tracking by setting to true may increase fragmentation, but avoids ++ leakage when relying on destroy_mspace to release all memory ++ allocated using this space. The function returns the previous ++ setting. ++*/ ++DLMALLOC_EXPORT int mspace_track_large_chunks(mspace msp, int enable); ++ + + /* + mspace_malloc behaves as malloc, but operates within + the given space. + */ +-void* mspace_malloc(mspace msp, size_t bytes); ++DLMALLOC_EXPORT void* mspace_malloc(mspace msp, size_t bytes); + + /* + mspace_free behaves as free, but operates within +@@ -1137,7 +1347,7 @@ void* mspace_malloc(mspace msp, size_t bytes); + free may be called instead of mspace_free because freed chunks from + any space are handled by their originating spaces. + */ +-void mspace_free(mspace msp, void* mem); ++DLMALLOC_EXPORT void mspace_free(mspace msp, void* mem); + + /* + mspace_realloc behaves as realloc, but operates within +@@ -1148,45 +1358,45 @@ void mspace_free(mspace msp, void* mem); + realloced chunks from any space are handled by their originating + spaces. + */ +-void* mspace_realloc(mspace msp, void* mem, size_t newsize); ++DLMALLOC_EXPORT void* mspace_realloc(mspace msp, void* mem, size_t newsize); + + /* + mspace_calloc behaves as calloc, but operates within + the given space. + */ +-void* mspace_calloc(mspace msp, size_t n_elements, size_t elem_size); ++DLMALLOC_EXPORT void* mspace_calloc(mspace msp, size_t n_elements, size_t elem_size); + + /* + mspace_memalign behaves as memalign, but operates within + the given space. + */ +-void* mspace_memalign(mspace msp, size_t alignment, size_t bytes); ++DLMALLOC_EXPORT void* mspace_memalign(mspace msp, size_t alignment, size_t bytes); + + /* + mspace_independent_calloc behaves as independent_calloc, but + operates within the given space. + */ +-void** mspace_independent_calloc(mspace msp, size_t n_elements, ++DLMALLOC_EXPORT void** mspace_independent_calloc(mspace msp, size_t n_elements, + size_t elem_size, void* chunks[]); + + /* + mspace_independent_comalloc behaves as independent_comalloc, but + operates within the given space. + */ +-void** mspace_independent_comalloc(mspace msp, size_t n_elements, ++DLMALLOC_EXPORT void** mspace_independent_comalloc(mspace msp, size_t n_elements, + size_t sizes[], void* chunks[]); + + /* + mspace_footprint() returns the number of bytes obtained from the + system for this space. + */ +-size_t mspace_footprint(mspace msp); ++DLMALLOC_EXPORT size_t mspace_footprint(mspace msp); + + /* + mspace_max_footprint() returns the peak number of bytes obtained from the + system for this space. + */ +-size_t mspace_max_footprint(mspace msp); ++DLMALLOC_EXPORT size_t mspace_max_footprint(mspace msp); + + + #if !NO_MALLINFO +@@ -1194,25 +1404,30 @@ size_t mspace_max_footprint(mspace msp); + mspace_mallinfo behaves as mallinfo, but reports properties of + the given space. + */ +-struct mallinfo mspace_mallinfo(mspace msp); ++DLMALLOC_EXPORT struct mallinfo mspace_mallinfo(mspace msp); + #endif /* NO_MALLINFO */ + ++/* ++ malloc_usable_size(void* p) behaves the same as malloc_usable_size; ++*/ ++DLMALLOC_EXPORT size_t mspace_usable_size(const void* mem); ++ + /* + mspace_malloc_stats behaves as malloc_stats, but reports + properties of the given space. + */ +-void mspace_malloc_stats(mspace msp); ++DLMALLOC_EXPORT void mspace_malloc_stats(mspace msp); + + /* + mspace_trim behaves as malloc_trim, but + operates within the given space. + */ +-int mspace_trim(mspace msp, size_t pad); ++DLMALLOC_EXPORT int mspace_trim(mspace msp, size_t pad); + + /* + An alias for mallopt. + */ +-int mspace_mallopt(int, int); ++DLMALLOC_EXPORT int mspace_mallopt(int, int); + + #endif /* MSPACES */ + +@@ -1232,30 +1447,34 @@ int mspace_mallopt(int, int); + + /*------------------------------ internal #includes ---------------------- */ + +-#ifdef WIN32 ++#ifdef _MSC_VER + #pragma warning( disable : 4146 ) /* no "unsigned" warnings */ +-#endif /* WIN32 */ +- ++#endif /* _MSC_VER */ ++#if !NO_MALLOC_STATS + #include /* for printing in malloc_stats */ +- ++#endif /* NO_MALLOC_STATS */ + #ifndef LACKS_ERRNO_H + #include /* for MALLOC_FAILURE_ACTION */ + #endif /* LACKS_ERRNO_H */ +-#if FOOTERS +-#include /* for magic initialization */ +-#endif /* FOOTERS */ +-#ifndef LACKS_STDLIB_H +-#include /* for abort() */ +-#endif /* LACKS_STDLIB_H */ + #ifdef DEBUG + #if ABORT_ON_ASSERT_FAILURE ++#undef assert + #define assert(x) if(!(x)) ABORT + #else /* ABORT_ON_ASSERT_FAILURE */ + #include + #endif /* ABORT_ON_ASSERT_FAILURE */ + #else /* DEBUG */ ++#ifndef assert + #define assert(x) ++#endif ++#define DEBUG 0 + #endif /* DEBUG */ ++#if !defined(WIN32) && !defined(LACKS_TIME_H) ++#include /* for magic initialization */ ++#endif /* WIN32 */ ++#ifndef LACKS_STDLIB_H ++#include /* for abort() */ ++#endif /* LACKS_STDLIB_H */ + #ifndef LACKS_STRING_H + #include /* for memset etc */ + #endif /* LACKS_STRING_H */ +@@ -1266,37 +1485,46 @@ int mspace_mallopt(int, int); + #endif /* USE_BUILTIN_FFS */ + #if HAVE_MMAP + #ifndef LACKS_SYS_MMAN_H ++/* On some versions of linux, mremap decl in mman.h needs __USE_GNU set */ ++#if (defined(linux) && !defined(__USE_GNU)) ++#define __USE_GNU 1 ++#include /* for mmap */ ++#undef __USE_GNU ++#else + #include /* for mmap */ ++#endif /* linux */ + #endif /* LACKS_SYS_MMAN_H */ + #ifndef LACKS_FCNTL_H + #include + #endif /* LACKS_FCNTL_H */ + #endif /* HAVE_MMAP */ +-#if HAVE_MORECORE + #ifndef LACKS_UNISTD_H +-#include /* for sbrk */ ++#include /* for sbrk, sysconf */ + #else /* LACKS_UNISTD_H */ + #if !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__) + extern void* sbrk(ptrdiff_t); + #endif /* FreeBSD etc */ + #endif /* LACKS_UNISTD_H */ +-#endif /* HAVE_MMAP */ + + /* Declarations for locking */ + #if USE_LOCKS + #ifndef WIN32 +-#include + #if defined (__SVR4) && defined (__sun) /* solaris */ + #include +-#endif /* solaris */ +-#else ++#elif !defined(LACKS_SCHED_H) ++#include ++#endif /* solaris or LACKS_SCHED_H */ ++#if (defined(USE_RECURSIVE_LOCKS) && USE_RECURSIVE_LOCKS != 0) || !USE_SPIN_LOCKS ++#include ++#endif /* USE_RECURSIVE_LOCKS ... */ ++#elif defined(_MSC_VER) + #ifndef _M_AMD64 + /* These are already defined on AMD64 builds */ + #ifdef __cplusplus + extern "C" { + #endif /* __cplusplus */ +-LONG __cdecl _InterlockedCompareExchange(LPLONG volatile Dest, LONG Exchange, LONG Comp); +-LONG __cdecl _InterlockedExchange(LPLONG volatile Target, LONG Value); ++LONG __cdecl _InterlockedCompareExchange(LONG volatile *Dest, LONG Exchange, LONG Comp); ++LONG __cdecl _InterlockedExchange(LONG volatile *Target, LONG Value); + #ifdef __cplusplus + } + #endif /* __cplusplus */ +@@ -1305,12 +1533,20 @@ LONG __cdecl _InterlockedExchange(LPLONG volatile Target, LONG Value); + #pragma intrinsic (_InterlockedExchange) + #define interlockedcompareexchange _InterlockedCompareExchange + #define interlockedexchange _InterlockedExchange ++#elif defined(WIN32) && defined(__GNUC__) ++#define interlockedcompareexchange(a, b, c) __sync_val_compare_and_swap(a, c, b) ++#define interlockedexchange __sync_lock_test_and_set + #endif /* Win32 */ ++#else /* USE_LOCKS */ + #endif /* USE_LOCKS */ + ++#ifndef LOCK_AT_FORK ++#define LOCK_AT_FORK 0 ++#endif ++ + /* Declarations for bit scanning on win32 */ + #if defined(_MSC_VER) && _MSC_VER>=1300 +-#ifndef BitScanForward /* Try to avoid pulling in WinNT.h */ ++#ifndef BitScanForward /* Try to avoid pulling in WinNT.h */ + #ifdef __cplusplus + extern "C" { + #endif /* __cplusplus */ +@@ -1374,8 +1610,6 @@ unsigned char _BitScanReverse(unsigned long *index, unsigned long mask); + #endif + #endif + +- +- + /* ------------------- size_t and alignment properties -------------------- */ + + /* The byte and bit size of a size_t */ +@@ -1417,26 +1651,17 @@ unsigned char _BitScanReverse(unsigned long *index, unsigned long mask); + #define MFAIL ((void*)(MAX_SIZE_T)) + #define CMFAIL ((char*)(MFAIL)) /* defined for convenience */ + +-#if !HAVE_MMAP +-#define IS_MMAPPED_BIT (SIZE_T_ZERO) +-#define USE_MMAP_BIT (SIZE_T_ZERO) +-#define CALL_MMAP(s) MFAIL +-#define CALL_MUNMAP(a, s) (-1) +-#define DIRECT_MMAP(s) MFAIL +- +-#else /* HAVE_MMAP */ +-#define IS_MMAPPED_BIT (SIZE_T_ONE) +-#define USE_MMAP_BIT (SIZE_T_ONE) ++#if HAVE_MMAP + + #ifndef WIN32 +-#define CALL_MUNMAP(a, s) munmap((a), (s)) ++#define MUNMAP_DEFAULT(a, s) munmap((a), (s)) + #define MMAP_PROT (PROT_READ|PROT_WRITE) + #if !defined(MAP_ANONYMOUS) && defined(MAP_ANON) + #define MAP_ANONYMOUS MAP_ANON + #endif /* MAP_ANON */ + #ifdef MAP_ANONYMOUS + #define MMAP_FLAGS (MAP_PRIVATE|MAP_ANONYMOUS) +-#define CALL_MMAP(s) mmap(0, (s), MMAP_PROT, MMAP_FLAGS, -1, 0) ++#define MMAP_DEFAULT(s) mmap(0, (s), MMAP_PROT, MMAP_FLAGS, -1, 0) + #else /* MAP_ANONYMOUS */ + /* + Nearly all versions of mmap support MAP_ANONYMOUS, so the following +@@ -1444,13 +1669,14 @@ unsigned char _BitScanReverse(unsigned long *index, unsigned long mask); + */ + #define MMAP_FLAGS (MAP_PRIVATE) + static int dev_zero_fd = -1; /* Cached file descriptor for /dev/zero. */ +-#define CALL_MMAP(s) ((dev_zero_fd < 0) ? \ ++#define MMAP_DEFAULT(s) ((dev_zero_fd < 0) ? \ + (dev_zero_fd = open("/dev/zero", O_RDWR), \ + mmap(0, (s), MMAP_PROT, MMAP_FLAGS, dev_zero_fd, 0)) : \ + mmap(0, (s), MMAP_PROT, MMAP_FLAGS, dev_zero_fd, 0)) + #endif /* MAP_ANONYMOUS */ + +-#define DIRECT_MMAP(s) CALL_MMAP(s) ++#define DIRECT_MMAP_DEFAULT(s) MMAP_DEFAULT(s) ++ + #else /* WIN32 */ + + /* Win32 MMAP via VirtualAlloc */ +@@ -1484,27 +1710,77 @@ static FORCEINLINE int win32munmap(void* ptr, size_t size) { + return 0; + } + +-#define CALL_MMAP(s) win32mmap(s) +-#define CALL_MUNMAP(a, s) win32munmap((a), (s)) +-#define DIRECT_MMAP(s) win32direct_mmap(s) ++#define MMAP_DEFAULT(s) win32mmap(s) ++#define MUNMAP_DEFAULT(a, s) win32munmap((a), (s)) ++#define DIRECT_MMAP_DEFAULT(s) win32direct_mmap(s) + #endif /* WIN32 */ + #endif /* HAVE_MMAP */ + +-#if HAVE_MMAP && HAVE_MREMAP +-void *mremap(void *old_address, size_t old_size, +- size_t new_size, int flags, ... ); +-#define CALL_MREMAP(addr, osz, nsz, mv) mremap((addr), (osz), (nsz), (mv)) +-#else /* HAVE_MMAP && HAVE_MREMAP */ +-#define CALL_MREMAP(addr, osz, nsz, mv) ((void)(addr),(void)(osz), \ +- (void)(nsz), (void)(mv),MFAIL) +-#endif /* HAVE_MMAP && HAVE_MREMAP */ ++#if HAVE_MREMAP ++#ifndef WIN32 ++#define MREMAP_DEFAULT(addr, osz, nsz, mv) mremap((addr), (osz), (nsz), (mv)) ++#endif /* WIN32 */ ++#endif /* HAVE_MREMAP */ + ++/** ++ * Define CALL_MORECORE ++ */ + #if HAVE_MORECORE +-#define CALL_MORECORE(S) MORECORE(S) ++ #ifdef MORECORE ++ #define CALL_MORECORE(S) MORECORE(S) ++ #else /* MORECORE */ ++ #define CALL_MORECORE(S) MORECORE_DEFAULT(S) ++ #endif /* MORECORE */ + #else /* HAVE_MORECORE */ +-#define CALL_MORECORE(S) MFAIL ++ #define CALL_MORECORE(S) MFAIL + #endif /* HAVE_MORECORE */ + ++/** ++ * Define CALL_MMAP/CALL_MUNMAP/CALL_DIRECT_MMAP ++ */ ++#if HAVE_MMAP ++ #define USE_MMAP_BIT (SIZE_T_ONE) ++ ++ #ifdef MMAP ++ #define CALL_MMAP(s) MMAP(s) ++ #else /* MMAP */ ++ #define CALL_MMAP(s) MMAP_DEFAULT(s) ++ #endif /* MMAP */ ++ #ifdef MUNMAP ++ #define CALL_MUNMAP(a, s) MUNMAP((a), (s)) ++ #else /* MUNMAP */ ++ #define CALL_MUNMAP(a, s) MUNMAP_DEFAULT((a), (s)) ++ #endif /* MUNMAP */ ++ #ifdef DIRECT_MMAP ++ #define CALL_DIRECT_MMAP(s) DIRECT_MMAP(s) ++ #else /* DIRECT_MMAP */ ++ #define CALL_DIRECT_MMAP(s) DIRECT_MMAP_DEFAULT(s) ++ #endif /* DIRECT_MMAP */ ++#else /* HAVE_MMAP */ ++ #define USE_MMAP_BIT (SIZE_T_ZERO) ++ ++ #define MMAP(s) MFAIL ++ #define MUNMAP(a, s) (-1) ++ #define DIRECT_MMAP(s) MFAIL ++ #define CALL_DIRECT_MMAP(s) DIRECT_MMAP(s) ++ #define CALL_MMAP(s) MMAP(s) ++ #define CALL_MUNMAP(a, s) MUNMAP((a), (s)) ++#endif /* HAVE_MMAP */ ++ ++/** ++ * Define CALL_MREMAP ++ */ ++#if HAVE_MMAP && HAVE_MREMAP ++ #ifdef MREMAP ++ #define CALL_MREMAP(addr, osz, nsz, mv) MREMAP((addr), (osz), (nsz), (mv)) ++ #else /* MREMAP */ ++ #define CALL_MREMAP(addr, osz, nsz, mv) MREMAP_DEFAULT((addr), (osz), (nsz), (mv)) ++ #endif /* MREMAP */ ++#else /* HAVE_MMAP && HAVE_MREMAP */ ++ #define CALL_MREMAP(addr, osz, nsz, mv) ((void)(addr), (void)(osz), \ ++ (void)(nsz), (void)(mv), MFAIL) ++#endif /* HAVE_MMAP && HAVE_MREMAP */ ++ + /* mstate bit set if continguous morecore disabled or failed */ + #define USE_NONCONTIGUOUS_BIT (4U) + +@@ -1515,292 +1791,275 @@ void *mremap(void *old_address, size_t old_size, + /* --------------------------- Lock preliminaries ------------------------ */ + + /* +- When locks are defined, there are up to two global locks: +- +- * If HAVE_MORECORE, morecore_mutex protects sequences of calls to +- MORECORE. In many cases sys_alloc requires two calls, that should +- not be interleaved with calls by other threads. This does not +- protect against direct calls to MORECORE by other threads not +- using this lock, so there is still code to cope the best we can on +- interference. +- +- * magic_init_mutex ensures that mparams.magic and other +- unique mparams values are initialized only once. +- +- To enable use in layered extensions, locks are reentrant. ++ When locks are defined, there is one global lock, plus ++ one per-mspace lock. ++ ++ The global lock_ensures that mparams.magic and other unique ++ mparams values are initialized only once. It also protects ++ sequences of calls to MORECORE. In many cases sys_alloc requires ++ two calls, that should not be interleaved with calls by other ++ threads. This does not protect against direct calls to MORECORE ++ by other threads not using this lock, so there is still code to ++ cope the best we can on interference. ++ ++ Per-mspace locks surround calls to malloc, free, etc. ++ By default, locks are simple non-reentrant mutexes. ++ ++ Because lock-protected regions generally have bounded times, it is ++ OK to use the supplied simple spinlocks. Spinlocks are likely to ++ improve performance for lightly contended applications, but worsen ++ performance under heavy contention. ++ ++ If USE_LOCKS is > 1, the definitions of lock routines here are ++ bypassed, in which case you will need to define the type MLOCK_T, ++ and at least INITIAL_LOCK, DESTROY_LOCK, ACQUIRE_LOCK, RELEASE_LOCK ++ and TRY_LOCK. You must also declare a ++ static MLOCK_T malloc_global_mutex = { initialization values };. + +- Because lock-protected regions generally have bounded times, we use +- the supplied simple spinlocks in the custom versions for x86. +- +- If USE_LOCKS is > 1, the definitions of lock routines here are +- bypassed, in which case you will need to define at least +- INITIAL_LOCK, ACQUIRE_LOCK, RELEASE_LOCK, and +- NULL_LOCK_INITIALIZER, and possibly TRY_LOCK and IS_LOCKED +- (The latter two are not used in this malloc, but are +- commonly needed in extensions.) + */ + +-#if USE_LOCKS == 1 ++#if !USE_LOCKS ++#define USE_LOCK_BIT (0U) ++#define INITIAL_LOCK(l) (0) ++#define DESTROY_LOCK(l) (0) ++#define ACQUIRE_MALLOC_GLOBAL_LOCK() ++#define RELEASE_MALLOC_GLOBAL_LOCK() + +-#if USE_SPIN_LOCKS +-#ifndef WIN32 +-/* Custom pthread-style spin locks on x86 and x64 for gcc */ +-struct pthread_mlock_t +-{ +- volatile pthread_t threadid; +- volatile unsigned int c; +- volatile unsigned int l; +-}; +-#define MLOCK_T struct pthread_mlock_t +-#define CURRENT_THREAD pthread_self() +-#define SPINS_PER_YIELD 63 +-static FORCEINLINE int pthread_acquire_lock (MLOCK_T *sl) { +- if(CURRENT_THREAD==sl->threadid) +- ++sl->c; +- else { +- int spins = 0; +- for (;;) { +- int ret; +- __asm__ __volatile__ ("lock cmpxchgl %2,(%1)" : "=a" (ret) : "r" (&sl->l), "r" (1), "a" (0)); +- if(!ret) { +- assert(!sl->threadid); +- sl->threadid=CURRENT_THREAD; +- sl->c=1; +- break; +- } +- if ((++spins & SPINS_PER_YIELD) == 0) { +-#if defined (__SVR4) && defined (__sun) /* solaris */ +- thr_yield(); + #else +-#ifdef linux +- sched_yield(); +-#else /* no-op yield on unknown systems */ +- ; +-#endif /* linux */ +-#endif /* solaris */ +- } +- } +- } ++#if USE_LOCKS > 1 ++/* ----------------------- User-defined locks ------------------------ */ ++/* Define your own lock implementation here */ ++/* #define INITIAL_LOCK(lk) ... */ ++/* #define DESTROY_LOCK(lk) ... */ ++/* #define ACQUIRE_LOCK(lk) ... */ ++/* #define RELEASE_LOCK(lk) ... */ ++/* #define TRY_LOCK(lk) ... */ ++/* static MLOCK_T malloc_global_mutex = ... */ + +- return 0; +-} ++#elif USE_SPIN_LOCKS + +-static FORCEINLINE void pthread_release_lock (MLOCK_T *sl) { ++/* First, define CAS_LOCK and CLEAR_LOCK on ints */ ++/* Note CAS_LOCK defined to return 0 on success */ ++ ++#if defined(__GNUC__)&& (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)) ++#define CAS_LOCK(sl) __sync_lock_test_and_set(sl, 1) ++#define CLEAR_LOCK(sl) __sync_lock_release(sl) ++ ++#elif (defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))) ++/* Custom spin locks for older gcc on x86 */ ++static FORCEINLINE int x86_cas_lock(int *sl) { + int ret; +- assert(CURRENT_THREAD==sl->threadid); +- if (!--sl->c) { +- sl->threadid=0; +- __asm__ __volatile__ ("xchgl %2,(%1)" : "=r" (ret) : "r" (&sl->l), "0" (0)); +- } ++ int val = 1; ++ int cmp = 0; ++ __asm__ __volatile__ ("lock; cmpxchgl %1, %2" ++ : "=a" (ret) ++ : "r" (val), "m" (*(sl)), "0"(cmp) ++ : "memory", "cc"); ++ return ret; + } + +-static FORCEINLINE int pthread_try_lock (MLOCK_T *sl) { ++static FORCEINLINE void x86_clear_lock(int* sl) { ++ assert(*sl != 0); ++ int prev = 0; + int ret; +- __asm__ __volatile__ ("lock cmpxchgl %2,(%1)" : "=a" (ret) : "r" (&sl->l), "r" (1), "a" (0)); +- if(!ret){ +- assert(!sl->threadid); +- sl->threadid=CURRENT_THREAD; +- sl->c=1; +- return 1; +- } +- return 0; ++ __asm__ __volatile__ ("lock; xchgl %0, %1" ++ : "=r" (ret) ++ : "m" (*(sl)), "0"(prev) ++ : "memory"); + } + +-#define INITIAL_LOCK(sl) (memset((sl), 0, sizeof(MLOCK_T)), 0) +-#define ACQUIRE_LOCK(sl) pthread_acquire_lock(sl) +-#define RELEASE_LOCK(sl) pthread_release_lock(sl) +-#define TRY_LOCK(sl) pthread_try_lock(sl) +-#define IS_LOCKED(sl) ((sl)->l) ++#define CAS_LOCK(sl) x86_cas_lock(sl) ++#define CLEAR_LOCK(sl) x86_clear_lock(sl) + +-static MLOCK_T magic_init_mutex = {0, 0, 0 }; +-#if HAVE_MORECORE +-static MLOCK_T morecore_mutex = {0, 0, 0 }; +-#endif /* HAVE_MORECORE */ ++#else /* Win32 MSC */ ++#define CAS_LOCK(sl) interlockedexchange(sl, (LONG)1) ++#define CLEAR_LOCK(sl) interlockedexchange (sl, (LONG)0) + +-#else /* WIN32 */ +-/* Custom win32-style spin locks on x86 and x64 for MSC */ +-struct win32_mlock_t +-{ +- volatile long threadid; +- volatile unsigned int c; +- long l; +-}; +-#define MLOCK_T struct win32_mlock_t +-#define CURRENT_THREAD GetCurrentThreadId() +-#define SPINS_PER_YIELD 63 +-static FORCEINLINE int win32_acquire_lock (MLOCK_T *sl) { +- long mythreadid=CURRENT_THREAD; +- if(mythreadid==sl->threadid) +- ++sl->c; +- else { +- int spins = 0; +- for (;;) { +- if (!interlockedexchange(&sl->l, 1)) { +- assert(!sl->threadid); +- sl->threadid=mythreadid; +- sl->c=1; +- break; +- } +- if ((++spins & SPINS_PER_YIELD) == 0) +- SleepEx(0, FALSE); ++#endif /* ... gcc spins locks ... */ ++ ++/* How to yield for a spin lock */ ++#define SPINS_PER_YIELD 63 ++#if defined(_MSC_VER) ++#define SLEEP_EX_DURATION 50 /* delay for yield/sleep */ ++#define SPIN_LOCK_YIELD SleepEx(SLEEP_EX_DURATION, FALSE) ++#elif defined (__SVR4) && defined (__sun) /* solaris */ ++#define SPIN_LOCK_YIELD thr_yield(); ++#elif !defined(LACKS_SCHED_H) ++#define SPIN_LOCK_YIELD sched_yield(); ++#else ++#define SPIN_LOCK_YIELD ++#endif /* ... yield ... */ ++ ++#if !defined(USE_RECURSIVE_LOCKS) || USE_RECURSIVE_LOCKS == 0 ++/* Plain spin locks use single word (embedded in malloc_states) */ ++static int spin_acquire_lock(int *sl) { ++ int spins = 0; ++ while (*(volatile int *)sl != 0 || CAS_LOCK(sl)) { ++ if ((++spins & SPINS_PER_YIELD) == 0) { ++ SPIN_LOCK_YIELD; + } + } + return 0; + } + +-static FORCEINLINE void win32_release_lock (MLOCK_T *sl) { +- assert(CURRENT_THREAD==sl->threadid); +- if (!--sl->c) { +- sl->threadid=0; +- interlockedexchange (&sl->l, 0); +- } +-} +- +-static FORCEINLINE int win32_try_lock (MLOCK_T *sl) { +- if (!interlockedexchange(&sl->l, 1)){ +- assert(!sl->threadid); +- sl->threadid=CURRENT_THREAD; +- sl->c=1; +- return 1; +- } +- return 0; +-} ++#define MLOCK_T int ++#define TRY_LOCK(sl) !CAS_LOCK(sl) ++#define RELEASE_LOCK(sl) CLEAR_LOCK(sl) ++#define ACQUIRE_LOCK(sl) (CAS_LOCK(sl)? spin_acquire_lock(sl) : 0) ++#define INITIAL_LOCK(sl) (*sl = 0) ++#define DESTROY_LOCK(sl) (0) ++static MLOCK_T malloc_global_mutex = 0; + +-#define INITIAL_LOCK(sl) (memset(sl, 0, sizeof(MLOCK_T)), 0) +-#define ACQUIRE_LOCK(sl) win32_acquire_lock(sl) +-#define RELEASE_LOCK(sl) win32_release_lock(sl) +-#define TRY_LOCK(sl) win32_try_lock(sl) +-#define IS_LOCKED(sl) ((sl)->l) ++#else /* USE_RECURSIVE_LOCKS */ ++/* types for lock owners */ ++#ifdef WIN32 ++#define THREAD_ID_T DWORD ++#define CURRENT_THREAD GetCurrentThreadId() ++#define EQ_OWNER(X,Y) ((X) == (Y)) ++#else ++/* ++ Note: the following assume that pthread_t is a type that can be ++ initialized to (casted) zero. If this is not the case, you will need to ++ somehow redefine these or not use spin locks. ++*/ ++#define THREAD_ID_T pthread_t ++#define CURRENT_THREAD pthread_self() ++#define EQ_OWNER(X,Y) pthread_equal(X, Y) ++#endif + +-static MLOCK_T magic_init_mutex = {0, 0 }; +-#if HAVE_MORECORE +-static MLOCK_T morecore_mutex = {0, 0 }; +-#endif /* HAVE_MORECORE */ ++struct malloc_recursive_lock { ++ int sl; ++ unsigned int c; ++ THREAD_ID_T threadid; ++}; + +-#endif /* WIN32 */ +-#else /* USE_SPIN_LOCKS */ ++#define MLOCK_T struct malloc_recursive_lock ++static MLOCK_T malloc_global_mutex = { 0, 0, (THREAD_ID_T)0}; + +-#ifndef WIN32 +-/* pthreads-based locks */ +-struct pthread_mlock_t +-{ +- volatile unsigned int c; +- pthread_mutex_t l; +-}; +-#define MLOCK_T struct pthread_mlock_t +-#define CURRENT_THREAD pthread_self() +-static FORCEINLINE int pthread_acquire_lock (MLOCK_T *sl) { +- if(!pthread_mutex_lock(&(sl)->l)){ +- sl->c++; +- return 0; ++static FORCEINLINE void recursive_release_lock(MLOCK_T *lk) { ++ assert(lk->sl != 0); ++ if (--lk->c == 0) { ++ CLEAR_LOCK(&lk->sl); + } +- return 1; + } + +-static FORCEINLINE void pthread_release_lock (MLOCK_T *sl) { +- --sl->c; +- pthread_mutex_unlock(&(sl)->l); ++static FORCEINLINE int recursive_acquire_lock(MLOCK_T *lk) { ++ THREAD_ID_T mythreadid = CURRENT_THREAD; ++ int spins = 0; ++ for (;;) { ++ if (*((volatile int *)(&lk->sl)) == 0) { ++ if (!CAS_LOCK(&lk->sl)) { ++ lk->threadid = mythreadid; ++ lk->c = 1; ++ return 0; ++ } ++ } ++ else if (EQ_OWNER(lk->threadid, mythreadid)) { ++ ++lk->c; ++ return 0; ++ } ++ if ((++spins & SPINS_PER_YIELD) == 0) { ++ SPIN_LOCK_YIELD; ++ } ++ } + } + +-static FORCEINLINE int pthread_try_lock (MLOCK_T *sl) { +- if(!pthread_mutex_trylock(&(sl)->l)){ +- sl->c++; ++static FORCEINLINE int recursive_try_lock(MLOCK_T *lk) { ++ THREAD_ID_T mythreadid = CURRENT_THREAD; ++ if (*((volatile int *)(&lk->sl)) == 0) { ++ if (!CAS_LOCK(&lk->sl)) { ++ lk->threadid = mythreadid; ++ lk->c = 1; ++ return 1; ++ } ++ } ++ else if (EQ_OWNER(lk->threadid, mythreadid)) { ++ ++lk->c; + return 1; + } + return 0; + } + +-static FORCEINLINE int pthread_init_lock (MLOCK_T *sl) { +- pthread_mutexattr_t attr; +- sl->c=0; +- if(pthread_mutexattr_init(&attr)) return 1; +- if(pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE)) return 1; +- if(pthread_mutex_init(&sl->l, &attr)) return 1; +- pthread_mutexattr_destroy(&attr); +- return 0; ++#define RELEASE_LOCK(lk) recursive_release_lock(lk) ++#define TRY_LOCK(lk) recursive_try_lock(lk) ++#define ACQUIRE_LOCK(lk) recursive_acquire_lock(lk) ++#define INITIAL_LOCK(lk) ((lk)->threadid = (THREAD_ID_T)0, (lk)->sl = 0, (lk)->c = 0) ++#define DESTROY_LOCK(lk) (0) ++#endif /* USE_RECURSIVE_LOCKS */ ++ ++#elif defined(WIN32) /* Win32 critical sections */ ++#define MLOCK_T CRITICAL_SECTION ++#define ACQUIRE_LOCK(lk) (EnterCriticalSection(lk), 0) ++#define RELEASE_LOCK(lk) LeaveCriticalSection(lk) ++#define TRY_LOCK(lk) TryEnterCriticalSection(lk) ++#define INITIAL_LOCK(lk) (!InitializeCriticalSectionAndSpinCount((lk), 0x80000000|4000)) ++#define DESTROY_LOCK(lk) (DeleteCriticalSection(lk), 0) ++#define NEED_GLOBAL_LOCK_INIT ++ ++static MLOCK_T malloc_global_mutex; ++static volatile LONG malloc_global_mutex_status; ++ ++/* Use spin loop to initialize global lock */ ++static void init_malloc_global_mutex() { ++ for (;;) { ++ long stat = malloc_global_mutex_status; ++ if (stat > 0) ++ return; ++ /* transition to < 0 while initializing, then to > 0) */ ++ if (stat == 0 && ++ interlockedcompareexchange(&malloc_global_mutex_status, (LONG)-1, (LONG)0) == 0) { ++ InitializeCriticalSection(&malloc_global_mutex); ++ interlockedexchange(&malloc_global_mutex_status, (LONG)1); ++ return; ++ } ++ SleepEx(0, FALSE); ++ } + } + +-static FORCEINLINE int pthread_islocked (MLOCK_T *sl) { +- if(!pthread_try_lock(sl)){ +- int ret = (sl->c != 0); +- pthread_mutex_unlock(sl); +- return ret; +- } ++#else /* pthreads-based locks */ ++#define MLOCK_T pthread_mutex_t ++#define ACQUIRE_LOCK(lk) pthread_mutex_lock(lk) ++#define RELEASE_LOCK(lk) pthread_mutex_unlock(lk) ++#define TRY_LOCK(lk) (!pthread_mutex_trylock(lk)) ++#define INITIAL_LOCK(lk) pthread_init_lock(lk) ++#define DESTROY_LOCK(lk) pthread_mutex_destroy(lk) ++ ++#if defined(USE_RECURSIVE_LOCKS) && USE_RECURSIVE_LOCKS != 0 && defined(linux) && !defined(PTHREAD_MUTEX_RECURSIVE) ++/* Cope with old-style linux recursive lock initialization by adding */ ++/* skipped internal declaration from pthread.h */ ++extern int pthread_mutexattr_setkind_np __P ((pthread_mutexattr_t *__attr, ++ int __kind)); ++#define PTHREAD_MUTEX_RECURSIVE PTHREAD_MUTEX_RECURSIVE_NP ++#define pthread_mutexattr_settype(x,y) pthread_mutexattr_setkind_np(x,y) ++#endif /* USE_RECURSIVE_LOCKS ... */ ++ ++static MLOCK_T malloc_global_mutex = PTHREAD_MUTEX_INITIALIZER; ++ ++static int pthread_init_lock (MLOCK_T *lk) { ++ pthread_mutexattr_t attr; ++ if (pthread_mutexattr_init(&attr)) return 1; ++#if defined(USE_RECURSIVE_LOCKS) && USE_RECURSIVE_LOCKS != 0 ++ if (pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE)) return 1; ++#endif ++ if (pthread_mutex_init(lk, &attr)) return 1; ++ if (pthread_mutexattr_destroy(&attr)) return 1; + return 0; + } + +-#define INITIAL_LOCK(sl) pthread_init_lock(sl) +-#define ACQUIRE_LOCK(sl) pthread_acquire_lock(sl) +-#define RELEASE_LOCK(sl) pthread_release_lock(sl) +-#define TRY_LOCK(sl) pthread_try_lock(sl) +-#define IS_LOCKED(sl) pthread_islocked(sl) +- +-static MLOCK_T magic_init_mutex = {0, PTHREAD_MUTEX_INITIALIZER }; +-#if HAVE_MORECORE +-static MLOCK_T morecore_mutex = {0, PTHREAD_MUTEX_INITIALIZER }; +-#endif /* HAVE_MORECORE */ +- +-#else /* WIN32 */ +-/* Win32 critical sections */ +-#define MLOCK_T CRITICAL_SECTION +-#define CURRENT_THREAD GetCurrentThreadId() +-#define INITIAL_LOCK(s) (!InitializeCriticalSectionAndSpinCount((s), 4000) +-#define ACQUIRE_LOCK(s) ( (!((s))->DebugInfo ? INITIAL_LOCK((s)) : 0), !EnterCriticalSection((s)), 0) +-#define RELEASE_LOCK(s) ( LeaveCriticalSection((s)), 0 ) +-#define TRY_LOCK(s) ( TryEnterCriticalSection((s)) ) +-#define IS_LOCKED(s) ( (s)->LockCount >= 0 ) +-#define NULL_LOCK_INITIALIZER +-static MLOCK_T magic_init_mutex; +-#if HAVE_MORECORE +-static MLOCK_T morecore_mutex; +-#endif /* HAVE_MORECORE */ +-#endif /* WIN32 */ +-#endif /* USE_SPIN_LOCKS */ +-#endif /* USE_LOCKS == 1 */ +- +-/* ----------------------- User-defined locks ------------------------ */ +- +-#if USE_LOCKS > 1 +-/* Define your own lock implementation here */ +-/* #define INITIAL_LOCK(sl) ... */ +-/* #define ACQUIRE_LOCK(sl) ... */ +-/* #define RELEASE_LOCK(sl) ... */ +-/* #define TRY_LOCK(sl) ... */ +-/* #define IS_LOCKED(sl) ... */ +-/* #define NULL_LOCK_INITIALIZER ... */ +- +-static MLOCK_T magic_init_mutex = NULL_LOCK_INITIALIZER; +-#if HAVE_MORECORE +-static MLOCK_T morecore_mutex = NULL_LOCK_INITIALIZER; +-#endif /* HAVE_MORECORE */ +-#endif /* USE_LOCKS > 1 */ +- +-/* ----------------------- Lock-based state ------------------------ */ ++#endif /* ... lock types ... */ + +- +-#if USE_LOCKS ++/* Common code for all lock types */ + #define USE_LOCK_BIT (2U) +-#else /* USE_LOCKS */ +-#define USE_LOCK_BIT (0U) +-#define INITIAL_LOCK(l) +-#endif /* USE_LOCKS */ + +-#if USE_LOCKS && HAVE_MORECORE +-#define ACQUIRE_MORECORE_LOCK() ACQUIRE_LOCK(&morecore_mutex); +-#define RELEASE_MORECORE_LOCK() RELEASE_LOCK(&morecore_mutex); +-#else /* USE_LOCKS && HAVE_MORECORE */ +-#define ACQUIRE_MORECORE_LOCK() +-#define RELEASE_MORECORE_LOCK() +-#endif /* USE_LOCKS && HAVE_MORECORE */ ++#ifndef ACQUIRE_MALLOC_GLOBAL_LOCK ++#define ACQUIRE_MALLOC_GLOBAL_LOCK() ACQUIRE_LOCK(&malloc_global_mutex); ++#endif + +-#if USE_LOCKS +-#define ACQUIRE_MAGIC_INIT_LOCK() ACQUIRE_LOCK(&magic_init_mutex); +-#define RELEASE_MAGIC_INIT_LOCK() RELEASE_LOCK(&magic_init_mutex); +-#else /* USE_LOCKS */ +-#define ACQUIRE_MAGIC_INIT_LOCK() +-#define RELEASE_MAGIC_INIT_LOCK() +-#endif /* USE_LOCKS */ ++#ifndef RELEASE_MALLOC_GLOBAL_LOCK ++#define RELEASE_MALLOC_GLOBAL_LOCK() RELEASE_LOCK(&malloc_global_mutex); ++#endif + ++#endif /* USE_LOCKS */ + + /* ----------------------- Chunk representations ------------------------ */ + +@@ -1827,7 +2086,7 @@ static MLOCK_T morecore_mutex = NULL_LOCK_INITIALIZER; + A chunk that's in use looks like: + + chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +- | Size of previous chunk (if P = 1) | ++ | Size of previous chunk (if P = 0) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |P| + | Size of this chunk 1| +-+ +@@ -1898,13 +2157,14 @@ static MLOCK_T morecore_mutex = NULL_LOCK_INITIALIZER; + + The C (CINUSE_BIT) bit, stored in the unused second-lowest bit of + the chunk size redundantly records whether the current chunk is +- inuse. This redundancy enables usage checks within free and realloc, +- and reduces indirection when freeing and consolidating chunks. ++ inuse (unless the chunk is mmapped). This redundancy enables usage ++ checks within free and realloc, and reduces indirection when freeing ++ and consolidating chunks. + + Each freshly allocated chunk must have both cinuse and pinuse set. + That is, each allocated chunk borders either a previously allocated + and still in-use chunk, or the base of its memory arena. This is +- ensured by making all allocations from the the `lowest' part of any ++ ensured by making all allocations from the `lowest' part of any + found chunk. Further, no free chunk physically borders another one, + so each free chunk is known to be preceded and followed by either + inuse chunks or the ends of memory. +@@ -1928,9 +2188,8 @@ static MLOCK_T morecore_mutex = NULL_LOCK_INITIALIZER; + space is still allocated for it (TOP_FOOT_SIZE) to enable + separation or merging when space is extended. + +- 3. Chunks allocated via mmap, which have the lowest-order bit +- (IS_MMAPPED_BIT) set in their prev_foot fields, and do not set +- PINUSE_BIT in their head fields. Because they are allocated ++ 3. Chunks allocated via mmap, have both cinuse and pinuse bits ++ cleared in their head fields. Because they are allocated + one-by-one, each must carry its own prev_foot field, which is + also used to hold the offset this chunk has within its mmapped + region, which is needed to preserve alignment. Each mmapped +@@ -1974,7 +2233,7 @@ typedef unsigned int flag_t; /* The type of various bit flag sets */ + + /* conversion from malloc headers to user pointers, and back */ + #define chunk2mem(p) ((void*)((char*)(p) + TWO_SIZE_T_SIZES)) +-#define chunk2mem_int(p) ((uintptr_t)(p) + TWO_SIZE_T_SIZES) ++#define chunk2mem_int(p) ((uintptr_t)(p) + TWO_SIZE_T_SIZES) + #define mem2chunk(mem) ((mchunkptr)((char*)(mem) - TWO_SIZE_T_SIZES)) + /* chunk associated with aligned address A */ + #define align_as_chunk(A) (mchunkptr)((A) + align_offset(chunk2mem(A))) +@@ -1997,9 +2256,7 @@ typedef unsigned int flag_t; /* The type of various bit flag sets */ + /* + The head field of a chunk is or'ed with PINUSE_BIT when previous + adjacent chunk in use, and or'ed with CINUSE_BIT if this chunk is in +- use. If the chunk was obtained with mmap, the prev_foot field has +- IS_MMAPPED_BIT set, otherwise holding the offset of the base of the +- mmapped region to the base of the chunk. ++ use, unless mmapped, in which case both bits are cleared. + + FLAG4_BIT is not used by this malloc, but might be useful in extensions. + */ +@@ -2016,10 +2273,15 @@ typedef unsigned int flag_t; /* The type of various bit flag sets */ + /* extraction of fields from head words */ + #define cinuse(p) ((p)->head & CINUSE_BIT) + #define pinuse(p) ((p)->head & PINUSE_BIT) ++#define flag4inuse(p) ((p)->head & FLAG4_BIT) ++#define is_inuse(p) (((p)->head & INUSE_BITS) != PINUSE_BIT) ++#define is_mmapped(p) (((p)->head & INUSE_BITS) == 0) ++ + #define chunksize(p) ((p)->head & ~(FLAG_BITS)) + + #define clear_pinuse(p) ((p)->head &= ~PINUSE_BIT) +-#define clear_cinuse(p) ((p)->head &= ~CINUSE_BIT) ++#define set_flag4(p) ((p)->head |= FLAG4_BIT) ++#define clear_flag4(p) ((p)->head &= ~FLAG4_BIT) + + /* Treat space at ptr +/- offset as a chunk */ + #define chunk_plus_offset(p, s) ((mchunkptr)(((char*)(p)) + (s))) +@@ -2044,9 +2306,6 @@ typedef unsigned int flag_t; /* The type of various bit flag sets */ + #define set_free_with_pinuse(p, s, n)\ + (clear_pinuse(n), set_size_and_pinuse_of_free_chunk(p, s)) + +-#define is_mmapped(p)\ +- (!((p)->head & PINUSE_BIT) && ((p)->prev_foot & IS_MMAPPED_BIT)) +- + /* Get the internal overhead associated with chunk p */ + #define overhead_for(p)\ + (is_mmapped(p)? MMAP_CHUNK_OVERHEAD : CHUNK_OVERHEAD) +@@ -2217,7 +2476,7 @@ typedef struct malloc_tree_chunk* tbinptr; /* The type of bins of trees */ + and so should not try to deallocate or merge with others. + (This currently holds only for the initial segment passed + into create_mspace_with_base.) +- * If IS_MMAPPED_BIT set, the segment may be merged with ++ * If USE_MMAP_BIT set, the segment may be merged with + other surrounding mmapped segments and trimmed/de-allocated + using munmap. + * If neither bit is set, then the segment was obtained using +@@ -2232,7 +2491,7 @@ struct malloc_segment { + flag_t sflags; /* mmap and extern flag */ + }; + +-#define is_mmapped_segment(S) ((S)->sflags & IS_MMAPPED_BIT) ++#define is_mmapped_segment(S) ((S)->sflags & USE_MMAP_BIT) + #define is_extern_segment(S) ((S)->sflags & EXTERN_BIT) + + typedef struct malloc_segment msegment; +@@ -2301,6 +2560,9 @@ typedef struct malloc_segment* msegmentptr; + Magic tag + A cross-check field that should always hold same value as mparams.magic. + ++ Max allowed footprint ++ The maximum allowed bytes to allocate from system (zero means no limit) ++ + Flags + Bits recording whether to use MMAP, locks, or contiguous MORECORE + +@@ -2310,7 +2572,7 @@ typedef struct malloc_segment* msegmentptr; + + Trim support + Fields holding the amount of unused topmost memory that should trigger +- timming, and a counter to force periodic scanning to release unused ++ trimming, and a counter to force periodic scanning to release unused + non-topmost segments. + + Locking +@@ -2347,6 +2609,7 @@ struct malloc_state { + tbinptr treebins[NTREEBINS]; + size_t footprint; + size_t max_footprint; ++ size_t footprint_limit; /* zero means no limit */ + flag_t mflags; + #if USE_LOCKS + MLOCK_T mutex; /* locate lock among fields that rarely change */ +@@ -2363,7 +2626,8 @@ typedef struct malloc_state* mstate; + /* + malloc_params holds global properties, including those that can be + dynamically set using mallopt. There is a single instance, mparams, +- initialized in init_mparams. ++ initialized in init_mparams. Note that the non-zeroness of "magic" ++ also serves as an initialization flag. + */ + + struct malloc_params { +@@ -2377,6 +2641,9 @@ struct malloc_params { + + static struct malloc_params mparams; + ++/* Ensure mparams initialized */ ++#define ensure_initialization() (void)(mparams.magic != 0 || init_mparams()) ++ + #if !ONLY_MSPACES + + /* The global malloc_state used for all non-"mspace" calls */ +@@ -2394,11 +2661,19 @@ static struct malloc_state _gm_; + + #define use_lock(M) ((M)->mflags & USE_LOCK_BIT) + #define enable_lock(M) ((M)->mflags |= USE_LOCK_BIT) ++#if USE_LOCKS + #define disable_lock(M) ((M)->mflags &= ~USE_LOCK_BIT) ++#else ++#define disable_lock(M) ++#endif + + #define use_mmap(M) ((M)->mflags & USE_MMAP_BIT) + #define enable_mmap(M) ((M)->mflags |= USE_MMAP_BIT) ++#if HAVE_MMAP + #define disable_mmap(M) ((M)->mflags &= ~USE_MMAP_BIT) ++#else ++#define disable_mmap(M) ++#endif + + #define use_noncontiguous(M) ((M)->mflags & USE_NONCONTIGUOUS_BIT) + #define disable_contiguous(M) ((M)->mflags |= USE_NONCONTIGUOUS_BIT) +@@ -2425,6 +2700,9 @@ static struct malloc_state _gm_; + #define mmap_align(S) page_align(S) + #endif + ++/* For sys_alloc, enough padding to ensure can malloc request on success */ ++#define SYS_ALLOC_PADDING (TOP_FOOT_SIZE + MALLOC_ALIGNMENT) ++ + #define is_page_aligned(S)\ + (((size_t)(S) & (mparams.page_size - SIZE_T_ONE)) == 0) + #define is_granularity_aligned(S)\ +@@ -2480,11 +2758,7 @@ static int has_segment_link(mstate m, msegmentptr ss) { + */ + + #if USE_LOCKS +- +-/* Ensure locks are initialized */ +-#define GLOBALLY_INITIALIZE() (mparams.page_size == 0 && init_mparams()) +- +-#define PREACTION(M) ((GLOBALLY_INITIALIZE() || use_lock(M))? ACQUIRE_LOCK(&(M)->mutex) : 0) ++#define PREACTION(M) ((use_lock(M))? ACQUIRE_LOCK(&(M)->mutex) : 0) + #define POSTACTION(M) { if (use_lock(M)) RELEASE_LOCK(&(M)->mutex); } + #else /* USE_LOCKS */ + +@@ -2529,6 +2803,7 @@ static void reset_on_error(mstate m); + + #endif /* PROCEED_ON_ERROR */ + ++ + /* -------------------------- Debugging setup ---------------------------- */ + + #if ! DEBUG +@@ -2565,7 +2840,7 @@ static size_t traverse_and_check(mstate m); + /* ---------------------------- Indexing Bins ---------------------------- */ + + #define is_small(s) (((s) >> SMALLBIN_SHIFT) < NSMALLBINS) +-#define small_index(s) ((s) >> SMALLBIN_SHIFT) ++#define small_index(s) (bindex_t)((s) >> SMALLBIN_SHIFT) + #define small_index2size(i) ((i) << SMALLBIN_SHIFT) + #define MIN_SMALL_INDEX (small_index(MIN_CHUNK_SIZE)) + +@@ -2573,7 +2848,7 @@ static size_t traverse_and_check(mstate m); + #define smallbin_at(M, i) ((sbinptr)((char*)&((M)->smallbins[(i)<<1]))) + #define treebin_at(M,i) (&((M)->treebins[i])) + +-/* assign tree index for size S to variable I */ ++/* assign tree index for size S to variable I. Use x86 asm if possible */ + #if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) + #define compute_tree_index(S, I)\ + {\ +@@ -2583,8 +2858,21 @@ static size_t traverse_and_check(mstate m); + else if (X > 0xFFFF)\ + I = NTREEBINS-1;\ + else {\ +- unsigned int K;\ +- __asm__("bsrl\t%1, %0\n\t" : "=r" (K) : "g" (X));\ ++ unsigned int K = (unsigned) sizeof(X)*__CHAR_BIT__ - 1 - (unsigned) __builtin_clz(X); \ ++ I = (bindex_t)((K << 1) + ((S >> (K + (TREEBIN_SHIFT-1)) & 1)));\ ++ }\ ++} ++ ++#elif defined (__INTEL_COMPILER) ++#define compute_tree_index(S, I)\ ++{\ ++ size_t X = S >> TREEBIN_SHIFT;\ ++ if (X == 0)\ ++ I = 0;\ ++ else if (X > 0xFFFF)\ ++ I = NTREEBINS-1;\ ++ else {\ ++ unsigned int K = _bit_scan_reverse (X); \ + I = (bindex_t)((K << 1) + ((S >> (K + (TREEBIN_SHIFT-1)) & 1)));\ + }\ + } +@@ -2599,10 +2887,11 @@ static size_t traverse_and_check(mstate m); + I = NTREEBINS-1;\ + else {\ + unsigned int K;\ +- _BitScanReverse((DWORD *) &K, X);\ ++ _BitScanReverse((DWORD *) &K, (DWORD) X);\ + I = (bindex_t)((K << 1) + ((S >> (K + (TREEBIN_SHIFT-1)) & 1)));\ + }\ + } ++ + #else /* GNUC */ + #define compute_tree_index(S, I)\ + {\ +@@ -2652,15 +2941,33 @@ static size_t traverse_and_check(mstate m); + #define clear_treemap(M,i) ((M)->treemap &= ~idx2bit(i)) + #define treemap_is_marked(M,i) ((M)->treemap & idx2bit(i)) + +-/* index corresponding to given bit */ ++/* isolate the least set bit of a bitmap */ ++#define least_bit(x) ((x) & -(x)) ++ ++/* mask with all bits to left of least bit of x on */ ++#define left_bits(x) ((x<<1) | -(x<<1)) ++ ++/* mask with all bits to left of or equal to least bit of x on */ ++#define same_or_left_bits(x) ((x) | -(x)) ++ ++/* index corresponding to given bit. Use x86 asm if possible */ + + #if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) + #define compute_bit2idx(X, I)\ + {\ + unsigned int J;\ +- __asm__("bsfl\t%1, %0\n\t" : "=r" (J) : "g" (X));\ ++ J = __builtin_ctz(X); \ ++ I = (bindex_t)J;\ ++} ++ ++#elif defined (__INTEL_COMPILER) ++#define compute_bit2idx(X, I)\ ++{\ ++ unsigned int J;\ ++ J = _bit_scan_forward (X); \ + I = (bindex_t)J;\ + } ++ + #elif defined(_MSC_VER) && _MSC_VER>=1300 + #define compute_bit2idx(X, I)\ + {\ +@@ -2669,11 +2976,10 @@ static size_t traverse_and_check(mstate m); + I = (bindex_t)J;\ + } + +-#else /* GNUC */ +-#if USE_BUILTIN_FFS ++#elif USE_BUILTIN_FFS + #define compute_bit2idx(X, I) I = ffs(X)-1 + +-#else /* USE_BUILTIN_FFS */ ++#else + #define compute_bit2idx(X, I)\ + {\ + unsigned int Y = X - 1;\ +@@ -2685,18 +2991,8 @@ static size_t traverse_and_check(mstate m); + N += K = Y >> (1-0) & 1; Y >>= K;\ + I = (bindex_t)(N + Y);\ + } +-#endif /* USE_BUILTIN_FFS */ + #endif /* GNUC */ + +-/* isolate the least set bit of a bitmap */ +-#define least_bit(x) ((x) & -(x)) +- +-/* mask with all bits to left of least bit of x on */ +-#define left_bits(x) ((x<<1) | -(x<<1)) +- +-/* mask with all bits to left of or equal to least bit of x on */ +-#define same_or_left_bits(x) ((x) | -(x)) +- + + /* ----------------------- Runtime Check Support ------------------------- */ + +@@ -2718,7 +3014,7 @@ static size_t traverse_and_check(mstate m); + http://www.usenix.org/events/lisa03/tech/robertson.html The footer + of an inuse chunk holds the xor of its mstate and a random seed, + that is checked upon calls to free() and realloc(). This is +- (probablistically) unguessable from outside the program, but can be ++ (probabalistically) unguessable from outside the program, but can be + computed by any code successfully malloc'ing any chunk, so does not + itself provide protection against code that has already broken + security through some other means. Unlike Robertson et al, we +@@ -2731,15 +3027,15 @@ static size_t traverse_and_check(mstate m); + #define ok_address(M, a) ((char*)(a) >= (M)->least_addr) + /* Check if address of next chunk n is higher than base chunk p */ + #define ok_next(p, n) ((char*)(p) < (char*)(n)) +-/* Check if p has its cinuse bit on */ +-#define ok_cinuse(p) cinuse(p) ++/* Check if p has inuse status */ ++#define ok_inuse(p) is_inuse(p) + /* Check if p has its pinuse bit on */ + #define ok_pinuse(p) pinuse(p) + + #else /* !INSECURE */ + #define ok_address(M, a) (1) + #define ok_next(b, n) (1) +-#define ok_cinuse(p) (1) ++#define ok_inuse(p) (1) + #define ok_pinuse(p) (1) + #endif /* !INSECURE */ + +@@ -2750,7 +3046,6 @@ static size_t traverse_and_check(mstate m); + #define ok_magic(M) (1) + #endif /* (FOOTERS && !INSECURE) */ + +- + /* In gcc, use __builtin_expect to minimize impact of checks */ + #if !INSECURE + #if defined(__GNUC__) && __GNUC__ >= 3 +@@ -2768,6 +3063,8 @@ static size_t traverse_and_check(mstate m); + + #define mark_inuse_foot(M,p,s) + ++/* Macros for setting head/foot of non-mmapped chunks */ ++ + /* Set cinuse bit and pinuse bit of next chunk */ + #define set_inuse(M,p,s)\ + ((p)->head = (((p)->head & PINUSE_BIT)|s|CINUSE_BIT),\ +@@ -2810,11 +3107,55 @@ static size_t traverse_and_check(mstate m); + + /* ---------------------------- setting mparams -------------------------- */ + ++#if LOCK_AT_FORK ++static void pre_fork(void) { ACQUIRE_LOCK(&(gm)->mutex); } ++static void post_fork_parent(void) { RELEASE_LOCK(&(gm)->mutex); } ++static void post_fork_child(void) { INITIAL_LOCK(&(gm)->mutex); } ++#endif /* LOCK_AT_FORK */ ++ + /* Initialize mparams */ + static int init_mparams(void) { +- if (mparams.page_size == 0) { +- size_t s; ++#ifdef NEED_GLOBAL_LOCK_INIT ++ if (malloc_global_mutex_status <= 0) ++ init_malloc_global_mutex(); ++#endif ++ ++ ACQUIRE_MALLOC_GLOBAL_LOCK(); ++ if (mparams.magic == 0) { ++ size_t magic; ++ size_t psize; ++ size_t gsize; ++ ++#ifndef WIN32 ++ psize = malloc_getpagesize; ++ gsize = ((DEFAULT_GRANULARITY != 0)? DEFAULT_GRANULARITY : psize); ++#else /* WIN32 */ ++ { ++ SYSTEM_INFO system_info; ++ GetSystemInfo(&system_info); ++ psize = system_info.dwPageSize; ++ gsize = ((DEFAULT_GRANULARITY != 0)? ++ DEFAULT_GRANULARITY : system_info.dwAllocationGranularity); ++ } ++#endif /* WIN32 */ + ++ /* Sanity-check configuration: ++ size_t must be unsigned and as wide as pointer type. ++ ints must be at least 4 bytes. ++ alignment must be at least 8. ++ Alignment, min chunk size, and page size must all be powers of 2. ++ */ ++ if ((sizeof(size_t) != sizeof(char*)) || ++ (MAX_SIZE_T < MIN_CHUNK_SIZE) || ++ (sizeof(int) < 4) || ++ (MALLOC_ALIGNMENT < (size_t)8U) || ++ ((MALLOC_ALIGNMENT & (MALLOC_ALIGNMENT-SIZE_T_ONE)) != 0) || ++ ((MCHUNK_SIZE & (MCHUNK_SIZE-SIZE_T_ONE)) != 0) || ++ ((gsize & (gsize-SIZE_T_ONE)) != 0) || ++ ((psize & (psize-SIZE_T_ONE)) != 0)) ++ ABORT; ++ mparams.granularity = gsize; ++ mparams.page_size = psize; + mparams.mmap_threshold = DEFAULT_MMAP_THRESHOLD; + mparams.trim_threshold = DEFAULT_TRIM_THRESHOLD; + #if MORECORE_CONTIGUOUS +@@ -2823,7 +3164,15 @@ static int init_mparams(void) { + mparams.default_mflags = USE_LOCK_BIT|USE_MMAP_BIT|USE_NONCONTIGUOUS_BIT; + #endif /* MORECORE_CONTIGUOUS */ + +-#if (FOOTERS && !INSECURE) ++#if !ONLY_MSPACES ++ /* Set up lock for main malloc area */ ++ gm->mflags = mparams.default_mflags; ++ (void)INITIAL_LOCK(&gm->mutex); ++#endif ++#if LOCK_AT_FORK ++ pthread_atfork(&pre_fork, &post_fork_parent, &post_fork_child); ++#endif ++ + { + #if USE_DEV_RANDOM + int fd; +@@ -2831,67 +3180,34 @@ static int init_mparams(void) { + /* Try to use /dev/urandom, else fall back on using time */ + if ((fd = open("/dev/urandom", O_RDONLY)) >= 0 && + read(fd, buf, sizeof(buf)) == sizeof(buf)) { +- s = *((size_t *) buf); ++ magic = *((size_t *) buf); + close(fd); + } + else + #endif /* USE_DEV_RANDOM */ +- s = (size_t)(time(0) ^ (size_t)0x55555555U); +- +- s |= (size_t)8U; /* ensure nonzero */ +- s &= ~(size_t)7U; /* improve chances of fault for bad values */ +- +- } +-#else /* (FOOTERS && !INSECURE) */ +- s = (size_t)0x58585858U; +-#endif /* (FOOTERS && !INSECURE) */ +- ACQUIRE_MAGIC_INIT_LOCK(); +- if (mparams.magic == 0) { +- mparams.magic = s; +-#if !ONLY_MSPACES +- /* Set up lock for main malloc area */ +- INITIAL_LOCK(&gm->mutex); +- gm->mflags = mparams.default_mflags; ++#ifdef WIN32 ++ magic = (size_t)(GetTickCount() ^ (size_t)0x55555555U); ++#elif defined(LACKS_TIME_H) ++ magic = (size_t)&magic ^ (size_t)0x55555555U; ++#else ++ magic = (size_t)(time(0) ^ (size_t)0x55555555U); + #endif ++ magic |= (size_t)8U; /* ensure nonzero */ ++ magic &= ~(size_t)7U; /* improve chances of fault for bad values */ ++ /* Until memory modes commonly available, use volatile-write */ ++ (*(volatile size_t *)(&(mparams.magic))) = magic; + } +- RELEASE_MAGIC_INIT_LOCK(); +- +-#ifndef WIN32 +- mparams.page_size = malloc_getpagesize; +- mparams.granularity = ((DEFAULT_GRANULARITY != 0)? +- DEFAULT_GRANULARITY : mparams.page_size); +-#else /* WIN32 */ +- { +- SYSTEM_INFO system_info; +- GetSystemInfo(&system_info); +- mparams.page_size = system_info.dwPageSize; +- mparams.granularity = system_info.dwAllocationGranularity; +- } +-#endif /* WIN32 */ +- +- /* Sanity-check configuration: +- size_t must be unsigned and as wide as pointer type. +- ints must be at least 4 bytes. +- alignment must be at least 8. +- Alignment, min chunk size, and page size must all be powers of 2. +- */ +- if ((sizeof(size_t) != sizeof(char*)) || +- (MAX_SIZE_T < MIN_CHUNK_SIZE) || +- (sizeof(int) < 4) || +- (MALLOC_ALIGNMENT < (size_t)8U) || +- ((MALLOC_ALIGNMENT & (MALLOC_ALIGNMENT-SIZE_T_ONE)) != 0) || +- ((MCHUNK_SIZE & (MCHUNK_SIZE-SIZE_T_ONE)) != 0) || +- ((mparams.granularity & (mparams.granularity-SIZE_T_ONE)) != 0) || +- ((mparams.page_size & (mparams.page_size-SIZE_T_ONE)) != 0)) +- ABORT; + } +- return 0; ++ ++ RELEASE_MALLOC_GLOBAL_LOCK(); ++ return 1; + } + + /* support for mallopt */ + static int change_mparam(int param_number, int value) { +- size_t val = (size_t)value; +- init_mparams(); ++ size_t val; ++ ensure_initialization(); ++ val = (value == -1)? MAX_SIZE_T : (size_t)value; + switch(param_number) { + case M_TRIM_THRESHOLD: + mparams.trim_threshold = val; +@@ -2937,7 +3253,7 @@ static void do_check_top_chunk(mstate m, mchunkptr p) { + /* Check properties of (inuse) mmapped chunks */ + static void do_check_mmapped_chunk(mstate m, mchunkptr p) { + size_t sz = chunksize(p); +- size_t len = (sz + (p->prev_foot & ~IS_MMAPPED_BIT) + MMAP_FOOT_PAD); ++ size_t len = (sz + (p->prev_foot) + MMAP_FOOT_PAD); + assert(is_mmapped(p)); + assert(use_mmap(m)); + assert((is_aligned(chunk2mem(p))) || (p->head == FENCEPOST_HEAD)); +@@ -2951,7 +3267,7 @@ static void do_check_mmapped_chunk(mstate m, mchunkptr p) { + /* Check properties of inuse chunks */ + static void do_check_inuse_chunk(mstate m, mchunkptr p) { + do_check_any_chunk(m, p); +- assert(cinuse(p)); ++ assert(is_inuse(p)); + assert(next_pinuse(p)); + /* If not pinuse and not mmapped, previous chunk has OK offset */ + assert(is_mmapped(p) || pinuse(p) || next_chunk(prev_chunk(p)) == p); +@@ -2964,7 +3280,7 @@ static void do_check_free_chunk(mstate m, mchunkptr p) { + size_t sz = chunksize(p); + mchunkptr next = chunk_plus_offset(p, sz); + do_check_any_chunk(m, p); +- assert(!cinuse(p)); ++ assert(!is_inuse(p)); + assert(!next_pinuse(p)); + assert (!is_mmapped(p)); + if (p != m->dv && p != m->top) { +@@ -2973,7 +3289,7 @@ static void do_check_free_chunk(mstate m, mchunkptr p) { + assert(is_aligned(chunk2mem(p))); + assert(next->prev_foot == sz); + assert(pinuse(p)); +- assert (next == m->top || cinuse(next)); ++ assert (next == m->top || is_inuse(next)); + assert(p->fd->bk == p); + assert(p->bk->fd == p); + } +@@ -2986,7 +3302,7 @@ static void do_check_free_chunk(mstate m, mchunkptr p) { + static void do_check_malloced_chunk(mstate m, void* mem, size_t s) { + if (mem != 0) { + mchunkptr p = mem2chunk(mem); +- size_t sz = p->head & ~(PINUSE_BIT|CINUSE_BIT); ++ size_t sz = p->head & ~INUSE_BITS; + do_check_inuse_chunk(m, p); + assert((sz & CHUNK_ALIGN_MASK) == 0); + assert(sz >= MIN_CHUNK_SIZE); +@@ -3013,7 +3329,7 @@ static void do_check_tree(mstate m, tchunkptr t) { + do_check_any_chunk(m, ((mchunkptr)u)); + assert(u->index == tindex); + assert(chunksize(u) == tsize); +- assert(!cinuse(u)); ++ assert(!is_inuse(u)); + assert(!next_pinuse(u)); + assert(u->fd->bk == u); + assert(u->bk->fd == u); +@@ -3131,13 +3447,13 @@ static size_t traverse_and_check(mstate m) { + while (segment_holds(s, q) && + q != m->top && q->head != FENCEPOST_HEAD) { + sum += chunksize(q); +- if (cinuse(q)) { ++ if (is_inuse(q)) { + assert(!bin_find(m, q)); + do_check_inuse_chunk(m, q); + } + else { + assert(q == m->dv || bin_find(m, q)); +- assert(lastq == 0 || cinuse(lastq)); /* Not 2 consecutive free */ ++ assert(lastq == 0 || is_inuse(lastq)); /* Not 2 consecutive free */ + do_check_free_chunk(m, q); + } + lastq = q; +@@ -3149,6 +3465,7 @@ static size_t traverse_and_check(mstate m) { + return sum; + } + ++ + /* Check all properties of malloc_state. */ + static void do_check_malloc_state(mstate m) { + bindex_t i; +@@ -3184,6 +3501,7 @@ static void do_check_malloc_state(mstate m) { + #if !NO_MALLINFO + static struct mallinfo internal_mallinfo(mstate m) { + struct mallinfo nm = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; ++ ensure_initialization(); + if (!PREACTION(m)) { + check_malloc_state(m); + if (is_initialized(m)) { +@@ -3197,7 +3515,7 @@ static struct mallinfo internal_mallinfo(mstate m) { + q != m->top && q->head != FENCEPOST_HEAD) { + size_t sz = chunksize(q); + sum += sz; +- if (!cinuse(q)) { ++ if (!is_inuse(q)) { + mfree += sz; + ++nfree; + } +@@ -3221,7 +3539,9 @@ static struct mallinfo internal_mallinfo(mstate m) { + } + #endif /* !NO_MALLINFO */ + ++#if !NO_MALLOC_STATS + static void internal_malloc_stats(mstate m) { ++ ensure_initialization(); + if (!PREACTION(m)) { + size_t maxfp = 0; + size_t fp = 0; +@@ -3237,21 +3557,20 @@ static void internal_malloc_stats(mstate m) { + mchunkptr q = align_as_chunk(s->base); + while (segment_holds(s, q) && + q != m->top && q->head != FENCEPOST_HEAD) { +- if (!cinuse(q)) ++ if (!is_inuse(q)) + used -= chunksize(q); + q = next_chunk(q); + } + s = s->next; + } + } +- ++ POSTACTION(m); /* drop lock */ + fprintf(stderr, "max system bytes = %10lu\n", (unsigned long)(maxfp)); + fprintf(stderr, "system bytes = %10lu\n", (unsigned long)(fp)); + fprintf(stderr, "in use bytes = %10lu\n", (unsigned long)(used)); +- +- POSTACTION(m); + } + } ++#endif /* NO_MALLOC_STATS */ + + /* ----------------------- Operations on smallbins ----------------------- */ + +@@ -3289,12 +3608,18 @@ static void internal_malloc_stats(mstate m) { + assert(P != B);\ + assert(P != F);\ + assert(chunksize(P) == small_index2size(I));\ +- if (F == B)\ +- clear_smallmap(M, I);\ +- else if (RTCHECK((F == smallbin_at(M,I) || ok_address(M, F)) &&\ +- (B == smallbin_at(M,I) || ok_address(M, B)))) {\ +- F->bk = B;\ +- B->fd = F;\ ++ if (RTCHECK(F == smallbin_at(M,I) || (ok_address(M, F) && F->bk == P))) { \ ++ if (B == F) {\ ++ clear_smallmap(M, I);\ ++ }\ ++ else if (RTCHECK(B == smallbin_at(M,I) ||\ ++ (ok_address(M, B) && B->fd == P))) {\ ++ F->bk = B;\ ++ B->fd = F;\ ++ }\ ++ else {\ ++ CORRUPTION_ERROR_ACTION(M);\ ++ }\ + }\ + else {\ + CORRUPTION_ERROR_ACTION(M);\ +@@ -3307,11 +3632,12 @@ static void internal_malloc_stats(mstate m) { + assert(P != B);\ + assert(P != F);\ + assert(chunksize(P) == small_index2size(I));\ +- if (B == F)\ ++ if (B == F) {\ + clear_smallmap(M, I);\ +- else if (RTCHECK(ok_address(M, F))) {\ +- B->fd = F;\ ++ }\ ++ else if (RTCHECK(ok_address(M, F) && F->bk == P)) {\ + F->bk = B;\ ++ B->fd = F;\ + }\ + else {\ + CORRUPTION_ERROR_ACTION(M);\ +@@ -3322,9 +3648,9 @@ static void internal_malloc_stats(mstate m) { + /* Used only when dvsize known to be small */ + #define replace_dv(M, P, S) {\ + size_t DVS = M->dvsize;\ ++ assert(is_small(DVS));\ + if (DVS != 0) {\ + mchunkptr DV = M->dv;\ +- assert(is_small(DVS));\ + insert_small_chunk(M, DV, DVS);\ + }\ + M->dvsize = S;\ +@@ -3408,7 +3734,7 @@ static void internal_malloc_stats(mstate m) { + if (X->bk != X) {\ + tchunkptr F = X->fd;\ + R = X->bk;\ +- if (RTCHECK(ok_address(M, F))) {\ ++ if (RTCHECK(ok_address(M, F) && F->bk == X && R->fd == X)) {\ + F->bk = R;\ + R->fd = F;\ + }\ +@@ -3492,7 +3818,7 @@ static void internal_malloc_stats(mstate m) { + #else /* ONLY_MSPACES */ + #if MSPACES + #define internal_malloc(m, b)\ +- (m == gm)? dlmalloc(b) : mspace_malloc(m, b) ++ ((m == gm)? dlmalloc(b) : mspace_malloc(m, b)) + #define internal_free(m, mem)\ + if (m == gm) dlfree(mem); else mspace_free(m,mem); + #else /* MSPACES */ +@@ -3508,27 +3834,30 @@ static void internal_malloc_stats(mstate m) { + the mmapped region stored in the prev_foot field of the chunk. This + allows reconstruction of the required argument to MUNMAP when freed, + and also allows adjustment of the returned chunk to meet alignment +- requirements (especially in memalign). There is also enough space +- allocated to hold a fake next chunk of size SIZE_T_SIZE to maintain +- the PINUSE bit so frees can be checked. ++ requirements (especially in memalign). + */ + + /* Malloc using mmap */ + static void* mmap_alloc(mstate m, size_t nb) { + size_t mmsize = mmap_align(nb + SIX_SIZE_T_SIZES + CHUNK_ALIGN_MASK); ++ if (m->footprint_limit != 0) { ++ size_t fp = m->footprint + mmsize; ++ if (fp <= m->footprint || fp > m->footprint_limit) ++ return 0; ++ } + if (mmsize > nb) { /* Check for wrap around 0 */ +- char* mm = (char*)(DIRECT_MMAP(mmsize)); ++ char* mm = (char*)(CALL_DIRECT_MMAP(mmsize)); + if (mm != CMFAIL) { + size_t offset = align_offset(chunk2mem(mm)); + size_t psize = mmsize - offset - MMAP_FOOT_PAD; + mchunkptr p = (mchunkptr)(mm + offset); +- p->prev_foot = offset | IS_MMAPPED_BIT; +- (p)->head = (psize|CINUSE_BIT); ++ p->prev_foot = offset; ++ p->head = psize; + mark_inuse_foot(m, p, psize); + chunk_plus_offset(p, psize)->head = FENCEPOST_HEAD; + chunk_plus_offset(p, psize+SIZE_T_SIZE)->head = 0; + +- if (mm < m->least_addr) ++ if (m->least_addr == 0 || mm < m->least_addr) + m->least_addr = mm; + if ((m->footprint += mmsize) > m->max_footprint) + m->max_footprint = m->footprint; +@@ -3541,8 +3870,9 @@ static void* mmap_alloc(mstate m, size_t nb) { + } + + /* Realloc using mmap */ +-static mchunkptr mmap_resize(mstate m, mchunkptr oldp, size_t nb) { ++static mchunkptr mmap_resize(mstate m, mchunkptr oldp, size_t nb, int flags) { + size_t oldsize = chunksize(oldp); ++ (void)flags; /* placate people compiling -Wunused */ + if (is_small(nb)) /* Can't shrink mmap regions below small size */ + return 0; + /* Keep old chunk if big enough but not too big */ +@@ -3550,15 +3880,15 @@ static mchunkptr mmap_resize(mstate m, mchunkptr oldp, size_t nb) { + (oldsize - nb) <= (mparams.granularity << 1)) + return oldp; + else { +- size_t offset = oldp->prev_foot & ~IS_MMAPPED_BIT; ++ size_t offset = oldp->prev_foot; + size_t oldmmsize = oldsize + offset + MMAP_FOOT_PAD; + size_t newmmsize = mmap_align(nb + SIX_SIZE_T_SIZES + CHUNK_ALIGN_MASK); + char* cp = (char*)CALL_MREMAP((char*)oldp - offset, +- oldmmsize, newmmsize, 1); ++ oldmmsize, newmmsize, flags); + if (cp != CMFAIL) { + mchunkptr newp = (mchunkptr)(cp + offset); + size_t psize = newmmsize - offset - MMAP_FOOT_PAD; +- newp->head = (psize|CINUSE_BIT); ++ newp->head = psize; + mark_inuse_foot(m, newp, psize); + chunk_plus_offset(newp, psize)->head = FENCEPOST_HEAD; + chunk_plus_offset(newp, psize+SIZE_T_SIZE)->head = 0; +@@ -3574,6 +3904,7 @@ static mchunkptr mmap_resize(mstate m, mchunkptr oldp, size_t nb) { + return 0; + } + ++ + /* -------------------------- mspace management -------------------------- */ + + /* Initialize top chunk and its size */ +@@ -3608,7 +3939,7 @@ static void reset_on_error(mstate m) { + int i; + ++malloc_corruption_error_count; + /* Reinitialize fields to forget about all memory */ +- m->smallbins = m->treebins = 0; ++ m->smallmap = m->treemap = 0; + m->dvsize = m->topsize = 0; + m->seg.base = 0; + m->seg.size = 0; +@@ -3647,7 +3978,7 @@ static void* prepend_alloc(mstate m, char* newbase, char* oldbase, + set_size_and_pinuse_of_free_chunk(q, dsize); + } + else { +- if (!cinuse(oldfirst)) { ++ if (!is_inuse(oldfirst)) { + size_t nsize = chunksize(oldfirst); + unlink_chunk(m, oldfirst, nsize); + oldfirst = chunk_plus_offset(oldfirst, nsize); +@@ -3722,16 +4053,26 @@ static void* sys_alloc(mstate m, size_t nb) { + char* tbase = CMFAIL; + size_t tsize = 0; + flag_t mmap_flag = 0; ++ size_t asize; /* allocation size */ + +- init_mparams(); ++ ensure_initialization(); + +- /* Directly map large chunks */ +- if (use_mmap(m) && nb >= mparams.mmap_threshold) { ++ /* Directly map large chunks, but only if already initialized */ ++ if (use_mmap(m) && nb >= mparams.mmap_threshold && m->topsize != 0) { + void* mem = mmap_alloc(m, nb); + if (mem != 0) + return mem; + } + ++ asize = granularity_align(nb + SYS_ALLOC_PADDING); ++ if (asize <= nb) ++ return 0; /* wraparound */ ++ if (m->footprint_limit != 0) { ++ size_t fp = m->footprint + asize; ++ if (fp <= m->footprint || fp > m->footprint_limit) ++ return 0; ++ } ++ + /* + Try getting memory in any of three ways (in most-preferred to + least-preferred order): +@@ -3747,51 +4088,58 @@ static void* sys_alloc(mstate m, size_t nb) { + find space. + 3. A call to MORECORE that cannot usually contiguously extend memory. + (disabled if not HAVE_MORECORE) ++ ++ In all cases, we need to request enough bytes from system to ensure ++ we can malloc nb bytes upon success, so pad with enough space for ++ top_foot, plus alignment-pad to make sure we don't lose bytes if ++ not on boundary, and round this up to a granularity unit. + */ + + if (MORECORE_CONTIGUOUS && !use_noncontiguous(m)) { + char* br = CMFAIL; ++ size_t ssize = asize; /* sbrk call size */ + msegmentptr ss = (m->top == 0)? 0 : segment_holding(m, (char*)m->top); +- size_t asize = 0; +- ACQUIRE_MORECORE_LOCK(); ++ ACQUIRE_MALLOC_GLOBAL_LOCK(); + + if (ss == 0) { /* First time through or recovery */ + char* base = (char*)CALL_MORECORE(0); + if (base != CMFAIL) { +- asize = granularity_align(nb + TOP_FOOT_SIZE + SIZE_T_ONE); ++ size_t fp; + /* Adjust to end on a page boundary */ + if (!is_page_aligned(base)) +- asize += (page_align((size_t)base) - (size_t)base); +- /* Can't call MORECORE if size is negative when treated as signed */ +- if (asize < HALF_MAX_SIZE_T && +- (br = (char*)(CALL_MORECORE(asize))) == base) { ++ ssize += (page_align((size_t)base) - (size_t)base); ++ fp = m->footprint + ssize; /* recheck limits */ ++ if (ssize > nb && ssize < HALF_MAX_SIZE_T && ++ (m->footprint_limit == 0 || ++ (fp > m->footprint && fp <= m->footprint_limit)) && ++ (br = (char*)(CALL_MORECORE(ssize))) == base) { + tbase = base; +- tsize = asize; ++ tsize = ssize; + } + } + } + else { + /* Subtract out existing available top space from MORECORE request. */ +- asize = granularity_align(nb - m->topsize + TOP_FOOT_SIZE + SIZE_T_ONE); ++ ssize = granularity_align(nb - m->topsize + SYS_ALLOC_PADDING); + /* Use mem here only if it did continuously extend old space */ +- if (asize < HALF_MAX_SIZE_T && +- (br = (char*)(CALL_MORECORE(asize))) == ss->base+ss->size) { ++ if (ssize < HALF_MAX_SIZE_T && ++ (br = (char*)(CALL_MORECORE(ssize))) == ss->base+ss->size) { + tbase = br; +- tsize = asize; ++ tsize = ssize; + } + } + + if (tbase == CMFAIL) { /* Cope with partial failure */ + if (br != CMFAIL) { /* Try to use/extend the space we did get */ +- if (asize < HALF_MAX_SIZE_T && +- asize < nb + TOP_FOOT_SIZE + SIZE_T_ONE) { +- size_t esize = granularity_align(nb + TOP_FOOT_SIZE + SIZE_T_ONE - asize); ++ if (ssize < HALF_MAX_SIZE_T && ++ ssize < nb + SYS_ALLOC_PADDING) { ++ size_t esize = granularity_align(nb + SYS_ALLOC_PADDING - ssize); + if (esize < HALF_MAX_SIZE_T) { + char* end = (char*)CALL_MORECORE(esize); + if (end != CMFAIL) +- asize += esize; ++ ssize += esize; + else { /* Can't use; try to release */ +- (void) CALL_MORECORE(-asize); ++ (void) CALL_MORECORE(-ssize); + br = CMFAIL; + } + } +@@ -3799,37 +4147,32 @@ static void* sys_alloc(mstate m, size_t nb) { + } + if (br != CMFAIL) { /* Use the space we did get */ + tbase = br; +- tsize = asize; ++ tsize = ssize; + } + else + disable_contiguous(m); /* Don't try contiguous path in the future */ + } + +- RELEASE_MORECORE_LOCK(); ++ RELEASE_MALLOC_GLOBAL_LOCK(); + } + + if (HAVE_MMAP && tbase == CMFAIL) { /* Try MMAP */ +- size_t req = nb + TOP_FOOT_SIZE + SIZE_T_ONE; +- size_t rsize = granularity_align(req); +- if (rsize > nb) { /* Fail if wraps around zero */ +- char* mp = (char*)(CALL_MMAP(rsize)); +- if (mp != CMFAIL) { +- tbase = mp; +- tsize = rsize; +- mmap_flag = IS_MMAPPED_BIT; +- } ++ char* mp = (char*)(CALL_MMAP(asize)); ++ if (mp != CMFAIL) { ++ tbase = mp; ++ tsize = asize; ++ mmap_flag = USE_MMAP_BIT; + } + } + + if (HAVE_MORECORE && tbase == CMFAIL) { /* Try noncontiguous MORECORE */ +- size_t asize = granularity_align(nb + TOP_FOOT_SIZE + SIZE_T_ONE); + if (asize < HALF_MAX_SIZE_T) { + char* br = CMFAIL; + char* end = CMFAIL; +- ACQUIRE_MORECORE_LOCK(); ++ ACQUIRE_MALLOC_GLOBAL_LOCK(); + br = (char*)(CALL_MORECORE(asize)); + end = (char*)(CALL_MORECORE(0)); +- RELEASE_MORECORE_LOCK(); ++ RELEASE_MALLOC_GLOBAL_LOCK(); + if (br != CMFAIL && end != CMFAIL && br < end) { + size_t ssize = end - br; + if (ssize > nb + TOP_FOOT_SIZE) { +@@ -3846,7 +4189,9 @@ static void* sys_alloc(mstate m, size_t nb) { + m->max_footprint = m->footprint; + + if (!is_initialized(m)) { /* first-time initialization */ +- m->seg.base = m->least_addr = tbase; ++ if (m->least_addr == 0 || tbase < m->least_addr) ++ m->least_addr = tbase; ++ m->seg.base = tbase; + m->seg.size = tsize; + m->seg.sflags = mmap_flag; + m->magic = mparams.magic; +@@ -3872,7 +4217,7 @@ static void* sys_alloc(mstate m, size_t nb) { + sp = (NO_SEGMENT_TRAVERSAL) ? 0 : sp->next; + if (sp != 0 && + !is_extern_segment(sp) && +- (sp->sflags & IS_MMAPPED_BIT) == mmap_flag && ++ (sp->sflags & USE_MMAP_BIT) == mmap_flag && + segment_holds(sp, m->top)) { /* append */ + sp->size += tsize; + init_top(m, m->top, m->topsize + tsize); +@@ -3885,7 +4230,7 @@ static void* sys_alloc(mstate m, size_t nb) { + sp = (NO_SEGMENT_TRAVERSAL) ? 0 : sp->next; + if (sp != 0 && + !is_extern_segment(sp) && +- (sp->sflags & IS_MMAPPED_BIT) == mmap_flag) { ++ (sp->sflags & USE_MMAP_BIT) == mmap_flag) { + char* oldbase = sp->base; + sp->base = tbase; + sp->size += tsize; +@@ -3929,7 +4274,7 @@ static size_t release_unused_segments(mstate m) { + mchunkptr p = align_as_chunk(base); + size_t psize = chunksize(p); + /* Can unmap if first chunk holds entire segment and not pinned */ +- if (!cinuse(p) && (char*)p + psize >= base + size - TOP_FOOT_SIZE) { ++ if (!is_inuse(p) && (char*)p + psize >= base + size - TOP_FOOT_SIZE) { + tchunkptr tp = (tchunkptr)p; + assert(segment_holds(sp, (char*)sp)); + if (p == m->dv) { +@@ -3957,13 +4302,14 @@ static size_t release_unused_segments(mstate m) { + sp = next; + } + /* Reset check counter */ +- m->release_checks = ((nsegs > MAX_RELEASE_CHECK_RATE)? +- nsegs : MAX_RELEASE_CHECK_RATE); ++ m->release_checks = (((size_t) nsegs > (size_t) MAX_RELEASE_CHECK_RATE)? ++ (size_t) nsegs : (size_t) MAX_RELEASE_CHECK_RATE); + return released; + } + + static int sys_trim(mstate m, size_t pad) { + size_t released = 0; ++ ensure_initialization(); + if (pad < MAX_REQUEST && is_initialized(m)) { + pad += TOP_FOOT_SIZE; /* ensure enough room for segment overhead */ + +@@ -3980,6 +4326,7 @@ static int sys_trim(mstate m, size_t pad) { + sp->size >= extra && + !has_segment_link(m, sp)) { /* can't shrink if pinned */ + size_t newsize = sp->size - extra; ++ (void)newsize; /* placate people compiling -Wunused-variable */ + /* Prefer mremap, fall back to munmap */ + if ((CALL_MREMAP(sp->base, sp->size, newsize, 0) != MFAIL) || + (CALL_MUNMAP(sp->base + newsize, extra) == 0)) { +@@ -3990,7 +4337,7 @@ static int sys_trim(mstate m, size_t pad) { + else if (HAVE_MORECORE) { + if (extra >= HALF_MAX_SIZE_T) /* Avoid wrapping negative */ + extra = (HALF_MAX_SIZE_T) + SIZE_T_ONE - unit; +- ACQUIRE_MORECORE_LOCK(); ++ ACQUIRE_MALLOC_GLOBAL_LOCK(); + { + /* Make sure end of memory is where we last set it. */ + char* old_br = (char*)(CALL_MORECORE(0)); +@@ -4001,7 +4348,7 @@ static int sys_trim(mstate m, size_t pad) { + released = old_br - new_br; + } + } +- RELEASE_MORECORE_LOCK(); ++ RELEASE_MALLOC_GLOBAL_LOCK(); + } + } + +@@ -4025,7 +4372,78 @@ static int sys_trim(mstate m, size_t pad) { + return (released != 0)? 1 : 0; + } + +-/* ---------------------------- malloc support --------------------------- */ ++/* Consolidate and bin a chunk. Differs from exported versions ++ of free mainly in that the chunk need not be marked as inuse. ++*/ ++static void dispose_chunk(mstate m, mchunkptr p, size_t psize) { ++ mchunkptr next = chunk_plus_offset(p, psize); ++ if (!pinuse(p)) { ++ mchunkptr prev; ++ size_t prevsize = p->prev_foot; ++ if (is_mmapped(p)) { ++ psize += prevsize + MMAP_FOOT_PAD; ++ if (CALL_MUNMAP((char*)p - prevsize, psize) == 0) ++ m->footprint -= psize; ++ return; ++ } ++ prev = chunk_minus_offset(p, prevsize); ++ psize += prevsize; ++ p = prev; ++ if (RTCHECK(ok_address(m, prev))) { /* consolidate backward */ ++ if (p != m->dv) { ++ unlink_chunk(m, p, prevsize); ++ } ++ else if ((next->head & INUSE_BITS) == INUSE_BITS) { ++ m->dvsize = psize; ++ set_free_with_pinuse(p, psize, next); ++ return; ++ } ++ } ++ else { ++ CORRUPTION_ERROR_ACTION(m); ++ return; ++ } ++ } ++ if (RTCHECK(ok_address(m, next))) { ++ if (!cinuse(next)) { /* consolidate forward */ ++ if (next == m->top) { ++ size_t tsize = m->topsize += psize; ++ m->top = p; ++ p->head = tsize | PINUSE_BIT; ++ if (p == m->dv) { ++ m->dv = 0; ++ m->dvsize = 0; ++ } ++ return; ++ } ++ else if (next == m->dv) { ++ size_t dsize = m->dvsize += psize; ++ m->dv = p; ++ set_size_and_pinuse_of_free_chunk(p, dsize); ++ return; ++ } ++ else { ++ size_t nsize = chunksize(next); ++ psize += nsize; ++ unlink_chunk(m, next, nsize); ++ set_size_and_pinuse_of_free_chunk(p, psize); ++ if (p == m->dv) { ++ m->dvsize = psize; ++ return; ++ } ++ } ++ } ++ else { ++ set_free_with_pinuse(p, psize, next); ++ } ++ insert_chunk(m, p, psize); ++ } ++ else { ++ CORRUPTION_ERROR_ACTION(m); ++ } ++} ++ ++/* ---------------------------- malloc --------------------------- */ + + /* allocate a large request from the best fitting chunk in a treebin */ + static void* tmalloc_large(mstate m, size_t nb) { +@@ -4034,7 +4452,6 @@ static void* tmalloc_large(mstate m, size_t nb) { + tchunkptr t; + bindex_t idx; + compute_tree_index(nb, idx); +- + if ((t = *treebin_at(m, idx)) != 0) { + /* Traverse tree for this bin looking for node with size == nb */ + size_t sizebits = nb << leftshift_for_tree_index(idx); +@@ -4058,7 +4475,6 @@ static void* tmalloc_large(mstate m, size_t nb) { + sizebits <<= 1; + } + } +- + if (t == 0 && v == 0) { /* set t to root of next non-empty treebin */ + binmap_t leftbits = left_bits(idx2bit(idx)) & m->treemap; + if (leftbits != 0) { +@@ -4107,7 +4523,6 @@ static void* tmalloc_small(mstate m, size_t nb) { + bindex_t i; + binmap_t leastbit = least_bit(m->treemap); + compute_bit2idx(leastbit, i); +- + v = t = *treebin_at(m, i); + rsize = chunksize(t) - nb; + +@@ -4139,106 +4554,377 @@ static void* tmalloc_small(mstate m, size_t nb) { + return 0; + } + +-/* --------------------------- realloc support --------------------------- */ ++#if !ONLY_MSPACES + +-static void* internal_realloc(mstate m, void* oldmem, size_t bytes) { +- if (bytes >= MAX_REQUEST) { +- MALLOC_FAILURE_ACTION; +- return 0; +- } +- if (!PREACTION(m)) { +- mchunkptr oldp = mem2chunk(oldmem); +- size_t oldsize = chunksize(oldp); +- mchunkptr next = chunk_plus_offset(oldp, oldsize); +- mchunkptr newp = 0; +- void* extra = 0; ++void* dlmalloc(size_t bytes) { ++ /* ++ Basic algorithm: ++ If a small request (< 256 bytes minus per-chunk overhead): ++ 1. If one exists, use a remainderless chunk in associated smallbin. ++ (Remainderless means that there are too few excess bytes to ++ represent as a chunk.) ++ 2. If it is big enough, use the dv chunk, which is normally the ++ chunk adjacent to the one used for the most recent small request. ++ 3. If one exists, split the smallest available chunk in a bin, ++ saving remainder in dv. ++ 4. If it is big enough, use the top chunk. ++ 5. If available, get memory from system and use it ++ Otherwise, for a large request: ++ 1. Find the smallest available binned chunk that fits, and use it ++ if it is better fitting than dv chunk, splitting if necessary. ++ 2. If better fitting than any binned chunk, use the dv chunk. ++ 3. If it is big enough, use the top chunk. ++ 4. If request size >= mmap threshold, try to directly mmap this chunk. ++ 5. If available, get memory from system and use it + +- /* Try to either shrink or extend into top. Else malloc-copy-free */ ++ The ugly goto's here ensure that postaction occurs along all paths. ++ */ + +- if (RTCHECK(ok_address(m, oldp) && ok_cinuse(oldp) && +- ok_next(oldp, next) && ok_pinuse(next))) { +- size_t nb = request2size(bytes); +- if (is_mmapped(oldp)) +- newp = mmap_resize(m, oldp, nb); +- else if (oldsize >= nb) { /* already big enough */ +- size_t rsize = oldsize - nb; +- newp = oldp; +- if (rsize >= MIN_CHUNK_SIZE) { +- mchunkptr remainder = chunk_plus_offset(newp, nb); +- set_inuse(m, newp, nb); +- set_inuse(m, remainder, rsize); +- extra = chunk2mem(remainder); +- } +- } +- else if (next == m->top && oldsize + m->topsize > nb) { +- /* Expand into top */ +- size_t newsize = oldsize + m->topsize; +- size_t newtopsize = newsize - nb; +- mchunkptr newtop = chunk_plus_offset(oldp, nb); +- set_inuse(m, oldp, nb); +- newtop->head = newtopsize |PINUSE_BIT; +- m->top = newtop; +- m->topsize = newtopsize; +- newp = oldp; +- } +- } +- else { +- USAGE_ERROR_ACTION(m, oldmem); +- POSTACTION(m); +- return 0; +- } ++#if USE_LOCKS ++ ensure_initialization(); /* initialize in sys_alloc if not using locks */ ++#endif + +- POSTACTION(m); ++ if (!PREACTION(gm)) { ++ void* mem; ++ size_t nb; ++ if (bytes <= MAX_SMALL_REQUEST) { ++ bindex_t idx; ++ binmap_t smallbits; ++ nb = (bytes < MIN_REQUEST)? MIN_CHUNK_SIZE : pad_request(bytes); ++ idx = small_index(nb); ++ smallbits = gm->smallmap >> idx; + +- if (newp != 0) { +- if (extra != 0) { +- internal_free(m, extra); +- } +- check_inuse_chunk(m, newp); +- return chunk2mem(newp); +- } +- else { +- void* newmem = internal_malloc(m, bytes); +- if (newmem != 0) { +- size_t oc = oldsize - overhead_for(oldp); +- memcpy(newmem, oldmem, (oc < bytes)? oc : bytes); +- internal_free(m, oldmem); ++ if ((smallbits & 0x3U) != 0) { /* Remainderless fit to a smallbin. */ ++ mchunkptr b, p; ++ idx += ~smallbits & 1; /* Uses next bin if idx empty */ ++ b = smallbin_at(gm, idx); ++ p = b->fd; ++ assert(chunksize(p) == small_index2size(idx)); ++ unlink_first_small_chunk(gm, b, p, idx); ++ set_inuse_and_pinuse(gm, p, small_index2size(idx)); ++ mem = chunk2mem(p); ++ check_malloced_chunk(gm, mem, nb); ++ goto postaction; + } +- return newmem; +- } +- } +- return 0; +-} +- +-/* --------------------------- memalign support -------------------------- */ +- +-static void* internal_memalign(mstate m, size_t alignment, size_t bytes) { +- if (alignment <= MALLOC_ALIGNMENT) /* Can just use malloc */ +- return internal_malloc(m, bytes); +- if (alignment < MIN_CHUNK_SIZE) /* must be at least a minimum chunk size */ +- alignment = MIN_CHUNK_SIZE; +- if ((alignment & (alignment-SIZE_T_ONE)) != 0) {/* Ensure a power of 2 */ +- size_t a = MALLOC_ALIGNMENT << 1; +- while (a < alignment) a <<= 1; +- alignment = a; +- } + +- if (bytes >= MAX_REQUEST - alignment) { +- if (m != 0) { /* Test isn't needed but avoids compiler warning */ +- MALLOC_FAILURE_ACTION; ++ else if (nb > gm->dvsize) { ++ if (smallbits != 0) { /* Use chunk in next nonempty smallbin */ ++ mchunkptr b, p, r; ++ size_t rsize; ++ bindex_t i; ++ binmap_t leftbits = (smallbits << idx) & left_bits(idx2bit(idx)); ++ binmap_t leastbit = least_bit(leftbits); ++ compute_bit2idx(leastbit, i); ++ b = smallbin_at(gm, i); ++ p = b->fd; ++ assert(chunksize(p) == small_index2size(i)); ++ unlink_first_small_chunk(gm, b, p, i); ++ rsize = small_index2size(i) - nb; ++ /* Fit here cannot be remainderless if 4byte sizes */ ++ if (SIZE_T_SIZE != 4 && rsize < MIN_CHUNK_SIZE) ++ set_inuse_and_pinuse(gm, p, small_index2size(i)); ++ else { ++ set_size_and_pinuse_of_inuse_chunk(gm, p, nb); ++ r = chunk_plus_offset(p, nb); ++ set_size_and_pinuse_of_free_chunk(r, rsize); ++ replace_dv(gm, r, rsize); ++ } ++ mem = chunk2mem(p); ++ check_malloced_chunk(gm, mem, nb); ++ goto postaction; ++ } ++ ++ else if (gm->treemap != 0 && (mem = tmalloc_small(gm, nb)) != 0) { ++ check_malloced_chunk(gm, mem, nb); ++ goto postaction; ++ } ++ } ++ } ++ else if (bytes >= MAX_REQUEST) ++ nb = MAX_SIZE_T; /* Too big to allocate. Force failure (in sys alloc) */ ++ else { ++ nb = pad_request(bytes); ++ if (gm->treemap != 0 && (mem = tmalloc_large(gm, nb)) != 0) { ++ check_malloced_chunk(gm, mem, nb); ++ goto postaction; ++ } ++ } ++ ++ if (nb <= gm->dvsize) { ++ size_t rsize = gm->dvsize - nb; ++ mchunkptr p = gm->dv; ++ if (rsize >= MIN_CHUNK_SIZE) { /* split dv */ ++ mchunkptr r = gm->dv = chunk_plus_offset(p, nb); ++ gm->dvsize = rsize; ++ set_size_and_pinuse_of_free_chunk(r, rsize); ++ set_size_and_pinuse_of_inuse_chunk(gm, p, nb); ++ } ++ else { /* exhaust dv */ ++ size_t dvs = gm->dvsize; ++ gm->dvsize = 0; ++ gm->dv = 0; ++ set_inuse_and_pinuse(gm, p, dvs); ++ } ++ mem = chunk2mem(p); ++ check_malloced_chunk(gm, mem, nb); ++ goto postaction; ++ } ++ ++ else if (nb < gm->topsize) { /* Split top */ ++ size_t rsize = gm->topsize -= nb; ++ mchunkptr p = gm->top; ++ mchunkptr r = gm->top = chunk_plus_offset(p, nb); ++ r->head = rsize | PINUSE_BIT; ++ set_size_and_pinuse_of_inuse_chunk(gm, p, nb); ++ mem = chunk2mem(p); ++ check_top_chunk(gm, gm->top); ++ check_malloced_chunk(gm, mem, nb); ++ goto postaction; ++ } ++ ++ mem = sys_alloc(gm, nb); ++ ++ postaction: ++ POSTACTION(gm); ++ return mem; ++ } ++ ++ return 0; ++} ++ ++/* ---------------------------- free --------------------------- */ ++ ++void dlfree(void* mem) { ++ /* ++ Consolidate freed chunks with preceeding or succeeding bordering ++ free chunks, if they exist, and then place in a bin. Intermixed ++ with special cases for top, dv, mmapped chunks, and usage errors. ++ */ ++ ++ if (mem != 0) { ++ mchunkptr p = mem2chunk(mem); ++#if FOOTERS ++ mstate fm = get_mstate_for(p); ++ if (!ok_magic(fm)) { ++ USAGE_ERROR_ACTION(fm, p); ++ return; ++ } ++#else /* FOOTERS */ ++#define fm gm ++#endif /* FOOTERS */ ++ if (!PREACTION(fm)) { ++ check_inuse_chunk(fm, p); ++ if (RTCHECK(ok_address(fm, p) && ok_inuse(p))) { ++ size_t psize = chunksize(p); ++ mchunkptr next = chunk_plus_offset(p, psize); ++ if (!pinuse(p)) { ++ size_t prevsize = p->prev_foot; ++ if (is_mmapped(p)) { ++ psize += prevsize + MMAP_FOOT_PAD; ++ if (CALL_MUNMAP((char*)p - prevsize, psize) == 0) ++ fm->footprint -= psize; ++ goto postaction; ++ } ++ else { ++ mchunkptr prev = chunk_minus_offset(p, prevsize); ++ psize += prevsize; ++ p = prev; ++ if (RTCHECK(ok_address(fm, prev))) { /* consolidate backward */ ++ if (p != fm->dv) { ++ unlink_chunk(fm, p, prevsize); ++ } ++ else if ((next->head & INUSE_BITS) == INUSE_BITS) { ++ fm->dvsize = psize; ++ set_free_with_pinuse(p, psize, next); ++ goto postaction; ++ } ++ } ++ else ++ goto erroraction; ++ } ++ } ++ ++ if (RTCHECK(ok_next(p, next) && ok_pinuse(next))) { ++ if (!cinuse(next)) { /* consolidate forward */ ++ if (next == fm->top) { ++ size_t tsize = fm->topsize += psize; ++ fm->top = p; ++ p->head = tsize | PINUSE_BIT; ++ if (p == fm->dv) { ++ fm->dv = 0; ++ fm->dvsize = 0; ++ } ++ if (should_trim(fm, tsize)) ++ sys_trim(fm, 0); ++ goto postaction; ++ } ++ else if (next == fm->dv) { ++ size_t dsize = fm->dvsize += psize; ++ fm->dv = p; ++ set_size_and_pinuse_of_free_chunk(p, dsize); ++ goto postaction; ++ } ++ else { ++ size_t nsize = chunksize(next); ++ psize += nsize; ++ unlink_chunk(fm, next, nsize); ++ set_size_and_pinuse_of_free_chunk(p, psize); ++ if (p == fm->dv) { ++ fm->dvsize = psize; ++ goto postaction; ++ } ++ } ++ } ++ else ++ set_free_with_pinuse(p, psize, next); ++ ++ if (is_small(psize)) { ++ insert_small_chunk(fm, p, psize); ++ check_free_chunk(fm, p); ++ } ++ else { ++ tchunkptr tp = (tchunkptr)p; ++ insert_large_chunk(fm, tp, psize); ++ check_free_chunk(fm, p); ++ if (--fm->release_checks == 0) ++ release_unused_segments(fm); ++ } ++ goto postaction; ++ } ++ } ++ erroraction: ++ USAGE_ERROR_ACTION(fm, p); ++ postaction: ++ POSTACTION(fm); ++ } ++ } ++#if !FOOTERS ++#undef fm ++#endif /* FOOTERS */ ++} ++ ++void* dlcalloc(size_t n_elements, size_t elem_size) { ++ void* mem; ++ size_t req = 0; ++ if (n_elements != 0) { ++ req = n_elements * elem_size; ++ if (((n_elements | elem_size) & ~(size_t)0xffff) && ++ (req / n_elements != elem_size)) ++ req = MAX_SIZE_T; /* force downstream failure on overflow */ ++ } ++ mem = dlmalloc(req); ++ if (mem != 0 && calloc_must_clear(mem2chunk(mem))) ++ memset(mem, 0, req); ++ return mem; ++} ++ ++#endif /* !ONLY_MSPACES */ ++ ++/* ------------ Internal support for realloc, memalign, etc -------------- */ ++ ++/* Try to realloc; only in-place unless can_move true */ ++static mchunkptr try_realloc_chunk(mstate m, mchunkptr p, size_t nb, ++ int can_move) { ++ mchunkptr newp = 0; ++ size_t oldsize = chunksize(p); ++ mchunkptr next = chunk_plus_offset(p, oldsize); ++ if (RTCHECK(ok_address(m, p) && ok_inuse(p) && ++ ok_next(p, next) && ok_pinuse(next))) { ++ if (is_mmapped(p)) { ++ newp = mmap_resize(m, p, nb, can_move); ++ } ++ else if (oldsize >= nb) { /* already big enough */ ++ size_t rsize = oldsize - nb; ++ if (rsize >= MIN_CHUNK_SIZE) { /* split off remainder */ ++ mchunkptr r = chunk_plus_offset(p, nb); ++ set_inuse(m, p, nb); ++ set_inuse(m, r, rsize); ++ dispose_chunk(m, r, rsize); ++ } ++ newp = p; ++ } ++ else if (next == m->top) { /* extend into top */ ++ if (oldsize + m->topsize > nb) { ++ size_t newsize = oldsize + m->topsize; ++ size_t newtopsize = newsize - nb; ++ mchunkptr newtop = chunk_plus_offset(p, nb); ++ set_inuse(m, p, nb); ++ newtop->head = newtopsize |PINUSE_BIT; ++ m->top = newtop; ++ m->topsize = newtopsize; ++ newp = p; ++ } ++ } ++ else if (next == m->dv) { /* extend into dv */ ++ size_t dvs = m->dvsize; ++ if (oldsize + dvs >= nb) { ++ size_t dsize = oldsize + dvs - nb; ++ if (dsize >= MIN_CHUNK_SIZE) { ++ mchunkptr r = chunk_plus_offset(p, nb); ++ mchunkptr n = chunk_plus_offset(r, dsize); ++ set_inuse(m, p, nb); ++ set_size_and_pinuse_of_free_chunk(r, dsize); ++ clear_pinuse(n); ++ m->dvsize = dsize; ++ m->dv = r; ++ } ++ else { /* exhaust dv */ ++ size_t newsize = oldsize + dvs; ++ set_inuse(m, p, newsize); ++ m->dvsize = 0; ++ m->dv = 0; ++ } ++ newp = p; ++ } ++ } ++ else if (!cinuse(next)) { /* extend into next free chunk */ ++ size_t nextsize = chunksize(next); ++ if (oldsize + nextsize >= nb) { ++ size_t rsize = oldsize + nextsize - nb; ++ unlink_chunk(m, next, nextsize); ++ if (rsize < MIN_CHUNK_SIZE) { ++ size_t newsize = oldsize + nextsize; ++ set_inuse(m, p, newsize); ++ } ++ else { ++ mchunkptr r = chunk_plus_offset(p, nb); ++ set_inuse(m, p, nb); ++ set_inuse(m, r, rsize); ++ dispose_chunk(m, r, rsize); ++ } ++ newp = p; ++ } ++ } ++ } ++ else { ++ USAGE_ERROR_ACTION(m, chunk2mem(p)); ++ } ++ return newp; ++} ++ ++static void* internal_memalign(mstate m, size_t alignment, size_t bytes) { ++ void* mem = 0; ++ if (alignment < MIN_CHUNK_SIZE) /* must be at least a minimum chunk size */ ++ alignment = MIN_CHUNK_SIZE; ++ if ((alignment & (alignment-SIZE_T_ONE)) != 0) {/* Ensure a power of 2 */ ++ size_t a = MALLOC_ALIGNMENT << 1; ++ while (a < alignment) a <<= 1; ++ alignment = a; ++ } ++ if (bytes >= MAX_REQUEST - alignment) { ++ if (m != 0) { /* Test isn't needed but avoids compiler warning */ ++ MALLOC_FAILURE_ACTION; + } + } + else { + size_t nb = request2size(bytes); + size_t req = nb + alignment + MIN_CHUNK_SIZE - CHUNK_OVERHEAD; +- char* mem = (char*)internal_malloc(m, req); ++ mem = internal_malloc(m, req); + if (mem != 0) { +- void* leader = 0; +- void* trailer = 0; + mchunkptr p = mem2chunk(mem); +- +- if (PREACTION(m)) return 0; +- if ((((size_t)(mem)) % alignment) != 0) { /* misaligned */ ++ if (PREACTION(m)) ++ return 0; ++ if ((((size_t)(mem)) & (alignment - 1)) != 0) { /* misaligned */ + /* + Find an aligned spot inside chunk. Since we need to give + back leading space in a chunk of at least MIN_CHUNK_SIZE, if +@@ -4247,8 +4933,7 @@ static void* internal_memalign(mstate m, size_t alignment, size_t bytes) { + We've allocated enough total room so that this is always + possible. + */ +- char* br = (char*)mem2chunk((size_t)(((size_t)(mem + +- alignment - ++ char* br = (char*)mem2chunk((size_t)(((size_t)((char*)mem + alignment - + SIZE_T_ONE)) & + -alignment)); + char* pos = ((size_t)(br - (char*)(p)) >= MIN_CHUNK_SIZE)? +@@ -4259,12 +4944,12 @@ static void* internal_memalign(mstate m, size_t alignment, size_t bytes) { + + if (is_mmapped(p)) { /* For mmapped chunks, just adjust offset */ + newp->prev_foot = p->prev_foot + leadsize; +- newp->head = (newsize|CINUSE_BIT); ++ newp->head = newsize; + } + else { /* Otherwise, give back leader, use the rest */ + set_inuse(m, newp, newsize); + set_inuse(m, p, leadsize); +- leader = chunk2mem(p); ++ dispose_chunk(m, p, leadsize); + } + p = newp; + } +@@ -4277,41 +4962,32 @@ static void* internal_memalign(mstate m, size_t alignment, size_t bytes) { + mchunkptr remainder = chunk_plus_offset(p, nb); + set_inuse(m, p, nb); + set_inuse(m, remainder, remainder_size); +- trailer = chunk2mem(remainder); ++ dispose_chunk(m, remainder, remainder_size); + } + } + ++ mem = chunk2mem(p); + assert (chunksize(p) >= nb); +- assert((((size_t)(chunk2mem(p))) % alignment) == 0); ++ assert(((size_t)mem & (alignment - 1)) == 0); + check_inuse_chunk(m, p); + POSTACTION(m); +- if (leader != 0) { +- internal_free(m, leader); +- } +- if (trailer != 0) { +- internal_free(m, trailer); +- } +- return chunk2mem(p); + } + } +- return 0; ++ return mem; + } + +-/* ------------------------ comalloc/coalloc support --------------------- */ +- ++/* ++ Common support for independent_X routines, handling ++ all of the combinations that can result. ++ The opts arg has: ++ bit 0 set if all elements are same size (using sizes[0]) ++ bit 1 set if elements should be zeroed ++*/ + static void** ialloc(mstate m, + size_t n_elements, + size_t* sizes, + int opts, + void* chunks[]) { +- /* +- This provides common support for independent_X routines, handling +- all of the combinations that can result. +- +- The opts arg has: +- bit 0 set if all elements are same size (using sizes[0]) +- bit 1 set if elements should be zeroed +- */ + + size_t element_size; /* chunksize of each element, if all same */ + size_t contents_size; /* total size of elements */ +@@ -4325,6 +5001,7 @@ static void** ialloc(mstate m, + size_t size; + size_t i; + ++ ensure_initialization(); + /* compute array length, if needed */ + if (chunks != 0) { + if (n_elements == 0) +@@ -4412,335 +5089,266 @@ static void** ialloc(mstate m, + assert(remainder_size == element_size); + } + else { +- assert(remainder_size == request2size(sizes[i])); +- } +- check_inuse_chunk(m, mem2chunk(marray)); +- } +- for (i = 0; i != n_elements; ++i) +- check_inuse_chunk(m, mem2chunk(marray[i])); +- +-#endif /* DEBUG */ +- +- POSTACTION(m); +- return marray; +-} +- +- +-/* -------------------------- public routines ---------------------------- */ +- +-#if !ONLY_MSPACES +- +-void* dlmalloc(size_t bytes) { +- /* +- Basic algorithm: +- If a small request (< 256 bytes minus per-chunk overhead): +- 1. If one exists, use a remainderless chunk in associated smallbin. +- (Remainderless means that there are too few excess bytes to +- represent as a chunk.) +- 2. If it is big enough, use the dv chunk, which is normally the +- chunk adjacent to the one used for the most recent small request. +- 3. If one exists, split the smallest available chunk in a bin, +- saving remainder in dv. +- 4. If it is big enough, use the top chunk. +- 5. If available, get memory from system and use it +- Otherwise, for a large request: +- 1. Find the smallest available binned chunk that fits, and use it +- if it is better fitting than dv chunk, splitting if necessary. +- 2. If better fitting than any binned chunk, use the dv chunk. +- 3. If it is big enough, use the top chunk. +- 4. If request size >= mmap threshold, try to directly mmap this chunk. +- 5. If available, get memory from system and use it +- +- The ugly goto's here ensure that postaction occurs along all paths. +- */ +- +- if (!PREACTION(gm)) { +- void* mem; +- size_t nb; +- if (bytes <= MAX_SMALL_REQUEST) { +- bindex_t idx; +- binmap_t smallbits; +- nb = (bytes < MIN_REQUEST)? MIN_CHUNK_SIZE : pad_request(bytes); +- idx = small_index(nb); +- smallbits = gm->smallmap >> idx; +- +- if ((smallbits & 0x3U) != 0) { /* Remainderless fit to a smallbin. */ +- mchunkptr b, p; +- idx += ~smallbits & 1; /* Uses next bin if idx empty */ +- b = smallbin_at(gm, idx); +- p = b->fd; +- assert(chunksize(p) == small_index2size(idx)); +- unlink_first_small_chunk(gm, b, p, idx); +- set_inuse_and_pinuse(gm, p, small_index2size(idx)); +- mem = chunk2mem(p); +- check_malloced_chunk(gm, mem, nb); +- goto postaction; +- } +- +- else if (nb > gm->dvsize) { +- if (smallbits != 0) { /* Use chunk in next nonempty smallbin */ +- mchunkptr b, p, r; +- size_t rsize; +- bindex_t i; +- binmap_t leftbits = (smallbits << idx) & left_bits(idx2bit(idx)); +- binmap_t leastbit = least_bit(leftbits); +- compute_bit2idx(leastbit, i); +- b = smallbin_at(gm, i); +- p = b->fd; +- assert(chunksize(p) == small_index2size(i)); +- unlink_first_small_chunk(gm, b, p, i); +- rsize = small_index2size(i) - nb; +- /* Fit here cannot be remainderless if 4byte sizes */ +- if (SIZE_T_SIZE != 4 && rsize < MIN_CHUNK_SIZE) +- set_inuse_and_pinuse(gm, p, small_index2size(i)); +- else { +- set_size_and_pinuse_of_inuse_chunk(gm, p, nb); +- r = chunk_plus_offset(p, nb); +- set_size_and_pinuse_of_free_chunk(r, rsize); +- replace_dv(gm, r, rsize); +- } +- mem = chunk2mem(p); +- check_malloced_chunk(gm, mem, nb); +- goto postaction; +- } +- +- else if (gm->treemap != 0 && (mem = tmalloc_small(gm, nb)) != 0) { +- check_malloced_chunk(gm, mem, nb); +- goto postaction; +- } +- } +- } +- else if (bytes >= MAX_REQUEST) +- nb = MAX_SIZE_T; /* Too big to allocate. Force failure (in sys alloc) */ +- else { +- nb = pad_request(bytes); +- if (gm->treemap != 0 && (mem = tmalloc_large(gm, nb)) != 0) { +- check_malloced_chunk(gm, mem, nb); +- goto postaction; +- } +- } +- +- if (nb <= gm->dvsize) { +- size_t rsize = gm->dvsize - nb; +- mchunkptr p = gm->dv; +- if (rsize >= MIN_CHUNK_SIZE) { /* split dv */ +- mchunkptr r = gm->dv = chunk_plus_offset(p, nb); +- gm->dvsize = rsize; +- set_size_and_pinuse_of_free_chunk(r, rsize); +- set_size_and_pinuse_of_inuse_chunk(gm, p, nb); +- } +- else { /* exhaust dv */ +- size_t dvs = gm->dvsize; +- gm->dvsize = 0; +- gm->dv = 0; +- set_inuse_and_pinuse(gm, p, dvs); +- } +- mem = chunk2mem(p); +- check_malloced_chunk(gm, mem, nb); +- goto postaction; +- } +- +- else if (nb < gm->topsize) { /* Split top */ +- size_t rsize = gm->topsize -= nb; +- mchunkptr p = gm->top; +- mchunkptr r = gm->top = chunk_plus_offset(p, nb); +- r->head = rsize | PINUSE_BIT; +- set_size_and_pinuse_of_inuse_chunk(gm, p, nb); +- mem = chunk2mem(p); +- check_top_chunk(gm, gm->top); +- check_malloced_chunk(gm, mem, nb); +- goto postaction; +- } +- +- mem = sys_alloc(gm, nb); +- +- postaction: +- POSTACTION(gm); +- return mem; +- } +- +- return 0; +-} +- +-void dlfree(void* mem) { +- /* +- Consolidate freed chunks with preceeding or succeeding bordering +- free chunks, if they exist, and then place in a bin. Intermixed +- with special cases for top, dv, mmapped chunks, and usage errors. +- */ +- +- if (mem != 0) { +- mchunkptr p = mem2chunk(mem); +-#if FOOTERS +- mstate fm = get_mstate_for(p); +- if (!ok_magic(fm)) { +- USAGE_ERROR_ACTION(fm, p); +- return; +- } +-#else /* FOOTERS */ +-#define fm gm +-#endif /* FOOTERS */ +- if (!PREACTION(fm)) { +- check_inuse_chunk(fm, p); +- if (RTCHECK(ok_address(fm, p) && ok_cinuse(p))) { +- size_t psize = chunksize(p); +- mchunkptr next = chunk_plus_offset(p, psize); +- if (!pinuse(p)) { +- size_t prevsize = p->prev_foot; +- if ((prevsize & IS_MMAPPED_BIT) != 0) { +- prevsize &= ~IS_MMAPPED_BIT; +- psize += prevsize + MMAP_FOOT_PAD; +- if (CALL_MUNMAP((char*)p - prevsize, psize) == 0) +- fm->footprint -= psize; +- goto postaction; +- } +- else { +- mchunkptr prev = chunk_minus_offset(p, prevsize); +- psize += prevsize; +- p = prev; +- if (RTCHECK(ok_address(fm, prev))) { /* consolidate backward */ +- if (p != fm->dv) { +- unlink_chunk(fm, p, prevsize); +- } +- else if ((next->head & INUSE_BITS) == INUSE_BITS) { +- fm->dvsize = psize; +- set_free_with_pinuse(p, psize, next); +- goto postaction; +- } +- } +- else +- goto erroraction; +- } +- } ++ assert(remainder_size == request2size(sizes[i])); ++ } ++ check_inuse_chunk(m, mem2chunk(marray)); ++ } ++ for (i = 0; i != n_elements; ++i) ++ check_inuse_chunk(m, mem2chunk(marray[i])); + +- if (RTCHECK(ok_next(p, next) && ok_pinuse(next))) { +- if (!cinuse(next)) { /* consolidate forward */ +- if (next == fm->top) { +- size_t tsize = fm->topsize += psize; +- fm->top = p; +- p->head = tsize | PINUSE_BIT; +- if (p == fm->dv) { +- fm->dv = 0; +- fm->dvsize = 0; +- } +- if (should_trim(fm, tsize)) +- sys_trim(fm, 0); +- goto postaction; +- } +- else if (next == fm->dv) { +- size_t dsize = fm->dvsize += psize; +- fm->dv = p; +- set_size_and_pinuse_of_free_chunk(p, dsize); +- goto postaction; +- } +- else { +- size_t nsize = chunksize(next); +- psize += nsize; +- unlink_chunk(fm, next, nsize); +- set_size_and_pinuse_of_free_chunk(p, psize); +- if (p == fm->dv) { +- fm->dvsize = psize; +- goto postaction; +- } +- } ++#endif /* DEBUG */ ++ ++ POSTACTION(m); ++ return marray; ++} ++ ++/* Try to free all pointers in the given array. ++ Note: this could be made faster, by delaying consolidation, ++ at the price of disabling some user integrity checks, We ++ still optimize some consolidations by combining adjacent ++ chunks before freeing, which will occur often if allocated ++ with ialloc or the array is sorted. ++*/ ++static size_t internal_bulk_free(mstate m, void* array[], size_t nelem) { ++ size_t unfreed = 0; ++ if (!PREACTION(m)) { ++ void** a; ++ void** fence = &(array[nelem]); ++ for (a = array; a != fence; ++a) { ++ void* mem = *a; ++ if (mem != 0) { ++ mchunkptr p = mem2chunk(mem); ++ size_t psize = chunksize(p); ++#if FOOTERS ++ if (get_mstate_for(p) != m) { ++ ++unfreed; ++ continue; ++ } ++#endif ++ check_inuse_chunk(m, p); ++ *a = 0; ++ if (RTCHECK(ok_address(m, p) && ok_inuse(p))) { ++ void ** b = a + 1; /* try to merge with next chunk */ ++ mchunkptr next = next_chunk(p); ++ if (b != fence && *b == chunk2mem(next)) { ++ size_t newsize = chunksize(next) + psize; ++ set_inuse(m, p, newsize); ++ *b = chunk2mem(p); + } + else +- set_free_with_pinuse(p, psize, next); ++ dispose_chunk(m, p, psize); ++ } ++ else { ++ CORRUPTION_ERROR_ACTION(m); ++ break; ++ } ++ } ++ } ++ if (should_trim(m, m->topsize)) ++ sys_trim(m, 0); ++ POSTACTION(m); ++ } ++ return unfreed; ++} + +- if (is_small(psize)) { +- insert_small_chunk(fm, p, psize); +- check_free_chunk(fm, p); ++/* Traversal */ ++#if MALLOC_INSPECT_ALL ++static void internal_inspect_all(mstate m, ++ void(*handler)(void *start, ++ void *end, ++ size_t used_bytes, ++ void* callback_arg), ++ void* arg) { ++ if (is_initialized(m)) { ++ mchunkptr top = m->top; ++ msegmentptr s; ++ for (s = &m->seg; s != 0; s = s->next) { ++ mchunkptr q = align_as_chunk(s->base); ++ while (segment_holds(s, q) && q->head != FENCEPOST_HEAD) { ++ mchunkptr next = next_chunk(q); ++ size_t sz = chunksize(q); ++ size_t used; ++ void* start; ++ if (is_inuse(q)) { ++ used = sz - CHUNK_OVERHEAD; /* must not be mmapped */ ++ start = chunk2mem(q); ++ } ++ else { ++ used = 0; ++ if (is_small(sz)) { /* offset by possible bookkeeping */ ++ start = (void*)((char*)q + sizeof(struct malloc_chunk)); + } + else { +- tchunkptr tp = (tchunkptr)p; +- insert_large_chunk(fm, tp, psize); +- check_free_chunk(fm, p); +- if (--fm->release_checks == 0) +- release_unused_segments(fm); ++ start = (void*)((char*)q + sizeof(struct malloc_tree_chunk)); + } +- goto postaction; + } ++ if (start < (void*)next) /* skip if all space is bookkeeping */ ++ handler(start, next, used, arg); ++ if (q == top) ++ break; ++ q = next; + } +- erroraction: +- USAGE_ERROR_ACTION(fm, p); +- postaction: +- POSTACTION(fm); + } + } +-#if !FOOTERS +-#undef fm +-#endif /* FOOTERS */ + } ++#endif /* MALLOC_INSPECT_ALL */ + +-void* dlcalloc(size_t n_elements, size_t elem_size) { +- void* mem; +- size_t req = 0; +- if (n_elements != 0) { +- req = n_elements * elem_size; +- if (((n_elements | elem_size) & ~(size_t)0xffff) && +- (req / n_elements != elem_size)) +- req = MAX_SIZE_T; /* force downstream failure on overflow */ +- } +- mem = dlmalloc(req); +- if (mem != 0 && calloc_must_clear(mem2chunk(mem))) +- memset(mem, 0, req); +- return mem; +-} ++/* ------------------ Exported realloc, memalign, etc -------------------- */ ++ ++#if !ONLY_MSPACES + + void* dlrealloc(void* oldmem, size_t bytes) { +- if (oldmem == 0) +- return dlmalloc(bytes); ++ void* mem = 0; ++ if (oldmem == 0) { ++ mem = dlmalloc(bytes); ++ } ++ else if (bytes >= MAX_REQUEST) { ++ MALLOC_FAILURE_ACTION; ++ } + #ifdef REALLOC_ZERO_BYTES_FREES +- if (bytes == 0) { ++ else if (bytes == 0) { + dlfree(oldmem); +- return 0; + } + #endif /* REALLOC_ZERO_BYTES_FREES */ + else { ++ size_t nb = request2size(bytes); ++ mchunkptr oldp = mem2chunk(oldmem); + #if ! FOOTERS + mstate m = gm; + #else /* FOOTERS */ +- mstate m = get_mstate_for(mem2chunk(oldmem)); ++ mstate m = get_mstate_for(oldp); + if (!ok_magic(m)) { + USAGE_ERROR_ACTION(m, oldmem); + return 0; + } + #endif /* FOOTERS */ +- return internal_realloc(m, oldmem, bytes); ++ if (!PREACTION(m)) { ++ mchunkptr newp = try_realloc_chunk(m, oldp, nb, 1); ++ POSTACTION(m); ++ if (newp != 0) { ++ check_inuse_chunk(m, newp); ++ mem = chunk2mem(newp); ++ } ++ else { ++ mem = internal_malloc(m, bytes); ++ if (mem != 0) { ++ size_t oc = chunksize(oldp) - overhead_for(oldp); ++ memcpy(mem, oldmem, (oc < bytes)? oc : bytes); ++ internal_free(m, oldmem); ++ } ++ } ++ } + } ++ return mem; + } + +-void* dlmemalign(size_t alignment, size_t bytes) { +- return internal_memalign(gm, alignment, bytes); ++void* dlrealloc_in_place(void* oldmem, size_t bytes) { ++ void* mem = 0; ++ if (oldmem != 0) { ++ if (bytes >= MAX_REQUEST) { ++ MALLOC_FAILURE_ACTION; ++ } ++ else { ++ size_t nb = request2size(bytes); ++ mchunkptr oldp = mem2chunk(oldmem); ++#if ! FOOTERS ++ mstate m = gm; ++#else /* FOOTERS */ ++ mstate m = get_mstate_for(oldp); ++ if (!ok_magic(m)) { ++ USAGE_ERROR_ACTION(m, oldmem); ++ return 0; ++ } ++#endif /* FOOTERS */ ++ if (!PREACTION(m)) { ++ mchunkptr newp = try_realloc_chunk(m, oldp, nb, 0); ++ POSTACTION(m); ++ if (newp == oldp) { ++ check_inuse_chunk(m, newp); ++ mem = oldmem; ++ } ++ } ++ } ++ } ++ return mem; + } + +-void** dlindependent_calloc(size_t n_elements, size_t elem_size, +- void* chunks[]) { +- size_t sz = elem_size; /* serves as 1-element array */ +- return ialloc(gm, n_elements, &sz, 3, chunks); ++void* dlmemalign(size_t alignment, size_t bytes) { ++ if (alignment <= MALLOC_ALIGNMENT) { ++ return dlmalloc(bytes); ++ } ++ return internal_memalign(gm, alignment, bytes); + } + +-void** dlindependent_comalloc(size_t n_elements, size_t sizes[], +- void* chunks[]) { +- return ialloc(gm, n_elements, sizes, 0, chunks); ++int dlposix_memalign(void** pp, size_t alignment, size_t bytes) { ++ void* mem = 0; ++ if (alignment == MALLOC_ALIGNMENT) ++ mem = dlmalloc(bytes); ++ else { ++ size_t d = alignment / sizeof(void*); ++ size_t r = alignment % sizeof(void*); ++ if (r != 0 || d == 0 || (d & (d-SIZE_T_ONE)) != 0) ++ return EINVAL; ++ else if (bytes <= MAX_REQUEST - alignment) { ++ if (alignment < MIN_CHUNK_SIZE) ++ alignment = MIN_CHUNK_SIZE; ++ mem = internal_memalign(gm, alignment, bytes); ++ } ++ } ++ if (mem == 0) ++ return ENOMEM; ++ else { ++ *pp = mem; ++ return 0; ++ } + } + + void* dlvalloc(size_t bytes) { + size_t pagesz; +- init_mparams(); ++ ensure_initialization(); + pagesz = mparams.page_size; + return dlmemalign(pagesz, bytes); + } + + void* dlpvalloc(size_t bytes) { + size_t pagesz; +- init_mparams(); ++ ensure_initialization(); + pagesz = mparams.page_size; + return dlmemalign(pagesz, (bytes + pagesz - SIZE_T_ONE) & ~(pagesz - SIZE_T_ONE)); + } + ++void** dlindependent_calloc(size_t n_elements, size_t elem_size, ++ void* chunks[]) { ++ size_t sz = elem_size; /* serves as 1-element array */ ++ return ialloc(gm, n_elements, &sz, 3, chunks); ++} ++ ++void** dlindependent_comalloc(size_t n_elements, size_t sizes[], ++ void* chunks[]) { ++ return ialloc(gm, n_elements, sizes, 0, chunks); ++} ++ ++size_t dlbulk_free(void* array[], size_t nelem) { ++ return internal_bulk_free(gm, array, nelem); ++} ++ ++#if MALLOC_INSPECT_ALL ++void dlmalloc_inspect_all(void(*handler)(void *start, ++ void *end, ++ size_t used_bytes, ++ void* callback_arg), ++ void* arg) { ++ ensure_initialization(); ++ if (!PREACTION(gm)) { ++ internal_inspect_all(gm, handler, arg); ++ POSTACTION(gm); ++ } ++} ++#endif /* MALLOC_INSPECT_ALL */ ++ + int dlmalloc_trim(size_t pad) { + int result = 0; ++ ensure_initialization(); + if (!PREACTION(gm)) { + result = sys_trim(gm, pad); + POSTACTION(gm); +@@ -4756,29 +5364,47 @@ size_t dlmalloc_max_footprint(void) { + return gm->max_footprint; + } + ++size_t dlmalloc_footprint_limit(void) { ++ size_t maf = gm->footprint_limit; ++ return maf == 0 ? MAX_SIZE_T : maf; ++} ++ ++size_t dlmalloc_set_footprint_limit(size_t bytes) { ++ size_t result; /* invert sense of 0 */ ++ if (bytes == 0) ++ result = granularity_align(1); /* Use minimal size */ ++ if (bytes == MAX_SIZE_T) ++ result = 0; /* disable */ ++ else ++ result = granularity_align(bytes); ++ return gm->footprint_limit = result; ++} ++ + #if !NO_MALLINFO + struct mallinfo dlmallinfo(void) { + return internal_mallinfo(gm); + } + #endif /* NO_MALLINFO */ + ++#if !NO_MALLOC_STATS + void dlmalloc_stats() { + internal_malloc_stats(gm); + } ++#endif /* NO_MALLOC_STATS */ ++ ++int dlmallopt(int param_number, int value) { ++ return change_mparam(param_number, value); ++} + + size_t dlmalloc_usable_size(void* mem) { + if (mem != 0) { + mchunkptr p = mem2chunk(mem); +- if (cinuse(p)) ++ if (is_inuse(p)) + return chunksize(p) - overhead_for(p); + } + return 0; + } + +-int dlmallopt(int param_number, int value) { +- return change_mparam(param_number, value); +-} +- + #endif /* !ONLY_MSPACES */ + + /* ----------------------------- user mspaces ---------------------------- */ +@@ -4791,8 +5417,8 @@ static mstate init_user_mstate(char* tbase, size_t tsize) { + mchunkptr msp = align_as_chunk(tbase); + mstate m = (mstate)(chunk2mem(msp)); + memset(m, 0, msize); +- INITIAL_LOCK(&m->mutex); +- msp->head = (msize|PINUSE_BIT|CINUSE_BIT); ++ (void)INITIAL_LOCK(&m->mutex); ++ msp->head = (msize|INUSE_BITS); + m->seg.base = m->least_addr = tbase; + m->seg.size = m->footprint = m->max_footprint = tsize; + m->magic = mparams.magic; +@@ -4810,9 +5436,9 @@ static mstate init_user_mstate(char* tbase, size_t tsize) { + + mspace create_mspace(size_t capacity, int locked) { + mstate m = 0; +- size_t msize = pad_request(sizeof(struct malloc_state)); +- init_mparams(); /* Ensure pagesize etc initialized */ +- ++ size_t msize; ++ ensure_initialization(); ++ msize = pad_request(sizeof(struct malloc_state)); + if (capacity < (size_t) -(msize + TOP_FOOT_SIZE + mparams.page_size)) { + size_t rs = ((capacity == 0)? mparams.granularity : + (capacity + TOP_FOOT_SIZE + msize)); +@@ -4820,7 +5446,7 @@ mspace create_mspace(size_t capacity, int locked) { + char* tbase = (char*)(CALL_MMAP(tsize)); + if (tbase != CMFAIL) { + m = init_user_mstate(tbase, tsize); +- m->seg.sflags = IS_MMAPPED_BIT; ++ m->seg.sflags = USE_MMAP_BIT; + set_lock(m, locked); + } + } +@@ -4829,9 +5455,9 @@ mspace create_mspace(size_t capacity, int locked) { + + mspace create_mspace_with_base(void* base, size_t capacity, int locked) { + mstate m = 0; +- size_t msize = pad_request(sizeof(struct malloc_state)); +- init_mparams(); /* Ensure pagesize etc initialized */ +- ++ size_t msize; ++ ensure_initialization(); ++ msize = pad_request(sizeof(struct malloc_state)); + if (capacity > msize + TOP_FOOT_SIZE && + capacity < (size_t) -(msize + TOP_FOOT_SIZE + mparams.page_size)) { + m = init_user_mstate((char*)base, capacity); +@@ -4841,17 +5467,36 @@ mspace create_mspace_with_base(void* base, size_t capacity, int locked) { + return (mspace)m; + } + ++int mspace_track_large_chunks(mspace msp, int enable) { ++ int ret = 0; ++ mstate ms = (mstate)msp; ++ if (!PREACTION(ms)) { ++ if (!use_mmap(ms)) { ++ ret = 1; ++ } ++ if (!enable) { ++ enable_mmap(ms); ++ } else { ++ disable_mmap(ms); ++ } ++ POSTACTION(ms); ++ } ++ return ret; ++} ++ + size_t destroy_mspace(mspace msp) { + size_t freed = 0; + mstate ms = (mstate)msp; + if (ok_magic(ms)) { + msegmentptr sp = &ms->seg; ++ (void)DESTROY_LOCK(&ms->mutex); /* destroy before unmapped */ + while (sp != 0) { + char* base = sp->base; + size_t size = sp->size; + flag_t flag = sp->sflags; ++ (void)base; /* placate people compiling -Wunused-variable */ + sp = sp->next; +- if ((flag & IS_MMAPPED_BIT) && !(flag & EXTERN_BIT) && ++ if ((flag & USE_MMAP_BIT) && !(flag & EXTERN_BIT) && + CALL_MUNMAP(base, size) == 0) + freed += size; + } +@@ -4867,7 +5512,6 @@ size_t destroy_mspace(mspace msp) { + versions. This is not so nice but better than the alternatives. + */ + +- + void* mspace_malloc(mspace msp, size_t bytes) { + mstate ms = (mstate)msp; + if (!ok_magic(ms)) { +@@ -4987,6 +5631,7 @@ void mspace_free(mspace msp, void* mem) { + mchunkptr p = mem2chunk(mem); + #if FOOTERS + mstate fm = get_mstate_for(p); ++ (void)msp; /* placate people compiling -Wunused */ + #else /* FOOTERS */ + mstate fm = (mstate)msp; + #endif /* FOOTERS */ +@@ -4996,13 +5641,12 @@ void mspace_free(mspace msp, void* mem) { + } + if (!PREACTION(fm)) { + check_inuse_chunk(fm, p); +- if (RTCHECK(ok_address(fm, p) && ok_cinuse(p))) { ++ if (RTCHECK(ok_address(fm, p) && ok_inuse(p))) { + size_t psize = chunksize(p); + mchunkptr next = chunk_plus_offset(p, psize); + if (!pinuse(p)) { + size_t prevsize = p->prev_foot; +- if ((prevsize & IS_MMAPPED_BIT) != 0) { +- prevsize &= ~IS_MMAPPED_BIT; ++ if (is_mmapped(p)) { + psize += prevsize + MMAP_FOOT_PAD; + if (CALL_MUNMAP((char*)p - prevsize, psize) == 0) + fm->footprint -= psize; +@@ -5104,27 +5748,80 @@ void* mspace_calloc(mspace msp, size_t n_elements, size_t elem_size) { + } + + void* mspace_realloc(mspace msp, void* oldmem, size_t bytes) { +- if (oldmem == 0) +- return mspace_malloc(msp, bytes); ++ void* mem = 0; ++ if (oldmem == 0) { ++ mem = mspace_malloc(msp, bytes); ++ } ++ else if (bytes >= MAX_REQUEST) { ++ MALLOC_FAILURE_ACTION; ++ } + #ifdef REALLOC_ZERO_BYTES_FREES +- if (bytes == 0) { ++ else if (bytes == 0) { + mspace_free(msp, oldmem); +- return 0; + } + #endif /* REALLOC_ZERO_BYTES_FREES */ + else { +-#if FOOTERS +- mchunkptr p = mem2chunk(oldmem); +- mstate ms = get_mstate_for(p); ++ size_t nb = request2size(bytes); ++ mchunkptr oldp = mem2chunk(oldmem); ++#if ! FOOTERS ++ mstate m = (mstate)msp; + #else /* FOOTERS */ +- mstate ms = (mstate)msp; +-#endif /* FOOTERS */ +- if (!ok_magic(ms)) { +- USAGE_ERROR_ACTION(ms,ms); ++ mstate m = get_mstate_for(oldp); ++ if (!ok_magic(m)) { ++ USAGE_ERROR_ACTION(m, oldmem); + return 0; + } +- return internal_realloc(ms, oldmem, bytes); ++#endif /* FOOTERS */ ++ if (!PREACTION(m)) { ++ mchunkptr newp = try_realloc_chunk(m, oldp, nb, 1); ++ POSTACTION(m); ++ if (newp != 0) { ++ check_inuse_chunk(m, newp); ++ mem = chunk2mem(newp); ++ } ++ else { ++ mem = mspace_malloc(m, bytes); ++ if (mem != 0) { ++ size_t oc = chunksize(oldp) - overhead_for(oldp); ++ memcpy(mem, oldmem, (oc < bytes)? oc : bytes); ++ mspace_free(m, oldmem); ++ } ++ } ++ } ++ } ++ return mem; ++} ++ ++void* mspace_realloc_in_place(mspace msp, void* oldmem, size_t bytes) { ++ void* mem = 0; ++ if (oldmem != 0) { ++ if (bytes >= MAX_REQUEST) { ++ MALLOC_FAILURE_ACTION; ++ } ++ else { ++ size_t nb = request2size(bytes); ++ mchunkptr oldp = mem2chunk(oldmem); ++#if ! FOOTERS ++ mstate m = (mstate)msp; ++#else /* FOOTERS */ ++ mstate m = get_mstate_for(oldp); ++ (void)msp; /* placate people compiling -Wunused */ ++ if (!ok_magic(m)) { ++ USAGE_ERROR_ACTION(m, oldmem); ++ return 0; ++ } ++#endif /* FOOTERS */ ++ if (!PREACTION(m)) { ++ mchunkptr newp = try_realloc_chunk(m, oldp, nb, 0); ++ POSTACTION(m); ++ if (newp == oldp) { ++ check_inuse_chunk(m, newp); ++ mem = oldmem; ++ } ++ } ++ } + } ++ return mem; + } + + void* mspace_memalign(mspace msp, size_t alignment, size_t bytes) { +@@ -5133,6 +5830,8 @@ void* mspace_memalign(mspace msp, size_t alignment, size_t bytes) { + USAGE_ERROR_ACTION(ms,ms); + return 0; + } ++ if (alignment <= MALLOC_ALIGNMENT) ++ return mspace_malloc(msp, bytes); + return internal_memalign(ms, alignment, bytes); + } + +@@ -5157,6 +5856,30 @@ void** mspace_independent_comalloc(mspace msp, size_t n_elements, + return ialloc(ms, n_elements, sizes, 0, chunks); + } + ++size_t mspace_bulk_free(mspace msp, void* array[], size_t nelem) { ++ return internal_bulk_free((mstate)msp, array, nelem); ++} ++ ++#if MALLOC_INSPECT_ALL ++void mspace_inspect_all(mspace msp, ++ void(*handler)(void *start, ++ void *end, ++ size_t used_bytes, ++ void* callback_arg), ++ void* arg) { ++ mstate ms = (mstate)msp; ++ if (ok_magic(ms)) { ++ if (!PREACTION(ms)) { ++ internal_inspect_all(ms, handler, arg); ++ POSTACTION(ms); ++ } ++ } ++ else { ++ USAGE_ERROR_ACTION(ms,ms); ++ } ++} ++#endif /* MALLOC_INSPECT_ALL */ ++ + int mspace_trim(mspace msp, size_t pad) { + int result = 0; + mstate ms = (mstate)msp; +@@ -5172,6 +5895,7 @@ int mspace_trim(mspace msp, size_t pad) { + return result; + } + ++#if !NO_MALLOC_STATS + void mspace_malloc_stats(mspace msp) { + mstate ms = (mstate)msp; + if (ok_magic(ms)) { +@@ -5181,6 +5905,7 @@ void mspace_malloc_stats(mspace msp) { + USAGE_ERROR_ACTION(ms,ms); + } + } ++#endif /* NO_MALLOC_STATS */ + + size_t mspace_footprint(mspace msp) { + size_t result = 0; +@@ -5194,7 +5919,6 @@ size_t mspace_footprint(mspace msp) { + return result; + } + +- + size_t mspace_max_footprint(mspace msp) { + size_t result = 0; + mstate ms = (mstate)msp; +@@ -5207,6 +5931,36 @@ size_t mspace_max_footprint(mspace msp) { + return result; + } + ++size_t mspace_footprint_limit(mspace msp) { ++ size_t result = 0; ++ mstate ms = (mstate)msp; ++ if (ok_magic(ms)) { ++ size_t maf = ms->footprint_limit; ++ result = (maf == 0) ? MAX_SIZE_T : maf; ++ } ++ else { ++ USAGE_ERROR_ACTION(ms,ms); ++ } ++ return result; ++} ++ ++size_t mspace_set_footprint_limit(mspace msp, size_t bytes) { ++ size_t result = 0; ++ mstate ms = (mstate)msp; ++ if (ok_magic(ms)) { ++ if (bytes == 0) ++ result = granularity_align(1); /* Use minimal size */ ++ if (bytes == MAX_SIZE_T) ++ result = 0; /* disable */ ++ else ++ result = granularity_align(bytes); ++ ms->footprint_limit = result; ++ } ++ else { ++ USAGE_ERROR_ACTION(ms,ms); ++ } ++ return result; ++} + + #if !NO_MALLINFO + struct mallinfo mspace_mallinfo(mspace msp) { +@@ -5218,10 +5972,10 @@ struct mallinfo mspace_mallinfo(mspace msp) { + } + #endif /* NO_MALLINFO */ + +-size_t mspace_usable_size(void* mem) { ++size_t mspace_usable_size(const void* mem) { + if (mem != 0) { + mchunkptr p = mem2chunk(mem); +- if (cinuse(p)) ++ if (is_inuse(p)) + return chunksize(p) - overhead_for(p); + } + return 0; +@@ -5233,6 +5987,7 @@ int mspace_mallopt(int param_number, int value) { + + #endif /* MSPACES */ + ++ + /* -------------------- Alternative MORECORE functions ------------------- */ + + /* +@@ -5327,14 +6082,43 @@ int mspace_mallopt(int param_number, int value) { + + /* ----------------------------------------------------------------------- + History: +- V2.8.4 (not yet released) ++ v2.8.6 Wed Aug 29 06:57:58 2012 Doug Lea ++ * fix bad comparison in dlposix_memalign ++ * don't reuse adjusted asize in sys_alloc ++ * add LOCK_AT_FORK -- thanks to Kirill Artamonov for the suggestion ++ * reduce compiler warnings -- thanks to all who reported/suggested these ++ ++ v2.8.5 Sun May 22 10:26:02 2011 Doug Lea (dl at gee) ++ * Always perform unlink checks unless INSECURE ++ * Add posix_memalign. ++ * Improve realloc to expand in more cases; expose realloc_in_place. ++ Thanks to Peter Buhr for the suggestion. ++ * Add footprint_limit, inspect_all, bulk_free. Thanks ++ to Barry Hayes and others for the suggestions. ++ * Internal refactorings to avoid calls while holding locks ++ * Use non-reentrant locks by default. Thanks to Roland McGrath ++ for the suggestion. ++ * Small fixes to mspace_destroy, reset_on_error. ++ * Various configuration extensions/changes. Thanks ++ to all who contributed these. ++ ++ V2.8.4a Thu Apr 28 14:39:43 2011 (dl at gee.cs.oswego.edu) ++ * Update Creative Commons URL ++ ++ V2.8.4 Wed May 27 09:56:23 2009 Doug Lea (dl at gee) ++ * Use zeros instead of prev foot for is_mmapped ++ * Add mspace_track_large_chunks; thanks to Jean Brouwers ++ * Fix set_inuse in internal_realloc; thanks to Jean Brouwers ++ * Fix insufficient sys_alloc padding when using 16byte alignment + * Fix bad error check in mspace_footprint +- * Adaptations for ptmalloc, courtesy of Wolfram Gloger. +- * Reentrant spin locks, courtesy of Earl Chew and others +- * Win32 improvements, courtesy of Niall Douglas and Earl Chew ++ * Adaptations for ptmalloc; thanks to Wolfram Gloger. ++ * Reentrant spin locks; thanks to Earl Chew and others ++ * Win32 improvements; thanks to Niall Douglas and Earl Chew + * Add NO_SEGMENT_TRAVERSAL and MAX_RELEASE_CHECK_RATE options +- * Various small adjustments to reduce warnings on some compilers + * Extension hook in malloc_state ++ * Various small adjustments to reduce warnings on some compilers ++ * Various configuration extensions/changes for more platforms. Thanks ++ to all who contributed these. + + V2.8.3 Thu Sep 22 11:16:32 2005 Doug Lea (dl at gee) + * Add max_footprint functions +@@ -5514,5 +6298,3 @@ History: + structure of old version, but most details differ.) + + */ +- +- +diff --git a/charm-6.10.2/src/conv-core/memory-gnu.C b/charm-6.10.2/src/conv-core/memory-gnu.C +index 248c3b09b4..a77ac43111 100644 +--- a/charm-6.10.2/src/conv-core/memory-gnu.C ++++ b/charm-6.10.2/src/conv-core/memory-gnu.C +@@ -6,6 +6,7 @@ This version of ptmalloc3 is hacked in following ways: + - Add definitions for ONLY_MSPACES, MSPACES, USE_LOCKS + - Rename malloc.c to memory-gnu-internal.C and include here + - Merge thread files to generate memory-gnu-threads.h ++ - Updated dlmalloc to 2.8.6 + */ + + #define CMI_MEMORY_GNU +@@ -94,7 +95,7 @@ the chunk to the user, if necessary. */ + /* end of definitions replicated from malloc.c */ + + #define munmap_chunk(mst, p) do { \ +- size_t prevsize = (p)->prev_foot & ~IS_MMAPPED_BIT; \ ++ size_t prevsize = (p)->prev_foot; \ + size_t psize = chunksize(p) + prevsize + MMAP_FOOT_PAD; \ + if (CALL_MUNMAP((char*)(p) - prevsize, psize) == 0) \ + ((struct malloc_state*)(mst))->footprint -= psize; \ diff --git a/easybuild/easyconfigs/n/NASM/NASM-2.15.05-GCCcore-10.3.0.eb b/easybuild/easyconfigs/n/NASM/NASM-2.15.05-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..5740659c1d4 --- /dev/null +++ b/easybuild/easyconfigs/n/NASM/NASM-2.15.05-GCCcore-10.3.0.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'NASM' +version = '2.15.05' + +homepage = 'https://www.nasm.us/' + +description = """NASM: General-purpose x86 assembler""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://www.nasm.us/pub/nasm/releasebuilds/%(version)s'] +sources = [SOURCELOWER_TAR_BZ2] +checksums = ['3c4b8339e5ab54b1bcb2316101f8985a5da50a3f9e504d43fa6f35668bee2fd0'] + +builddependencies = [ + ('binutils', '2.36.1'), +] + +sanity_check_paths = { + 'files': ['bin/nasm'], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/n/NLopt/NLopt-2.7.0-GCCcore-10.3.0.eb b/easybuild/easyconfigs/n/NLopt/NLopt-2.7.0-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..36b5e0becd6 --- /dev/null +++ b/easybuild/easyconfigs/n/NLopt/NLopt-2.7.0-GCCcore-10.3.0.eb @@ -0,0 +1,33 @@ +easyblock = 'CMakeMake' + +name = 'NLopt' +version = '2.7.0' + +homepage = 'http://ab-initio.mit.edu/wiki/index.php/NLopt' +description = """ NLopt is a free/open-source library for nonlinear optimization, + providing a common interface for a number of different free optimization routines + available online as well as original implementations of various other algorithms. """ + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/stevengj/nlopt/archive'] +sources = ['v%(version)s.tar.gz'] +checksums = ['b881cc2a5face5139f1c5a30caf26b7d3cb43d69d5e423c9d78392f99844499f'] + +builddependencies = [ + ('CMake', '3.20.1'), + ('binutils', '2.36.1'), +] + +configopts = [ + '-DBUILD_SHARED_LIBS=ON', + '-DBUILD_SHARED_LIBS=OFF' +] + +sanity_check_paths = { + 'files': ['lib/libnlopt.a', 'lib/libnlopt.%s' % SHLIB_EXT, 'include/nlopt.h'], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/n/NSPR/NSPR-4.30-GCCcore-10.3.0.eb b/easybuild/easyconfigs/n/NSPR/NSPR-4.30-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..112137d7461 --- /dev/null +++ b/easybuild/easyconfigs/n/NSPR/NSPR-4.30-GCCcore-10.3.0.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'NSPR' +version = '4.30' + +homepage = 'https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSPR' +description = """Netscape Portable Runtime (NSPR) provides a platform-neutral API for system level + and libc-like functions.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://ftp.mozilla.org/pub/nspr/releases/v%(version)s/src/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['8d4cd8f8409484dc4c3d31e180354bfc506573eccf86cd691106a1ef7edc913b'] + +builddependencies = [('binutils', '2.36.1')] + +configopts = "--disable-debug --enable-optimize --enable-64bit" + +sanity_check_paths = { + 'files': ['bin/nspr-config', 'lib/libnspr%(version_major)s.a', 'lib/libnspr%%(version_major)s.%s' % SHLIB_EXT, + 'lib/libplc%(version_major)s.a', 'lib/libplc%%(version_major)s.%s' % SHLIB_EXT, + 'lib/libplds%(version_major)s.a', 'lib/libplds%%(version_major)s.%s' % SHLIB_EXT, + 'lib/pkgconfig/nspr.pc'], + 'dirs': ['include/nspr'], +} + +sanity_check_commands = ["nspr-config --version"] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/NSS/NSS-3.65-GCCcore-10.3.0.eb b/easybuild/easyconfigs/n/NSS/NSS-3.65-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..296cd207c79 --- /dev/null +++ b/easybuild/easyconfigs/n/NSS/NSS-3.65-GCCcore-10.3.0.eb @@ -0,0 +1,50 @@ +easyblock = 'MakeCp' + +name = 'NSS' +version = '3.65' + +homepage = 'https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS' +description = """Network Security Services (NSS) is a set of libraries designed to support cross-platform development + of security-enabled client and server applications.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://ftp.mozilla.org/pub/security/nss/releases/NSS_%(version_major)s_%(version_minor)s_RTM/src/'] +sources = [SOURCELOWER_TAR_GZ] +patches = [ + 'NSS-3.39_pkgconfig.patch', +] +checksums = [ + '32170f6c188212a78bf9fdacffa2eeed0d564ef8faae63fd8ae971b208e8c637', # nss-3.65.tar.gz + '5c4b55842e5afd1e8e67b90635f6474510b89242963c4ac2622d3e3da9062774', # NSS-3.39_pkgconfig.patch +] + +builddependencies = [('binutils', '2.36.1')] + +dependencies = [ + ('NSPR', '4.30'), + ('zlib', '1.2.11'), +] + +# building in parallel fails +parallel = 1 + +# fix for not being able to find header files +buildopts = 'BUILD_OPT=1 USE_64=1 CPATH="$EBROOTNSPR/include/nspr:$CPATH" ' +# fix c standard causing missing functions +buildopts += 'OS_REL_CFLAGS="-D_XOPEN_SOURCE " && ' +# also install pkgconfig file (see patch) +buildopts += "cd config && make PREFIX=%(installdir)s BUILD_OPT=1 USE_64=1 && cd -" +# optional testsuite (takes a long time) +# buildopts += " && cd %(builddir)s/%(namelower)s-%(version)s/%(namelower)s/tests && BUILD_OPT=1 USE_64=1 ./all.sh " + +files_to_copy = ['../dist/Linux*.OBJ/*', (['../dist/public/*'], 'include')] + +sanity_check_paths = { + 'files': ['lib/libnss.a'], + 'dirs': ['bin', 'include/dbm', 'include/nss'], +} + +modextrapaths = {'CPATH': 'include/nss'} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/NVHPC/NVHPC-20.11.eb b/easybuild/easyconfigs/n/NVHPC/NVHPC-20.11.eb index 7491da7ed42..d284520538b 100644 --- a/easybuild/easyconfigs/n/NVHPC/NVHPC-20.11.eb +++ b/easybuild/easyconfigs/n/NVHPC/NVHPC-20.11.eb @@ -6,8 +6,8 @@ description = """C, C++ and Fortran compilers included with the NVIDIA HPC SDK ( toolchain = SYSTEM -# By downloading, you accept the HPC SDK Software License Agreement (https://docs.nvidia.com/hpc-sdk/eula/index.html) -accept_eula = True +# By downloading, you accept the HPC SDK Software License Agreement +# https://docs.nvidia.com/hpc-sdk/eula/index.html source_urls = ['https://developer.download.nvidia.com/hpc-sdk/%(version)s/'] local_tarball_tmpl = 'nvhpc_2020_%%(version_major)s%%(version_minor)s_Linux_%s_cuda_multi.tar.gz' sources = [local_tarball_tmpl % '%(arch)s'] diff --git a/easybuild/easyconfigs/n/NVHPC/NVHPC-20.7.eb b/easybuild/easyconfigs/n/NVHPC/NVHPC-20.7.eb index bfb5c8222c0..48e81e6c353 100644 --- a/easybuild/easyconfigs/n/NVHPC/NVHPC-20.7.eb +++ b/easybuild/easyconfigs/n/NVHPC/NVHPC-20.7.eb @@ -6,10 +6,9 @@ description = """C, C++ and Fortran compilers included with the NVIDIA HPC SDK ( toolchain = SYSTEM -# NVHPC can be downloaded freely from NVIDIA's website at https://developer.nvidia.com/hpc-sdk -# It requires accepting the HPC SDK Software License Agreement (https://docs.nvidia.com/hpc-sdk/eula/index.html) -# If you accept the License Agreement, you may also uncomment the following line to automatically download the sources -# source_urls = ['https://developer.download.nvidia.com/hpc-sdk/%(version)s/'] +# By downloading, you accept the HPC SDK Software License Agreement +# https://docs.nvidia.com/hpc-sdk/eula/index.html +source_urls = ['https://developer.download.nvidia.com/hpc-sdk/%(version)s/'] sources = ['nvhpc_2020_%(version_major)s%(version_minor)s_Linux_x86_64_cuda_multi.tar.gz'] checksums = ['a5c5c8726d2210f2310a852c6d6e03c9ef8c75e3643e9c94e24909f5e9c2ea7a'] diff --git a/easybuild/easyconfigs/n/NVHPC/NVHPC-20.9.eb b/easybuild/easyconfigs/n/NVHPC/NVHPC-20.9.eb index 121eaa45535..ff21a9bc94f 100644 --- a/easybuild/easyconfigs/n/NVHPC/NVHPC-20.9.eb +++ b/easybuild/easyconfigs/n/NVHPC/NVHPC-20.9.eb @@ -6,8 +6,8 @@ description = """C, C++ and Fortran compilers included with the NVIDIA HPC SDK ( toolchain = SYSTEM -# By downloading, you accept the HPC SDK Software License Agreement (https://docs.nvidia.com/hpc-sdk/eula/index.html) -accept_eula = True +# By downloading, you accept the HPC SDK Software License Agreement +# https://docs.nvidia.com/hpc-sdk/eula/index.html source_urls = ['https://developer.download.nvidia.com/hpc-sdk/%(version)s/'] local_tarball_tmpl = 'nvhpc_2020_%%(version_major)s%%(version_minor)s_Linux_%s_cuda_multi.tar.gz' sources = [local_tarball_tmpl % '%(arch)s'] diff --git a/easybuild/easyconfigs/n/NVHPC/NVHPC-21.2.eb b/easybuild/easyconfigs/n/NVHPC/NVHPC-21.2.eb index 81a0d1f4af1..628b83138be 100644 --- a/easybuild/easyconfigs/n/NVHPC/NVHPC-21.2.eb +++ b/easybuild/easyconfigs/n/NVHPC/NVHPC-21.2.eb @@ -9,8 +9,8 @@ description = """C, C++ and Fortran compilers included with the NVIDIA HPC SDK ( toolchain = SYSTEM -# By downloading, you accept the HPC SDK Software License Agreement (https://docs.nvidia.com/hpc-sdk/eula/index.html) -accept_eula = True +# By downloading, you accept the HPC SDK Software License Agreement +# https://docs.nvidia.com/hpc-sdk/eula/index.html source_urls = ['https://developer.download.nvidia.com/hpc-sdk/%(version)s/'] local_tarball_tmpl = 'nvhpc_2021_%%(version_major)s%%(version_minor)s_Linux_%s_cuda_multi.tar.gz' sources = [local_tarball_tmpl % '%(arch)s'] diff --git a/easybuild/easyconfigs/n/NWChem/NWChem-7.0.2-intel-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/n/NWChem/NWChem-7.0.2-intel-2019b-Python-3.7.4.eb new file mode 100644 index 00000000000..e176204adb4 --- /dev/null +++ b/easybuild/easyconfigs/n/NWChem/NWChem-7.0.2-intel-2019b-Python-3.7.4.eb @@ -0,0 +1,38 @@ +name = 'NWChem' +version = '7.0.2' +versionsuffix = '-Python-%(pyver)s' +local_verdate = '2020-10-12' +local_revision = 'b9985dfa' + +homepage = 'https://www.nwchem-sw.org' +description = """NWChem aims to provide its users with computational chemistry tools that are scalable both in + their ability to treat large scientific computational chemistry problems efficiently, and in their use of available + parallel computing resources from high-performance parallel supercomputers to conventional workstation clusters. + NWChem software can handle: biomolecules, nanostructures, and solid-state; from quantum to classical, and all + combinations; Gaussian basis functions or plane-waves; scaling from one to thousands of processors; properties + and relativity.""" + +toolchain = {'name': 'intel', 'version': '2019b'} +toolchainopts = {'i8': True} + +source_urls = ['https://github.com/nwchemgit/nwchem/releases/download/v%(version)s-release/'] +sources = ['nwchem-%%(version)s-release.revision-%s-src.%s.tar.bz2' % (local_revision, local_verdate)] +patches = [ + 'NWChem_fix-date.patch', +] +checksums = [ + # nwchem-7.0.2-release.revision-b9985dfa-src.2020-10-12.tar.bz2 + 'd9d19d87e70abf43d61b2d34e60c293371af60d14df4a6333bf40ea63f6dc8ce', + '215ec54f6132f2c9306bd636456722a36f0f1d98a67a0c8cbd10c5d1eed68feb', # NWChem_fix-date.patch +] + +dependencies = [ + ('GlobalArrays', '5.7.2', '-peigs'), + ('Python', '3.7.4'), +] + +preconfigopts = 'export EXTRA_LIBS=-lutil && ' + +modules = 'all python' + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/n/NetPIPE/NetPIPE-5.1.4-gompi-2020b.eb b/easybuild/easyconfigs/n/NetPIPE/NetPIPE-5.1.4-gompi-2020b.eb new file mode 100644 index 00000000000..fa9aaae0180 --- /dev/null +++ b/easybuild/easyconfigs/n/NetPIPE/NetPIPE-5.1.4-gompi-2020b.eb @@ -0,0 +1,41 @@ +easyblock = 'MakeCp' + +name = 'NetPIPE' +version = '5.1.4' + +homepage = 'https://netpipe.cs.ksu.edu/' +description = """NetPIPE is a protocol independent communication performance benchmark that visually represents + the network performance under a variety of conditions.""" + +toolchain = {'name': 'gompi', 'version': '2020b'} + +source_urls = ['https://netpipe.cs.ksu.edu/download/'] +sources = ['NetPIPE-%(version)s.tar.gz'] +checksums = ['738abeb9665877332d4b0cada2f15f766259809d0e31a29e327bfbf86b7e0183'] + +local_common_buildopts = 'CC="$CC" CFLAGS="$CFLAGS -lrt -fcommon"' + +# possible values: disk, ibverbs, memcpy, mpi, shmem, tcp, theo +# shmem requires shmem.h (must be provided by OS?) +buildopts = [ + 'disk ' + local_common_buildopts, + 'ibverbs ' + local_common_buildopts, + 'memcpy ' + local_common_buildopts, + 'mpi ' + local_common_buildopts, + 'tcp ' + local_common_buildopts, + 'theo ' + local_common_buildopts, +] + +files_to_copy = [(['NP*'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/NPdisk', 'bin/NPibverbs', 'bin/NPmemcpy', 'bin/NPmpi', 'bin/NPtcp', 'bin/NPtheo'], + 'dirs': [], +} + +sanity_check_commands = [ + "NPmpi --help", + "NPtcp --help", +] + +moduleclass = 'perf' diff --git a/easybuild/easyconfigs/n/NetPIPE/NetPIPE-5.1.4-iimpi-2020b.eb b/easybuild/easyconfigs/n/NetPIPE/NetPIPE-5.1.4-iimpi-2020b.eb new file mode 100644 index 00000000000..73fab7b5480 --- /dev/null +++ b/easybuild/easyconfigs/n/NetPIPE/NetPIPE-5.1.4-iimpi-2020b.eb @@ -0,0 +1,41 @@ +easyblock = 'MakeCp' + +name = 'NetPIPE' +version = '5.1.4' + +homepage = 'https://netpipe.cs.ksu.edu/' +description = """NetPIPE is a protocol independent communication performance benchmark that visually represents + the network performance under a variety of conditions.""" + +toolchain = {'name': 'iimpi', 'version': '2020b'} + +source_urls = ['https://netpipe.cs.ksu.edu/download/'] +sources = ['NetPIPE-%(version)s.tar.gz'] +checksums = ['738abeb9665877332d4b0cada2f15f766259809d0e31a29e327bfbf86b7e0183'] + +local_common_buildopts = 'CC="$CC" CFLAGS="$CFLAGS -lrt"' + +# possible values: disk, ibverbs, memcpy, mpi, shmem, tcp, theo +# shmem requires shmem.h (must be provided by OS?) +buildopts = [ + 'disk ' + local_common_buildopts, + 'ibverbs ' + local_common_buildopts, + 'memcpy ' + local_common_buildopts, + 'mpi ' + local_common_buildopts, + 'tcp ' + local_common_buildopts, + 'theo ' + local_common_buildopts, +] + +files_to_copy = [(['NP*'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/NPdisk', 'bin/NPibverbs', 'bin/NPmemcpy', 'bin/NPmpi', 'bin/NPtcp', 'bin/NPtheo'], + 'dirs': [], +} + +sanity_check_commands = [ + "NPmpi --help", + "NPtcp --help", +] + +moduleclass = 'perf' diff --git a/easybuild/easyconfigs/n/NewHybrids/NewHybrids-1.1_Beta3-GCC-10.2.0.eb b/easybuild/easyconfigs/n/NewHybrids/NewHybrids-1.1_Beta3-GCC-10.2.0.eb new file mode 100644 index 00000000000..8f96c2cc11d --- /dev/null +++ b/easybuild/easyconfigs/n/NewHybrids/NewHybrids-1.1_Beta3-GCC-10.2.0.eb @@ -0,0 +1,51 @@ +# Author: Denis Krišťák (INUITS) +# License: GPLv2 + +easyblock = 'Binary' + +name = 'NewHybrids' +version = '1.1_Beta3' + +homepage = 'https://ib.berkeley.edu/labs/slatkin/eriq/software/software.htm#NewHybs' +description = """This implements a Gibbs sampler to estimate the posterior probability that genetically sampled +individuals fall into each of a set of user-defined hybrid categories.""" + +toolchain = {'name': 'GCC', 'version': '10.2.0'} + +sources = [{ + 'filename': SOURCE_TAR_GZ, + 'git_config': { + 'url': 'https://github.com/eriqande', + 'repo_name': 'newhybrids', + 'commit': '6fc8fd9ca6e64ee0be08af12ec8bfe73a7de00cc', + 'recursive': True, + } +}] +checksums = [None] + +extract_sources = True + +# options to be used in compilation +local_compiler_options = "$CC $CFLAGS $CPPFLAGS " + +local_compile_script = "%(builddir)s/newhybrids/Compile-with-no-gui-Linux.sh" +# replacing hardcoded compilation cmd with general options +install_cmd = "sed -i -e 's/gcc -O3/%s/g' %s && " % (local_compiler_options, local_compile_script) +# running compilation script +install_cmd += "%s && " % local_compile_script +# create and copy created binaries & test data +install_cmd += "mkdir %(installdir)s/bin && " +install_cmd += "cp -a %(builddir)s/newhybrids/newhybrids-no-gui-linux.exe %(installdir)s/bin/newhybs && " +install_cmd += "cp -ar %(builddir)s/newhybrids/test_data %(installdir)s/" + +sanity_check_paths = { + 'files': ['bin/newhybs'], + 'dirs': ['test_data'], +} + +sanity_check_commands = [ + # don't run longer than 4 minutes, otherwise it's probably stuck (no test_data found) + 'timeout 240 newhybs -d %(installdir)s/test_data/TestDat.txt --no-gui | grep "Output is in the following files"', +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/n/NiBabel/NiBabel-3.2.1-foss-2020b.eb b/easybuild/easyconfigs/n/NiBabel/NiBabel-3.2.1-foss-2020b.eb new file mode 100644 index 00000000000..5ee1fef6ce9 --- /dev/null +++ b/easybuild/easyconfigs/n/NiBabel/NiBabel-3.2.1-foss-2020b.eb @@ -0,0 +1,46 @@ +easyblock = 'PythonBundle' + +name = 'NiBabel' +version = '3.2.1' + +homepage = 'https://nipy.github.io/nibabel' +description = """NiBabel provides read/write access to some common medical and neuroimaging file formats, + including: ANALYZE (plain, SPM99, SPM2 and later), GIFTI, NIfTI1, NIfTI2, MINC1, MINC2, MGH and ECAT + as well as Philips PAR/REC. We can read and write Freesurfer geometry, and read Freesurfer morphometry and + annotation files. There is some very limited support for DICOM. NiBabel is the successor of PyNIfTI.""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), + ('Pillow', '8.0.1'), + ('pydicom', '2.1.2'), +] + +use_pip = True + +exts_list = [ + ('bz2file', '0.98', { + 'checksums': ['64c1f811e31556ba9931953c8ec7b397488726c63e09a4c67004f43bdd28da88'], + }), + ('nibabel', version, { + 'checksums': ['4d2ff9426b740011a1c916b54fc25da9348282e727eaa2ea163f42e00f1fc29e'], + }), +] + +fix_python_shebang_for = ['bin/*'] + +sanity_check_paths = { + 'files': ['bin/nib-dicomfs', 'bin/nib-diff', 'bin/nib-ls', 'bin/nib-nifti-dx', 'bin/parrec2nii'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + "nib-diff --help", + "parrec2nii --help", +] + +sanity_pip_check = True + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/n/Nilearn/Nilearn-0.7.1-foss-2020b.eb b/easybuild/easyconfigs/n/Nilearn/Nilearn-0.7.1-foss-2020b.eb new file mode 100644 index 00000000000..0dacbc34871 --- /dev/null +++ b/easybuild/easyconfigs/n/Nilearn/Nilearn-0.7.1-foss-2020b.eb @@ -0,0 +1,29 @@ +easyblock = 'PythonPackage' + +name = 'Nilearn' +version = '0.7.1' + +homepage = 'https://nilearn.github.io/' +description = """Nilearn is a Python module for fast and easy statistical learning on NeuroImaging data.""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +sources = [SOURCELOWER_TAR_GZ] +checksums = ['8b1409a5e1f0f6d1a1f02555c2f11115a2364f45f1e57bcb5fb3c9ea11f346fa'] + +dependencies = [ + ('Python', '3.8.6'), + ('NiBabel', '3.2.1'), + ('scikit-learn', '0.23.2'), +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/n/Nim/Nim-1.4.6-GCCcore-10.2.0.eb b/easybuild/easyconfigs/n/Nim/Nim-1.4.6-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..58f3d9cdb0c --- /dev/null +++ b/easybuild/easyconfigs/n/Nim/Nim-1.4.6-GCCcore-10.2.0.eb @@ -0,0 +1,17 @@ +name = 'Nim' +version = '1.4.6' + +homepage = 'https://nim-lang.org/' +description = "Nim is a systems and applications programming language." + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['https://nim-lang.org/download/'] +sources = [SOURCELOWER_TAR_XZ] +checksums = ['0fbc0f9282cffe85de99bc47bfa876525b9ddda2a2eae55c185a08804b98d3bd'] + +builddependencies = [('binutils', '2.35')] + +dependencies = [('libreadline', '8.0')] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/n/Ninja/Ninja-1.10.2-GCCcore-10.3.0.eb b/easybuild/easyconfigs/n/Ninja/Ninja-1.10.2-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..55f2ace9bbc --- /dev/null +++ b/easybuild/easyconfigs/n/Ninja/Ninja-1.10.2-GCCcore-10.3.0.eb @@ -0,0 +1,29 @@ +easyblock = 'CmdCp' + +name = 'Ninja' +version = '1.10.2' + +homepage = 'https://ninja-build.org/' +description = "Ninja is a small build system with a focus on speed." + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://github.com/ninja-build/ninja/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['ce35865411f0490368a8fc383f29071de6690cbadc27704734978221f25e2bed'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('Python', '3.9.5'), +] + +cmds_map = [('.*', "./configure.py --bootstrap")] + +files_to_copy = [(['ninja'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/ninja'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/n/ncurses/ncurses-6.2-FCC-4.5.0.eb b/easybuild/easyconfigs/n/ncurses/ncurses-6.2-FCC-4.5.0.eb new file mode 100644 index 00000000000..b037cf0613a --- /dev/null +++ b/easybuild/easyconfigs/n/ncurses/ncurses-6.2-FCC-4.5.0.eb @@ -0,0 +1,41 @@ +easyblock = 'ConfigureMake' + +name = 'ncurses' +version = '6.2' + +homepage = 'https://www.gnu.org/software/ncurses/' +description = """ + The Ncurses (new curses) library is a free software emulation of curses in + System V Release 4.0, and more. It uses Terminfo format, supports pads and + color and multiple highlights and forms characters and function-key mapping, + and has all the other SYSV-curses enhancements over BSD Curses. +""" + +toolchain = {'name': 'FCC', 'version': '4.5.0'} +toolchainopts = {'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['30306e0c76e0f9f1f0de987cf1c82a5c21e1ce6568b9227f7da5b71cbea86c9d'] + +builddependencies = [('binutils', '2.36.1')] + +local_common_configopts = "--with-shared --enable-overwrite --without-ada --enable-symlinks " +configopts = [ + # default build + local_common_configopts, + # the UTF-8 enabled version (ncursesw) + local_common_configopts + "--enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/", +] + +local_libs = ["form", "menu", "ncurses", "panel"] +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses%(version_major)s-config", + "reset", "tabs", "tic", "toe", "tput", "tset"]] + + ['lib/lib%s%s.a' % (x, y) for x in local_libs for y in ['', '_g', 'w', 'w_g']] + + ['lib/lib%s%s.%s' % (x, y, SHLIB_EXT) for x in local_libs for y in ['', 'w']] + + ['lib/libncurses++%s.a' % x for x in ['', 'w']], + 'dirs': ['include', 'include/ncursesw'], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/n/ncurses/ncurses-6.2-GCCcore-10.3.0.eb b/easybuild/easyconfigs/n/ncurses/ncurses-6.2-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..5d3035e81f4 --- /dev/null +++ b/easybuild/easyconfigs/n/ncurses/ncurses-6.2-GCCcore-10.3.0.eb @@ -0,0 +1,41 @@ +easyblock = 'ConfigureMake' + +name = 'ncurses' +version = '6.2' + +homepage = 'https://www.gnu.org/software/ncurses/' +description = """ + The Ncurses (new curses) library is a free software emulation of curses in + System V Release 4.0, and more. It uses Terminfo format, supports pads and + color and multiple highlights and forms characters and function-key mapping, + and has all the other SYSV-curses enhancements over BSD Curses. +""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['30306e0c76e0f9f1f0de987cf1c82a5c21e1ce6568b9227f7da5b71cbea86c9d'] + +builddependencies = [('binutils', '2.36.1')] + +local_common_configopts = "--with-shared --enable-overwrite --without-ada --enable-symlinks " +configopts = [ + # default build + local_common_configopts, + # the UTF-8 enabled version (ncursesw) + local_common_configopts + "--enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/", +] + +local_libs = ["form", "menu", "ncurses", "panel"] +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses%(version_major)s-config", + "reset", "tabs", "tic", "toe", "tput", "tset"]] + + ['lib/lib%s%s.a' % (x, y) for x in local_libs for y in ['', '_g', 'w', 'w_g']] + + ['lib/lib%s%s.%s' % (x, y, SHLIB_EXT) for x in local_libs for y in ['', 'w']] + + ['lib/libncurses++%s.a' % x for x in ['', 'w']], + 'dirs': ['include', 'include/ncursesw'], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/n/ncview/ncview-2.1.8-gompi-2020a.eb b/easybuild/easyconfigs/n/ncview/ncview-2.1.8-gompi-2020a.eb new file mode 100644 index 00000000000..c2bb7d60d5e --- /dev/null +++ b/easybuild/easyconfigs/n/ncview/ncview-2.1.8-gompi-2020a.eb @@ -0,0 +1,42 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +## +easyblock = 'ConfigureMake' + +name = 'ncview' +version = '2.1.8' + +homepage = 'http://meteora.ucsd.edu/~pierce/ncview_home_page.html' +description = """Ncview is a visual browser for netCDF format files. +Typically you would use ncview to get a quick and easy, push-button +look at your netCDF files. You can view simple movies of the data, +view along various dimensions, take a look at the actual data values, +change color maps, invert the data, etc.""" + +toolchain = {'name': 'gompi', 'version': '2020a'} +toolchainopts = {'usempi': True, 'pic': True} + +source_urls = ['ftp://cirrus.ucsd.edu/pub/ncview/'] +sources = [SOURCE_TAR_GZ] +checksums = ['e8badc507b9b774801288d1c2d59eb79ab31b004df4858d0674ed0d87dfc91be'] + +# specified compiler is hard checked against (full path to) compiler used for netCDF... +preconfigopts = "CC=$(which $CC) " +configopts = "--with-udunits2_incdir=$EBROOTUDUNITS/include --with-udunits2_libdir=$EBROOTUDUNITS/lib " +configopts += "--with-nc-config=$EBROOTNETCDF/bin/nc-config" + +dependencies = [ + ('netCDF', '4.7.4'), + ('netCDF-Fortran', '4.5.2'), + ('UDUNITS', '2.2.26'), + ('X11', '20200222'), + ('libpng', '1.6.37'), + ('zlib', '1.2.11'), +] + +sanity_check_paths = { + 'files': ['bin/ncview'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/n/netCDF-C++4/netCDF-C++4-4.3.1-iimpi-2020b.eb b/easybuild/easyconfigs/n/netCDF-C++4/netCDF-C++4-4.3.1-iimpi-2020b.eb new file mode 100644 index 00000000000..8ca2e428910 --- /dev/null +++ b/easybuild/easyconfigs/n/netCDF-C++4/netCDF-C++4-4.3.1-iimpi-2020b.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'netCDF-C++4' +version = '4.3.1' + +homepage = 'https://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries + and machine-independent data formats that support the creation, access, and sharing of array-oriented + scientific data.""" + +toolchain = {'name': 'iimpi', 'version': '2020b'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/Unidata/netcdf-cxx4/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['e3fe3d2ec06c1c2772555bf1208d220aab5fee186d04bd265219b0bc7a978edc'] + +dependencies = [('netCDF', '4.7.4')] + +sanity_check_paths = { + 'files': ['include/netcdf', 'lib/libnetcdf_c++4.a', 'lib/libnetcdf_c++4.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/n/netCDF-Fortran/netCDF-Fortran-4.5.2-gompic-2020a.eb b/easybuild/easyconfigs/n/netCDF-Fortran/netCDF-Fortran-4.5.2-gompic-2020a.eb new file mode 100644 index 00000000000..81b1ced7139 --- /dev/null +++ b/easybuild/easyconfigs/n/netCDF-Fortran/netCDF-Fortran-4.5.2-gompic-2020a.eb @@ -0,0 +1,25 @@ +name = 'netCDF-Fortran' +version = '4.5.2' + +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': 'gompic', 'version': '2020a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = ['https://github.com/Unidata/netcdf-fortran/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['0b05c629c70d6d224a3be28699c066bfdfeae477aea211fbf034d973a8309b49'] + +builddependencies = [ + ('M4', '1.4.18'), +] + +dependencies = [('netCDF', '4.7.4')] + +# (too) parallel build fails, but single-core build is fairly quick anyway (~1min) +parallel = 1 + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/n/netCDF-Fortran/netCDF-Fortran-4.5.3-gompic-2020b.eb b/easybuild/easyconfigs/n/netCDF-Fortran/netCDF-Fortran-4.5.3-gompic-2020b.eb new file mode 100644 index 00000000000..ca40c6a2e2b --- /dev/null +++ b/easybuild/easyconfigs/n/netCDF-Fortran/netCDF-Fortran-4.5.3-gompic-2020b.eb @@ -0,0 +1,25 @@ +name = 'netCDF-Fortran' +version = '4.5.3' + +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': 'gompic', 'version': '2020b'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = ['https://github.com/Unidata/netcdf-fortran/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['c6da30c2fe7e4e614c1dff4124e857afbd45355c6798353eccfa60c0702b495a'] + +builddependencies = [ + ('M4', '1.4.18'), +] + +dependencies = [('netCDF', '4.7.4')] + +# (too) parallel build fails, but single-core build is fairly quick anyway (~1min) +parallel = 1 + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/n/netCDF/netCDF-4.7.4-iimpic-2020b.eb b/easybuild/easyconfigs/n/netCDF/netCDF-4.7.4-iimpic-2020b.eb new file mode 100644 index 00000000000..e21bf6a3c6c --- /dev/null +++ b/easybuild/easyconfigs/n/netCDF/netCDF-4.7.4-iimpic-2020b.eb @@ -0,0 +1,38 @@ +name = 'netCDF' +version = '4.7.4' + +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': 'iimpic', 'version': '2020b'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = ['https://github.com/Unidata/netcdf-c/archive/'] +sources = ['v%(version)s.tar.gz'] +patches = ['netCDF-%(version)s_fix-ocdebug.patch'] +checksums = [ + '99930ad7b3c4c1a8e8831fb061cb02b2170fc8e5ccaeda733bd99c3b9d31666b', # v4.7.4.tar.gz + '94c9883005f189a4551947e04191a68199cf4cdcada4b2d313115720fb4690e9', # netCDF-4.7.4_fix-ocdebug.patch +] + +builddependencies = [ + ('Autotools', '20200321'), + ('CMake', '3.18.4'), + ('Doxygen', '1.8.20'), +] + +dependencies = [ + ('HDF5', '1.10.7'), + ('cURL', '7.72.0'), + ('Szip', '2.1.1'), +] + +# make sure both static and shared libs are built +configopts = [ + "-DBUILD_SHARED_LIBS=OFF ", + "-DBUILD_SHARED_LIBS=ON ", +] + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/n/nettle/nettle-3.7.2-GCCcore-10.3.0.eb b/easybuild/easyconfigs/n/nettle/nettle-3.7.2-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..b06f32114a1 --- /dev/null +++ b/easybuild/easyconfigs/n/nettle/nettle-3.7.2-GCCcore-10.3.0.eb @@ -0,0 +1,38 @@ +easyblock = 'ConfigureMake' + +name = 'nettle' +version = '3.7.2' + +homepage = 'https://www.lysator.liu.se/~nisse/nettle/' +description = """Nettle is a cryptographic library that is designed to fit easily + in more or less any context: In crypto toolkits for object-oriented + languages (C++, Python, Pike, ...), in applications like LSH or GNUPG, + or even in kernel space.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['8d2a604ef1cde4cd5fb77e422531ea25ad064679ff0adf956e78b3352e0ef162'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('Autotools', '20210128'), +] + +dependencies = [ + ('GMP', '6.2.1'), +] + +configopts = '--disable-openssl ' # openssl is just used for the nettle-openssl example and requires openssl 1.1 + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['nettle-hash', 'nettle-lfib-stream', 'pkcs1-conv', 'sexp-conv']] + + [('lib/libhogweed.a', 'lib64/libhogweed.a'), + ('lib/libhogweed.%s' % SHLIB_EXT, 'lib64/libhogweed.%s' % SHLIB_EXT), + ('lib/libnettle.a', 'lib64/libnettle.a'), + ('lib/libnettle.%s' % SHLIB_EXT, 'lib64/libnettle.%s' % SHLIB_EXT)], + 'dirs': ['include/nettle'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/networkTools/networkTools-2-GCC-9.3.0.eb b/easybuild/easyconfigs/n/networkTools/networkTools-2-GCC-9.3.0.eb new file mode 100644 index 00000000000..86f8c970c66 --- /dev/null +++ b/easybuild/easyconfigs/n/networkTools/networkTools-2-GCC-9.3.0.eb @@ -0,0 +1,30 @@ +# # +# This is a contribution from HPCNow! (http://hpcnow.com) +# Copyright:: HPCNow! +# Authors:: Erica Bianco , Helena Gomez +# License:: GPL-v3.0 +# # + +easyblock = 'MakeCp' + +name = 'networkTools' +version = '2' + +homepage = 'http://faculty.scs.illinois.edu/schulten/software/networkTools/' +description = """Dynamical Network Analysis is a method of characterizing allosteric +signalling through biomolecular complexes.""" + +toolchain = {'name': 'GCC', 'version': '9.3.0'} + +source_urls = ['http://faculty.scs.illinois.edu/schulten/software/networkTools'] +sources = ['%(name)s.tgz'] +checksums = ['fb98a414b56ab8b5dc57d97c67961a4cf311fc99f296bab44420513ecae70863'] + +files_to_copy = [(['%(builddir)s/%(name)s/gncommunities'], 'bin'), (['%(builddir)s/%(name)s/subopt'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/gncommunities', 'bin/subopt'], + 'dirs': [] +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/n/numactl/numactl-2.0.14-GCCcore-10.3.0.eb b/easybuild/easyconfigs/n/numactl/numactl-2.0.14-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..d7218d000ba --- /dev/null +++ b/easybuild/easyconfigs/n/numactl/numactl-2.0.14-GCCcore-10.3.0.eb @@ -0,0 +1,37 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'numactl' +version = '2.0.14' + +homepage = 'https://github.com/numactl/numactl' + +description = """ + The numactl program allows you to run your application program on specific + cpu's and memory nodes. It does this by supplying a NUMA memory policy to + the operating system before running your program. The libnuma library provides + convenient ways for you to add NUMA memory policies into your own program. +""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/numactl/numactl/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['1ee27abd07ff6ba140aaf9bc6379b37825e54496e01d6f7343330cf1a4487035'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('Autotools', '20210128'), +] + +preconfigopts = "./autogen.sh && " + +sanity_check_paths = { + 'files': ['bin/numactl', 'bin/numastat', 'lib/libnuma.%s' % SHLIB_EXT, 'lib/libnuma.a'], + 'dirs': ['share/man', 'include'] +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-5.7-iimpi-2020b.eb b/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-5.7-iimpi-2020b.eb new file mode 100644 index 00000000000..0762e17f6cc --- /dev/null +++ b/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-5.7-iimpi-2020b.eb @@ -0,0 +1,28 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'OSU-Micro-Benchmarks' +version = '5.7' + +homepage = 'https://mvapich.cse.ohio-state.edu/benchmarks/' +description = """OSU Micro-Benchmarks""" + +toolchain = {'name': 'iimpi', 'version': '2020b'} + +source_urls = ['https://mvapich.cse.ohio-state.edu/download/mvapich/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['1470ebe00eb6ca7f160b2c1efda57ca0fb26b5c4c61148a3f17e8e79fbf34590'] + +configopts = 'CC="$MPICC" CXX="$MPICC"' + +local_benchmark_dirs = ['libexec/osu-micro-benchmarks/mpi/%s' % x for x in ['collective', 'one-sided', 'pt2pt']] +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-5.7.1-ffmpi-4.5.0.eb b/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-5.7.1-ffmpi-4.5.0.eb new file mode 100644 index 00000000000..af9ecac7a08 --- /dev/null +++ b/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-5.7.1-ffmpi-4.5.0.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'OSU-Micro-Benchmarks' +version = '5.7.1' + +homepage = 'https://mvapich.cse.ohio-state.edu/benchmarks/' +description = """OSU Micro-Benchmarks""" + +toolchain = {'name': 'ffmpi', 'version': '4.5.0'} +toolchainopts = {'usempi': True} + +source_urls = ['https://mvapich.cse.ohio-state.edu/download/mvapich/'] +sources = [SOURCELOWER_TGZ] +checksums = ['cb5ce4e2e68ed012d9952e96ef880a802058c87a1d840a2093b19bddc7faa165'] + +local_benchmark_dirs = ['libexec/osu-micro-benchmarks/mpi/%s' % x for x in ['collective', 'one-sided', 'pt2pt']] +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-5.7.1-gompi-2021a.eb b/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-5.7.1-gompi-2021a.eb new file mode 100644 index 00000000000..561f053d707 --- /dev/null +++ b/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-5.7.1-gompi-2021a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'OSU-Micro-Benchmarks' +version = '5.7.1' + +homepage = 'http://mvapich.cse.ohio-state.edu/benchmarks/' +description = """OSU Micro-Benchmarks""" + +toolchain = {'name': 'gompi', 'version': '2021a'} +toolchainopts = {'usempi': True} + +source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich/'] +sources = [SOURCELOWER_TGZ] +checksums = ['cb5ce4e2e68ed012d9952e96ef880a802058c87a1d840a2093b19bddc7faa165'] + +local_benchmark_dirs = ['libexec/osu-micro-benchmarks/mpi/%s' % x for x in ['collective', 'one-sided', 'pt2pt']] +modextrapaths = {'PATH': local_benchmark_dirs} + +sanity_check_paths = { + 'files': [], + 'dirs': local_benchmark_dirs, +} + +moduleclass = 'perf' diff --git a/easybuild/easyconfigs/o/Octopus-vcf/Octopus-vcf-0.7.1-foss-2020b.eb b/easybuild/easyconfigs/o/Octopus-vcf/Octopus-vcf-0.7.1-foss-2020b.eb new file mode 100644 index 00000000000..191282689e4 --- /dev/null +++ b/easybuild/easyconfigs/o/Octopus-vcf/Octopus-vcf-0.7.1-foss-2020b.eb @@ -0,0 +1,49 @@ +easyblock = 'CMakeMakeCp' + +# To avoid a naming clash +name = 'Octopus-vcf' +version = '0.7.1' + +homepage = 'https://github.com/luntergroup/octopus' +description = """Octopus is a mapping-based variant caller that implements several calling models within + a unified haplotype-aware framework. Octopus takes inspiration from particle filtering by constructing a + tree of haplotypes and dynamically pruning and extending the tree based on haplotype posterior probabilities + in a sequential manner. This allows octopus to implicitly consider all possible haplotypes at a given loci in + reasonable time.""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +source_urls = ['https://github.com/luntergroup/octopus/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['b544121cb132634a1156e79c0a2ff19abacd3fb4ad5b711dec9dc664b6fcf49a'] + +builddependencies = [ + ('CMake', '3.18.4'), + ('git', '2.28.0', '-nodocs'), +] + +dependencies = [ + ('Boost', '1.74.0'), + ('HTSlib', '1.11'), + ('GMP', '6.2.0'), + ('Python', '3.8.6'), +] + +configopts = '-DHTSlib_NO_SYSTEM_PATHS=TRUE -DHTSLIB_ROOT=$EBROOTHTSLIB ' + +separate_build_dir = True + +files_to_copy = [ + (['%(builddir)s/easybuild_obj/src/octopus'], 'bin'), + 'doc', 'lib', 'LICENSE', 'logo.png', 'README.md', + 'resources', 'scripts', 'test' +] + +sanity_check_commands = ['octopus -h'] + +sanity_check_paths = { + 'files': ['bin/octopus'], + 'dirs': ['doc', 'lib', 'resources'] +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/o/Octopus-vcf/Octopus-vcf-0.7.2-foss-2020b.eb b/easybuild/easyconfigs/o/Octopus-vcf/Octopus-vcf-0.7.2-foss-2020b.eb new file mode 100644 index 00000000000..4ee59d1df1c --- /dev/null +++ b/easybuild/easyconfigs/o/Octopus-vcf/Octopus-vcf-0.7.2-foss-2020b.eb @@ -0,0 +1,49 @@ +easyblock = 'CMakeMakeCp' + +# To avoid a naming clash +name = 'Octopus-vcf' +version = '0.7.2' + +homepage = 'https://github.com/luntergroup/octopus' +description = """Octopus is a mapping-based variant caller that implements several calling models within + a unified haplotype-aware framework. Octopus takes inspiration from particle filtering by constructing a + tree of haplotypes and dynamically pruning and extending the tree based on haplotype posterior probabilities + in a sequential manner. This allows octopus to implicitly consider all possible haplotypes at a given loci in + reasonable time.""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +source_urls = ['https://github.com/luntergroup/octopus/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['887096c7357b1ba7f0653f9ad34fa32f56f80ba618fe4daaf6837d4737e7838d'] + +builddependencies = [ + ('CMake', '3.18.4'), + ('git', '2.28.0', '-nodocs'), +] + +dependencies = [ + ('Boost', '1.74.0'), + ('HTSlib', '1.11'), + ('GMP', '6.2.0'), + ('Python', '3.8.6'), +] + +configopts = '-DHTSlib_NO_SYSTEM_PATHS=TRUE -DHTSLIB_ROOT=$EBROOTHTSLIB ' + +separate_build_dir = True + +files_to_copy = [ + (['%(builddir)s/easybuild_obj/src/octopus'], 'bin'), + 'doc', 'lib', 'LICENSE', 'logo.png', 'README.md', + 'resources', 'scripts', 'test' +] + +sanity_check_commands = ['octopus -h'] + +sanity_check_paths = { + 'files': ['bin/octopus'], + 'dirs': ['doc', 'lib', 'resources'] +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/o/Open-Data-Cube-Core/Open-Data-Cube-Core-1.8.3-foss-2020a-Python-3.8.2.eb b/easybuild/easyconfigs/o/Open-Data-Cube-Core/Open-Data-Cube-Core-1.8.3-foss-2020a-Python-3.8.2.eb index 91bef6e4738..3e08610425b 100644 --- a/easybuild/easyconfigs/o/Open-Data-Cube-Core/Open-Data-Cube-Core-1.8.3-foss-2020a-Python-3.8.2.eb +++ b/easybuild/easyconfigs/o/Open-Data-Cube-Core/Open-Data-Cube-Core-1.8.3-foss-2020a-Python-3.8.2.eb @@ -25,9 +25,6 @@ dependencies = [ ('xarray', '0.16.1', versionsuffix), ] -local_ver = 'version="%(version)s"' -local_preinstallopts = r"sed -i 's/\(setup(\)/\1%s,/g' setup.py && " % local_ver - exts_list = [ ('cachetools', '4.1.1', { 'checksums': ['bbaa39c3dede00175df2dc2b03d0cf18dd2d32a7de7beb68072d13043c9edb20'], @@ -50,7 +47,6 @@ exts_list = [ }), ('datacube', version, { 'checksums': ['d1e1a49c615fdaebf6e6008da7f925bc09e9d7bf94f259a1c596d266d1c36649'], - 'preinstallopts': local_preinstallopts, }), ] diff --git a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.12-GCC-10.2.0.eb b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.12-GCC-10.2.0.eb index 8d522bf0132..f3346d9db0a 100644 --- a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.12-GCC-10.2.0.eb +++ b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.12-GCC-10.2.0.eb @@ -15,11 +15,16 @@ sources = ['v%(version)s.tar.gz'] patches = [ ('large.tgz', '.'), ('timing.tgz', '.'), + 'OpenBLAS-0.3.7_fix-possible-memory-leak-after-fork.patch', + '%(name)s-0.3.15_icelake-detection.patch', ] checksums = [ '65a7d3a4010a4e3bd5c0baa41a234797cd3a1735449a4a5902129152601dc57b', # v0.3.12.tar.gz 'f328d88b7fa97722f271d7d0cfea1c220e0f8e5ed5ff01d8ef1eb51d6f4243a1', # large.tgz '999c65f8ea8bd4eac7f1c7f3463d4946917afd20a997807300fe35d70122f3af', # timing.tgz + # OpenBLAS-0.3.7_fix-possible-memory-leak-after-fork.patch + '4b3ab7260975ea2cfd7460731c0201b2c1e374cd83ae90d55b8da3e670633ba0', + '9cc47898ba4ad090011dbb0b29e597a13eeebd49a52d4dc94e975743072724b7', # OpenBLAS-0.3.15_icelake-detection.patch ] # extensive testing can be enabled by uncommenting the line below diff --git a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.15-GCC-10.3.0.eb b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.15-GCC-10.3.0.eb new file mode 100644 index 00000000000..fa72e0dfc56 --- /dev/null +++ b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.15-GCC-10.3.0.eb @@ -0,0 +1,30 @@ +name = 'OpenBLAS' +version = '0.3.15' + +homepage = 'https://xianyi.github.com/OpenBLAS/' +description = "OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version." + +toolchain = {'name': 'GCC', 'version': '10.3.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', '.'), + '%(name)s-%(version)s_icelake-detection.patch', +] +checksums = [ + '30a99dec977594b387a17f49904523e6bc8dd88bd247266e83485803759e4bbe', # v0.3.15.tar.gz + 'f328d88b7fa97722f271d7d0cfea1c220e0f8e5ed5ff01d8ef1eb51d6f4243a1', # large.tgz + '999c65f8ea8bd4eac7f1c7f3463d4946917afd20a997807300fe35d70122f3af', # timing.tgz + '9cc47898ba4ad090011dbb0b29e597a13eeebd49a52d4dc94e975743072724b7', # OpenBLAS-0.3.15_icelake-detection.patch +] + +# extensive testing can be enabled by uncommenting the line below +# runtest = 'PATH=.:$PATH lapack-timing' + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.15_icelake-detection.patch b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.15_icelake-detection.patch new file mode 100644 index 00000000000..618c165930b --- /dev/null +++ b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.15_icelake-detection.patch @@ -0,0 +1,75 @@ +Add autodetection for Intel Ice Lake SP +https://github.com/xianyi/OpenBLAS/pull/3233 +diff --git a/cpuid_x86.c b/cpuid_x86.c +index 44704fcd9..18ff122e5 100644 +--- a/cpuid_x86.c ++++ b/cpuid_x86.c +@@ -1398,6 +1398,17 @@ int get_cpuname(void){ + return CPUTYPE_SANDYBRIDGE; + else + return CPUTYPE_NEHALEM; ++ case 10: // Ice Lake SP ++ if(support_avx512_bf16()) ++ return CPUTYPE_COOPERLAKE; ++ if(support_avx512()) ++ return CPUTYPE_SKYLAKEX; ++ if(support_avx2()) ++ return CPUTYPE_HASWELL; ++ if(support_avx()) ++ return CPUTYPE_SANDYBRIDGE; ++ else ++ return CPUTYPE_NEHALEM; + } + break; + case 7: // family 6 exmodel 7 +@@ -2112,7 +2123,22 @@ int get_coretype(void){ + #endif + else + return CORE_NEHALEM; +-#endif ++#endif ++ if (model == 10) ++#ifndef NO_AVX512 ++ if(support_avx512_bf16()) ++ return CORE_COOPERLAKE; ++ return CORE_SKYLAKEX; ++#else ++ if(support_avx()) ++#ifndef NO_AVX2 ++ return CORE_HASWELL; ++#else ++ return CORE_SANDYBRIDGE; ++#endif ++ else ++ return CORE_NEHALEM; ++#endif + break; + case 7: + if (model == 10) +diff --git a/driver/others/dynamic.c b/driver/others/dynamic.c +index 158e1b3da..46ad06a7c 100644 +--- a/driver/others/dynamic.c ++++ b/driver/others/dynamic.c +@@ -621,6 +621,22 @@ static gotoblas_t *get_coretype(void){ + return &gotoblas_NEHALEM; + } + } ++ if (model == 10) { ++ // Ice Lake SP ++ if(support_avx512_bf16()) ++ return &gotoblas_COOPERLAKE; ++ if (support_avx512()) ++ return &gotoblas_SKYLAKEX; ++ if(support_avx2()) ++ return &gotoblas_HASWELL; ++ if(support_avx()) { ++ openblas_warning(FALLBACK_VERBOSE, SANDYBRIDGE_FALLBACK); ++ return &gotoblas_SANDYBRIDGE; ++ } else { ++ openblas_warning(FALLBACK_VERBOSE, NEHALEM_FALLBACK); ++ return &gotoblas_NEHALEM; ++ } ++ } + return NULL; + case 7: + if (model == 10) // Goldmont Plus diff --git a/easybuild/easyconfigs/o/OpenEXR/OpenEXR-3.0.1-GCCcore-10.3.0.eb b/easybuild/easyconfigs/o/OpenEXR/OpenEXR-3.0.1-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..e14b2af920c --- /dev/null +++ b/easybuild/easyconfigs/o/OpenEXR/OpenEXR-3.0.1-GCCcore-10.3.0.eb @@ -0,0 +1,31 @@ +easyblock = 'CMakeMake' + +name = 'OpenEXR' +version = '3.0.1' + +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': '10.3.0'} + +source_urls = ['https://github.com/openexr/openexr/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['6d14a8df938bbbd55dd6e55b24c527fe9323fe6a45f704e56967dfbf477cecc1'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('CMake', '3.20.1'), +] + +configopts = '-DOPENEXR_BUILD_PYTHON_LIBS=OFF' + +sanity_check_paths = { + 'files': ['lib/lib%s.%s' % (x, SHLIB_EXT) for x in + ['Iex', 'IlmThread', 'Imath', 'OpenEXR', 'OpenEXRUtil']] + + ['bin/exr%s' % x for x in + ['envmap', 'header', 'makepreview', 'maketiled', 'multipart', 'multiview', 'stdattr']], + 'dirs': ['include/OpenEXR', 'share'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/o/OpenJPEG/OpenJPEG-2.4.0-GCCcore-10.3.0.eb b/easybuild/easyconfigs/o/OpenJPEG/OpenJPEG-2.4.0-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..9e5ad136255 --- /dev/null +++ b/easybuild/easyconfigs/o/OpenJPEG/OpenJPEG-2.4.0-GCCcore-10.3.0.eb @@ -0,0 +1,48 @@ +# easybuild easyconfig +# +# John Dey jfdey@fredhutch.org +# +# Fred Hutchenson Cancer Research Center Seattle WA +easyblock = 'CMakeMake' + +name = 'OpenJPEG' +version = '2.4.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': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/uclouvain/openjpeg/archive'] +sources = ['v%(version)s.tar.gz'] +checksums = ['8702ba68b442657f11aaeb2b338443ca8d5fb95b0d845757968a7be31ef7f16d'] + +separate_build_dir = True + +builddependencies = [ + ('binutils', '2.36.1'), + ('CMake', '3.20.1') +] + +# for running the binary of openjpeg like opj_compress you need the libraries like zlib etc. +dependencies = [ + ('zlib', '1.2.11'), + ('libpng', '1.6.37'), + ('LibTIFF', '4.2.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-7.5.0-foss-2020b.eb b/easybuild/easyconfigs/o/OpenMM/OpenMM-7.5.0-foss-2020b.eb new file mode 100644 index 00000000000..04383ac6bc9 --- /dev/null +++ b/easybuild/easyconfigs/o/OpenMM/OpenMM-7.5.0-foss-2020b.eb @@ -0,0 +1,56 @@ +# 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 + +easyblock = 'CMakeMake' + +name = 'OpenMM' +version = '7.5.0' + +homepage = 'http://openmm.org' +description = "OpenMM is a toolkit for molecular simulation." + +toolchain = {'name': 'foss', 'version': '2020b'} +toolchainopts = {'opt': True} + +source_urls = ['https://github.com/openmm/openmm/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = ['516748b4f1ae936c4d70cc6401174fc9384244c65cd3aef27bc2c53eac6d6de5'] + +builddependencies = [ + ('CMake', '3.18.4'), + ('Doxygen', '1.8.20'), +] + +separate_build_dir = True + +dependencies = [ + ('FFTW', '3.3.8'), + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), + ('SWIG', '4.0.2'), +] + +runtest = """test -e ARGS="-E \'(Integrator)|(Thermostat)|(Barostat)|(Rpmd)|(Amoeba)|(HippoNonbondedForce)\'" """ + +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, 'lib/python%(pyshortver)s/site-packages/simtk/openmm/openmm.py'], + 'dirs': [] +} + +sanity_check_commands = ["python -m simtk.testInstallation"] + +modextrapaths = { + 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages', + 'OPENMM_INCLUDE_PATH': 'include', + 'OPENMM_LIB_PATH': 'lib', +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/o/OpenMM/OpenMM-7.5.0-fosscuda-2020a-Python-3.8.2.eb b/easybuild/easyconfigs/o/OpenMM/OpenMM-7.5.0-fosscuda-2020a-Python-3.8.2.eb new file mode 100644 index 00000000000..d6fb9a71439 --- /dev/null +++ b/easybuild/easyconfigs/o/OpenMM/OpenMM-7.5.0-fosscuda-2020a-Python-3.8.2.eb @@ -0,0 +1,61 @@ +# 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 + +easyblock = 'CMakeMake' + +name = 'OpenMM' +version = '7.5.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://openmm.org' +description = "OpenMM is a toolkit for molecular simulation." + +toolchain = {'name': 'fosscuda', 'version': '2020a'} +toolchainopts = {'opt': True} + +source_urls = ['https://github.com/openmm/openmm/archive/'] +sources = ['%(version)s.tar.gz'] +patches = ['%(name)s-%(version)s_fix_path_to_nvcc.patch'] +checksums = [ + '516748b4f1ae936c4d70cc6401174fc9384244c65cd3aef27bc2c53eac6d6de5', # 7.5.0.tar.gz + '050d5b81e70b34d06ef87eafc6d540b2cf716a61f53b1d2a3786504da3ec2e3c', # OpenMM-7.5.0_fix_path_to_nvcc.patch +] + +builddependencies = [ + ('CMake', '3.16.4'), + ('Doxygen', '1.8.17'), +] + +separate_build_dir = True + +dependencies = [ + ('Python', '3.8.2'), + ('SciPy-bundle', '2020.03', versionsuffix), + ('SWIG', '4.0.1'), +] + +local_ignore_pattern = "(Integrator)|(Thermostat)|(Barostat)|(Rpmd)|(Amoeba)|(HippoNonbondedForce)|(OpenCL)" +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, 'lib/python%(pyshortver)s/site-packages/simtk/openmm/openmm.py'], + 'dirs': [] +} + +sanity_check_commands = ["python -m simtk.testInstallation"] + +modextrapaths = { + 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages', + 'OPENMM_INCLUDE_PATH': 'include', + 'OPENMM_LIB_PATH': 'lib', +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/o/OpenMM/OpenMM-7.5.0-intel-2020a-Python-3.8.2.eb b/easybuild/easyconfigs/o/OpenMM/OpenMM-7.5.0-intel-2020a-Python-3.8.2.eb new file mode 100644 index 00000000000..c690fc0e944 --- /dev/null +++ b/easybuild/easyconfigs/o/OpenMM/OpenMM-7.5.0-intel-2020a-Python-3.8.2.eb @@ -0,0 +1,57 @@ +# 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 + +easyblock = 'CMakeMake' + +name = 'OpenMM' +version = '7.5.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://openmm.org' +description = "OpenMM is a toolkit for molecular simulation." + +toolchain = {'name': 'intel', 'version': '2020a'} +toolchainopts = {'strict': True} + +source_urls = ['https://github.com/openmm/openmm/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = ['516748b4f1ae936c4d70cc6401174fc9384244c65cd3aef27bc2c53eac6d6de5'] + +builddependencies = [ + ('CMake', '3.16.4'), + ('Doxygen', '1.8.17'), +] + +separate_build_dir = True + +dependencies = [ + ('FFTW', '3.3.8'), + ('Python', '3.8.2'), + ('SciPy-bundle', '2020.03', versionsuffix), + ('SWIG', '4.0.1'), +] + +runtest = """test -e ARGS="-E \'(Integrator)|(Thermostat)|(Barostat)|(Rpmd)|(Amoeba)|(HippoNonbondedForce)\'" """ + +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, 'lib/python%(pyshortver)s/site-packages/simtk/openmm/openmm.py'], + 'dirs': [] +} + +sanity_check_commands = ["python -m simtk.testInstallation"] + +modextrapaths = { + 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages', + 'OPENMM_INCLUDE_PATH': 'include', + 'OPENMM_LIB_PATH': 'lib', +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/o/OpenMM/OpenMM-7.5.0-intel-2020b.eb b/easybuild/easyconfigs/o/OpenMM/OpenMM-7.5.0-intel-2020b.eb new file mode 100644 index 00000000000..07e2f420389 --- /dev/null +++ b/easybuild/easyconfigs/o/OpenMM/OpenMM-7.5.0-intel-2020b.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 + +easyblock = 'CMakeMake' + +name = 'OpenMM' +version = '7.5.0' + +homepage = 'http://openmm.org' +description = "OpenMM is a toolkit for molecular simulation." + +toolchain = {'name': 'intel', 'version': '2020b'} +toolchainopts = {'strict': True} + +source_urls = ['https://github.com/openmm/openmm/archive/'] +sources = ['%(version)s.tar.gz'] +patches = ['OpenMM-%(version)s_fix-stdint-include.patch'] +checksums = [ + '516748b4f1ae936c4d70cc6401174fc9384244c65cd3aef27bc2c53eac6d6de5', # 7.5.0.tar.gz + 'c55e0866f02fb904e2ebba98687e3a74f256fd56c2cf32a0871aa2f427b969d9', # OpenMM-7.5.0_fix-stdint-include.patch +] + +builddependencies = [ + ('CMake', '3.18.4'), + ('Doxygen', '1.8.20'), +] + +separate_build_dir = True + +dependencies = [ + ('FFTW', '3.3.8'), + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), + ('SWIG', '4.0.2'), +] + +runtest = """test -e ARGS="-E \'(Integrator)|(Thermostat)|(Barostat)|(Rpmd)|(Amoeba)|(HippoNonbondedForce)\'" """ + +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, 'lib/python%(pyshortver)s/site-packages/simtk/openmm/openmm.py'], + 'dirs': [] +} + +sanity_check_commands = ["python -m simtk.testInstallation"] + +modextrapaths = { + 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages', + 'OPENMM_INCLUDE_PATH': 'include', + 'OPENMM_LIB_PATH': 'lib', +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/o/OpenMM/OpenMM-7.5.0_fix-stdint-include.patch b/easybuild/easyconfigs/o/OpenMM/OpenMM-7.5.0_fix-stdint-include.patch new file mode 100644 index 00000000000..c11b266e742 --- /dev/null +++ b/easybuild/easyconfigs/o/OpenMM/OpenMM-7.5.0_fix-stdint-include.patch @@ -0,0 +1,15 @@ +add missing include statement to fix compilation error with Intel compilers: +error: identifier "int32_t" is undefined + +author: Kenneth Hoste (HPC-UGent) + +--- openmm-7.5.0/openmmapi/include/openmm/internal/vectorize_sse.h.orig 2021-04-21 16:21:13.329507270 +0200 ++++ openmm-7.5.0/openmmapi/include/openmm/internal/vectorize_sse.h 2021-04-21 16:22:25.139204132 +0200 +@@ -39,6 +39,7 @@ + #endif + + #include "hardware.h" ++#include // required for int32_t + + // This file defines classes and functions to simplify vectorizing code with SSE. + diff --git a/easybuild/easyconfigs/o/OpenMM/OpenMM-7.5.0_fix_path_to_nvcc.patch b/easybuild/easyconfigs/o/OpenMM/OpenMM-7.5.0_fix_path_to_nvcc.patch new file mode 100644 index 00000000000..6749338995b --- /dev/null +++ b/easybuild/easyconfigs/o/OpenMM/OpenMM-7.5.0_fix_path_to_nvcc.patch @@ -0,0 +1,15 @@ +Make sure OpenMM does use it's stupid hardcoded path to nvcc. + +Åke Sandgren, 2021-04-15 +diff -ru openmm-7.5.0.orig/platforms/cuda/src/CudaPlatform.cpp openmm-7.5.0/platforms/cuda/src/CudaPlatform.cpp +--- openmm-7.5.0.orig/platforms/cuda/src/CudaPlatform.cpp 2020-11-25 06:39:09.000000000 +0100 ++++ openmm-7.5.0/platforms/cuda/src/CudaPlatform.cpp 2021-04-15 14:36:46.293660324 +0200 +@@ -136,7 +136,7 @@ + setPropertyDefaultValue(CudaTempDirectory(), string(getenv("TEMP"))); + #else + char* compiler = getenv("OPENMM_CUDA_COMPILER"); +- string nvcc = (compiler == NULL ? "/usr/local/cuda/bin/nvcc" : string(compiler)); ++ string nvcc = (compiler == NULL ? "nvcc" : string(compiler)); + setPropertyDefaultValue(CudaCompiler(), nvcc); + char* tmpdir = getenv("TMPDIR"); + string tmp = (tmpdir == NULL ? string(P_tmpdir) : string(tmpdir)); diff --git a/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.0-GCC-10.2.0.eb b/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.0-GCC-10.2.0.eb index b4d152df08f..c80283a7154 100644 --- a/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.0-GCC-10.2.0.eb +++ b/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.0-GCC-10.2.0.eb @@ -8,7 +8,12 @@ toolchain = {'name': 'GCC', 'version': '10.2.0'} source_urls = ['https://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] sources = [SOURCELOWER_TAR_GZ] -checksums = ['228467c3dd15339d9b26cf26a291af3ee7c770699c5e8a1b3ad786f9ae78140a'] +patches = ['OpenMPI-4.1.1_fix-bufferoverflow-in-common_ofi.patch'] +checksums = [ + '228467c3dd15339d9b26cf26a291af3ee7c770699c5e8a1b3ad786f9ae78140a', # openmpi-4.1.0.tar.gz + # OpenMPI-4.1.1_fix-bufferoverflow-in-common_ofi.patch + 'a189d834506f3d7c31eda6aa184598a3631ea24a94bc551d5ed1f053772ca49e', +] builddependencies = [ ('pkg-config', '0.29.2'), diff --git a/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.1-GCC-10.3.0.eb b/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.1-GCC-10.3.0.eb new file mode 100644 index 00000000000..bee50ce527f --- /dev/null +++ b/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.1-GCC-10.3.0.eb @@ -0,0 +1,40 @@ +## +# Author: Robert Mijakovic +## +name = 'OpenMPI' +version = '4.1.1' + +homepage = 'https://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-3 implementation.""" + +toolchain = {'name': 'GCC', 'version': '10.3.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_fix-bufferoverflow-in-common_ofi.patch'] +checksums = [ + 'e24f7a778bd11a71ad0c14587a7f5b00e68a71aa5623e2157bafee3d44c07cda', # openmpi-4.1.1.tar.bz2 + # OpenMPI-4.1.1_fix-bufferoverflow-in-common_ofi.patch + 'a189d834506f3d7c31eda6aa184598a3631ea24a94bc551d5ed1f053772ca49e', +] + +builddependencies = [ + ('pkg-config', '0.29.2'), +] + +dependencies = [ + ('zlib', '1.2.11'), + ('hwloc', '2.4.1'), + ('libevent', '2.1.12'), + ('UCX', '1.10.0'), + ('libfabric', '1.12.1'), + ('PMIx', '3.2.3'), +] + +# 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/OpenMPI/OpenMPI-4.1.1_fix-bufferoverflow-in-common_ofi.patch b/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.1_fix-bufferoverflow-in-common_ofi.patch new file mode 100644 index 00000000000..6ce4956cae3 --- /dev/null +++ b/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.1_fix-bufferoverflow-in-common_ofi.patch @@ -0,0 +1,17 @@ +The array used is 1 to small, so increase the size to avoid a buffer overflow. +See https://github.com/open-mpi/ompi/issues/9018 + +Author: Alexander Grund (TU Dresden) +diff --git a/opal/mca/common/ofi/common_ofi.c b/opal/mca/common/ofi/common_ofi.c +index ff73e6f069..a5a200d205 100644 +--- a/opal/mca/common/ofi/common_ofi.c ++++ b/opal/mca/common/ofi/common_ofi.c +@@ -304,7 +304,7 @@ static uint32_t get_package_rank(int32_t num_local_peers, uint16_t my_local_rank + int i; + uint16_t relative_locality; + uint16_t current_package_rank = 0; +- uint16_t package_ranks[num_local_peers]; ++ uint16_t package_ranks[num_local_peers + 1]; + opal_process_name_t pname; + opal_status_t rc; + char **peers = NULL; diff --git a/easybuild/easyconfigs/o/OpenMolcas/OpenMolcas-20.10-intel-2020a-Python-3.8.2-noGA.eb b/easybuild/easyconfigs/o/OpenMolcas/OpenMolcas-20.10-intel-2020a-Python-3.8.2-noGA.eb new file mode 100644 index 00000000000..508aaf1ceac --- /dev/null +++ b/easybuild/easyconfigs/o/OpenMolcas/OpenMolcas-20.10-intel-2020a-Python-3.8.2-noGA.eb @@ -0,0 +1,52 @@ +easyblock = 'CMakeMake' + +name = 'OpenMolcas' +version = '20.10' +versionsuffix = '-Python-%(pyver)s-noGA' + +homepage = "https://gitlab.com/Molcas/OpenMolcas" +description = """OpenMolcas is a quantum chemistry software package. +This build does not support MPI and can only be run on a single node.""" + +toolchain = {'name': 'intel', 'version': '2020a'} + +source_urls = ['https://gitlab.com/Molcas/OpenMolcas/-/archive/v%(version)s/'] +sources = ["OpenMolcas-v%(version)s.tar.gz"] +# This patch avoids a forced extra copy of 'pymolcas' script +# in a local folder of the user doing the build +# The 'make install' process will already install it in +# %(installdir)s/sbin/ +patches = ["OpenMolcas-pymolcas_only_in_ebprefix.patch"] +checksums = [ + # OpenMolcas-20.10.tar.gz + '73f73beaebbcff5d02b5bb0748d07c5b8e81784fae6122729c7e7aeed730fe42', + # OpenMolcas-pymolcas_only_in_ebprefix.patch + '56165ab4a752ef7cdbe3340c8c922fca04510e8ee2e4024ea654e6bcd83198f8' +] + +dependencies = [ + ('Python', '3.8.2'), + ('HDF5', '1.10.6'), +] + +builddependencies = [('CMake', '3.16.4')] + +separate_build_dir = True + +configopts = '-DLINALG=MKL -DMKLROOT=$EBROOTIMKL/mkl ' +configopts += '-DMPI=OFF -DGA=OFF -DOPENMP=ON ' +configopts += '-DBUILD_SHARED_LIBS=ON -DTOOLS=ON -DFDE=ON' + +modextravars = { + 'MOLCAS': '%(installdir)s', + 'MOLCAS_DRIVER': '%(installdir)s/sbin/pymolcas', + 'MOLCAS_SOURCE': '%(installdir)s', +} + +sanity_check_paths = { + 'files': ['bin/dynamix.exe', 'bin/mpprop.exe', 'lib/libmolcas.%s' % SHLIB_EXT, + 'sbin/help_basis', 'sbin/pymolcas'], + 'dirs': ['data/', 'basis_library/'], +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-GCCcore-10.2.0.eb b/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-GCCcore-10.2.0.eb index d79856789c3..c5c3f86e07c 100644 --- a/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-GCCcore-10.2.0.eb +++ b/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-GCCcore-10.2.0.eb @@ -20,11 +20,19 @@ toolchainopts = {'pic': True} source_urls = ['https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/openpgm/'] sources = ['libpgm-%(version)s.tar.gz'] -checksums = ['6b895f550b95284dcde7189b01e04a9a1c1f94579af31b1eebd32c2207a1ba2c'] +patches = [ + 'OpenPGM-5.2.122-pkgconfig_includes.patch', + 'OpenPGM-5.2.122-python3-compliant.patch' +] +checksums = [ + '6b895f550b95284dcde7189b01e04a9a1c1f94579af31b1eebd32c2207a1ba2c', # libpgm-5.2.122.tar.gz + '4a9fc7fbb6e73e325639a895cd19c1ac6918b575f715c057caa01f826de40114', # OpenPGM-5.2.122-pkgconfig_includes.patch + 'a3bf6b4127473d287d72767b0335b8705940e56ffbccc8d4d3bdbf23a2fc8618', # OpenPGM-5.2.122-python3-compliant.patch +] builddependencies = [ ('binutils', '2.35'), - ('Python', '2.7.18'), + ('Python', '3.8.6'), ] start_dir = 'pgm' diff --git a/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-GCCcore-9.3.0.eb b/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-GCCcore-9.3.0.eb index 7182e95bbe1..965811fad67 100644 --- a/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-GCCcore-9.3.0.eb +++ b/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-GCCcore-9.3.0.eb @@ -20,11 +20,19 @@ toolchainopts = {'pic': True} source_urls = ['https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/openpgm/'] sources = ['libpgm-%(version)s.tar.gz'] -checksums = ['6b895f550b95284dcde7189b01e04a9a1c1f94579af31b1eebd32c2207a1ba2c'] +patches = [ + 'OpenPGM-5.2.122-pkgconfig_includes.patch', + 'OpenPGM-5.2.122-python3-compliant.patch' +] +checksums = [ + '6b895f550b95284dcde7189b01e04a9a1c1f94579af31b1eebd32c2207a1ba2c', # libpgm-5.2.122.tar.gz + '4a9fc7fbb6e73e325639a895cd19c1ac6918b575f715c057caa01f826de40114', # OpenPGM-5.2.122-pkgconfig_includes.patch + 'a3bf6b4127473d287d72767b0335b8705940e56ffbccc8d4d3bdbf23a2fc8618', # OpenPGM-5.2.122-python3-compliant.patch +] builddependencies = [ ('binutils', '2.34'), - ('Python', '2.7.18'), + ('Python', '3.8.2'), ] start_dir = 'pgm' diff --git a/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-pkgconfig_includes.patch b/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-pkgconfig_includes.patch new file mode 100644 index 00000000000..52ad5f9b935 --- /dev/null +++ b/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-pkgconfig_includes.patch @@ -0,0 +1,21 @@ +From ee25ff3d13f2639b4c3a42125e79f77f921c3320 Mon Sep 17 00:00:00 2001 +From: Luca Boccassi +Date: Wed, 23 Jan 2019 10:37:37 +0000 +Subject: [PATCH] pkg-config: do not add -I to non-existing directory + +foo/lib/pgm-5.2/include does not exist, so applications using strict +compiler flags will fail to build due to this -I flag +--- + openpgm/pgm/openpgm-5.2.pc.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/openpgm/pgm/openpgm-5.2.pc.in b/openpgm/pgm/openpgm-5.2.pc.in +index 1e56d944..9e30a6da 100644 +--- a/openpgm/pgm/openpgm-5.2.pc.in ++++ b/openpgm/pgm/openpgm-5.2.pc.in +@@ -9,4 +9,4 @@ Version: @PACKAGE_VERSION@ + # packagers may wish to move @LIBS@ to Libs.private for platforms with + # versions of pkg-config that support static linking. + Libs: -L${libdir} -lpgm @LIBS@ +-Cflags: -I${includedir}/pgm-@VERSION_MAJOR@.@VERSION_MINOR@ -I${libdir}/pgm-@VERSION_MAJOR@.@VERSION_MINOR@/include ++Cflags: -I${includedir}/pgm-@VERSION_MAJOR@.@VERSION_MINOR@ diff --git a/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-python3-compliant.patch b/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-python3-compliant.patch new file mode 100644 index 00000000000..97cff29df0f --- /dev/null +++ b/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-python3-compliant.patch @@ -0,0 +1,42 @@ +From e04f5c20fc1536f8e6d4faf32f2f4657d441f7c8 Mon Sep 17 00:00:00 2001 +From: Samuel Martin +Date: Mon, 14 Apr 2014 17:54:37 +0200 +Subject: [PATCH] version_generator.py: make it python3 compliant + +Signed-off-by: Samuel Martin +--- + openpgm/pgm/version_generator.py | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/openpgm/pgm/version_generator.py b/openpgm/pgm/version_generator.py +index 2265480..c31376f 100755 +--- a/openpgm/pgm/version_generator.py ++++ b/openpgm/pgm/version_generator.py +@@ -1,5 +1,7 @@ + #!/usr/bin/python + ++from __future__ import print_function ++ + import os + import platform + import time +@@ -8,7 +10,7 @@ build_date = time.strftime ("%Y-%m-%d") + build_time = time.strftime ("%H:%M:%S") + build_rev = filter (str.isdigit, "$Revision: 1369 $") + +-print """ ++print(""" + /* vim:ts=8:sts=8:sw=4:noai:noexpandtab + * + * OpenPGM version. +@@ -47,6 +49,6 @@ const char* pgm_build_revision = "%s"; + + + /* eof */ +-"""%(build_date, build_time, platform.system(), platform.machine(), build_rev) ++"""%(build_date, build_time, platform.system(), platform.machine(), build_rev)) + + # end of file +-- +1.9.2 + diff --git a/easybuild/easyconfigs/o/OpenSSL/OpenSSL-1.0.eb b/easybuild/easyconfigs/o/OpenSSL/OpenSSL-1.0.eb new file mode 100644 index 00000000000..ae64518e2d7 --- /dev/null +++ b/easybuild/easyconfigs/o/OpenSSL/OpenSSL-1.0.eb @@ -0,0 +1,34 @@ +easyblock = 'EB_OpenSSL_wrapper' + +name = 'OpenSSL' +version = '1.0' + +homepage = 'https://www.openssl.org/' +description = """The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, + and Open Source toolchain implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) + protocols as well as a full-strength general purpose cryptography library. """ + +toolchain = SYSTEM +toolchainopts = {'pic': True} + +osdependencies = ['perl'] + +# This easyconfig will wrap the OpenSSL installation in the host system. +# If the system provides the required binary, header files, and libraries for this +# version of OpenSSL, the installation directory of this module will be populated with +# symlinks to the system files. If the host system does not have this version +# of OpenSSL (or with the option wrap_system_openssl = False), EasyBuild will +# fall back to the following component list, which will be build and installed as +# usual. + +components = [ + (name, '1.0.2u', { + 'easyblock': 'EB_OpenSSL', + 'source_urls': ['https://www.openssl.org/source/'], + 'sources': [SOURCELOWER_TAR_GZ], + 'checksums': ['ecd0c6ffb493dd06707d38b14bb4d8c2288bb7033735606569d8f90f89669d16'], + 'start_dir': '%(namelower)s-%(version)s', + }), +] + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/o/OpenSSL/OpenSSL-1.1.1k-GCCcore-10.3.0.eb b/easybuild/easyconfigs/o/OpenSSL/OpenSSL-1.1.1k-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..0cdcf40225e --- /dev/null +++ b/easybuild/easyconfigs/o/OpenSSL/OpenSSL-1.1.1k-GCCcore-10.3.0.eb @@ -0,0 +1,25 @@ +name = 'OpenSSL' +version = '1.1.1k' + +homepage = 'https://www.openssl.org/' +description = """The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, + and Open Source toolchain implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) + protocols as well as a full-strength general purpose cryptography library. """ + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://www.openssl.org/source/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5'] + +dependencies = [('zlib', '1.2.11')] + +builddependencies = [ + ('Perl', '5.32.1'), + ('binutils', '2.36.1'), +] + +runtest = 'test' + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/o/OpenSSL/OpenSSL-1.1.eb b/easybuild/easyconfigs/o/OpenSSL/OpenSSL-1.1.eb new file mode 100644 index 00000000000..d4a12b797dc --- /dev/null +++ b/easybuild/easyconfigs/o/OpenSSL/OpenSSL-1.1.eb @@ -0,0 +1,34 @@ +easyblock = 'EB_OpenSSL_wrapper' + +name = 'OpenSSL' +version = '1.1' + +homepage = 'https://www.openssl.org/' +description = """The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, + and Open Source toolchain implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) + protocols as well as a full-strength general purpose cryptography library. """ + +toolchain = SYSTEM +toolchainopts = {'pic': True} + +osdependencies = ['perl'] + +# This easyconfig will wrap the OpenSSL installation in the host system. +# If the system provides the required binary, header files, and libraries for this +# version of OpenSSL, the installation directory of this module will be populated with +# symlinks to the system files. If the host system does not have this version +# of OpenSSL (or with the option wrap_system_openssl = False), EasyBuild will +# fall back to the following component list, which will be build and installed as +# usual. + +components = [ + (name, '1.1.1k', { + 'easyblock': 'EB_OpenSSL', + 'source_urls': ['https://www.openssl.org/source/'], + 'sources': [SOURCELOWER_TAR_GZ], + 'checksums': ['892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5'], + 'start_dir': '%(namelower)s-%(version)s', + }), +] + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/o/onedrive/onedrive-2.4.11-GCCcore-10.2.0.eb b/easybuild/easyconfigs/o/onedrive/onedrive-2.4.11-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..dab738f1677 --- /dev/null +++ b/easybuild/easyconfigs/o/onedrive/onedrive-2.4.11-GCCcore-10.2.0.eb @@ -0,0 +1,42 @@ +easyblock = 'ConfigureMake' + +name = 'onedrive' +version = '2.4.11' + +homepage = 'https://abraunegg.github.io/' +description = """ +A free Microsoft OneDrive Client which supports OneDrive Personal, OneDrive for Business, +OneDrive for Office365 and SharePoint.""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['https://github.com/abraunegg/onedrive/archive'] +sources = ['v%(version)s.tar.gz'] +checksums = ['839ec89c0b2a2c71db19668f7d333f9ef5d6910451b49fba1c2dc8e53885aa2f'] + +builddependencies = [ + ('binutils', '2.35'), + ('LDC', '1.25.1'), +] + +dependencies = [ + ('cURL', '7.72.0'), + ('SQLite', '3.33.0'), +] + +_compldir = '%(installdir)s/share/tab_completion' +configopts = 'DC="$EBROOTLDC"/bin/ldc2 --with-systemdsystemunitdir=no ' +configopts += '--enable-completions --with-bash-completion-dir=%s ' % _compldir +configopts += '--with-zsh-completion-dir=%s --with-fish-completion-dir=%s ' % (_compldir, _compldir) + +sanity_check_paths = { + 'files': ['bin/onedrive'], + 'dirs': ['etc', 'share'], +} + +sanity_check_commands = ['onedrive -h'] + +# optionally enable tab completion for bash (zsh: '_onedrive', fish: 'onedrive.fish') +modluafooter = 'execute {cmd="source $EBROOTONEDRIVE/share/tab_completion/onedrive",modeA={"load"}}' + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/o/openCARP/openCARP-6.0-foss-2020b.eb b/easybuild/easyconfigs/o/openCARP/openCARP-6.0-foss-2020b.eb new file mode 100644 index 00000000000..12b4155a3d4 --- /dev/null +++ b/easybuild/easyconfigs/o/openCARP/openCARP-6.0-foss-2020b.eb @@ -0,0 +1,38 @@ +easyblock = 'CMakeMakeCp' + +name = 'openCARP' +version = '6.0' + +homepage = 'https://opencarp.org' +description = "openCARP is an open cardiac electrophysiology simulator for in-silico experiments." + +toolchain = {'name': 'foss', 'version': '2020b'} +toolchainopts = {'openmp': True, 'usempi': True} + +source_urls = ['https://git.opencarp.org/openCARP/openCARP/-/archive/v%(version)s/'] +sources = ['openCARP-v%(version)s.tar.gz'] +patches = ['openCARP-3.2_build-info.patch'] +checksums = [ + '280f6dd2f5968e02e1f981f52cbd94da2ebb8d8fd00eb274d2fca6b566f40afb', # openCARP-v6.0.tar.gz + '43004c7dee2981677c4316c32ce20080ad2e70760d53981aaaaba55ebc659e8c', # openCARP-3.2_build-info.patch +] + +builddependencies = [ + ('CMake', '3.18.4'), + ('gengetopt', '2.23'), + ('pkg-config', '0.29.2'), +] + +dependencies = [ + ('PETSc', '3.14.4'), + ('zlib', '1.2.11'), +] + +files_to_copy = ['bin'] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['bench', 'igbapd', 'igbextract', 'igbhead', 'igbops', 'mesher', 'openCARP']], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/PAML/PAML-4.9j-GCCcore-9.3.0.eb b/easybuild/easyconfigs/p/PAML/PAML-4.9j-GCCcore-9.3.0.eb index 91df00b0204..2f42d9d14b8 100644 --- a/easybuild/easyconfigs/p/PAML/PAML-4.9j-GCCcore-9.3.0.eb +++ b/easybuild/easyconfigs/p/PAML/PAML-4.9j-GCCcore-9.3.0.eb @@ -18,7 +18,17 @@ buildopts = 'CC="$CC" CFLAGS="$CFLAGS"' builddependencies = [('binutils', '2.34')] start_dir = 'src' -files_to_copy = [(["baseml", "basemlg", "codeml", "pamp", "evolver", "yn00", "chi2"], 'bin')] + +files_to_copy = [ + (['GeneticCode.txt', '%(builddir)s/%(namelower)s%(version)s/README.txt'], ''), + (['*.trees', '*.ctl', '*.nuc', '*.dat', 'paup*', 'stewart.aa'], ''), + (['src/baseml', 'src/basemlg', 'src/chi2', 'src/codeml', 'src/evolver'], 'bin'), + (['src/infinitesites', 'src/mcmctree', 'src/pamp', 'src/yn00'], 'bin'), + (['dat/*'], 'dat'), + (['doc/*'], 'doc'), + (['examples/*'], 'examples'), + (['Technical/*'], 'Technical'), +] sanity_check_paths = { 'files': ['bin/baseml'], diff --git a/easybuild/easyconfigs/p/PAUP/PAUP-4.0a168-centos64.eb b/easybuild/easyconfigs/p/PAUP/PAUP-4.0a168-centos64.eb new file mode 100644 index 00000000000..03ba740945f --- /dev/null +++ b/easybuild/easyconfigs/p/PAUP/PAUP-4.0a168-centos64.eb @@ -0,0 +1,28 @@ +easyblock = 'PackedBinary' + +name = 'PAUP' +version = '4.0a168' +versionsuffix = '-centos64' +local_binver = '4a168' + versionsuffix.replace('-', '_') + +homepage = 'https://paup.phylosolutions.com/' +description = """PAUP* (Phylogenetic Analysis Using Parsimony *and other methods) is a +computational phylogenetics program for inferring evolutionary trees.""" + +toolchain = SYSTEM + +source_urls = ['https://phylosolutions.com/paup-test'] +sources = ['paup%s.gz' % local_binver] +checksums = ['e35759b3096b210d397f5cc9cc877bf032a63dfd101f549fadec73bc2014c6af'] + +postinstallcmds = [ + "chmod a+x %%(installdir)s/paup%s" % local_binver, + "mkdir %%(installdir)s/bin && cd %%(installdir)s/bin && ln -s ../paup%s paup" % local_binver, +] + +sanity_check_paths = { + 'files': ['paup%s' % local_binver, 'bin/paup'], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/PCRE/PCRE-8.44-GCCcore-10.3.0.eb b/easybuild/easyconfigs/p/PCRE/PCRE-8.44-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..d79dd97995c --- /dev/null +++ b/easybuild/easyconfigs/p/PCRE/PCRE-8.44-GCCcore-10.3.0.eb @@ -0,0 +1,45 @@ +easyblock = 'ConfigureMake' + +name = 'PCRE' +version = '8.44' + +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': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = [ + SOURCEFORGE_SOURCE, + 'https://ftp.pcre.org/pub/pcre/', +] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['aecafd4af3bd0f3935721af77b889d9024b2e01d96b58471bd91a3063fb47728'] + +builddependencies = [ + ('binutils', '2.36.1'), +] + +dependencies = [ + ('bzip2', '1.0.8'), + ('zlib', '1.2.11'), +] + +configopts = """\ + --enable-utf\ + --enable-unicode-properties\ + --enable-pcre16\ + --enable-pcre32\ +""" + +sanity_check_paths = { + 'files': ['bin/pcre-config', 'include/pcre.h', + 'share/man/man3/pcre.3', 'lib/libpcre32.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig', 'share/doc/pcre/html', 'share/man/man1'], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/p/PCRE2/PCRE2-10.36-GCCcore-10.3.0.eb b/easybuild/easyconfigs/p/PCRE2/PCRE2-10.36-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..5f9348bc96c --- /dev/null +++ b/easybuild/easyconfigs/p/PCRE2/PCRE2-10.36-GCCcore-10.3.0.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'PCRE2' +version = '10.36' + +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': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://download.sourceforge.net/pcre'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['b95ddb9414f91a967a887d69617059fb672b914f56fa3d613812c1ee8e8a1a37'] + +builddependencies = [('binutils', '2.36.1')] + +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/PMIx/PMIx-3.2.3-GCCcore-10.3.0.eb b/easybuild/easyconfigs/p/PMIx/PMIx-3.2.3-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..c95149b5eaa --- /dev/null +++ b/easybuild/easyconfigs/p/PMIx/PMIx-3.2.3-GCCcore-10.3.0.eb @@ -0,0 +1,48 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'PMIx' +version = '3.2.3' + +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': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/openpmix/openpmix/releases/download/v%(version)s'] +sources = ['%(namelower)s-%(version)s.tar.bz2'] +checksums = ['9b835f23c2f94a193c14012ee68b3657a61c568598cdd1212a3716b32d41a135'] + +builddependencies = [('binutils', '2.36.1')] + +dependencies = [ + ('libevent', '2.1.12'), + ('zlib', '1.2.11'), + ('hwloc', '2.4.1'), +] + +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.3-GCCcore-9.3.0.eb b/easybuild/easyconfigs/p/PRSice/PRSice-2.3.3-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..31741ed7ff0 --- /dev/null +++ b/easybuild/easyconfigs/p/PRSice/PRSice-2.3.3-GCCcore-9.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.3' + +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': '9.3.0'} + +source_urls = ['https://github.com/choishingwan/PRSice/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = ['99cac1fdff727b652969ca50be32c1aebf5393c17c2df0a1a745ce6991b69eab'] + +builddependencies = [ + ('CMake', '3.16.4'), + ('binutils', '2.34'), + ('Eigen', '3.3.7'), +] + +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/Pandoc/Pandoc-2.13.eb b/easybuild/easyconfigs/p/Pandoc/Pandoc-2.13.eb new file mode 100644 index 00000000000..8a0d584aa8e --- /dev/null +++ b/easybuild/easyconfigs/p/Pandoc/Pandoc-2.13.eb @@ -0,0 +1,34 @@ +# This file is an EasyBuild reciPY as per https://easybuilders.github.io/easybuild/ +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics +# Contribution from the NIHR Biomedical Research Centre +# Guy's and St Thomas' NHS Foundation Trust and King's College London +# uploaded by J. Sassmannshausen + +easyblock = 'Tarball' + +name = 'Pandoc' +version = '2.13' + +homepage = 'https://pandoc.org' +description = "If you need to convert files from one markup format into another, pandoc is your swiss-army knife" + +toolchain = SYSTEM + +source_urls = ['https://github.com/jgm/pandoc/releases/download/%(version)s/'] +_archs = {'x86_64': 'amd64', 'aarch64': 'arm64'} +sources = ['%%(namelower)s-%%(version)s-linux-%s.tar.gz' % _archs[ARCH]] +checksums = [{ + 'pandoc-2.13-linux-amd64.tar.gz': '7404aa88a6eb9fbb99d9803b80170a3a546f51959230cc529c66a2ce6b950d4c', + 'pandoc-2.13-linux-arm64.tar.gz': '4f87bfe8a0a626ad0e17d26d42e99a1c0ed7d369cca00366c1b3d97525f57db5', +}] + +sanity_check_paths = { + 'files': ['bin/pandoc'], + 'dirs': ['share'], +} + +sanity_check_commands = ['pandoc --help'] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.32.1-FCC-4.5.0.eb b/easybuild/easyconfigs/p/Perl/Perl-5.32.1-FCC-4.5.0.eb new file mode 100644 index 00000000000..903ad1a1e1c --- /dev/null +++ b/easybuild/easyconfigs/p/Perl/Perl-5.32.1-FCC-4.5.0.eb @@ -0,0 +1,1774 @@ +## +# Author: Robert Mijakovic +## +name = 'Perl' +version = '5.32.1' + +homepage = 'https://www.perl.org/' +description = """Larry Wall's Practical Extraction and Report Language""" + +toolchain = {'name': 'FCC', 'version': '4.5.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://www.cpan.org/src/%(version_major)s.0'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['03b693901cd8ae807231b1787798cf1f2e0b8a56218d07b7da44f784a7caeb2c'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('groff', '1.22.4'), +] + +dependencies = [ + ('zlib', '1.2.11'), # for Net::SSLeay + ('expat', '2.2.9'), # for XML::Parser + ('ncurses', '6.2'), # for Term::ReadLine::Gnu + ('libreadline', '8.1'), # for Term::ReadLine::Gnu + ('DB', '18.1.40'), # for DB_File + ('OpenSSL', '1.1', '', True), # required for Net::SSLeay +] + +exts_default_options = {'buildopts': 'CC="$CC"'} + +# !! order of extensions is important !! +# extensions updated on Apr 21st 2021 +exts_list = [ + ('Config::General', '2.63', { + 'source_tmpl': 'Config-General-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TL/TLINDEN'], + 'checksums': ['0a9bf977b8aabe76343e88095d2296c8a422410fd2a05a1901f2b20e2e1f6fad'], + }), + ('File::Listing', '6.14', { + 'source_tmpl': 'File-Listing-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + 'checksums': ['15b3a4871e23164a36f226381b74d450af41f12cc94985f592a669fcac7b48ff'], + }), + ('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.42', { + 'source_tmpl': 'Test-Harness-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['0fd90d4efea82d6e262e6933759e85d27cbcfa4091b14bf4042ae20bab528e53'], + }), + ('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'], + }), + ('Module::Build::Tiny', '0.039', { + 'source_tmpl': 'Module-Build-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['7d580ff6ace0cbe555bf36b86dc8ea232581530cbeaaea09bccb57b55797f11c'], + }), + ('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'], + }), + ('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'], + }), + ('Test::Fatal', '0.016', { + 'source_tmpl': 'Test-Fatal-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['7283d430f2ba2030b8cd979ae3039d3f1b2ec3dde1a11ca6ae09f992a66f788f'], + }), + ('Test::Warnings', '0.030', { + 'source_tmpl': 'Test-Warnings-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['89a4947ddf1564ae01122275584433d7f6c4370370bcf3768922d796956ae24f'], + }), + ('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'], + }), + ('File::ShareDir::Install', '0.13', { + 'source_tmpl': 'File-ShareDir-Install-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['45befdf0d95cbefe7c25a1daf293d85f780d6d2576146546e6828aad26e580f9'], + }), + ('DateTime::Locale', '1.31', { + 'source_tmpl': 'DateTime-Locale-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['c7224c7e51dce4dd9ba80d8857cd4c3b72137653da34d3ba3c3a3c20cbf438b8'], + }), + ('DateTime::TimeZone', '2.47', { + 'source_tmpl': 'DateTime-TimeZone-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['41617138dbb5e255fe5ac3cab6f1cc8e09f934bc95906b8cd7077192a21ef2b9'], + }), + ('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'], + }), + ('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'], + }), + ('Module::Build', '0.4231', { + 'source_tmpl': 'Module-Build-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['7e0f4c692c1740c1ac84ea14d7ea3d8bc798b2fb26c09877229e04f430b2b717'], + }), + ('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'], + }), + ('Try::Tiny', '0.30', { + 'source_tmpl': 'Try-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['da5bd0d5c903519bbf10bb9ba0cb7bcac0563882bcfe4503aee3fb143eddef6b'], + }), + ('Params::Validate', '1.30', { + 'source_tmpl': 'Params-Validate-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['9a3a35583d3125d07e8c802c1f92f5be7d526e76dd496e944da270b1e273d812'], + }), + ('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'], + }), + ('Exporter::Tiny', '1.002002', { + 'source_tmpl': 'Exporter-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TOBYINK'], + 'checksums': ['00f0b95716b18157132c6c118ded8ba31392563d19e490433e9a65382e707101'], + }), + ('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', '1.54', { + 'source_tmpl': 'DateTime-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['b12eda6d900713f227964dc4dc0e2efb86d294e8bc2f16be9e95b659f953b2e7'], + }), + ('File::Find::Rule::Perl', '1.15', { + 'source_tmpl': 'File-Find-Rule-Perl-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['9a48433f86e08ce18e03526e2982de52162eb909d19735460f07eefcaf463ea6'], + }), + ('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'], + }), + ('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.009', { + 'source_tmpl': 'Template-Toolkit-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AT/ATOOMIC'], + 'checksums': ['d6ad23bbf637a59b5dfd1ac006460dfcb185982e4852cde77150fbd085f1f5b6'], + }), + ('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.66', { + 'source_tmpl': 'DBD-SQLite-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI'], + 'checksums': ['89e75dff9f66c273e0e459d51f151f88960eb7d82e2821e6902f18688ba592fe'], + }), + ('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.86', { + 'source_tmpl': 'Archive-Extract-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['9acd09cdb8e8cf0b6d08210a3b80342300c89a359855319bf6b00c14c4aab687'], + }), + ('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'], + }), + ('File::Spec', '3.75', { + 'source_tmpl': 'PathTools-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], + 'checksums': ['a558503aa6b1f8c727c0073339081a77888606aa701ada1ad62dd9d8c3f945a2'], + }), + ('Test::Simple', '1.302183', { + 'source_tmpl': 'Test-Simple-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + 'checksums': ['9a03bda5ec420aea9692b650437f4d5b574fa505fdd7ff60cdb5f3ec034106ff'], + }), + ('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'], + }), + ('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.134', { + 'source_tmpl': 'Text-Table-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + 'checksums': ['bacf429b18b7c0b22c088219055063e3902749531d488ebd7b17eab7757cd10b'], + }), + ('MIME::Types', '2.20', { + 'source_tmpl': 'MIME-Types-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + 'checksums': ['3e71099b92bfdbd8ef9f0643d7160201c4176053276bcf7e074cf5734ea9f8f1'], + }), + ('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'], + }), + ('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.006', { + 'source_tmpl': 'File-Copy-Recursive-Reduced-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JK/JKEENAN'], + 'checksums': ['e618f993a69f4355205c58fffff6982609f28b47f646ec6e244e41b5c6707e2c'], + }), + ('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'], + }), + ('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::Parser', '3.76', { + 'source_tmpl': 'HTML-Parser-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['64d9e2eb2b420f1492da01ec0e6976363245b4be9290f03f10b7d2cb63fa2f61'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('URI', '5.09', { + 'source_tmpl': 'URI-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['03e63ada499d2645c435a57551f041f3943970492baa3b3338246dab6f1fae0a'], + }), + ('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'], + }), + ('GO', '0.04', { + 'source_tmpl': 'go-db-perl-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SJ/SJCARBON'], + 'checksums': ['8eb73d591ad767e7cf26def40cffd84833875f1ad51e456960b9ed73dc23641b'], + }), + ('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'], + }), + ('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.07', { + 'source_tmpl': 'Math-Round-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GROMMEL'], + 'checksums': ['73a7329a86e54a5c29a440382e5803095b58f33129e61a1df0093b4824de9327'], + }), + ('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::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.90', { + 'source_tmpl': 'Net-SSLeay-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHRISN'], + 'checksums': ['f8696cfaca98234679efeedc288a9398fcf77176f1f515dbc589ada7c650dc93'], + 'preconfigopts': "export OPENSSL_PREFIX=$EBROOTOPENSSL && ", + }), + ('IO::Socket::SSL', '2.070', { + 'source_tmpl': 'IO-Socket-SSL-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SU/SULLR'], + 'checksums': ['876fe09763e7a474519431aff248cb1f1abaf070d6bdc791f60bf9abe781cd3b'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('Getopt::Long', '2.52', { + 'source_tmpl': 'Getopt-Long-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JV/JV'], + 'checksums': ['9dc7a7c373353d5c05efae548e7b123aa8a31d1f506eb8dbbec8f0dca77705fa'], + }), + ('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'], + }), + ('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'], + }), + ('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.21', { + 'source_tmpl': 'Net-HTTP-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['375aa35b76be99f06464089174d66ac76f78ce83a5c92a907bbfab18b099eec4'], + }), + ('Test::Deep', '1.130', { + 'source_tmpl': 'Test-Deep-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['4064f494f5f62587d0ae501ca439105821ee5846c687dc6503233f55300a7c56'], + }), + ('Test::Warn', '0.36', { + 'source_tmpl': 'Test-Warn-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BIGJ'], + 'checksums': ['ecbca346d379cef8d3c0e4ac0c8eb3b2613d737ffaaeae52271c38d7bf3c6cda'], + }), + ('MRO::Compat', '0.13', { + 'source_tmpl': 'MRO-Compat-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + 'checksums': ['8a2c3b6ccc19328d5579d02a7d91285e2afd85d801f49d423a8eb16f323da4f8'], + }), + ('Moo', '2.005004', { + 'source_tmpl': 'Moo-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + 'checksums': ['e3030b80bd554a66f6b3c27fd53b1b5909d12af05c4c11ece9a58f8d1e478928'], + }), + ('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.07', { + 'source_tmpl': 'HTML-Form-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['7daa8c7eaff4005501c3431c8bf478d58bbee7b836f863581aa14afe1b4b6227'], + }), + ('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'], + }), + ('IPC::Run', '20200505.0', { + 'source_tmpl': 'IPC-Run-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + 'checksums': ['816ebf217fa0df99c583d73c0acc6ced78ac773787c664c75cbf140bb7e4c901'], + }), + ('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'], + }), + ('File::Remove', '1.60', { + 'source_tmpl': 'File-Remove-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + 'checksums': ['e86e2a40ffedc6d5697d071503fd6ba14a5f9b8220af3af022110d8e724f8ca6'], + }), + ('YAML::Tiny', '1.73', { + 'source_tmpl': 'YAML-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['bc315fa12e8f1e3ee5e2f430d90b708a5dc7e47c867dba8dce3a6b8fbe257744'], + }), + ('Module::Install', '1.19', { + 'source_tmpl': 'Module-Install-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['1a53a78ddf3ab9e3c03fc5e354b436319a944cba4281baf0b904fa932a13011b'], + }), + ('Config::Tiny', '2.26', { + 'source_tmpl': 'Config-Tiny-%(version)s.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + 'checksums': ['83b53291baec7884fbdfeb2a231297202df266cac58638b895ce25ec877dcf5f'], + }), + ('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'], + }), + ('Test::Most', '0.37', { + 'source_tmpl': 'Test-Most-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OV/OVID'], + 'checksums': ['533370141eb9f18cf4ac380f6ded2ab57802a6e184008a80fd2304bfcc474fc7'], + }), + ('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'], + }), + ('Test::Differences', '0.67', { + 'source_tmpl': 'Test-Differences-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DC/DCANTRELL'], + 'checksums': ['c88dbbb48b934b069284874f33abbaaa438aa31204aa3fa73bfc2f4aeac878da'], + }), + ('HTTP::Tiny', '0.076', { + 'source_tmpl': 'HTTP-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + 'checksums': ['ddbdaa2fb511339fa621a80021bf1b9733fddafc4fe0245f26c8b92171ef9387'], + }), + ('Package::DeprecationManager', '0.17', { + 'source_tmpl': 'Package-DeprecationManager-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['1d743ada482b5c9871d894966e87d4c20edc96931bb949fb2638b000ddd6684b'], + }), + ('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.9929', { + 'source_tmpl': 'version-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['5056ed481ada4e0fa497096d4091b18658f214d862e1ed164edf10bc6b39c8b0'], + }), + ('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'], + }), + ('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.26', { + 'source_tmpl': 'Sub-Name-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['2d2f2d697d516c89547e7c4307f1e79441641cae2c7395e7319b306d390df105'], + }), + ('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'], + }), + ('MIME::Lite', '3.031', { + 'source_tmpl': 'MIME-Lite-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['f1235866482b67f00858b3edaa4ff4cf909ef900f1d15d889948bf9c03a591e0'], + }), + ('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', { + '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::Tagset', '3.20', { + 'source_tmpl': 'HTML-Tagset-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PETDANCE'], + 'checksums': ['adb17dac9e36cd011f5243881c9739417fd102fce760f8de4e9be4c7131108e2'], + }), + ('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'], + }), + ('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.46', { + 'source_tmpl': 'Term-UI-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['91946c80d7f4aab0ca4bfedc3bbe0a75b37cab1a29bd7bca3b3b7456d417e9a6'], + }), + ('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.0800', { + 'source_tmpl': 'Statistics-Descriptive-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + 'checksums': ['b04edeea26bfed435aa6029956798c281f7f52d4545f3f45b2ad44954e96f939'], + }), + ('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'], + }), + ('LWP::Simple', '6.53', { + 'source_tmpl': 'libwww-perl-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['9cbb7c688416a20c1aba9a32568504af1143ced58b572c502a1b2fb8a500f535'], + }), + ('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.29', { + 'source_tmpl': 'Package-Stash-XS-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['d3676ba94641e03d6a30e951f09266c4c3ca3f5b58aa7b314a67f28e419878aa'], + }), + ('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'], + }), + ('Number::Format', '1.75', { + 'source_tmpl': 'Number-Format-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/W/WR/WRW'], + 'checksums': ['82d659cb16461764fd44d11a9ce9e6a4f5e8767dc1069eb03467c6e55de257f3'], + }), + ('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'], + }), + ('Test::NoWarnings', '1.04', { + 'source_tmpl': 'Test-NoWarnings-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + 'checksums': ['638a57658cb119af1fe5b15e73d47c2544dcfef84af0c6b1b2e97f08202b686c'], + }), + ('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'], + }), + ('Exporter', '5.74', { + 'source_tmpl': 'Exporter-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + 'checksums': ['eadb889ef673ad940da6aa4f6f7d75fc1e625ae786ae3533fd313eaf629945b8'], + }), + ('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'], + }), + ('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'], + }), + ('Carp', '1.50', { + 'source_tmpl': 'Carp-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], + 'checksums': ['f5273b4e1a6d51b22996c48cb3a3cbc72fd456c4038f5c20b127e2d4bcbcebd9'], + }), + ('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'], + }), + ('XML::XPath', '1.44', { + 'source_tmpl': 'XML-XPath-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MANWAR'], + 'checksums': ['1cc9110705165dc09dd09974dd7c0b6709c9351d6b6b1cef5a711055f891dd0f'], + }), + ('JSON', '4.03', { + 'source_tmpl': 'JSON-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI'], + 'checksums': ['e41f8761a5e7b9b27af26fe5780d44550d7a6a66bf3078e337d676d07a699941'], + }), + ('Sub::Exporter', '0.987', { + 'source_tmpl': 'Sub-Exporter-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['543cb2e803ab913d44272c7da6a70bb62c19e467f3b12aaac4c9523259b083d6'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('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::Iconv', '1.7', { + 'source_tmpl': 'Text-Iconv-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MP/MPIOTR'], + 'checksums': ['5b80b7d5e709d34393bcba88971864a17b44a5bf0f9e4bcee383d029e7d2d5c3'], + }), + ('Class::Data::Inheritable', '0.08', { + 'source_tmpl': 'Class-Data-Inheritable-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + 'checksums': ['9967feceea15227e442ec818723163eb6d73b8947e31f16ab806f6e2391af14a'], + }), + ('Text::Balanced', '2.04', { + 'source_tmpl': 'Text-Balanced-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], + 'checksums': ['f49c408b85c80ba762785428a87599bed22dc0fd6bb765c9fa6ddfaa32e4e7e2'], + }), + ('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.24', { + 'source_tmpl': 'File-Which-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + 'checksums': ['7c5414dd6d5c61cb992fdd257aefe52f9a80bf55158cd5ec17469199d0b12eef'], + }), + ('Email::Date::Format', '1.005', { + 'source_tmpl': 'Email-Date-Format-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['579c617e303b9d874411c7b61b46b59d36f815718625074ae6832e7bb9db5104'], + }), + ('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.00', { + 'source_tmpl': 'Text-CSV-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI'], + 'checksums': ['8ccbd9195805222d995844114d0e595bb24ce188f85284dbf256080311cbb2c2'], + }), + ('Test::Output', '1.033', { + 'source_tmpl': 'Test-Output-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BD/BDFOY'], + 'checksums': ['f6a8482740b075fad22aaf4d987d38ef927c6d2b452d4ae0d0bd8f779830556e'], + }), + ('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'], + }), + ('List::SomeUtils', '0.58', { + 'source_tmpl': 'List-SomeUtils-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['96eafb359339d22bf2a2de421298847a3c40f6a28b6d44005d0965da86a5469d'], + }), + ('List::UtilsBy', '0.11', { + 'source_tmpl': 'List-UtilsBy-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PEVANS'], + 'checksums': ['faddf43b4bc21db8e4c0e89a26e5f23fe626cde3491ec651b6aa338627f5775a'], + }), + ('List::AllUtils', '0.18', { + 'source_tmpl': 'List-AllUtils-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['b7c4bf80090b281c4a1560c76a1a819094c3a1294302f77afb8c60ca4862ecf9'], + }), + ('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'], + }), + ('Exception::Class', '1.44', { + 'source_tmpl': 'Exception-Class-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['33f3fbf8b138d3b04ea4ec0ba83fb0df6ba898806bcf4ef393d4cafc1a23ee0d'], + }), + ('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::LaTeX', '0.61', { + 'source_tmpl': 'Pod-LaTeX-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TJ/TJENNESS'], + 'checksums': ['15a840ea1c8a76cd3c865fbbf2fec33b03615c0daa50f9c800c54e0cf0659d46'], + }), + ('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'], + }), + ('HTTP::Request', '6.29', { + 'source_tmpl': 'HTTP-Message-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['f4417970679e08f6deb0609009aa9515dee0c8d91dbadd6b86a26e2b8e0d6341'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('Sub::Install', '0.928', { + 'source_tmpl': 'Sub-Install-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['61e567a7679588887b7b86d427bc476ea6d77fffe7e0d17d640f89007d98ef0f'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('HTTP::Daemon', '6.12', { + 'source_tmpl': 'HTTP-Daemon-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['df47bed10c38670c780fd0116867d5fd4693604acde31ba63380dce04c4e1fa6'], + }), + ('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'], + }), + ('HTTP::Date', '6.05', { + 'source_tmpl': 'HTTP-Date-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['365d6294dfbd37ebc51def8b65b81eb79b3934ecbc95a2ec2d4d827efe6a922b'], + }), + ('Authen::SASL', '2.16', { + 'source_tmpl': 'Authen-SASL-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GB/GBARR'], + 'checksums': ['6614fa7518f094f853741b63c73f3627168c5d3aca89b1d02b1016dc32854e09'], + }), + ('Clone', '0.45', { + 'source_tmpl': 'Clone-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AT/ATOOMIC'], + 'checksums': ['cbb6ee348afa95432e4878893b46752549e70dc68fe6d9e430d1d2e99079a9e6'], + }), + ('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'], + }), + ('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', { + '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'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('Moose', '2.2015', { + 'source_tmpl': 'Moose-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['a679d39d3e2c075a88fe7de034923e7ed7caca465da188337eb1043af050f515'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('Package::Stash', '0.39', { + 'source_tmpl': 'Package-Stash-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['9165f555112e080493ce0e9129de0886da30b2593fb353a2abd1c76b2d2621b5'], + }), + ('Data::OptList', '0.110', { + 'source_tmpl': 'Data-OptList-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['366117cb2966473f2559f2f4575ff6ae69e84c69a0f30a0773e1b51a457ef5c3'], + }), + ('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.9910', { + 'source_tmpl': 'CPANPLUS-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['1315543ee7dc683cb40e6ebf154c939cd095b8cab2cdfd67c53412ccf70e03cb'], + }), + ('IO::Tty', '1.16', { + 'source_tmpl': 'IO-Tty-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + 'checksums': ['8f1a09c070738adc695df903f2e7f74308dd8d991b914c0bc390a0e6021294dd'], + }), + ('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'], + }), + ('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'], + }), + ('Want', '0.29', { + 'source_tmpl': 'Want-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RO/ROBIN'], + 'checksums': ['b4e4740b8d4cb783591273c636bd68304892e28d89e88abf9273b1de17f552f7'], + }), + ('Mail::Util', '2.21', { + 'source_tmpl': 'MailTools-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + 'checksums': ['4ad9bd6826b6f03a2727332466b1b7d29890c8d99a32b4b3b0a8d926ee1a44cb'], + }), + ('Text::Template', '1.59', { + 'source_tmpl': 'Text-Template-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MS/MSCHOUT'], + 'checksums': ['1dd2c788c05303ed9a970e1881109642151fa93e02c7a80d4c70608276bab1ee'], + }), + ('PDF::API2', '2.040', { + 'source_tmpl': 'PDF-API2-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SS/SSIMMS'], + 'checksums': ['4925f109f47bb6bdd6deb8cf37db4f2e39aa6cdc51991d1d8008b4312ed1935a'], + }), + ('Devel::CheckLib', '1.14', { + 'source_tmpl': 'Devel-CheckLib-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MATTN'], + 'checksums': ['f21c5e299ad3ce0fdc0cb0f41378dca85a70e8d6c9a7599f0e56a957200ec294'], + }), + ('SVG', '2.85', { + 'source_tmpl': 'SVG-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MANWAR'], + 'checksums': ['159ec81f3236175957c9a4e911cb0e3715dc5b658144c8a5418b772768a1477c'], + }), + ('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.54', { + 'source_tmpl': 'Log-Log4perl-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETJ'], + 'checksums': ['bbabe42d3b4cdaa3a47666b957be81d55bbd1cbcffcdff2b119586d33602eabe'], + }), + ('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::Path', '2.18', { + 'source_tmpl': 'File-Path-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JK/JKEENAN'], + 'checksums': ['980f0a17edb353df46e9cd7b357f9f5929cde0f80c45fd7a06cf7e0e8bd6addd'], + }), + ('File::Slurper', '0.012', { + 'source_tmpl': 'File-Slurper-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['4efb2ea416b110a1bda6f8133549cc6ea3676402e3caf7529fce0313250aa578'], + }), + ('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'], + }), + ('Graph', '0.9721', { + 'source_tmpl': 'Graph-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETJ'], + 'checksums': ['70ed685529a7baa2a4731553f1a959b5536e337cdf1f4241f5fefbff705ca3f3'], + }), + ('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.008', { + 'source_tmpl': 'PerlIO-utf8_strict-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['5f798ded50dcc7d421b57850f837310666d817f4c67c15ba0f5a1d38c74df459'], + }), + ('Devel::OverloadInfo', '0.005', { + 'source_tmpl': 'Devel-OverloadInfo-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IL/ILMARI'], + 'checksums': ['8bfde2ffa47c9946f8adc8cfc445c2f97b8d1cdd678111bee9f444e82f7aa6e7'], + }), + ('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'], + }), + ('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.008', { + 'source_tmpl': 'String-RewritePrefix-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['e45a31d6914e8f5fc722ef48d8819400dafc02105e0c61414aabbf01bce208eb'], + }), + ('Getopt::Long::Descriptive', '0.109', { + 'source_tmpl': 'Getopt-Long-Descriptive-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['05027ecdaf5bc442e10a5630d7ec407c1c47993b8776fe813ff47c0181db4193'], + }), + ('App::Cmd', '0.333', { + 'source_tmpl': 'App-Cmd-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['3ba1aa7890f2354501e4977cc5367cd6c462ef7b702d381d9923f7df6ec258f6'], + }), + ('Path::Tiny', '0.118', { + 'source_tmpl': 'Path-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + 'checksums': ['32138d8d0f4c9c1a84d2a8f91bc5e913d37d8a7edefbb15a10961bfed560b0fd'], + }), + ('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.100054', { + 'source_tmpl': 'Sub-Exporter-ForMethods-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['eef61c9421688bb3a7beaca71623df11c8a749307ae428abdabc556e2bfafc3e'], + }), + ('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'], + }), + ('B::Hooks::EndOfScope', '0.24', { + 'source_tmpl': 'B-Hooks-EndOfScope-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['03aa3dfe5d0aa6471a96f43fe8318179d19794d4a640708f0288f9216ec7acc6'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('MooseX::Types::Perl', '0.101343', { + 'source_tmpl': 'MooseX-Types-Perl-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['f084beaf3c33209c68d05d4dbc24c25d604a6458b9738d96dceb086c8ef1325a'], + }), + ('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'], + }), + ('Specio', '0.47', { + 'source_tmpl': 'Specio-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['f41307f14444f8777e572f27eeb6a964084399e7e382c47c577827ad8a286a1c'], + }), + ('Params::ValidationCompiler', '0.30', { + 'source_tmpl': 'Params-ValidationCompiler-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['dc5bee23383be42765073db284bed9fbd819d4705ad649c20b644452090d16cb'], + }), + ('Log::Dispatch', '2.70', { + 'source_tmpl': 'Log-Dispatch-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['a3d91cc52467d3a3c6683103f3df4472d71e405a45f553289448713ac4293f21'], + }), + ('String::Flogger', '1.101245', { + 'source_tmpl': 'String-Flogger-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['aa03c08e01f802a358c175c6093c02adf9688659a087a8ddefdc3e9cef72640b'], + }), + ('Log::Dispatchouli', '2.022', { + 'source_tmpl': 'Log-Dispatchouli-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['2a2a4176adafb85a1eb9c9dc389052919e8c2c9df99aaba538c06b8da964a5df'], + }), + ('Data::Section', '0.200007', { + 'source_tmpl': 'Data-Section-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['cd937e5b70e34aab885ff414e2a6d19e4783b7c28fc3cda5145b230514ebb4de'], + }), + ('Software::License', '0.103014', { + 'source_tmpl': 'Software-License-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['eb45ea602d75006683789fbba57a01c0a1f7037371de95ea54b91577535d1789'], + }), + ('MooseX::SetOnce', '0.200002', { + 'source_tmpl': 'MooseX-SetOnce-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['cbed06b7fcd353f0d99bf80a87c1c0b581160697231b3ad9a608da231ba2b659'], + }), + ('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'], + }), + ('Config::MVP', '2.200012', { + 'source_tmpl': 'Config-MVP-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['d8a6069be317a866d8041b1bb7cfafe34014f19743891f27a5e42a31b5c0ea75'], + }), + ('Throwable', '0.200013', { + 'source_tmpl': 'Throwable-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['9987d0deb5bddd352a6330cefbe932f882e36dd8c8a4564bcfd372dc396b8fa0'], + }), + ('Sub::Quote', '2.006006', { + 'source_tmpl': 'Sub-Quote-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + 'checksums': ['6e4e2af42388fa6d2609e0e82417de7cc6be47223f576592c656c73c7524d89d'], + }), + ('Role::Identifiable::HasIdent', '0.007', { + 'source_tmpl': 'Role-Identifiable-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['561346d1a1a07a45bd851d859a825a7f67925a7a3ba5ba58e0cdad8bb99073ad'], + }), + ('Role::HasMessage', '0.006', { + 'source_tmpl': 'Role-HasMessage-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['f6a6dbe0476ff95ee1ffbef825eb18d9b02b0618deba4686e7c63b99d576d4d3'], + }), + ('MooseX::OneArgNew', '0.005', { + 'source_tmpl': 'MooseX-OneArgNew-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['7e4fcf474ea6c4244f0885f1066729cfdc472fbd7190dd41b4b55bcd67c3103f'], + }), + ('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::LazyRequire', '0.11', { + 'source_tmpl': 'MooseX-LazyRequire-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['ef620c1e019daf9cf3f23a943d25a94c91e93ab312bcd63be2e9740ec0b94288'], + }), + ('Mixin::Linewise::Readers', '0.108', { + 'source_tmpl': 'Mixin-Linewise-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['7df20678474c0973930a472b0c55e3f8e85b7790b68ab18ef618f9c453c8aef2'], + }), + ('Config::INI', '0.025', { + 'source_tmpl': 'Config-INI-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['628bf76d5b91f89dde22d4813ec033026ebf71b772bb61ccda909da00c869732'], + }), + ('String::Truncate', '1.100602', { + 'source_tmpl': 'String-Truncate-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['aaa3d4eec01136921484139133eb75d5c571fe51b0ad329f089e6d469a235f6e'], + }), + ('Pod::Eventual', '0.094001', { + 'source_tmpl': 'Pod-Eventual-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['be9fb8910b108e5d1a66f002b659ad22576e88d779b703dff9d15122c3f80834'], + }), + ('Pod::Elemental', '0.103005', { + 'source_tmpl': 'Pod-Elemental-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['824336ec18326e3b970e7815922b3921b0a821d2ee0e50b0c5b2bc327f99615e'], + }), + ('Pod::Weaver', '4.017', { + 'source_tmpl': 'Pod-Weaver-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['ec6dc6fe1df3d61f14242323092ad7c5542587f30365acaedcd8cca62de442a4'], + }), + ('Dist::Zilla', '6.017', { + 'source_tmpl': 'Dist-Zilla-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['5c8d30ce33ac8b5e937e6f83fcfa779e7225ca149951ee5c9bc2c3af3c2b6fee'], + }), + ('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.23', { + 'source_tmpl': 'Data-Dump-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + 'checksums': ['af53b05ef1387b4cab4427e6789179283e4f0da8cf036e8db516ddb344512b65'], + }), + ('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.7044', { + 'source_tmpl': 'App-cpanminus-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + 'checksums': ['9b60767fe40752ef7a9d3f13f19060a63389a5c23acc3e9827e19b75500f81f3'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('Thread::Queue', '3.13', { + 'source_tmpl': 'Thread-Queue-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JD/JDHEDDEN'], + 'checksums': ['6ba3dacddd2fbb66822b4aa1d11a0a5273cd04c825cb3ff31c20d7037cbfdce8'], + }), + ('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.37', { + 'source_tmpl': 'Term-ReadLine-Gnu-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAYASHI'], + 'checksums': ['3bd31a998a9c14748ee553aed3e6b888ec47ff57c07fc5beafb04a38a72f0078'], + }), + ('ExtUtils::MakeMaker', '7.62', { + 'source_tmpl': 'ExtUtils-MakeMaker-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['5022ad857fd76bd3f6b16af099fe2324639d9932e08f21e891fb313d9cae1705'], + }), + ('List::Util', '1.56', { + 'source_tmpl': 'Scalar-List-Utils-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PEVANS'], + 'checksums': ['15b8537d40fb3e6dae64b2e7e983c47a99b2c20816a180bb9c868b787a12ab5b'], + }), + ('Module::CoreList', '5.20210420', { + 'source_tmpl': 'Module-CoreList-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['0d4e2d6c59cf80e9163227364cd3ab14050d232093144f6226e961999cf0144b'], + }), + ('Module::Metadata', '1.000037', { + 'source_tmpl': 'Module-Metadata-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['8d5a74c1b07e145edda254602fedf19c0dd0c2d9688a370afdaff89c32cba629'], + }), + ('Params::Check', '0.38', { + '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', { + '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', { + 'source_tmpl': 'if-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], + 'checksums': ['37206e10919c4d99273020008a3581bf0947d364e859b8966521c3145b4b3700'], + }), + ('Test', '1.26', { + 'source_tmpl': 'Test-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JE/JESSE'], + 'checksums': ['f7701bd28e05e7f82fe9a181bbab38f53fa6aeae48d2a810da74d1b981d4f392'], + }), + ('ExtUtils::Constant', '0.25', { + '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.42', { + 'source_tmpl': 'Pod-Simple-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KH/KHW'], + 'checksums': ['a9fceb2e0318e3786525e6bf205e3e143f0cf3622740819cab5f058e657e8ac5'], + }), + ('Socket', '2.031', { + 'source_tmpl': 'Socket-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PEVANS'], + 'checksums': ['c7bc60af60c1cce36fb83866ac8108a3d937c50e62493240d858df0eb6f4bcd2'], + }), + ('Time::Local', '1.30', { + 'source_tmpl': 'Time-Local-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['c7744f6b2986b946d3e2cf034df371bee16cdbafe53e945abb1a542c4f8920cb'], + }), + ('Storable', '3.15', { + 'source_tmpl': 'Storable-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], + 'checksums': ['fc3dad06cb2e6fc86a2f2abc5b5491d9da328ca3e6b6306559c224521db174da'], + }), + ('ExtUtils::ParseXS', '3.35', { + 'source_tmpl': 'ExtUtils-ParseXS-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SM/SMUELLER'], + 'checksums': ['41def0511278a2a8ba9afa25ccab45b0453f75e7fd774e8644b5f9a57cc4ee1c'], + }), + ('Pod::Man', '4.14', { + 'source_tmpl': 'podlators-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RR/RRA'], + 'checksums': ['7af1c41de34b2e4dbff700a29d7387549c2b6cf16142214450c924707ddb0f82'], + }), + ('Mozilla::CA', '20200520', { + 'source_tmpl': 'Mozilla-CA-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABH'], + 'checksums': ['b3ca0002310bf24a16c0d5920bdea97a2f46e77e7be3e7377e850d033387c726'], + }), + ('Test::More', '1.302183', { + 'source_tmpl': 'Test-Simple-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + 'checksums': ['9a03bda5ec420aea9692b650437f4d5b574fa505fdd7ff60cdb5f3ec034106ff'], + }), + ('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'], + }), + ('LWP::Protocol::https', '6.10', { + 'source_tmpl': 'LWP-Protocol-https-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['cecfc31fe2d4fc854cac47fce13d3a502e8fdfe60c5bc1c09535743185f2a86c'], + }), + ('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.238', { + 'source_tmpl': 'parent-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CO/CORION'], + 'checksums': ['38f58fdef3e28a194c9c8d0dc5d02672faf93c069f40c5bcb1fabeadbbc4d2d1'], + }), + ('Net::Domain', '3.13', { + 'source_tmpl': 'libnet-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], + 'checksums': ['5a35fb1f2d4aa291680eb1af38899fab453c22c28e71f7c7bd3747b5a3db348c'], + }), + ('Scalar::Util', '1.56', { + 'source_tmpl': 'Scalar-List-Utils-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PEVANS'], + 'checksums': ['15b8537d40fb3e6dae64b2e7e983c47a99b2c20816a180bb9c868b787a12ab5b'], + }), + ('Text::ParseWords', '3.30', { + 'source_tmpl': 'Text-ParseWords-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + 'checksums': ['85e0238179dd43997e58c66bd51611182bc7d533505029a2db0d3232edaff5e8'], + }), + ('Encode', '3.08', { + 'source_tmpl': 'Encode-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DANKOGAI'], + 'checksums': ['ed063d01d01a140a3a3ec0aeba2f2b4849a35c18ca96ac231a5d7c7d54d17b5b'], + }), + ('constant', '1.33', { + 'source_tmpl': 'constant-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['79965d4130eb576670e27ca0ae6899ef0060c76da48b02b97682166882f1b504'], + }), + ('Data::Dumper', '2.173', { + 'source_tmpl': 'Data-Dumper-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], + 'checksums': ['697608b39330988e519131be667ff47168aaaaf99f06bd2095d5b46ad05d76fa'], + }), + ('Cwd', '3.75', { + '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.21', { + 'source_tmpl': 'ExtUtils-CppGuess-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETJ'], + 'checksums': ['ff629178321a1e591b83f809712593eae4408a413aa448654bce59b156f24153'], + }), + ('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'], + }), + ('URI::Escape', '5.09', { + 'source_tmpl': 'URI-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['03e63ada499d2645c435a57551f041f3943970492baa3b3338246dab6f1fae0a'], + }), + ('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.874', { + 'source_tmpl': 'MCE-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARIOROY'], + 'checksums': ['d809e3018475115ad7eccb8bef49bde3bf3e75abbbcd80564728bbcfab86d3d0'], + }), + ('Text::CSV_XS', '1.46', { + 'source_tmpl': 'Text-CSV_XS-%(version)s.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HM/HMBRAND'], + 'checksums': ['27e39f0d5f2322aaf78ff90eb1221f3cbed1d4c514d0956bda19407fcb98bed6'], + }), + ('DBD::CSV', '0.58', { + 'source_tmpl': 'DBD-CSV-%(version)s.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HM/HMBRAND'], + 'checksums': ['6c26f710453b14d7b3cf5f3e1697e8ddaa48c0a66f5d811f4394bd8c32f287ef'], + }), + ('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', '3.006', { + 'source_tmpl': 'Business-ISBN-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BD/BDFOY'], + 'checksums': ['c1fefe68354ffb80cdbd24303ebe684b3b6828df3d5f09b429a09fc4f0919c9a'], + }), + ('Business::ISBN::Data', '20210112.006', { + 'source_tmpl': 'Business-ISBN-Data-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BD/BDFOY'], + 'checksums': ['98c2cfb266b5fdd016989abaa471d9dd4c1d593c508a6f01f66d184d5fee8bae'], + }), + ('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'], + }), + ('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'], + 'checksums': ['515536f45f2fa1a7e88c8824533758d0121d267ab9cb453a1b5887c8a56b9068'], + }), + ('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'], + }), + ('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'], + }), +] + +moduleclass = 'lang' 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 new file mode 100644 index 00000000000..947436d0265 --- /dev/null +++ b/easybuild/easyconfigs/p/Perl/Perl-5.32.1-GCCcore-10.3.0.eb @@ -0,0 +1,1772 @@ +## +# Author: Robert Mijakovic +## +name = 'Perl' +version = '5.32.1' + +homepage = 'https://www.perl.org/' +description = """Larry Wall's Practical Extraction and Report Language""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://www.cpan.org/src/%(version_major)s.0'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['03b693901cd8ae807231b1787798cf1f2e0b8a56218d07b7da44f784a7caeb2c'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('groff', '1.22.4'), +] + +dependencies = [ + ('zlib', '1.2.11'), # for Net::SSLeay + ('expat', '2.2.9'), # for XML::Parser + ('ncurses', '6.2'), # for Term::ReadLine::Gnu + ('libreadline', '8.1'), # for Term::ReadLine::Gnu + ('DB', '18.1.40'), # for DB_File + ('OpenSSL', '1.1', '', True), # required for Net::SSLeay +] + +# !! order of extensions is important !! +# extensions updated on Apr 21st 2021 +exts_list = [ + ('Config::General', '2.63', { + 'source_tmpl': 'Config-General-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TL/TLINDEN'], + 'checksums': ['0a9bf977b8aabe76343e88095d2296c8a422410fd2a05a1901f2b20e2e1f6fad'], + }), + ('File::Listing', '6.14', { + 'source_tmpl': 'File-Listing-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + 'checksums': ['15b3a4871e23164a36f226381b74d450af41f12cc94985f592a669fcac7b48ff'], + }), + ('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.42', { + 'source_tmpl': 'Test-Harness-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['0fd90d4efea82d6e262e6933759e85d27cbcfa4091b14bf4042ae20bab528e53'], + }), + ('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'], + }), + ('Module::Build::Tiny', '0.039', { + 'source_tmpl': 'Module-Build-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['7d580ff6ace0cbe555bf36b86dc8ea232581530cbeaaea09bccb57b55797f11c'], + }), + ('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'], + }), + ('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'], + }), + ('Test::Fatal', '0.016', { + 'source_tmpl': 'Test-Fatal-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['7283d430f2ba2030b8cd979ae3039d3f1b2ec3dde1a11ca6ae09f992a66f788f'], + }), + ('Test::Warnings', '0.030', { + 'source_tmpl': 'Test-Warnings-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['89a4947ddf1564ae01122275584433d7f6c4370370bcf3768922d796956ae24f'], + }), + ('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'], + }), + ('File::ShareDir::Install', '0.13', { + 'source_tmpl': 'File-ShareDir-Install-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['45befdf0d95cbefe7c25a1daf293d85f780d6d2576146546e6828aad26e580f9'], + }), + ('DateTime::Locale', '1.31', { + 'source_tmpl': 'DateTime-Locale-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['c7224c7e51dce4dd9ba80d8857cd4c3b72137653da34d3ba3c3a3c20cbf438b8'], + }), + ('DateTime::TimeZone', '2.47', { + 'source_tmpl': 'DateTime-TimeZone-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['41617138dbb5e255fe5ac3cab6f1cc8e09f934bc95906b8cd7077192a21ef2b9'], + }), + ('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'], + }), + ('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'], + }), + ('Module::Build', '0.4231', { + 'source_tmpl': 'Module-Build-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['7e0f4c692c1740c1ac84ea14d7ea3d8bc798b2fb26c09877229e04f430b2b717'], + }), + ('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'], + }), + ('Try::Tiny', '0.30', { + 'source_tmpl': 'Try-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['da5bd0d5c903519bbf10bb9ba0cb7bcac0563882bcfe4503aee3fb143eddef6b'], + }), + ('Params::Validate', '1.30', { + 'source_tmpl': 'Params-Validate-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['9a3a35583d3125d07e8c802c1f92f5be7d526e76dd496e944da270b1e273d812'], + }), + ('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'], + }), + ('Exporter::Tiny', '1.002002', { + 'source_tmpl': 'Exporter-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TOBYINK'], + 'checksums': ['00f0b95716b18157132c6c118ded8ba31392563d19e490433e9a65382e707101'], + }), + ('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', '1.54', { + 'source_tmpl': 'DateTime-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['b12eda6d900713f227964dc4dc0e2efb86d294e8bc2f16be9e95b659f953b2e7'], + }), + ('File::Find::Rule::Perl', '1.15', { + 'source_tmpl': 'File-Find-Rule-Perl-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['9a48433f86e08ce18e03526e2982de52162eb909d19735460f07eefcaf463ea6'], + }), + ('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'], + }), + ('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.009', { + 'source_tmpl': 'Template-Toolkit-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AT/ATOOMIC'], + 'checksums': ['d6ad23bbf637a59b5dfd1ac006460dfcb185982e4852cde77150fbd085f1f5b6'], + }), + ('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.66', { + 'source_tmpl': 'DBD-SQLite-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI'], + 'checksums': ['89e75dff9f66c273e0e459d51f151f88960eb7d82e2821e6902f18688ba592fe'], + }), + ('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.86', { + 'source_tmpl': 'Archive-Extract-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['9acd09cdb8e8cf0b6d08210a3b80342300c89a359855319bf6b00c14c4aab687'], + }), + ('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'], + }), + ('File::Spec', '3.75', { + 'source_tmpl': 'PathTools-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], + 'checksums': ['a558503aa6b1f8c727c0073339081a77888606aa701ada1ad62dd9d8c3f945a2'], + }), + ('Test::Simple', '1.302183', { + 'source_tmpl': 'Test-Simple-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + 'checksums': ['9a03bda5ec420aea9692b650437f4d5b574fa505fdd7ff60cdb5f3ec034106ff'], + }), + ('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'], + }), + ('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.134', { + 'source_tmpl': 'Text-Table-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + 'checksums': ['bacf429b18b7c0b22c088219055063e3902749531d488ebd7b17eab7757cd10b'], + }), + ('MIME::Types', '2.20', { + 'source_tmpl': 'MIME-Types-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + 'checksums': ['3e71099b92bfdbd8ef9f0643d7160201c4176053276bcf7e074cf5734ea9f8f1'], + }), + ('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'], + }), + ('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.006', { + 'source_tmpl': 'File-Copy-Recursive-Reduced-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JK/JKEENAN'], + 'checksums': ['e618f993a69f4355205c58fffff6982609f28b47f646ec6e244e41b5c6707e2c'], + }), + ('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'], + }), + ('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::Parser', '3.76', { + 'source_tmpl': 'HTML-Parser-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['64d9e2eb2b420f1492da01ec0e6976363245b4be9290f03f10b7d2cb63fa2f61'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('URI', '5.09', { + 'source_tmpl': 'URI-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['03e63ada499d2645c435a57551f041f3943970492baa3b3338246dab6f1fae0a'], + }), + ('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'], + }), + ('GO', '0.04', { + 'source_tmpl': 'go-db-perl-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SJ/SJCARBON'], + 'checksums': ['8eb73d591ad767e7cf26def40cffd84833875f1ad51e456960b9ed73dc23641b'], + }), + ('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'], + }), + ('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.07', { + 'source_tmpl': 'Math-Round-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GROMMEL'], + 'checksums': ['73a7329a86e54a5c29a440382e5803095b58f33129e61a1df0093b4824de9327'], + }), + ('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::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.90', { + 'source_tmpl': 'Net-SSLeay-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHRISN'], + 'checksums': ['f8696cfaca98234679efeedc288a9398fcf77176f1f515dbc589ada7c650dc93'], + 'preconfigopts': "export OPENSSL_PREFIX=$EBROOTOPENSSL && ", + }), + ('IO::Socket::SSL', '2.070', { + 'source_tmpl': 'IO-Socket-SSL-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SU/SULLR'], + 'checksums': ['876fe09763e7a474519431aff248cb1f1abaf070d6bdc791f60bf9abe781cd3b'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('Getopt::Long', '2.52', { + 'source_tmpl': 'Getopt-Long-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JV/JV'], + 'checksums': ['9dc7a7c373353d5c05efae548e7b123aa8a31d1f506eb8dbbec8f0dca77705fa'], + }), + ('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'], + }), + ('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'], + }), + ('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.21', { + 'source_tmpl': 'Net-HTTP-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['375aa35b76be99f06464089174d66ac76f78ce83a5c92a907bbfab18b099eec4'], + }), + ('Test::Deep', '1.130', { + 'source_tmpl': 'Test-Deep-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['4064f494f5f62587d0ae501ca439105821ee5846c687dc6503233f55300a7c56'], + }), + ('Test::Warn', '0.36', { + 'source_tmpl': 'Test-Warn-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BIGJ'], + 'checksums': ['ecbca346d379cef8d3c0e4ac0c8eb3b2613d737ffaaeae52271c38d7bf3c6cda'], + }), + ('MRO::Compat', '0.13', { + 'source_tmpl': 'MRO-Compat-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + 'checksums': ['8a2c3b6ccc19328d5579d02a7d91285e2afd85d801f49d423a8eb16f323da4f8'], + }), + ('Moo', '2.005004', { + 'source_tmpl': 'Moo-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + 'checksums': ['e3030b80bd554a66f6b3c27fd53b1b5909d12af05c4c11ece9a58f8d1e478928'], + }), + ('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.07', { + 'source_tmpl': 'HTML-Form-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['7daa8c7eaff4005501c3431c8bf478d58bbee7b836f863581aa14afe1b4b6227'], + }), + ('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'], + }), + ('IPC::Run', '20200505.0', { + 'source_tmpl': 'IPC-Run-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + 'checksums': ['816ebf217fa0df99c583d73c0acc6ced78ac773787c664c75cbf140bb7e4c901'], + }), + ('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'], + }), + ('File::Remove', '1.60', { + 'source_tmpl': 'File-Remove-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + 'checksums': ['e86e2a40ffedc6d5697d071503fd6ba14a5f9b8220af3af022110d8e724f8ca6'], + }), + ('YAML::Tiny', '1.73', { + 'source_tmpl': 'YAML-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['bc315fa12e8f1e3ee5e2f430d90b708a5dc7e47c867dba8dce3a6b8fbe257744'], + }), + ('Module::Install', '1.19', { + 'source_tmpl': 'Module-Install-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['1a53a78ddf3ab9e3c03fc5e354b436319a944cba4281baf0b904fa932a13011b'], + }), + ('Config::Tiny', '2.26', { + 'source_tmpl': 'Config-Tiny-%(version)s.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + 'checksums': ['83b53291baec7884fbdfeb2a231297202df266cac58638b895ce25ec877dcf5f'], + }), + ('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'], + }), + ('Test::Most', '0.37', { + 'source_tmpl': 'Test-Most-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OV/OVID'], + 'checksums': ['533370141eb9f18cf4ac380f6ded2ab57802a6e184008a80fd2304bfcc474fc7'], + }), + ('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'], + }), + ('Test::Differences', '0.67', { + 'source_tmpl': 'Test-Differences-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DC/DCANTRELL'], + 'checksums': ['c88dbbb48b934b069284874f33abbaaa438aa31204aa3fa73bfc2f4aeac878da'], + }), + ('HTTP::Tiny', '0.076', { + 'source_tmpl': 'HTTP-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + 'checksums': ['ddbdaa2fb511339fa621a80021bf1b9733fddafc4fe0245f26c8b92171ef9387'], + }), + ('Package::DeprecationManager', '0.17', { + 'source_tmpl': 'Package-DeprecationManager-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['1d743ada482b5c9871d894966e87d4c20edc96931bb949fb2638b000ddd6684b'], + }), + ('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.9929', { + 'source_tmpl': 'version-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['5056ed481ada4e0fa497096d4091b18658f214d862e1ed164edf10bc6b39c8b0'], + }), + ('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'], + }), + ('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.26', { + 'source_tmpl': 'Sub-Name-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['2d2f2d697d516c89547e7c4307f1e79441641cae2c7395e7319b306d390df105'], + }), + ('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'], + }), + ('MIME::Lite', '3.031', { + 'source_tmpl': 'MIME-Lite-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['f1235866482b67f00858b3edaa4ff4cf909ef900f1d15d889948bf9c03a591e0'], + }), + ('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', { + '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::Tagset', '3.20', { + 'source_tmpl': 'HTML-Tagset-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PETDANCE'], + 'checksums': ['adb17dac9e36cd011f5243881c9739417fd102fce760f8de4e9be4c7131108e2'], + }), + ('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'], + }), + ('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.46', { + 'source_tmpl': 'Term-UI-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['91946c80d7f4aab0ca4bfedc3bbe0a75b37cab1a29bd7bca3b3b7456d417e9a6'], + }), + ('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.0800', { + 'source_tmpl': 'Statistics-Descriptive-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + 'checksums': ['b04edeea26bfed435aa6029956798c281f7f52d4545f3f45b2ad44954e96f939'], + }), + ('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'], + }), + ('LWP::Simple', '6.53', { + 'source_tmpl': 'libwww-perl-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['9cbb7c688416a20c1aba9a32568504af1143ced58b572c502a1b2fb8a500f535'], + }), + ('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.29', { + 'source_tmpl': 'Package-Stash-XS-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['d3676ba94641e03d6a30e951f09266c4c3ca3f5b58aa7b314a67f28e419878aa'], + }), + ('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'], + }), + ('Number::Format', '1.75', { + 'source_tmpl': 'Number-Format-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/W/WR/WRW'], + 'checksums': ['82d659cb16461764fd44d11a9ce9e6a4f5e8767dc1069eb03467c6e55de257f3'], + }), + ('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'], + }), + ('Test::NoWarnings', '1.04', { + 'source_tmpl': 'Test-NoWarnings-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + 'checksums': ['638a57658cb119af1fe5b15e73d47c2544dcfef84af0c6b1b2e97f08202b686c'], + }), + ('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'], + }), + ('Exporter', '5.74', { + 'source_tmpl': 'Exporter-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + 'checksums': ['eadb889ef673ad940da6aa4f6f7d75fc1e625ae786ae3533fd313eaf629945b8'], + }), + ('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'], + }), + ('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'], + }), + ('Carp', '1.50', { + 'source_tmpl': 'Carp-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], + 'checksums': ['f5273b4e1a6d51b22996c48cb3a3cbc72fd456c4038f5c20b127e2d4bcbcebd9'], + }), + ('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'], + }), + ('XML::XPath', '1.44', { + 'source_tmpl': 'XML-XPath-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MANWAR'], + 'checksums': ['1cc9110705165dc09dd09974dd7c0b6709c9351d6b6b1cef5a711055f891dd0f'], + }), + ('JSON', '4.03', { + 'source_tmpl': 'JSON-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI'], + 'checksums': ['e41f8761a5e7b9b27af26fe5780d44550d7a6a66bf3078e337d676d07a699941'], + }), + ('Sub::Exporter', '0.987', { + 'source_tmpl': 'Sub-Exporter-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['543cb2e803ab913d44272c7da6a70bb62c19e467f3b12aaac4c9523259b083d6'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('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::Iconv', '1.7', { + 'source_tmpl': 'Text-Iconv-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MP/MPIOTR'], + 'checksums': ['5b80b7d5e709d34393bcba88971864a17b44a5bf0f9e4bcee383d029e7d2d5c3'], + }), + ('Class::Data::Inheritable', '0.08', { + 'source_tmpl': 'Class-Data-Inheritable-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + 'checksums': ['9967feceea15227e442ec818723163eb6d73b8947e31f16ab806f6e2391af14a'], + }), + ('Text::Balanced', '2.04', { + 'source_tmpl': 'Text-Balanced-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], + 'checksums': ['f49c408b85c80ba762785428a87599bed22dc0fd6bb765c9fa6ddfaa32e4e7e2'], + }), + ('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.24', { + 'source_tmpl': 'File-Which-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + 'checksums': ['7c5414dd6d5c61cb992fdd257aefe52f9a80bf55158cd5ec17469199d0b12eef'], + }), + ('Email::Date::Format', '1.005', { + 'source_tmpl': 'Email-Date-Format-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['579c617e303b9d874411c7b61b46b59d36f815718625074ae6832e7bb9db5104'], + }), + ('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.00', { + 'source_tmpl': 'Text-CSV-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI'], + 'checksums': ['8ccbd9195805222d995844114d0e595bb24ce188f85284dbf256080311cbb2c2'], + }), + ('Test::Output', '1.033', { + 'source_tmpl': 'Test-Output-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BD/BDFOY'], + 'checksums': ['f6a8482740b075fad22aaf4d987d38ef927c6d2b452d4ae0d0bd8f779830556e'], + }), + ('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'], + }), + ('List::SomeUtils', '0.58', { + 'source_tmpl': 'List-SomeUtils-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['96eafb359339d22bf2a2de421298847a3c40f6a28b6d44005d0965da86a5469d'], + }), + ('List::UtilsBy', '0.11', { + 'source_tmpl': 'List-UtilsBy-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PEVANS'], + 'checksums': ['faddf43b4bc21db8e4c0e89a26e5f23fe626cde3491ec651b6aa338627f5775a'], + }), + ('List::AllUtils', '0.18', { + 'source_tmpl': 'List-AllUtils-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['b7c4bf80090b281c4a1560c76a1a819094c3a1294302f77afb8c60ca4862ecf9'], + }), + ('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'], + }), + ('Exception::Class', '1.44', { + 'source_tmpl': 'Exception-Class-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['33f3fbf8b138d3b04ea4ec0ba83fb0df6ba898806bcf4ef393d4cafc1a23ee0d'], + }), + ('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::LaTeX', '0.61', { + 'source_tmpl': 'Pod-LaTeX-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TJ/TJENNESS'], + 'checksums': ['15a840ea1c8a76cd3c865fbbf2fec33b03615c0daa50f9c800c54e0cf0659d46'], + }), + ('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'], + }), + ('HTTP::Request', '6.29', { + 'source_tmpl': 'HTTP-Message-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['f4417970679e08f6deb0609009aa9515dee0c8d91dbadd6b86a26e2b8e0d6341'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('Sub::Install', '0.928', { + 'source_tmpl': 'Sub-Install-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['61e567a7679588887b7b86d427bc476ea6d77fffe7e0d17d640f89007d98ef0f'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('HTTP::Daemon', '6.12', { + 'source_tmpl': 'HTTP-Daemon-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['df47bed10c38670c780fd0116867d5fd4693604acde31ba63380dce04c4e1fa6'], + }), + ('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'], + }), + ('HTTP::Date', '6.05', { + 'source_tmpl': 'HTTP-Date-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['365d6294dfbd37ebc51def8b65b81eb79b3934ecbc95a2ec2d4d827efe6a922b'], + }), + ('Authen::SASL', '2.16', { + 'source_tmpl': 'Authen-SASL-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GB/GBARR'], + 'checksums': ['6614fa7518f094f853741b63c73f3627168c5d3aca89b1d02b1016dc32854e09'], + }), + ('Clone', '0.45', { + 'source_tmpl': 'Clone-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AT/ATOOMIC'], + 'checksums': ['cbb6ee348afa95432e4878893b46752549e70dc68fe6d9e430d1d2e99079a9e6'], + }), + ('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'], + }), + ('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', { + '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'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('Moose', '2.2015', { + 'source_tmpl': 'Moose-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['a679d39d3e2c075a88fe7de034923e7ed7caca465da188337eb1043af050f515'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('Package::Stash', '0.39', { + 'source_tmpl': 'Package-Stash-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['9165f555112e080493ce0e9129de0886da30b2593fb353a2abd1c76b2d2621b5'], + }), + ('Data::OptList', '0.110', { + 'source_tmpl': 'Data-OptList-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['366117cb2966473f2559f2f4575ff6ae69e84c69a0f30a0773e1b51a457ef5c3'], + }), + ('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.9910', { + 'source_tmpl': 'CPANPLUS-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['1315543ee7dc683cb40e6ebf154c939cd095b8cab2cdfd67c53412ccf70e03cb'], + }), + ('IO::Tty', '1.16', { + 'source_tmpl': 'IO-Tty-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + 'checksums': ['8f1a09c070738adc695df903f2e7f74308dd8d991b914c0bc390a0e6021294dd'], + }), + ('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'], + }), + ('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'], + }), + ('Want', '0.29', { + 'source_tmpl': 'Want-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RO/ROBIN'], + 'checksums': ['b4e4740b8d4cb783591273c636bd68304892e28d89e88abf9273b1de17f552f7'], + }), + ('Mail::Util', '2.21', { + 'source_tmpl': 'MailTools-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + 'checksums': ['4ad9bd6826b6f03a2727332466b1b7d29890c8d99a32b4b3b0a8d926ee1a44cb'], + }), + ('Text::Template', '1.59', { + 'source_tmpl': 'Text-Template-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MS/MSCHOUT'], + 'checksums': ['1dd2c788c05303ed9a970e1881109642151fa93e02c7a80d4c70608276bab1ee'], + }), + ('PDF::API2', '2.040', { + 'source_tmpl': 'PDF-API2-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SS/SSIMMS'], + 'checksums': ['4925f109f47bb6bdd6deb8cf37db4f2e39aa6cdc51991d1d8008b4312ed1935a'], + }), + ('Devel::CheckLib', '1.14', { + 'source_tmpl': 'Devel-CheckLib-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MATTN'], + 'checksums': ['f21c5e299ad3ce0fdc0cb0f41378dca85a70e8d6c9a7599f0e56a957200ec294'], + }), + ('SVG', '2.85', { + 'source_tmpl': 'SVG-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MANWAR'], + 'checksums': ['159ec81f3236175957c9a4e911cb0e3715dc5b658144c8a5418b772768a1477c'], + }), + ('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.54', { + 'source_tmpl': 'Log-Log4perl-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETJ'], + 'checksums': ['bbabe42d3b4cdaa3a47666b957be81d55bbd1cbcffcdff2b119586d33602eabe'], + }), + ('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::Path', '2.18', { + 'source_tmpl': 'File-Path-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JK/JKEENAN'], + 'checksums': ['980f0a17edb353df46e9cd7b357f9f5929cde0f80c45fd7a06cf7e0e8bd6addd'], + }), + ('File::Slurper', '0.012', { + 'source_tmpl': 'File-Slurper-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['4efb2ea416b110a1bda6f8133549cc6ea3676402e3caf7529fce0313250aa578'], + }), + ('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'], + }), + ('Graph', '0.9721', { + 'source_tmpl': 'Graph-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETJ'], + 'checksums': ['70ed685529a7baa2a4731553f1a959b5536e337cdf1f4241f5fefbff705ca3f3'], + }), + ('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.008', { + 'source_tmpl': 'PerlIO-utf8_strict-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['5f798ded50dcc7d421b57850f837310666d817f4c67c15ba0f5a1d38c74df459'], + }), + ('Devel::OverloadInfo', '0.005', { + 'source_tmpl': 'Devel-OverloadInfo-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IL/ILMARI'], + 'checksums': ['8bfde2ffa47c9946f8adc8cfc445c2f97b8d1cdd678111bee9f444e82f7aa6e7'], + }), + ('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'], + }), + ('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.008', { + 'source_tmpl': 'String-RewritePrefix-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['e45a31d6914e8f5fc722ef48d8819400dafc02105e0c61414aabbf01bce208eb'], + }), + ('Getopt::Long::Descriptive', '0.109', { + 'source_tmpl': 'Getopt-Long-Descriptive-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['05027ecdaf5bc442e10a5630d7ec407c1c47993b8776fe813ff47c0181db4193'], + }), + ('App::Cmd', '0.333', { + 'source_tmpl': 'App-Cmd-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['3ba1aa7890f2354501e4977cc5367cd6c462ef7b702d381d9923f7df6ec258f6'], + }), + ('Path::Tiny', '0.118', { + 'source_tmpl': 'Path-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + 'checksums': ['32138d8d0f4c9c1a84d2a8f91bc5e913d37d8a7edefbb15a10961bfed560b0fd'], + }), + ('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.100054', { + 'source_tmpl': 'Sub-Exporter-ForMethods-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['eef61c9421688bb3a7beaca71623df11c8a749307ae428abdabc556e2bfafc3e'], + }), + ('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'], + }), + ('B::Hooks::EndOfScope', '0.24', { + 'source_tmpl': 'B-Hooks-EndOfScope-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['03aa3dfe5d0aa6471a96f43fe8318179d19794d4a640708f0288f9216ec7acc6'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('MooseX::Types::Perl', '0.101343', { + 'source_tmpl': 'MooseX-Types-Perl-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['f084beaf3c33209c68d05d4dbc24c25d604a6458b9738d96dceb086c8ef1325a'], + }), + ('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'], + }), + ('Specio', '0.47', { + 'source_tmpl': 'Specio-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['f41307f14444f8777e572f27eeb6a964084399e7e382c47c577827ad8a286a1c'], + }), + ('Params::ValidationCompiler', '0.30', { + 'source_tmpl': 'Params-ValidationCompiler-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['dc5bee23383be42765073db284bed9fbd819d4705ad649c20b644452090d16cb'], + }), + ('Log::Dispatch', '2.70', { + 'source_tmpl': 'Log-Dispatch-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['a3d91cc52467d3a3c6683103f3df4472d71e405a45f553289448713ac4293f21'], + }), + ('String::Flogger', '1.101245', { + 'source_tmpl': 'String-Flogger-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['aa03c08e01f802a358c175c6093c02adf9688659a087a8ddefdc3e9cef72640b'], + }), + ('Log::Dispatchouli', '2.022', { + 'source_tmpl': 'Log-Dispatchouli-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['2a2a4176adafb85a1eb9c9dc389052919e8c2c9df99aaba538c06b8da964a5df'], + }), + ('Data::Section', '0.200007', { + 'source_tmpl': 'Data-Section-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['cd937e5b70e34aab885ff414e2a6d19e4783b7c28fc3cda5145b230514ebb4de'], + }), + ('Software::License', '0.103014', { + 'source_tmpl': 'Software-License-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['eb45ea602d75006683789fbba57a01c0a1f7037371de95ea54b91577535d1789'], + }), + ('MooseX::SetOnce', '0.200002', { + 'source_tmpl': 'MooseX-SetOnce-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['cbed06b7fcd353f0d99bf80a87c1c0b581160697231b3ad9a608da231ba2b659'], + }), + ('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'], + }), + ('Config::MVP', '2.200012', { + 'source_tmpl': 'Config-MVP-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['d8a6069be317a866d8041b1bb7cfafe34014f19743891f27a5e42a31b5c0ea75'], + }), + ('Throwable', '0.200013', { + 'source_tmpl': 'Throwable-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['9987d0deb5bddd352a6330cefbe932f882e36dd8c8a4564bcfd372dc396b8fa0'], + }), + ('Sub::Quote', '2.006006', { + 'source_tmpl': 'Sub-Quote-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + 'checksums': ['6e4e2af42388fa6d2609e0e82417de7cc6be47223f576592c656c73c7524d89d'], + }), + ('Role::Identifiable::HasIdent', '0.007', { + 'source_tmpl': 'Role-Identifiable-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['561346d1a1a07a45bd851d859a825a7f67925a7a3ba5ba58e0cdad8bb99073ad'], + }), + ('Role::HasMessage', '0.006', { + 'source_tmpl': 'Role-HasMessage-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['f6a6dbe0476ff95ee1ffbef825eb18d9b02b0618deba4686e7c63b99d576d4d3'], + }), + ('MooseX::OneArgNew', '0.005', { + 'source_tmpl': 'MooseX-OneArgNew-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['7e4fcf474ea6c4244f0885f1066729cfdc472fbd7190dd41b4b55bcd67c3103f'], + }), + ('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::LazyRequire', '0.11', { + 'source_tmpl': 'MooseX-LazyRequire-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['ef620c1e019daf9cf3f23a943d25a94c91e93ab312bcd63be2e9740ec0b94288'], + }), + ('Mixin::Linewise::Readers', '0.108', { + 'source_tmpl': 'Mixin-Linewise-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['7df20678474c0973930a472b0c55e3f8e85b7790b68ab18ef618f9c453c8aef2'], + }), + ('Config::INI', '0.025', { + 'source_tmpl': 'Config-INI-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['628bf76d5b91f89dde22d4813ec033026ebf71b772bb61ccda909da00c869732'], + }), + ('String::Truncate', '1.100602', { + 'source_tmpl': 'String-Truncate-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['aaa3d4eec01136921484139133eb75d5c571fe51b0ad329f089e6d469a235f6e'], + }), + ('Pod::Eventual', '0.094001', { + 'source_tmpl': 'Pod-Eventual-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['be9fb8910b108e5d1a66f002b659ad22576e88d779b703dff9d15122c3f80834'], + }), + ('Pod::Elemental', '0.103005', { + 'source_tmpl': 'Pod-Elemental-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['824336ec18326e3b970e7815922b3921b0a821d2ee0e50b0c5b2bc327f99615e'], + }), + ('Pod::Weaver', '4.017', { + 'source_tmpl': 'Pod-Weaver-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['ec6dc6fe1df3d61f14242323092ad7c5542587f30365acaedcd8cca62de442a4'], + }), + ('Dist::Zilla', '6.017', { + 'source_tmpl': 'Dist-Zilla-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['5c8d30ce33ac8b5e937e6f83fcfa779e7225ca149951ee5c9bc2c3af3c2b6fee'], + }), + ('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.23', { + 'source_tmpl': 'Data-Dump-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + 'checksums': ['af53b05ef1387b4cab4427e6789179283e4f0da8cf036e8db516ddb344512b65'], + }), + ('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.7044', { + 'source_tmpl': 'App-cpanminus-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + 'checksums': ['9b60767fe40752ef7a9d3f13f19060a63389a5c23acc3e9827e19b75500f81f3'], + }), + ('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'], + }), + ('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'], + }), + ('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'], + }), + ('Thread::Queue', '3.13', { + 'source_tmpl': 'Thread-Queue-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JD/JDHEDDEN'], + 'checksums': ['6ba3dacddd2fbb66822b4aa1d11a0a5273cd04c825cb3ff31c20d7037cbfdce8'], + }), + ('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.37', { + 'source_tmpl': 'Term-ReadLine-Gnu-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAYASHI'], + 'checksums': ['3bd31a998a9c14748ee553aed3e6b888ec47ff57c07fc5beafb04a38a72f0078'], + }), + ('ExtUtils::MakeMaker', '7.62', { + 'source_tmpl': 'ExtUtils-MakeMaker-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['5022ad857fd76bd3f6b16af099fe2324639d9932e08f21e891fb313d9cae1705'], + }), + ('List::Util', '1.56', { + 'source_tmpl': 'Scalar-List-Utils-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PEVANS'], + 'checksums': ['15b8537d40fb3e6dae64b2e7e983c47a99b2c20816a180bb9c868b787a12ab5b'], + }), + ('Module::CoreList', '5.20210420', { + 'source_tmpl': 'Module-CoreList-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['0d4e2d6c59cf80e9163227364cd3ab14050d232093144f6226e961999cf0144b'], + }), + ('Module::Metadata', '1.000037', { + 'source_tmpl': 'Module-Metadata-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['8d5a74c1b07e145edda254602fedf19c0dd0c2d9688a370afdaff89c32cba629'], + }), + ('Params::Check', '0.38', { + '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', { + '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', { + 'source_tmpl': 'if-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], + 'checksums': ['37206e10919c4d99273020008a3581bf0947d364e859b8966521c3145b4b3700'], + }), + ('Test', '1.26', { + 'source_tmpl': 'Test-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JE/JESSE'], + 'checksums': ['f7701bd28e05e7f82fe9a181bbab38f53fa6aeae48d2a810da74d1b981d4f392'], + }), + ('ExtUtils::Constant', '0.25', { + '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.42', { + 'source_tmpl': 'Pod-Simple-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KH/KHW'], + 'checksums': ['a9fceb2e0318e3786525e6bf205e3e143f0cf3622740819cab5f058e657e8ac5'], + }), + ('Socket', '2.031', { + 'source_tmpl': 'Socket-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PEVANS'], + 'checksums': ['c7bc60af60c1cce36fb83866ac8108a3d937c50e62493240d858df0eb6f4bcd2'], + }), + ('Time::Local', '1.30', { + 'source_tmpl': 'Time-Local-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['c7744f6b2986b946d3e2cf034df371bee16cdbafe53e945abb1a542c4f8920cb'], + }), + ('Storable', '3.15', { + 'source_tmpl': 'Storable-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], + 'checksums': ['fc3dad06cb2e6fc86a2f2abc5b5491d9da328ca3e6b6306559c224521db174da'], + }), + ('ExtUtils::ParseXS', '3.35', { + 'source_tmpl': 'ExtUtils-ParseXS-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SM/SMUELLER'], + 'checksums': ['41def0511278a2a8ba9afa25ccab45b0453f75e7fd774e8644b5f9a57cc4ee1c'], + }), + ('Pod::Man', '4.14', { + 'source_tmpl': 'podlators-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RR/RRA'], + 'checksums': ['7af1c41de34b2e4dbff700a29d7387549c2b6cf16142214450c924707ddb0f82'], + }), + ('Mozilla::CA', '20200520', { + 'source_tmpl': 'Mozilla-CA-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABH'], + 'checksums': ['b3ca0002310bf24a16c0d5920bdea97a2f46e77e7be3e7377e850d033387c726'], + }), + ('Test::More', '1.302183', { + 'source_tmpl': 'Test-Simple-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + 'checksums': ['9a03bda5ec420aea9692b650437f4d5b574fa505fdd7ff60cdb5f3ec034106ff'], + }), + ('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'], + }), + ('LWP::Protocol::https', '6.10', { + 'source_tmpl': 'LWP-Protocol-https-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['cecfc31fe2d4fc854cac47fce13d3a502e8fdfe60c5bc1c09535743185f2a86c'], + }), + ('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.238', { + 'source_tmpl': 'parent-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CO/CORION'], + 'checksums': ['38f58fdef3e28a194c9c8d0dc5d02672faf93c069f40c5bcb1fabeadbbc4d2d1'], + }), + ('Net::Domain', '3.13', { + 'source_tmpl': 'libnet-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], + 'checksums': ['5a35fb1f2d4aa291680eb1af38899fab453c22c28e71f7c7bd3747b5a3db348c'], + }), + ('Scalar::Util', '1.56', { + 'source_tmpl': 'Scalar-List-Utils-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PEVANS'], + 'checksums': ['15b8537d40fb3e6dae64b2e7e983c47a99b2c20816a180bb9c868b787a12ab5b'], + }), + ('Text::ParseWords', '3.30', { + 'source_tmpl': 'Text-ParseWords-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + 'checksums': ['85e0238179dd43997e58c66bd51611182bc7d533505029a2db0d3232edaff5e8'], + }), + ('Encode', '3.08', { + 'source_tmpl': 'Encode-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DANKOGAI'], + 'checksums': ['ed063d01d01a140a3a3ec0aeba2f2b4849a35c18ca96ac231a5d7c7d54d17b5b'], + }), + ('constant', '1.33', { + 'source_tmpl': 'constant-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['79965d4130eb576670e27ca0ae6899ef0060c76da48b02b97682166882f1b504'], + }), + ('Data::Dumper', '2.173', { + 'source_tmpl': 'Data-Dumper-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], + 'checksums': ['697608b39330988e519131be667ff47168aaaaf99f06bd2095d5b46ad05d76fa'], + }), + ('Cwd', '3.75', { + '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.21', { + 'source_tmpl': 'ExtUtils-CppGuess-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETJ'], + 'checksums': ['ff629178321a1e591b83f809712593eae4408a413aa448654bce59b156f24153'], + }), + ('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'], + }), + ('URI::Escape', '5.09', { + 'source_tmpl': 'URI-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['03e63ada499d2645c435a57551f041f3943970492baa3b3338246dab6f1fae0a'], + }), + ('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.874', { + 'source_tmpl': 'MCE-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARIOROY'], + 'checksums': ['d809e3018475115ad7eccb8bef49bde3bf3e75abbbcd80564728bbcfab86d3d0'], + }), + ('Text::CSV_XS', '1.46', { + 'source_tmpl': 'Text-CSV_XS-%(version)s.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HM/HMBRAND'], + 'checksums': ['27e39f0d5f2322aaf78ff90eb1221f3cbed1d4c514d0956bda19407fcb98bed6'], + }), + ('DBD::CSV', '0.58', { + 'source_tmpl': 'DBD-CSV-%(version)s.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HM/HMBRAND'], + 'checksums': ['6c26f710453b14d7b3cf5f3e1697e8ddaa48c0a66f5d811f4394bd8c32f287ef'], + }), + ('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', '3.006', { + 'source_tmpl': 'Business-ISBN-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BD/BDFOY'], + 'checksums': ['c1fefe68354ffb80cdbd24303ebe684b3b6828df3d5f09b429a09fc4f0919c9a'], + }), + ('Business::ISBN::Data', '20210112.006', { + 'source_tmpl': 'Business-ISBN-Data-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BD/BDFOY'], + 'checksums': ['98c2cfb266b5fdd016989abaa471d9dd4c1d593c508a6f01f66d184d5fee8bae'], + }), + ('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'], + }), + ('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'], + 'checksums': ['515536f45f2fa1a7e88c8824533758d0121d267ab9cb453a1b5887c8a56b9068'], + }), + ('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'], + }), + ('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'], + }), +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/PnetCDF/PnetCDF-1.12.1-gompic-2020a.eb b/easybuild/easyconfigs/p/PnetCDF/PnetCDF-1.12.1-gompic-2020a.eb new file mode 100644 index 00000000000..e1444b0dc7f --- /dev/null +++ b/easybuild/easyconfigs/p/PnetCDF/PnetCDF-1.12.1-gompic-2020a.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'PnetCDF' +version = "1.12.1" + +homepage = 'https://trac.mcs.anl.gov/projects/parallel-netcdf' +description = "Parallel netCDF: A Parallel I/O Library for NetCDF File Access" + +toolchain = {'name': 'gompic', 'version': '2020a'} + +source_urls = ['https://parallel-netcdf.github.io/Release/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['56f5afaa0ddc256791c405719b6436a83b92dcd5be37fe860dea103aee8250a2'] + +builddependencies = [ + ('Autotools', '20180311'), +] + +preconfigopts = "autoreconf -f -i && " + +configopts = ['', '--enable-shared'] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['ncmpidiff', 'ncmpidump', 'ncmpigen', 'ncoffsets', + 'ncvalidator', 'pnetcdf-config', 'pnetcdf_version']] + + ['lib/lib%(namelower)s.a', 'lib/lib%%(namelower)s.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +modextrapaths = { + 'PNETCDF': '', +} + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/p/Primer3/Primer3-2.5.0-GCC-9.3.0.eb b/easybuild/easyconfigs/p/Primer3/Primer3-2.5.0-GCC-9.3.0.eb new file mode 100644 index 00000000000..1e27a881dc2 --- /dev/null +++ b/easybuild/easyconfigs/p/Primer3/Primer3-2.5.0-GCC-9.3.0.eb @@ -0,0 +1,23 @@ +name = 'Primer3' +version = '2.5.0' + +homepage = 'https://primer3.org/' +description = """Primer3 is a widely used program for designing PCR primers (PCR = 'Polymerase Chain Reaction'). + PCR is an essential and ubiquitous tool in genetics and molecular biology. + Primer3 can also design hybridization probes and sequencing primers.""" + +toolchain = {'name': 'GCC', 'version': '9.3.0'} + +source_urls = ['https://github.com/primer3-org/%(namelower)s/archive/refs/tags/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['7581e2fa3228ef0ee1ffa427b2aa0a18fc635d561208327471daf59d1b804da0'] + +runtest = 'test' + +sanity_check_commands = [ + 'primer3_masker -h', + # https://github.com/biobuilds/biobuilds/issues/21 + 'cd %(builddir)s/%(namelower)s-%(version)s/src && primer3_core ../example' +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/ProbABEL/ProbABEL-0.5.0-GCCcore-9.3.0.eb b/easybuild/easyconfigs/p/ProbABEL/ProbABEL-0.5.0-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..8b262cb2951 --- /dev/null +++ b/easybuild/easyconfigs/p/ProbABEL/ProbABEL-0.5.0-GCCcore-9.3.0.eb @@ -0,0 +1,41 @@ +easyblock = 'ConfigureMake' + +name = 'ProbABEL' +version = '0.5.0' + +homepage = "https://github.com/GenABEL-Project/ProbABEL" +description = """Tool for genome-wide association analysis of imputed genetic data.""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} +toolchainopts = {'cstd': 'c++03'} + +github_account = 'GenABEL-Project' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['883f618cce4e08f25bc90faa68d47c3e548d56c177760288fbd8368df0636917'] + +builddependencies = [ + ('binutils', '2.34'), + ('Autotools', '20180311'), +] + +# Use the bundled Eigen, as tests fail with Eigen > 3.2.1 (https://github.com/GenABEL-Project/ProbABEL/issues/11) +dependencies = [('Perl', '5.30.2')] + +preconfigopts = "autoreconf -i && " +configopts = '--disable-latex-doc' + +runtest = 'check' + +postinstallcmds = ["mv %(installdir)s/etc/probabel_config.cfg.example %(installdir)s/etc/probabel_config.cfg"] + +fix_perl_shebang_for = ['bin/probabel'] + +sanity_check_paths = { + 'files': ['bin/probabel', 'bin/pacoxph', 'bin/palinear', 'bin/palogist', 'etc/probabel_config.cfg'], + 'dirs': ['share'], +} + +sanity_check_commands = ["%s --help" % x for x in ['pacoxph', 'palinear', 'palogist', 'probabel']] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/PyCharm/PyCharm-2021.1.1.eb b/easybuild/easyconfigs/p/PyCharm/PyCharm-2021.1.1.eb new file mode 100644 index 00000000000..05b9af273b0 --- /dev/null +++ b/easybuild/easyconfigs/p/PyCharm/PyCharm-2021.1.1.eb @@ -0,0 +1,20 @@ +easyblock = 'Tarball' + +name = 'PyCharm' +version = "2021.1.1" + +homepage = 'https://www.jetbrains.com/pycharm/' +description = """PyCharm Community Edition: Python IDE for Professional Developers""" + +toolchain = SYSTEM + +source_urls = ['https://download-cf.jetbrains.com/python'] +sources = ['pycharm-community-%(version)s.tar.gz'] +checksums = ['10331302819324794e70843a73bfedbc6023778e4374f57f80608983be4e7a11'] + +sanity_check_paths = { + 'files': ["bin/pycharm.sh"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/p/PySAT/PySAT-0.1.7.dev1-GCC-10.2.0.eb b/easybuild/easyconfigs/p/PySAT/PySAT-0.1.7.dev1-GCC-10.2.0.eb new file mode 100644 index 00000000000..6e7c393204a --- /dev/null +++ b/easybuild/easyconfigs/p/PySAT/PySAT-0.1.7.dev1-GCC-10.2.0.eb @@ -0,0 +1,45 @@ +easyblock = 'PythonBundle' + +name = 'PySAT' +version = '0.1.7.dev1' + +homepage = 'https://pysathq.github.io/' +description = """ +PySAT is a Python toolkit, which aims at providing a simple and unified +interface to a number of state-of-art Boolean satisfiability (SAT) solvers as +well as to a variety of cardinality and pseudo-Boolean encodings.""" + +# PySAT includes solvers in C and C++ +toolchain = {'name': 'GCC', 'version': '10.2.0'} + +dependencies = [ + ('Python', '3.8.6'), + ('py-aiger', '6.1.14'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('pypblib', '0.0.4', { + 'checksums': ['71dd930bf177ca38d6eeb473702d05df07e11f20382db0c766465297eaf49062'], + }), + ('python-sat', version, { + 'modulename': 'pysat', + 'checksums': ['7c0ee769f6e3969f6f3b40d575a6629f1760a94033b933004ce527f3d1639089'], + }), +] + +# check provided examples and solvers +local_examples = ['fm', 'genhard', 'lbx', 'lsu', 'mcsls', 'models', 'musx', 'rc2'] +local_solvers = ['Cadical', 'CNFPlus', 'Gluecard3', 'Gluecard4', 'Glucose3', 'Glucose4', 'Lingeling', 'MapleChrono', + 'MapleCM', 'Maplesat', 'Minicard', 'Minisat22', 'MinisatGH', 'Mergesat3'] + +sanity_check_paths = { + 'files': ['bin/%s.py' % x for x in local_examples], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["python -c 'from pysat.solvers import %s'" % s for s in local_solvers] + +moduleclass = 'cae' diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1-foss-2020b.eb b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1-foss-2020b.eb index d2701800237..785a48ff870 100644 --- a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1-foss-2020b.eb +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1-foss-2020b.eb @@ -239,6 +239,9 @@ patches = [ 'PyTorch-1.7.0_avoid-nan-in-test-torch.patch', 'PyTorch-1.7.0_increase-distributed-test-timeout.patch', 'PyTorch-1.7.0_disable-dev-shm-test.patch', + 'PyTorch-1.7.1_fix-alias-violation-in-bitwise-ops.patch', + 'PyTorch-1.7.1_fix-err-variable.patch', + 'PyTorch-1.7.1_run-large-tests-on-GPU.patch', ] checksums = [ 'fc8d6aaf0bdedd4221617be8d47ac39af57605bdcc814fabc28739427b55e9c7', # v1.7.1.tar.gz @@ -288,9 +291,20 @@ checksums = [ # PyTorch-1.7.0_increase-distributed-test-timeout.patch '95abb468a35451fbd0f864ca843f6ad15ff8bfb909c3fd580f65859b26c9691c', '622cb1eaeadc06e13128a862d9946bcc1f1edd3d02b259c56a9aecc4d5406b8a', # PyTorch-1.7.0_disable-dev-shm-test.patch + # PyTorch-1.7.1_fix-alias-violation-in-bitwise-ops.patch + 'e92f054f1297df83ace901e7af38222787b709ee29580f5f2b89a300ca03666b', + 'abb79e7ffd10be87adfb62e79131c50079c32470031ac22b12b273cfae85ca4c', # PyTorch-1.7.1_fix-err-variable.patch + # PyTorch-1.7.1_run-large-tests-on-GPU.patch + '06651b6746a27bee1adf15af24e356e188d683241bb186343009dc69c8d5aa9b', ] excluded_tests = { + 'POWER': [ + # https://github.com/pytorch/pytorch/issues/57533 + 'test_nn', + # Fails for unknown reasons when run within EB but not when run manually + 'test_utils', + ], '': [ # Test from this suite timeout often. The process group backend is deprecated anyway 'distributed/rpc/test_process_group_agent', @@ -300,7 +314,7 @@ excluded_tests = { ] } -runtest = 'cd test && PYTHONUNBUFFERED=1 %(python)s run_test.py --verbose %(excluded_tests)s' +runtest = 'cd test && PYTHONUNBUFFERED=1 %(python)s run_test.py --continue-through-error --verbose %(excluded_tests)s' sanity_check_commands = ["python -c 'import caffe2.python'"] tests = ['PyTorch-check-cpp-extension.py'] diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1-fosscuda-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1-fosscuda-2019b-Python-3.7.4.eb index 7e30199b166..3e82c561a44 100644 --- a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1-fosscuda-2019b-Python-3.7.4.eb +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1-fosscuda-2019b-Python-3.7.4.eb @@ -252,8 +252,12 @@ patches = [ 'PyTorch-1.7.1_validate-num-gpus-in-distributed-test.patch', 'PyTorch-1.7.1_complex32.patch', 'PyTorch-1.7.1_bypass-nan-compare.patch', + 'PyTorch-1.7.1_fix-alias-violation-in-bitwise-ops.patch', + 'PyTorch-1.7.1_fix-err-variable.patch', 'PyTorch-1.7.1_fix-use-after-destruct-in-cudaipctypes.patch', 'PyTorch-1.7.1_el8_ppc64le.patch', + 'PyTorch-1.7.1_run-large-tests-on-GPU.patch', + 'PyTorch-1.7.1_disable-failing-cuda-11.2-tests.patch', ] checksums = [ 'fc8d6aaf0bdedd4221617be8d47ac39af57605bdcc814fabc28739427b55e9c7', # v1.7.1.tar.gz @@ -312,9 +316,16 @@ checksums = [ 'd27f7b5149632512b6fe226837df914aad35c88f8b490856dc6dd90ea1e5d7e6', '6028bff2be720cf70acad2129db60fd10872e02c9e460c72bb274228cf90b320', # PyTorch-1.7.1_complex32.patch '0943496231b6857801e2424e561d03897a6982d098cba5b6967017b391a7e977', # PyTorch-1.7.1_bypass-nan-compare.patch + # PyTorch-1.7.1_fix-alias-violation-in-bitwise-ops.patch + 'e92f054f1297df83ace901e7af38222787b709ee29580f5f2b89a300ca03666b', + 'abb79e7ffd10be87adfb62e79131c50079c32470031ac22b12b273cfae85ca4c', # PyTorch-1.7.1_fix-err-variable.patch # PyTorch-1.7.1_fix-use-after-destruct-in-cudaipctypes.patch '250345aad08fb72deaaee9b249d9661d4ce93d08661b32d7856ed57e4aa8142e', '2a94a9cc009f02469b843fc65a6ee2cb01873f783568b8bcc83c33ba8e6b1a58', # PyTorch-1.7.1_el8_ppc64le.patch + # PyTorch-1.7.1_run-large-tests-on-GPU.patch + '06651b6746a27bee1adf15af24e356e188d683241bb186343009dc69c8d5aa9b', + # PyTorch-1.7.1_disable-failing-cuda-11.2-tests.patch + '2a9df4face04798f51eee0db83d28a905ea7ac53569cf25ed9f049b0a547702e', ] excluded_tests = { @@ -327,7 +338,7 @@ excluded_tests = { ] } -runtest = 'cd test && PYTHONUNBUFFERED=1 %(python)s run_test.py --verbose %(excluded_tests)s' +runtest = 'cd test && PYTHONUNBUFFERED=1 %(python)s run_test.py --continue-through-error --verbose %(excluded_tests)s' sanity_check_commands = ["python -c 'import caffe2.python'"] tests = ['PyTorch-check-cpp-extension.py'] diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1-fosscuda-2020b.eb b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1-fosscuda-2020b.eb index 2debc8f7489..c841f628150 100644 --- a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1-fosscuda-2020b.eb +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1-fosscuda-2020b.eb @@ -251,7 +251,13 @@ patches = [ 'PyTorch-1.7.1_validate-num-gpus-in-distributed-test.patch', 'PyTorch-1.7.1_complex32.patch', 'PyTorch-1.7.1_bypass-nan-compare.patch', + 'PyTorch-1.7.1_fix-alias-violation-in-bitwise-ops.patch', + 'PyTorch-1.7.1_fix-err-variable.patch', 'PyTorch-1.7.1_fix-use-after-destruct-in-cudaipctypes.patch', + 'PyTorch-1.7.1_disable-tf32-in-distributed-tests.patch', + 'PyTorch-1.7.1_relax_precision_in_test_nn.patch', + 'PyTorch-1.7.1_run-large-tests-on-GPU.patch', + 'PyTorch-1.7.1_disable-failing-cuda-11.2-tests.patch', ] checksums = [ 'fc8d6aaf0bdedd4221617be8d47ac39af57605bdcc814fabc28739427b55e9c7', # v1.7.1.tar.gz @@ -310,8 +316,19 @@ checksums = [ 'd27f7b5149632512b6fe226837df914aad35c88f8b490856dc6dd90ea1e5d7e6', '6028bff2be720cf70acad2129db60fd10872e02c9e460c72bb274228cf90b320', # PyTorch-1.7.1_complex32.patch '0943496231b6857801e2424e561d03897a6982d098cba5b6967017b391a7e977', # PyTorch-1.7.1_bypass-nan-compare.patch + # PyTorch-1.7.1_fix-alias-violation-in-bitwise-ops.patch + 'e92f054f1297df83ace901e7af38222787b709ee29580f5f2b89a300ca03666b', + 'abb79e7ffd10be87adfb62e79131c50079c32470031ac22b12b273cfae85ca4c', # PyTorch-1.7.1_fix-err-variable.patch # PyTorch-1.7.1_fix-use-after-destruct-in-cudaipctypes.patch '250345aad08fb72deaaee9b249d9661d4ce93d08661b32d7856ed57e4aa8142e', + # PyTorch-1.7.1_disable-tf32-in-distributed-tests.patch + '18ecad081a8c940add64040ad9698d3273366acf738a8a44eab1c793d3f49950', + # PyTorch-1.7.1_relax_precision_in_test_nn.patch + '4089bd3d2ee1939108ed9ebe9cd98da306df626ea6e59fac52fa877a5ea8a163', + # PyTorch-1.7.1_run-large-tests-on-GPU.patch + '06651b6746a27bee1adf15af24e356e188d683241bb186343009dc69c8d5aa9b', + # PyTorch-1.7.1_disable-failing-cuda-11.2-tests.patch + '2a9df4face04798f51eee0db83d28a905ea7ac53569cf25ed9f049b0a547702e', ] excluded_tests = { @@ -324,7 +341,7 @@ excluded_tests = { ] } -runtest = 'cd test && PYTHONUNBUFFERED=1 %(python)s run_test.py --verbose %(excluded_tests)s' +runtest = 'cd test && PYTHONUNBUFFERED=1 %(python)s run_test.py --continue-through-error --verbose %(excluded_tests)s' sanity_check_commands = ["python -c 'import caffe2.python'"] tests = ['PyTorch-check-cpp-extension.py'] diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1_disable-failing-cuda-11.2-tests.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1_disable-failing-cuda-11.2-tests.patch new file mode 100644 index 00000000000..0d46498a1e6 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1_disable-failing-cuda-11.2-tests.patch @@ -0,0 +1,91 @@ +From a1b8f3d4b6ada3721a3d9d8266f86dcb04f17fcb Mon Sep 17 00:00:00 2001 +From: Jane Xu +Date: Wed, 10 Feb 2021 11:41:47 -0800 +Subject: [PATCH] Replace CUDA 11.1 Linux CI with CUDA 11.2 (#51905) + +Summary: +Adding 11.2 to CI with BUILD_SPLIT_CUDA enabled. + +Disabled the following tests as they were failing in test_optim.py: +test_adadelta +test_adam +test_adamw +test_multi_tensor_optimizers +test_rmsprop + +(Issue tracking that is here: https://github.com/pytorch/pytorch/issues/51992) + +Note by Alexander Grund (TU Dresden): The issue seems to be the CUDA driver version, not the neccessarily the compiler +diff --git a/test/test_optim.py b/test/test_optim.py +index 00d3f7a2bd131..17c445b6fee8f 100644 +--- a/test/test_optim.py ++++ b/test/test_optim.py +@@ -306,6 +306,7 @@ def test_sgd_sparse(self): + ) + + @skipIfRocm ++ @unittest.skipIf(True, "test does not pass for CUDA 11.2") + def test_multi_tensor_optimizers(self): + if not torch.cuda.is_available(): + return +@@ -340,15 +341,15 @@ def test_multi_tensor_optimizers(self): + for index in range(len(optimizer_pairs)): + res = [] + for opt in optimizer_pairs[index]: +- weight = torch.tensor([[-0.2109, -0.4976], [-0.1413, -0.3420], [-0.2524, 0.6976]], ++ weight = torch.tensor([[-0.2109, -0.4976], [-0.1413, -0.3420], [-0.2524, 0.6976]], + dtype=torch.float64, device=device, requires_grad=True) + bias = torch.tensor([-0.1085, -0.2979, 0.6892], dtype=torch.float64, device=device, requires_grad=True) +- weight2 = torch.tensor([[-0.0508, -0.3941, -0.2843]], ++ weight2 = torch.tensor([[-0.0508, -0.3941, -0.2843]], + dtype=torch.float64, device=device, requires_grad=True) + bias2 = torch.tensor([-0.0711], dtype=torch.float64, device=device, requires_grad=True) + input = torch.tensor([0.1, 0.2, 0.3, 0.4, 0.5, 0.6], dtype=torch.float64, device=device).reshape(3, 2) + +- model = torch.nn.Sequential(torch.nn.Linear(2, 3), ++ model = torch.nn.Sequential(torch.nn.Linear(2, 3), + torch.nn.Sigmoid(), + torch.nn.Linear(3, 1), + torch.nn.Sigmoid()) +@@ -363,7 +364,7 @@ def test_multi_tensor_optimizers(self): + + optimizer = opt(model.parameters(), **params) + +- for _ in range(kIterations): ++ for _ in range(kIterations): + optimizer.zero_grad() + output = model(input) + loss = output.sum() +@@ -379,7 +380,7 @@ def test_multi_tensor_optimizers(self): + for p1, p2 in zip(res[0], res[1]): + self.assertEqual(p1, p2) + +- ++ @unittest.skipIf(True, "test does not pass for CUDA 11.2") + def test_adam(self): + for optimizer in [optim.Adam, optim_mt.Adam]: + self._test_basic_cases( +@@ -425,6 +426,7 @@ def test_adam(self): + with self.assertRaisesRegex(ValueError, "Invalid weight_decay value: -1"): + optimizer(None, lr=1e-2, weight_decay=-1) + ++ @unittest.skipIf(True, "test does not pass for CUDA 11.2") + def test_adamw(self): + for optimizer in [optim.AdamW, optim_mt.AdamW]: + self._test_basic_cases( +@@ -459,6 +461,7 @@ def test_sparse_adam(self): + + # ROCm precision is too low to pass this test + @skipIfRocm ++ @unittest.skipIf(True, "test does not pass for CUDA 11.2") + def test_adadelta(self): + for optimizer in [optim.Adadelta, optim_mt.Adadelta]: + self._test_basic_cases( +@@ -535,6 +538,7 @@ def test_adamax(self): + with self.assertRaisesRegex(ValueError, "Invalid beta parameter at index 1: 1.0"): + optimizer(None, lr=1e-2, betas=(0.0, 1.0)) + ++ @unittest.skipIf(True, "test does not pass for CUDA 11.2") + def test_rmsprop(self): + for optimizer in [optim.RMSprop, optim_mt.RMSprop]: + self._test_basic_cases( diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1_disable-tf32-in-distributed-tests.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1_disable-tf32-in-distributed-tests.patch new file mode 100644 index 00000000000..47c400a895a --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1_disable-tf32-in-distributed-tests.patch @@ -0,0 +1,64 @@ +Fix test failures in DDP (distributed) tests on Ampere GPUs by disabling TF32 mode + +From https://github.com/pytorch/pytorch/pull/52941 +See https://github.com/pytorch/pytorch/issues/52278 + +From 6c0052a1a6c02f99c500d29680775957c723cf2b Mon Sep 17 00:00:00 2001 +From: Xiang Gao +Date: Fri, 26 Feb 2021 12:40:07 -0800 +Subject: [PATCH] Disable TF32 on DDP tests + +--- + test/distributed/test_distributed_fork.py | 3 +++ + test/distributed/test_distributed_spawn.py | 4 ++++ + 2 files changed, 7 insertions(+) + +diff --git a/test/distributed/test_distributed_fork.py b/test/distributed/test_distributed_fork.py +index 84d23e71af951..5b7034f55eb94 100644 +--- a/test/distributed/test_distributed_fork.py ++++ b/test/distributed/test_distributed_fork.py +@@ -11,6 +11,8 @@ + DistributedTest, TestDistBackend + ) + ++torch.backends.cuda.matmul.allow_tf32 = False ++ + CPP_EXTENSIONS_WARNING = """ + Ninja (https://ninja-build.org) must be available to run C++ extensions tests, + but it could not be found. Install ninja with `pip install ninja` +@@ -48,6 +50,7 @@ class TestDistBackendWithFork(TestDistBackend, DistributedTest._DistTestBase): + def setUp(self): + super().setUp() + self._fork_processes() ++ torch.backends.cudnn.flags(allow_tf32=False).__enter__() + + + elif BACKEND == "mpi": +diff --git a/test/distributed/test_distributed_spawn.py b/test/distributed/test_distributed_spawn.py +index 48a21db72a666..4692b0b1c0562 100644 +--- a/test/distributed/test_distributed_spawn.py ++++ b/test/distributed/test_distributed_spawn.py +@@ -3,12 +3,15 @@ + import sys + import unittest + ++import torch + import torch.distributed as dist + from torch.testing._internal.common_utils import run_tests, TEST_WITH_ASAN, NO_MULTIPROCESSING_SPAWN + from torch.testing._internal.distributed.distributed_test import ( + DistributedTest, TestDistBackend + ) + ++torch.backends.cuda.matmul.allow_tf32 = False ++ + if not dist.is_available(): + print("Distributed not available, skipping tests", file=sys.stderr) + sys.exit(0) +@@ -28,6 +31,7 @@ class TestDistBackendWithSpawn(TestDistBackend, DistributedTest._DistTestBase): + def setUp(self): + super().setUp() + self._spawn_processes() ++ torch.backends.cudnn.flags(allow_tf32=False).__enter__() + + + if __name__ == "__main__": diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1_fix-alias-violation-in-bitwise-ops.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1_fix-alias-violation-in-bitwise-ops.patch new file mode 100644 index 00000000000..50f6eefeeb9 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1_fix-alias-violation-in-bitwise-ops.patch @@ -0,0 +1,29 @@ +A reinterpret_cast to an unrelated type is undefined behavior. +This causes real issues due to misoptimizations on at least GCC 10.2 on POWER +See https://github.com/pytorch/pytorch/issues/58031 + +Author: Alexander Grund (TU Dresden) + +diff --git a/aten/src/ATen/cpu/vec256/vec256_base.h b/aten/src/ATen/cpu/vec256/vec256_base.h +index 697996ab8e..1663ae239a 100644 +--- a/aten/src/ATen/cpu/vec256/vec256_base.h ++++ b/aten/src/ATen/cpu/vec256/vec256_base.h +@@ -701,12 +701,14 @@ inline Vec256 operator^(const Vec256& a, const Vec256& b) { + + template + static inline Vec256 bitwise_binary_op(const Vec256 &a, const Vec256 &b, Op op) { +- static constexpr uint32_t element_no = 32 / sizeof(intmax_t); ++ constexpr uint32_t element_no = 32 / sizeof(intmax_t); ++ __at_align32__ intmax_t buffer_a[element_no]; ++ __at_align32__ intmax_t buffer_b[element_no]; + __at_align32__ intmax_t buffer[element_no]; +- const intmax_t *a_ptr = reinterpret_cast((const T*) a); +- const intmax_t *b_ptr = reinterpret_cast((const T*) b); ++ a.store(buffer_a); ++ b.store(buffer_b); + for (uint32_t i = 0U; i < element_no; ++ i) { +- buffer[i] = op(a_ptr[i], b_ptr[i]); ++ buffer[i] = op(buffer_a[i], buffer_b[i]); + } + return Vec256::loadu(buffer); + } diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1_fix-err-variable.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1_fix-err-variable.patch new file mode 100644 index 00000000000..a700d4990cc --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1_fix-err-variable.patch @@ -0,0 +1,16 @@ +Fix a wrongly named variable in the tests + +Author: Alexander Grund (TU Dresden) +diff --git a/test/run_test.py b/test/run_test.py +index 4309e65478..a0ffa51aad 100755 +--- a/test/run_test.py ++++ b/test/run_test.py +@@ -738,7 +738,7 @@ def main(): + + if options.continue_through_error and has_failed: + for err in failure_messages: +- print_to_stderr(message) ++ print_to_stderr(err) + sys.exit(1) + + if __name__ == '__main__': diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1_relax_precision_in_test_nn.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1_relax_precision_in_test_nn.patch new file mode 100644 index 00000000000..9ee48876363 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1_relax_precision_in_test_nn.patch @@ -0,0 +1,50 @@ +On A100 GPUs the precision seems to be a lot less, likely due to increased parallelism +See https://github.com/pytorch/pytorch/issues/52278 + +Author: Alexander Grund (TU Dresden) + +diff --git a/torch/testing/_internal/common_nn.py b/torch/testing/_internal/common_nn.py +index a379fa10b8..8755da5c8c 100644 +--- a/torch/testing/_internal/common_nn.py ++++ b/torch/testing/_internal/common_nn.py +@@ -3542,6 +3542,7 @@ new_module_tests = [ + .dropout(0.0)''', + input_size=(2, 3, 4), + desc='relu_activation', ++ precision=2e-2, + ), + dict( + module_name='TransformerEncoderLayer', +@@ -3553,6 +3554,7 @@ new_module_tests = [ + input_size=(2, 3, 4), + check_gradgrad=False, + desc='gelu_activation', ++ precision=2e-2, + ), + dict( + module_name='TransformerDecoderLayer', +@@ -3563,6 +3565,7 @@ new_module_tests = [ + input_fn=lambda: (torch.rand(3, 3, 4), torch.rand(2, 3, 4)), + check_gradgrad=False, + desc='relu_activation', ++ precision=2e-2, + ), + dict( + module_name='Transformer5e-3,DecoderLayer', +@@ -3574,6 +3577,7 @@ new_module_tests = [ + input_fn=lambda: (torch.rand(3, 3, 4), torch.rand(2, 3, 4)), + check_gradgrad=False, + desc='gelu_activation', ++ precision=2e-2, + ), + dict( + module_name='Transformer', +@@ -3588,7 +3592,8 @@ new_module_tests = [ + .activation(torch::kReLU)''', + input_fn=lambda:(torch.rand(3, 3, 4), torch.rand(2, 3, 4), torch.rand(3, 3)), + check_gradgrad=False, +- desc='multilayer_coder' ++ desc='multilayer_coder', ++ precision=2e-2, + ) + ] diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1_run-large-tests-on-GPU.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1_run-large-tests-on-GPU.patch new file mode 100644 index 00000000000..63726d5ee01 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.7.1_run-large-tests-on-GPU.patch @@ -0,0 +1,62 @@ +Avoid failures by not running large dataset tests on CPU but only on GPU as originally intended +Those tests fail e.g. on POWER9 CPU + +See https://github.com/pytorch/pytorch/issues/41469 for the issue +See https://github.com/pytorch/pytorch/issues/46536 for the cause +See https://github.com/pytorch/pytorch/pull/45332 and https://github.com/pytorch/pytorch/pull/48429 for the fix + +Author (backport): Alexander Grund (TU Dresden) + + +diff --git a/test/test_nn.py b/test/test_nn.py +index 8bd88e51d6..2cbf206e23 100644 +--- a/test/test_nn.py ++++ b/test/test_nn.py +@@ -10791,6 +10791,7 @@ class TestNNDeviceType(NNTestCase): + # test non-persistent softmax kernel + _test_helper((4, 1536)) + ++ @onlyCUDA + @largeCUDATensorTest('12GB') + def test_conv_large_nosplit(self, device): + # Here we just test the convolution correctly route to the fallback implementation +@@ -10992,6 +10993,7 @@ class TestNNDeviceType(NNTestCase): + small_image.grad.zero_() + large_view.grad.zero_() + ++ @onlyCUDA + @largeCUDATensorTest('12GB') + def test_conv_transposed_large(self, device): + dtype = torch.half if self.device_type == 'cuda' else torch.float +@@ -11008,6 +11010,7 @@ class TestNNDeviceType(NNTestCase): + self.assertEqual(maxdiff2, 0) + self.assertEqual(maxdiff3, 0) + ++ @onlyCUDA + @skipCUDAIfRocm + @largeCUDATensorTest('12GB') + def test_conv_large(self, device): +diff --git a/test/test_tensor_creation_ops.py b/test/test_tensor_creation_ops.py +index b0777c7fa1..1c2c248759 100644 +--- a/test/test_tensor_creation_ops.py ++++ b/test/test_tensor_creation_ops.py +@@ -757,6 +757,7 @@ class TestTensorCreation(TestCase): + def test_logspace_steps_warning(self, device, dtype): + self._linspace_logspace_warning_helper(torch.logspace, device, dtype) + ++ @onlyCUDA + @largeCUDATensorTest('16GB') + def test_range_factories_64bit_indexing(self, device): + bigint = 2 ** 31 + 1 +diff --git a/test/test_torch.py b/test/test_torch.py +index ec5f2a47f0..5ce1a6d53a 100644 +--- a/test/test_torch.py ++++ b/test/test_torch.py +@@ -9390,6 +9390,7 @@ class TestTorchDeviceType(TestCase): + expected = fn(y, 1, keepdim=False) + self.assertEqual(x[:, 1], expected, msg='{} with out= kwarg'.format(fn_name)) + ++ @onlyCUDA + @largeCUDATensorTest('10GB') + def test_reduction_split(self, device): + # Test reduction when there is a 32bit-indexing split diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.8.0_correct-skip-tests-decorators.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.8.0_correct-skip-tests-decorators.patch new file mode 100644 index 00000000000..89cbeae0759 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.8.0_correct-skip-tests-decorators.patch @@ -0,0 +1,109 @@ +Based off https://github.com/pytorch/pytorch/pull/53736 +Fixed to apply to PyTorch 1.8.0 by Simon Branford (University of Birmingham) +--- test/test_spectral_ops.py 2021-03-12 19:36:32.910758000 +0000 ++++ test/test_spectral_ops.py 2021-03-12 19:41:42.314654931 +0000 +@@ -185,6 +185,7 @@ + with self.assertRaisesRegex(RuntimeError, match): + op(t) + ++ @onlyOnCPUAndCUDA + def test_fft_invalid_dtypes(self, device): + t = torch.randn(64, device=device, dtype=torch.complex128) + +@@ -599,7 +600,6 @@ + _test_complex((40, 60, 3, 80), 3, lambda x: x.transpose(2, 0).select(0, 2)[5:55, :, 10:]) + _test_complex((30, 55, 50, 22), 3, lambda x: x[:, 3:53, 15:40, 1:21]) + +- @skipCUDAIfRocm + @skipCPUIfNoMkl + @onlyOnCPUAndCUDA + @dtypes(torch.double) +@@ -680,8 +680,8 @@ + self.assertEqual(torch.backends.cuda.cufft_plan_cache.max_size, 11) # default is cuda:1 + + # passes on ROCm w/ python 2.7, fails w/ python 3.6 +- @skipCUDAIfRocm + @skipCPUIfNoMkl ++ @onlyOnCPUAndCUDA + @dtypes(torch.double) + def test_stft(self, device, dtype): + if not TEST_LIBROSA: +@@ -712,9 +712,8 @@ + else: + window = None + if expected_error is None: +- with self.maybeWarnsRegex(UserWarning, "stft with return_complex=False"): +- result = x.stft(n_fft, hop_length, win_length, window, +- center=center, return_complex=False) ++ result = x.stft(n_fft, hop_length, win_length, window, ++ center=center, return_complex=False) + # NB: librosa defaults to np.complex64 output, no matter what + # the input dtype + ref_result = librosa_stft(x, n_fft, hop_length, win_length, window, center) +@@ -748,7 +747,7 @@ + _test((10,), 5, 4, win_sizes=(1, 1), expected_error=RuntimeError) + + +- @skipCUDAIfRocm ++ @onlyOnCPUAndCUDA + @skipCPUIfNoMkl + @dtypes(torch.double, torch.cdouble) + def test_complex_stft_roundtrip(self, device, dtype): +@@ -790,7 +789,7 @@ + length=x.size(-1), **common_kwargs) + self.assertEqual(x_roundtrip, x) + +- @skipCUDAIfRocm ++ @onlyOnCPUAndCUDA + @skipCPUIfNoMkl + @dtypes(torch.double, torch.cdouble) + def test_stft_roundtrip_complex_window(self, device, dtype): +@@ -831,6 +830,7 @@ + self.assertEqual(x_roundtrip, x) + + ++ @onlyOnCPUAndCUDA + @skipCUDAIfRocm + @skipCPUIfNoMkl + @dtypes(torch.cdouble) +@@ -851,7 +851,7 @@ + actual = torch.stft(*args, window=window, center=False) + self.assertEqual(actual, expected) + +- @skipCUDAIfRocm ++ @onlyOnCPUAndCUDA + @skipCPUIfNoMkl + @dtypes(torch.cdouble) + def test_complex_stft_real_equiv(self, device, dtype): +@@ -885,6 +885,7 @@ + center=center, normalized=normalized) + self.assertEqual(expected, actual) + ++ @onlyOnCPUAndCUDA + @skipCUDAIfRocm + @skipCPUIfNoMkl + @dtypes(torch.cdouble) +@@ -912,6 +913,7 @@ + return_complex=True) + self.assertEqual(expected, actual) + ++ @onlyOnCPUAndCUDA + @skipCUDAIfRocm + @skipCPUIfNoMkl + def test_complex_stft_onesided(self, device): +@@ -934,12 +936,15 @@ + x.stft(10, pad_mode='constant', onesided=True) + + # stft is currently warning that it requires return-complex while an upgrader is written ++ @onlyOnCPUAndCUDA ++ @skipCPUIfNoMkl + def test_stft_requires_complex(self, device): + x = torch.rand(100) + y = x.stft(10, pad_mode='constant') + # with self.assertRaisesRegex(RuntimeError, 'stft requires the return_complex parameter'): + # y = x.stft(10, pad_mode='constant') + ++ @onlyOnCPUAndCUDA + @skipCUDAIfRocm + @skipCPUIfNoMkl + def test_fft_input_modification(self, device): diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.8.0_fix-noMKL-linear-algebra.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.8.0_fix-noMKL-linear-algebra.patch new file mode 100644 index 00000000000..d9eeefb653a --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.8.0_fix-noMKL-linear-algebra.patch @@ -0,0 +1,77 @@ +From f4824c2eca26887a0f7aeebb4e966c278258142a Mon Sep 17 00:00:00 2001 +From: Ivan Yashchuk +Date: Fri, 12 Mar 2021 17:54:19 +0000 +Subject: [PATCH] Fixed worksize + +--- + aten/src/ATen/native/BatchLinearAlgebra.cpp | 8 ++++---- + aten/src/ATen/native/BatchLinearAlgebra.h | 2 +- + aten/src/ATen/native/BatchLinearAlgebraKernel.cpp | 2 +- + 3 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/aten/src/ATen/native/BatchLinearAlgebra.cpp b/aten/src/ATen/native/BatchLinearAlgebra.cpp +index 39d4291b7a8d..2daf7a93cdea 100644 +--- a/aten/src/ATen/native/BatchLinearAlgebra.cpp ++++ b/aten/src/ATen/native/BatchLinearAlgebra.cpp +@@ -695,7 +695,7 @@ static void apply_inverse(Tensor& self, Tensor& infos_lu, Tensor& infos_getri) { + int lwork = -1; + scalar_t wkopt; + lapackGetri(n, self_data, lda, ipiv_data, &wkopt, lwork, &info); +- lwork = static_cast(real_impl(wkopt)); ++ lwork = std::max(1, real_impl(wkopt)); + Tensor work = at::empty({lwork}, self.options()); + auto work_data = work.data_ptr(); + +@@ -1211,7 +1211,7 @@ static void apply_geqrf(Tensor& self, Tensor& tau, int64_t m, int64_t n, + int lwork = -1; + scalar_t wkopt; + lapackGeqrf(m, n, self_data, m, tau_data, &wkopt, lwork, &info); +- lwork = static_cast(real_impl(wkopt)); ++ lwork = std::max(1, real_impl(wkopt)); + Tensor work = at::empty({lwork}, self.options()); + + for (const auto i : c10::irange(batch_size)) { +@@ -1626,7 +1626,7 @@ static void apply_symeig(Tensor& self, Tensor& eigvals, bool eigenvectors, bool + } + + lapackSymeig(jobz, uplo, n, self_data, n, eigvals_data, &wkopt, lwork, rwork_data, &info); +- lwork = static_cast(real_impl(wkopt)); ++ lwork = std::max(1, real_impl(wkopt)); + Tensor work = at::empty({lwork}, self.options()); + + for (const auto i : c10::irange(batch_size)) { +@@ -1782,7 +1782,7 @@ static void apply_svd(Tensor& self, Tensor& U, Tensor& S, Tensor& VT, + int lwork = -1; + scalar_t wkopt; + lapackSvd(jobz, m, n, self_data, lda, S_data, U_data, lda, VT_data, ldvt, &wkopt, lwork, rwork_data, iwork_data, &info); +- lwork = static_cast(real_impl(wkopt)); ++ lwork = std::max(1, real_impl(wkopt)); + Tensor work = at::empty({lwork}, self.options()); + auto work_data = work.data_ptr(); + +diff --git a/aten/src/ATen/native/BatchLinearAlgebra.h b/aten/src/ATen/native/BatchLinearAlgebra.h +index 138819f6f4cd..59e71e2964e5 100644 +--- a/aten/src/ATen/native/BatchLinearAlgebra.h ++++ b/aten/src/ATen/native/BatchLinearAlgebra.h +@@ -82,7 +82,7 @@ inline void apply_orgqr(Tensor& self, const Tensor& tau, Tensor& infos, int64_t + int lwork = -1; + scalar_t wkopt; + lapackOrgqr(m, n_columns, k, self_data, lda, tau_data, &wkopt, lwork, &infos_data[0]); +- lwork = static_cast(real_impl(wkopt)); ++ lwork = std::max(1, real_impl(wkopt)); + Tensor work = at::empty({lwork}, self.options()); + + for (int64_t i = 0; i < batch_size; i++) { +diff --git a/aten/src/ATen/native/BatchLinearAlgebraKernel.cpp b/aten/src/ATen/native/BatchLinearAlgebraKernel.cpp +index ef64cef6a771..334f4d60ce44 100644 +--- a/aten/src/ATen/native/BatchLinearAlgebraKernel.cpp ++++ b/aten/src/ATen/native/BatchLinearAlgebraKernel.cpp +@@ -115,7 +115,7 @@ void apply_eig(const Tensor& self, bool eigenvectors, Tensor& vals_, Tensor& vec + int info; + lapackEig('N', jobvr, n, self_data, n, wr, + nullptr, 1, vecs_data, ldvr, &wkopt, -1, rwork_data, &info); +- int lwork = static_cast(real_impl(wkopt)); ++ int lwork = std::max(1, real_impl(wkopt)); + + // call again to do the actual work + Tensor work = at::empty({lwork}, self.dtype()); diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.8.1-foss-2020b.eb b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.8.1-foss-2020b.eb new file mode 100644 index 00000000000..f8827697e06 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.8.1-foss-2020b.eb @@ -0,0 +1,78 @@ +name = 'PyTorch' +version = '1.8.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': '2020b'} + +sources = [{ + 'filename': '%(name)s-%(version)s.tar.gz', + 'git_config': { + 'url': 'https://github.com/pytorch', + 'repo_name': 'pytorch', + 'tag': 'v%(version)s', + 'recursive': True, + }, +}] +patches = [ + 'PyTorch-1.6.0_fix-test-dataloader-fixed-affinity.patch', + 'PyTorch-1.7.0_avoid-nan-in-test-torch.patch', + 'PyTorch-1.7.0_increase-distributed-test-timeout.patch', + 'PyTorch-1.7.0_disable-dev-shm-test.patch', + 'PyTorch-1.8.0_fix-noMKL-linear-algebra.patch', + 'PyTorch-1.8.0_correct-skip-tests-decorators.patch', +] +checksums = [ + None, # can't add proper SHA256 checksum, because source tarball is created locally after recursive 'git clone' + # PyTorch-1.6.0_fix-test-dataloader-fixed-affinity.patch + 'a4208a46cd2098744daaba96cebb96cd91166f8fc616924315e05974bad80c67', + 'b899aa94d9e60f11ee75a706563312ccefa9cf432756c470caa8e623991c8f18', # PyTorch-1.7.0_avoid-nan-in-test-torch.patch + # PyTorch-1.7.0_increase-distributed-test-timeout.patch + '95abb468a35451fbd0f864ca843f6ad15ff8bfb909c3fd580f65859b26c9691c', + '622cb1eaeadc06e13128a862d9946bcc1f1edd3d02b259c56a9aecc4d5406b8a', # PyTorch-1.7.0_disable-dev-shm-test.patch + 'a1ca9382b0eb333090536633092bab6fa281d26b491bf7b1849117f68ab0730c', # PyTorch-1.8.0_fix-noMKL-linear-algebra.patch + # PyTorch-1.8.0_correct-skip-tests-decorators.patch + '4b2fe7616217dd6fd12d667cb1439dde58f84bf234fbf3e6026c4665fc697a2e', +] + +osdependencies = [OS_PKG_IBVERBS_DEV] + +builddependencies = [ + ('CMake', '3.18.4'), + ('hypothesis', '5.41.5'), +] + +dependencies = [ + ('Ninja', '1.10.1'), # Required for JIT compilation of C++ extensions + ('Python', '3.8.6'), + ('protobuf', '3.14.0'), + ('protobuf-python', '3.14.0'), + ('pybind11', '2.6.0'), + ('SciPy-bundle', '2020.11'), + ('typing-extensions', '3.7.4.3'), + ('PyYAML', '5.3.1'), + ('MPFR', '4.1.0'), + ('GMP', '6.2.0'), + ('numactl', '2.0.13'), + ('FFmpeg', '4.3.1'), + ('Pillow', '8.0.1'), +] + +excluded_tests = { + '': [ + # Test from this suite timeout often. The process group backend is deprecated anyway + 'distributed/rpc/test_process_group_agent', + # Potentially problematic save/load issue with test_lstm on only some machines. Tell users to verify save&load! + # https://github.com/pytorch/pytorch/issues/43209 + 'test_quantization', + ] +} + +runtest = 'cd test && PYTHONUNBUFFERED=1 %(python)s run_test.py --verbose %(excluded_tests)s' + +sanity_check_commands = ["python -c 'import caffe2.python'"] +tests = ['PyTorch-check-cpp-extension.py'] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/p/Pylint/Pylint-1.9.3-foss-2018b-Python-2.7.15.eb b/easybuild/easyconfigs/p/Pylint/Pylint-1.9.3-foss-2018b-Python-2.7.15.eb index 6823a0317c8..189847b6d15 100644 --- a/easybuild/easyconfigs/p/Pylint/Pylint-1.9.3-foss-2018b-Python-2.7.15.eb +++ b/easybuild/easyconfigs/p/Pylint/Pylint-1.9.3-foss-2018b-Python-2.7.15.eb @@ -1,4 +1,4 @@ -easyblock = 'Bundle' +easyblock = 'PythonBundle' name = 'Pylint' version = '1.9.3' @@ -16,66 +16,61 @@ dependencies = [ ('Python', '2.7.15'), ] -exts_defaultclass = 'PythonPackage' -exts_filter = ("python -c 'import %(ext_name)s'", '') -exts_download_dep_fail = True +use_pip = True exts_list = [ + ('setuptools_scm', '3.5.0', { + 'checksums': ['5bdf21a05792903cafe7ae0c9501182ab52497614fa6b1750d9dbae7b60c1a87'], + }), ('lazy-object-proxy', '1.3.1', { 'modulename': 'lazy_object_proxy', - 'source_urls': ['https://pypi.python.org/packages/source/l/lazy-object-proxy'], 'checksums': ['eb91be369f945f10d3a49f5f9be8b3d0b93a4c2be8f8a5b83b0571b8123e0a7a'], }), ('wrapt', '1.10.11', { - 'source_urls': ['https://pypi.python.org/packages/source/w/wrapt'], 'checksums': ['d4d560d479f2c21e1b5443bbd15fe7ec4b37fe7e53d335d3b9b0a7b1226fe3c6'], }), ('futures', '3.2.0', { 'modulename': 'concurrent.futures', - 'source_urls': ['https://pypi.python.org/packages/source/f/futures'], 'checksums': ['9ec02aa7d674acb8618afb127e27fde7fc68994c0437ad759fa094a574adb265'], }), ('backports.functools_lru_cache', '1.5', { 'modulename': 'backports.functools_lru_cache', - 'source_urls': ['https://pypi.python.org/packages/source/b/backports.functools_lru_cache'], 'checksums': ['9d98697f088eb1b0fa451391f91afb5e3ebde16bbdb272819fd091151fda4f1a'], }), ('singledispatch', '3.4.0.3', { - 'source_urls': ['https://pypi.python.org/packages/source/s/singledispatch'], 'checksums': ['5b06af87df13818d14f08a028e42f566640aef80805c3b50c5056b086e3c2b9c'], }), ('astroid', '1.6.5', { - 'source_urls': ['https://pypi.python.org/packages/source/a/astroid'], 'checksums': ['fc9b582dba0366e63540982c3944a9230cbc6f303641c51483fa547dcc22393a'], }), ('isort', '4.3.4', { - 'source_urls': ['https://pypi.python.org/packages/source/i/isort'], 'checksums': ['b9c40e9750f3d77e6e4d441d8b0266cf555e7cdabdcff33c4fd06366ca761ef8'], }), + ('pytest-runner', '5.2', { + 'modulename': 'ptr', + 'checksums': ['96c7e73ead7b93e388c5d614770d2bae6526efd997757d3543fe17b557a0942b'], + }), ('mccabe', '0.6.1', { - 'source_urls': ['https://pypi.python.org/packages/source/m/mccabe'], 'checksums': ['dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f'], }), ('configparser', '3.5.0', { 'patches': ['configparser-3.5.0_no-backports-namespace.patch'], - 'source_urls': ['https://pypi.python.org/packages/source/c/configparser'], 'checksums': [ '5308b47021bc2340965c371f0f058cc6971a04502638d4244225c49d80db273a', # configparser-3.5.0.tar.gz # configparser-3.5.0_no-backports-namespace.patch '1d4541cf6401592a28c80962fbda155de2536c3031ede800cbc62178361596d6', ], }), - (name.lower(), version, { - 'source_urls': ['https://pypi.python.org/packages/source/p/pylint'], + ('pylint', version, { 'checksums': ['09bc539f85706f2cca720a7ddf28f5c6cf8185708d6cb5bbf7a90a32c3b3b0aa'], }), ] +sanity_pip_check = True + sanity_check_paths = { 'files': ['bin/pylint'], 'dirs': ['lib/python%(pyshortver)s/site-packages'], } -modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} - moduleclass = 'tools' diff --git a/easybuild/easyconfigs/p/Pylint/Pylint-1.9.3-intel-2018b-Python-2.7.15.eb b/easybuild/easyconfigs/p/Pylint/Pylint-1.9.3-intel-2018b-Python-2.7.15.eb index 6f24b0ee591..9b284ff2396 100644 --- a/easybuild/easyconfigs/p/Pylint/Pylint-1.9.3-intel-2018b-Python-2.7.15.eb +++ b/easybuild/easyconfigs/p/Pylint/Pylint-1.9.3-intel-2018b-Python-2.7.15.eb @@ -1,4 +1,4 @@ -easyblock = 'Bundle' +easyblock = 'PythonBundle' name = 'Pylint' version = '1.9.3' @@ -16,66 +16,61 @@ dependencies = [ ('Python', '2.7.15'), ] -exts_defaultclass = 'PythonPackage' -exts_filter = ("python -c 'import %(ext_name)s'", '') -exts_download_dep_fail = True +use_pip = True exts_list = [ + ('setuptools_scm', '3.5.0', { + 'checksums': ['5bdf21a05792903cafe7ae0c9501182ab52497614fa6b1750d9dbae7b60c1a87'], + }), ('lazy-object-proxy', '1.3.1', { 'modulename': 'lazy_object_proxy', - 'source_urls': ['https://pypi.python.org/packages/source/l/lazy-object-proxy'], 'checksums': ['eb91be369f945f10d3a49f5f9be8b3d0b93a4c2be8f8a5b83b0571b8123e0a7a'], }), ('wrapt', '1.10.11', { - 'source_urls': ['https://pypi.python.org/packages/source/w/wrapt'], 'checksums': ['d4d560d479f2c21e1b5443bbd15fe7ec4b37fe7e53d335d3b9b0a7b1226fe3c6'], }), ('futures', '3.2.0', { 'modulename': 'concurrent.futures', - 'source_urls': ['https://pypi.python.org/packages/source/f/futures'], 'checksums': ['9ec02aa7d674acb8618afb127e27fde7fc68994c0437ad759fa094a574adb265'], }), ('backports.functools_lru_cache', '1.5', { 'modulename': 'backports.functools_lru_cache', - 'source_urls': ['https://pypi.python.org/packages/source/b/backports.functools_lru_cache'], 'checksums': ['9d98697f088eb1b0fa451391f91afb5e3ebde16bbdb272819fd091151fda4f1a'], }), ('singledispatch', '3.4.0.3', { - 'source_urls': ['https://pypi.python.org/packages/source/s/singledispatch'], 'checksums': ['5b06af87df13818d14f08a028e42f566640aef80805c3b50c5056b086e3c2b9c'], }), ('astroid', '1.6.5', { - 'source_urls': ['https://pypi.python.org/packages/source/a/astroid'], 'checksums': ['fc9b582dba0366e63540982c3944a9230cbc6f303641c51483fa547dcc22393a'], }), ('isort', '4.3.4', { - 'source_urls': ['https://pypi.python.org/packages/source/i/isort'], 'checksums': ['b9c40e9750f3d77e6e4d441d8b0266cf555e7cdabdcff33c4fd06366ca761ef8'], }), + ('pytest-runner', '5.2', { + 'modulename': 'ptr', + 'checksums': ['96c7e73ead7b93e388c5d614770d2bae6526efd997757d3543fe17b557a0942b'], + }), ('mccabe', '0.6.1', { - 'source_urls': ['https://pypi.python.org/packages/source/m/mccabe'], 'checksums': ['dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f'], }), ('configparser', '3.5.0', { 'patches': ['configparser-3.5.0_no-backports-namespace.patch'], - 'source_urls': ['https://pypi.python.org/packages/source/c/configparser'], 'checksums': [ '5308b47021bc2340965c371f0f058cc6971a04502638d4244225c49d80db273a', # configparser-3.5.0.tar.gz # configparser-3.5.0_no-backports-namespace.patch '1d4541cf6401592a28c80962fbda155de2536c3031ede800cbc62178361596d6', ], }), - (name.lower(), version, { - 'source_urls': ['https://pypi.python.org/packages/source/p/pylint'], + ('pylint', version, { 'checksums': ['09bc539f85706f2cca720a7ddf28f5c6cf8185708d6cb5bbf7a90a32c3b3b0aa'], }), ] +sanity_pip_check = True + sanity_check_paths = { 'files': ['bin/pylint'], 'dirs': ['lib/python%(pyshortver)s/site-packages'], } -modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} - moduleclass = 'tools' diff --git a/easybuild/easyconfigs/p/Pylint/Pylint-1.9.3-iomkl-2018b-Python-2.7.15.eb b/easybuild/easyconfigs/p/Pylint/Pylint-1.9.3-iomkl-2018b-Python-2.7.15.eb index 2670b331f27..a15859b5c88 100644 --- a/easybuild/easyconfigs/p/Pylint/Pylint-1.9.3-iomkl-2018b-Python-2.7.15.eb +++ b/easybuild/easyconfigs/p/Pylint/Pylint-1.9.3-iomkl-2018b-Python-2.7.15.eb @@ -1,4 +1,4 @@ -easyblock = 'Bundle' +easyblock = 'PythonBundle' name = 'Pylint' version = '1.9.3' @@ -16,66 +16,61 @@ dependencies = [ ('Python', '2.7.15'), ] -exts_defaultclass = 'PythonPackage' -exts_filter = ("python -c 'import %(ext_name)s'", '') -exts_download_dep_fail = True +use_pip = True exts_list = [ + ('setuptools_scm', '3.5.0', { + 'checksums': ['5bdf21a05792903cafe7ae0c9501182ab52497614fa6b1750d9dbae7b60c1a87'], + }), ('lazy-object-proxy', '1.3.1', { 'modulename': 'lazy_object_proxy', - 'source_urls': ['https://pypi.python.org/packages/source/l/lazy-object-proxy'], 'checksums': ['eb91be369f945f10d3a49f5f9be8b3d0b93a4c2be8f8a5b83b0571b8123e0a7a'], }), ('wrapt', '1.10.11', { - 'source_urls': ['https://pypi.python.org/packages/source/w/wrapt'], 'checksums': ['d4d560d479f2c21e1b5443bbd15fe7ec4b37fe7e53d335d3b9b0a7b1226fe3c6'], }), ('futures', '3.2.0', { 'modulename': 'concurrent.futures', - 'source_urls': ['https://pypi.python.org/packages/source/f/futures'], 'checksums': ['9ec02aa7d674acb8618afb127e27fde7fc68994c0437ad759fa094a574adb265'], }), ('backports.functools_lru_cache', '1.5', { 'modulename': 'backports.functools_lru_cache', - 'source_urls': ['https://pypi.python.org/packages/source/b/backports.functools_lru_cache'], 'checksums': ['9d98697f088eb1b0fa451391f91afb5e3ebde16bbdb272819fd091151fda4f1a'], }), ('singledispatch', '3.4.0.3', { - 'source_urls': ['https://pypi.python.org/packages/source/s/singledispatch'], 'checksums': ['5b06af87df13818d14f08a028e42f566640aef80805c3b50c5056b086e3c2b9c'], }), ('astroid', '1.6.5', { - 'source_urls': ['https://pypi.python.org/packages/source/a/astroid'], 'checksums': ['fc9b582dba0366e63540982c3944a9230cbc6f303641c51483fa547dcc22393a'], }), ('isort', '4.3.4', { - 'source_urls': ['https://pypi.python.org/packages/source/i/isort'], 'checksums': ['b9c40e9750f3d77e6e4d441d8b0266cf555e7cdabdcff33c4fd06366ca761ef8'], }), + ('pytest-runner', '5.2', { + 'modulename': 'ptr', + 'checksums': ['96c7e73ead7b93e388c5d614770d2bae6526efd997757d3543fe17b557a0942b'], + }), ('mccabe', '0.6.1', { - 'source_urls': ['https://pypi.python.org/packages/source/m/mccabe'], 'checksums': ['dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f'], }), ('configparser', '3.5.0', { 'patches': ['configparser-3.5.0_no-backports-namespace.patch'], - 'source_urls': ['https://pypi.python.org/packages/source/c/configparser'], 'checksums': [ '5308b47021bc2340965c371f0f058cc6971a04502638d4244225c49d80db273a', # configparser-3.5.0.tar.gz # configparser-3.5.0_no-backports-namespace.patch '1d4541cf6401592a28c80962fbda155de2536c3031ede800cbc62178361596d6', ], }), - (name.lower(), version, { - 'source_urls': ['https://pypi.python.org/packages/source/p/pylint'], + ('pylint', version, { 'checksums': ['09bc539f85706f2cca720a7ddf28f5c6cf8185708d6cb5bbf7a90a32c3b3b0aa'], }), ] +sanity_pip_check = True + sanity_check_paths = { 'files': ['bin/pylint'], 'dirs': ['lib/python%(pyshortver)s/site-packages'], } -modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} - moduleclass = 'tools' diff --git a/easybuild/easyconfigs/p/Pylint/Pylint-1.9.5-GCCcore-8.2.0-Python-2.7.15.eb b/easybuild/easyconfigs/p/Pylint/Pylint-1.9.5-GCCcore-8.2.0-Python-2.7.15.eb index 18e80e8675b..370f23e9c1c 100644 --- a/easybuild/easyconfigs/p/Pylint/Pylint-1.9.5-GCCcore-8.2.0-Python-2.7.15.eb +++ b/easybuild/easyconfigs/p/Pylint/Pylint-1.9.5-GCCcore-8.2.0-Python-2.7.15.eb @@ -22,9 +22,10 @@ dependencies = [ use_pip = True -exts_default_options = {'source_urls': [PYPI_SOURCE]} - exts_list = [ + ('setuptools_scm', '3.5.0', { + 'checksums': ['5bdf21a05792903cafe7ae0c9501182ab52497614fa6b1750d9dbae7b60c1a87'], + }), ('lazy-object-proxy', '1.4.1', { 'modulename': 'lazy_object_proxy', 'checksums': ['4ba73f6089cd9b9478bc0a4fa807b47dbdb8fad1d8f31a0f0a5dbf26a4527a71'], @@ -49,6 +50,10 @@ exts_list = [ ('isort', '4.3.21', { 'checksums': ['54da7e92468955c4fceacd0c86bd0ec997b0e1ee80d97f67c35a78b719dccab1'], }), + ('pytest-runner', '5.2', { + 'modulename': 'ptr', + 'checksums': ['96c7e73ead7b93e388c5d614770d2bae6526efd997757d3543fe17b557a0942b'], + }), ('mccabe', '0.6.1', { 'checksums': ['dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f'], }), diff --git a/easybuild/easyconfigs/p/Pylint/Pylint-1.9.5-GCCcore-8.3.0-Python-2.7.16.eb b/easybuild/easyconfigs/p/Pylint/Pylint-1.9.5-GCCcore-8.3.0-Python-2.7.16.eb index 3a735a29db3..74bbb516752 100644 --- a/easybuild/easyconfigs/p/Pylint/Pylint-1.9.5-GCCcore-8.3.0-Python-2.7.16.eb +++ b/easybuild/easyconfigs/p/Pylint/Pylint-1.9.5-GCCcore-8.3.0-Python-2.7.16.eb @@ -22,9 +22,10 @@ dependencies = [ use_pip = True -exts_default_options = {'source_urls': [PYPI_SOURCE]} - exts_list = [ + ('setuptools_scm', '3.5.0', { + 'checksums': ['5bdf21a05792903cafe7ae0c9501182ab52497614fa6b1750d9dbae7b60c1a87'], + }), ('lazy-object-proxy', '1.4.3', { 'modulename': 'lazy_object_proxy', 'checksums': ['f3900e8a5de27447acbf900b4750b0ddfd7ec1ea7fbaf11dfa911141bc522af0'], @@ -49,6 +50,10 @@ exts_list = [ ('isort', '4.3.5', { 'checksums': ['d05a79a16b3ea1aea19d82d29352fde3420170b7c9377ff02138d16b684788fe'], }), + ('pytest-runner', '5.2', { + 'modulename': 'ptr', + 'checksums': ['96c7e73ead7b93e388c5d614770d2bae6526efd997757d3543fe17b557a0942b'], + }), ('mccabe', '0.6.1', { 'checksums': ['dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f'], }), diff --git a/easybuild/easyconfigs/p/Pylint/Pylint-2.7.4-GCCcore-10.2.0.eb b/easybuild/easyconfigs/p/Pylint/Pylint-2.7.4-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..1d62246901c --- /dev/null +++ b/easybuild/easyconfigs/p/Pylint/Pylint-2.7.4-GCCcore-10.2.0.eb @@ -0,0 +1,60 @@ +easyblock = 'PythonBundle' + +name = 'Pylint' +version = '2.7.4' + +homepage = 'https://www.pylint.org/' +description = """Pylint is a tool that checks for errors in Python code, tries to enforce + a coding standard and looks for code smells. It can also look for certain type errors, + it can recommend suggestions about how particular blocks can be refactored and + can offer you details about the code's complexity.""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +builddependencies = [ + ('binutils', '2.35'), +] + +dependencies = [ + ('Python', '3.8.6'), +] + +use_pip = True + +exts_list = [ + ('setuptools_scm', '6.0.1', { + 'checksums': ['d1925a69cb07e9b29416a275b9fadb009a23c148ace905b2fb220649a6c18e92'], + }), + ('lazy-object-proxy', '1.6.0', { + 'modulename': 'lazy_object_proxy', + 'checksums': ['489000d368377571c6f982fba6497f2aa13c6d1facc40660963da62f5c379726'], + }), + ('wrapt', '1.12.1', { + 'checksums': ['b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7'], + }), + ('astroid', '2.5.3', { + 'checksums': ['ad63b8552c70939568966811a088ef0bc880f99a24a00834abd0e3681b514f91'], + }), + ('isort', '5.8.0', { + 'checksums': ['0a943902919f65c5684ac4e0154b1ad4fac6dcaa5d9f3426b732f1c8b5419be6'], + }), + ('pytest-runner', '5.3.0', { + 'modulename': 'ptr', + 'checksums': ['ca3f58ff4957e8be6c54c55d575b235725cbbcf4dc0d5091c29c6444cfc8a5fe'], + }), + ('mccabe', '0.6.1', { + 'checksums': ['dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f'], + }), + ('pylint', version, { + 'checksums': ['bd38914c7731cdc518634a8d3c5585951302b6e2b6de60fbb3f7a0220e21eeee'], + }), +] + +sanity_pip_check = True + +sanity_check_paths = { + 'files': ['bin/pylint'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/p/Pysam/Pysam-0.16.0.1-GCC-10.2.0-Python-2.7.18.eb b/easybuild/easyconfigs/p/Pysam/Pysam-0.16.0.1-GCC-10.2.0-Python-2.7.18.eb new file mode 100644 index 00000000000..7496740a8f5 --- /dev/null +++ b/easybuild/easyconfigs/p/Pysam/Pysam-0.16.0.1-GCC-10.2.0-Python-2.7.18.eb @@ -0,0 +1,39 @@ +# 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 + +easyblock = 'PythonPackage' + +name = 'Pysam' +version = '0.16.0.1' +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': '10.2.0'} + +source_urls = ['https://github.com/pysam-developers/pysam/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['a61e98e299fa93ba121aab521081282b61bc978bb9052d33b26b38f8fe15573e'] + +dependencies = [ + ('Python', '2.7.18'), + ('ncurses', '6.2'), + ('cURL', '7.72.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-2.7.15-GCCcore-8.2.0.eb b/easybuild/easyconfigs/p/Python/Python-2.7.15-GCCcore-8.2.0.eb index 6dfef9799d2..175bf270b5a 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.7.15-GCCcore-8.2.0.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.7.15-GCCcore-8.2.0.eb @@ -28,6 +28,8 @@ dependencies = [ osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] +install_pip = True + exts_default_options = { 'download_dep_fail': True, 'source_urls': [PYPI_SOURCE], @@ -40,16 +42,14 @@ exts_default_options = { exts_list = [ ('setuptools', '40.8.0', { 'source_tmpl': '%(name)s-%(version)s.zip', - 'use_pip': False, 'checksums': ['6e4eec90337e849ade7103723b9a99631c1f0d19990d6e8412dc42f5ae8b304d'], }), - ('pip', '19.0.3', { - 'use_pip': False, - 'checksums': ['6e6f197a1abfb45118dbb878b5c859a0edbdd33fd250100bc015b67fded4b9f2'], - }), ('wheel', '0.33.1', { 'checksums': ['66a8fd76f28977bb664b098372daef2b27f60dc4d1688cfab7b37a09448f0e9d'], }), + ('pip', '19.0.3', { + 'checksums': ['6e6f197a1abfb45118dbb878b5c859a0edbdd33fd250100bc015b67fded4b9f2'], + }), ('nose', '1.3.7', { 'checksums': ['f1bffef9cbc82628f6e7d7b40d7e255aefaa1adb6a1b1d26c69a8b79e6208a98'], }), diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.16-GCCcore-8.3.0.eb b/easybuild/easyconfigs/p/Python/Python-2.7.16-GCCcore-8.3.0.eb index b40e28b44ee..630fe512e04 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.7.16-GCCcore-8.3.0.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.7.16-GCCcore-8.3.0.eb @@ -28,6 +28,8 @@ dependencies = [ osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] +install_pip = True + exts_default_options = { 'download_dep_fail': True, 'source_urls': [PYPI_SOURCE], @@ -41,15 +43,13 @@ exts_list = [ ('setuptools', '41.2.0', { 'source_tmpl': '%(name)s-%(version)s.zip', 'checksums': ['66b86bbae7cc7ac2e867f52dc08a6bd064d938bac59dfec71b9b565dd36d6012'], - 'use_pip': False, - }), - ('pip', '19.2.3', { - 'checksums': ['e7a31f147974362e6c82d84b91c7f2bdf57e4d3163d3d454e6c3e71944d67135'], - 'use_pip': False, }), ('wheel', '0.33.6', { 'checksums': ['10c9da68765315ed98850f8e048347c3eb06dd81822dc2ab1d4fde9dc9702646'], }), + ('pip', '19.2.3', { + 'checksums': ['e7a31f147974362e6c82d84b91c7f2bdf57e4d3163d3d454e6c3e71944d67135'], + }), ('nose', '1.3.7', { 'checksums': ['f1bffef9cbc82628f6e7d7b40d7e255aefaa1adb6a1b1d26c69a8b79e6208a98'], }), diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.18-GCCcore-10.2.0.eb b/easybuild/easyconfigs/p/Python/Python-2.7.18-GCCcore-10.2.0.eb index ac42a9c106c..591c3feab68 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.7.18-GCCcore-10.2.0.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.7.18-GCCcore-10.2.0.eb @@ -28,6 +28,8 @@ dependencies = [ osdependencies = [OS_PKG_OPENSSL_DEV] +install_pip = True + exts_default_options = { 'download_dep_fail': True, 'sanity_pip_check': True, @@ -40,16 +42,14 @@ exts_default_options = { exts_list = [ ('setuptools', '44.1.1', { 'source_tmpl': '%(name)s-%(version)s.zip', - 'use_pip': False, 'checksums': ['c67aa55db532a0dadc4d2e20ba9961cbd3ccc84d544e9029699822542b5a476b'], }), - ('pip', '20.3.4', { - 'use_pip': False, - 'checksums': ['6773934e5f5fc3eaa8c5a44949b5b924fc122daa0a8aa9f80c835b4ca2a543fc'], - }), ('wheel', '0.35.1', { 'checksums': ['99a22d87add3f634ff917310a3d87e499f19e663413a52eb9232c447aa646c9f'], }), + ('pip', '20.3.4', { + 'checksums': ['6773934e5f5fc3eaa8c5a44949b5b924fc122daa0a8aa9f80c835b4ca2a543fc'], + }), ('nose', '1.3.7', { 'checksums': ['f1bffef9cbc82628f6e7d7b40d7e255aefaa1adb6a1b1d26c69a8b79e6208a98'], }), @@ -334,16 +334,16 @@ exts_list = [ 'checksums': ['063910098161199b81e453025653ec53556c1be7165a9b7c50be2f4d57eae1c3'], }), ('pastel', '0.2.1', { - 'use_pip': False, - 'checksums': ['e6581ac04e973cac858828c6202c1e1e81fee1dc7de7683f3e1ffe0bfd8a573d'], + 'source_tmpl': SOURCE_WHL, + 'checksums': ['4349225fcdf6c2bb34d483e523475de5bb04a5c10ef711263452cb37d7dd4364'], }), ('clikit', '0.6.2', { - 'use_pip': False, - 'checksums': ['442ee5db9a14120635c5990bcdbfe7c03ada5898291f0c802f77be71569ded59'], + 'source_tmpl': SOURCE_WHL, + 'checksums': ['71268e074e68082306e23d7369a7b99f824a0ef926e55ba2665e911f7208489e'], }), ('entrypoints', '0.3', { - 'use_pip': False, - 'checksums': ['c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451'], + 'source_tmpl': SOURCE_WHL, + 'checksums': ['589f874b313739ad35be6e0cd7efde2a4e9b6fea91edcc34e58ecbb8dbe56d19'], }), ('SecretStorage', '2.3.1', { 'modulename': False, # Doesn't work properly under Python2, but is required for keyring @@ -358,8 +358,8 @@ exts_list = [ 'checksums': ['1c9981c351dabe902172ccf75bccff78185548f15ad51d5297e6366c0f4c3b51'], }), ('tomlkit', '0.7.0', { - 'use_pip': False, - 'checksums': ['ac57f29693fab3e309ea789252fcce3061e19110085aa31af5446ca749325618'], + 'source_tmpl': SOURCE_WHL, + 'checksums': ['6babbd33b17d5c9691896b0e68159215a9387ebfa938aa3ac42f4a4beeb2b831'], }), ('shellingham', '1.3.2', { 'checksums': ['576c1982bea0ba82fb46c36feb951319d7f42214a82634233f58b40d858a751e'], @@ -389,8 +389,8 @@ exts_list = [ 'checksums': ['b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f'], }), ('cleo', '0.8.1', { - 'use_pip': False, - 'checksums': ['3d0e22d30117851b45970b6c14aca4ab0b18b1b53c8af57bed13208147e4069f'], + 'source_tmpl': SOURCE_WHL, + 'checksums': ['141cda6dc94a92343be626bb87a0b6c86ae291dfc732a57bf04310d4b4201753'], }), ('cachy', '0.3.0', { 'checksums': ['186581f4ceb42a0bbe040c407da73c14092379b1e4c0e327fdb72ae4a9b269b1'], @@ -402,8 +402,8 @@ exts_list = [ 'checksums': ['be9aa45477a134aee56c8fac518627e1154df063e85f67d4f83ce0ccc23688e8'], }), ('ptyprocess', '0.6.0', { - 'use_pip': False, - 'checksums': ['923f299cc5ad920c68f2bc0bc98b75b9f838b93b599941a6b63ddbc2476394c0'], + 'source_tmpl': SOURCE_WHL, + 'checksums': ['d7cc528d76e76342423ca640335bd3633420dc1366f258cb31d05e865ef5ca1f'], }), ('lockfile', '0.12.2', { 'checksums': ['6aed02de03cba24efabcd600b30540140634fc06cfa603822d508d5361e9f799'], diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.18-GCCcore-10.3.0-bare.eb b/easybuild/easyconfigs/p/Python/Python-2.7.18-GCCcore-10.3.0-bare.eb new file mode 100644 index 00000000000..98638347a5b --- /dev/null +++ b/easybuild/easyconfigs/p/Python/Python-2.7.18-GCCcore-10.3.0-bare.eb @@ -0,0 +1,28 @@ +name = 'Python' +version = '2.7.18' +versionsuffix = '-bare' + +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': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] +checksums = ['da3080e3b488f648a3d7a4560ddee895284c3380b11d6de75edb986526b9a814'] + +dependencies = [ + ('binutils', '2.36.1'), + ('bzip2', '1.0.8'), # required for bz2 package in Python stdlib + ('zlib', '1.2.11'), + ('libreadline', '8.1'), + ('ncurses', '6.2'), + ('SQLite', '3.35.4'), + ('OpenSSL', '1.1', '', True), +] + +install_pip = True + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-2.7.18-GCCcore-9.3.0.eb b/easybuild/easyconfigs/p/Python/Python-2.7.18-GCCcore-9.3.0.eb index dd6469b886c..ed312cd35ed 100644 --- a/easybuild/easyconfigs/p/Python/Python-2.7.18-GCCcore-9.3.0.eb +++ b/easybuild/easyconfigs/p/Python/Python-2.7.18-GCCcore-9.3.0.eb @@ -28,6 +28,8 @@ dependencies = [ osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] +install_pip = True + exts_default_options = { 'download_dep_fail': True, 'sanity_pip_check': True, @@ -41,16 +43,14 @@ exts_list = [ # setuptools 44.0.0 is the most recent version still supporting Python 2.x ('setuptools', '44.0.0', { 'source_tmpl': '%(name)s-%(version)s.zip', - 'use_pip': False, 'checksums': ['e5baf7723e5bb8382fc146e33032b241efc63314211a3a120aaa55d62d2bb008'], }), - ('pip', '20.0.2', { - 'use_pip': False, - 'checksums': ['7db0c8ea4c7ea51c8049640e8e6e7fde949de672bfa4949920675563a5a6967f'], - }), ('wheel', '0.34.2', { 'checksums': ['8788e9155fe14f54164c1b9eb0a319d98ef02c160725587ad60f14ddc57b6f96'], }), + ('pip', '20.0.2', { + 'checksums': ['7db0c8ea4c7ea51c8049640e8e6e7fde949de672bfa4949920675563a5a6967f'], + }), ('nose', '1.3.7', { 'checksums': ['f1bffef9cbc82628f6e7d7b40d7e255aefaa1adb6a1b1d26c69a8b79e6208a98'], }), diff --git a/easybuild/easyconfigs/p/Python/Python-3.7.2-GCCcore-8.2.0.eb b/easybuild/easyconfigs/p/Python/Python-3.7.2-GCCcore-8.2.0.eb index b79d38b1ffb..614b1aaca14 100644 --- a/easybuild/easyconfigs/p/Python/Python-3.7.2-GCCcore-8.2.0.eb +++ b/easybuild/easyconfigs/p/Python/Python-3.7.2-GCCcore-8.2.0.eb @@ -34,9 +34,7 @@ dependencies = [ osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] -# symlink 'pip' command to 'pip3' that is included with Python installation -# required so we can update pip to version included in extensions, using pip -installopts = " && ln -s %(installdir)s/bin/pip3 %(installdir)s/bin/pip" +install_pip = True exts_default_options = { 'download_dep_fail': True, @@ -48,20 +46,16 @@ exts_default_options = { # order is important! # package versions updated Mar 15th 2019 exts_list = [ - ('pip', '19.0.3', { - 'checksums': ['6e6f197a1abfb45118dbb878b5c859a0edbdd33fd250100bc015b67fded4b9f2'], - # don't use --ignore-installed, i.e. let pip remove older pip version included with Python - 'pip_ignore_installed': False, - }), ('setuptools', '40.8.0', { 'source_tmpl': '%(name)s-%(version)s.zip', 'checksums': ['6e4eec90337e849ade7103723b9a99631c1f0d19990d6e8412dc42f5ae8b304d'], - # don't use --ignore-installed, i.e. let pip remove older setuptools version included with Python - 'pip_ignore_installed': False, }), ('wheel', '0.33.1', { 'checksums': ['66a8fd76f28977bb664b098372daef2b27f60dc4d1688cfab7b37a09448f0e9d'], }), + ('pip', '19.0.3', { + 'checksums': ['6e6f197a1abfb45118dbb878b5c859a0edbdd33fd250100bc015b67fded4b9f2'], + }), ('nose', '1.3.7', { 'checksums': ['f1bffef9cbc82628f6e7d7b40d7e255aefaa1adb6a1b1d26c69a8b79e6208a98'], }), diff --git a/easybuild/easyconfigs/p/Python/Python-3.7.4-GCCcore-8.3.0.eb b/easybuild/easyconfigs/p/Python/Python-3.7.4-GCCcore-8.3.0.eb index 8ab51697f65..aa755e46fb8 100644 --- a/easybuild/easyconfigs/p/Python/Python-3.7.4-GCCcore-8.3.0.eb +++ b/easybuild/easyconfigs/p/Python/Python-3.7.4-GCCcore-8.3.0.eb @@ -34,9 +34,7 @@ dependencies = [ osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] -# symlink 'pip' command to 'pip3' that is included with Python installation -# required so we can update pip to version included in extensions, using pip -installopts = " && ln -s %(installdir)s/bin/pip3 %(installdir)s/bin/pip" +install_pip = True exts_default_options = { 'download_dep_fail': True, @@ -48,10 +46,6 @@ exts_default_options = { # order is important! # package versions updated Sept 13th 2019 exts_list = [ - ('pip', '19.2.3', { - 'use_pip': False, - 'checksums': ['e7a31f147974362e6c82d84b91c7f2bdf57e4d3163d3d454e6c3e71944d67135'], - }), ('setuptools', '41.2.0', { 'source_tmpl': '%(name)s-%(version)s.zip', 'checksums': ['66b86bbae7cc7ac2e867f52dc08a6bd064d938bac59dfec71b9b565dd36d6012'], @@ -59,6 +53,9 @@ exts_list = [ ('wheel', '0.33.6', { 'checksums': ['10c9da68765315ed98850f8e048347c3eb06dd81822dc2ab1d4fde9dc9702646'], }), + ('pip', '19.2.3', { + 'checksums': ['e7a31f147974362e6c82d84b91c7f2bdf57e4d3163d3d454e6c3e71944d67135'], + }), ('nose', '1.3.7', { 'checksums': ['f1bffef9cbc82628f6e7d7b40d7e255aefaa1adb6a1b1d26c69a8b79e6208a98'], }), diff --git a/easybuild/easyconfigs/p/Python/Python-3.8.2-GCCcore-9.3.0.eb b/easybuild/easyconfigs/p/Python/Python-3.8.2-GCCcore-9.3.0.eb index 223defbfc93..ef76f05fa6f 100644 --- a/easybuild/easyconfigs/p/Python/Python-3.8.2-GCCcore-9.3.0.eb +++ b/easybuild/easyconfigs/p/Python/Python-3.8.2-GCCcore-9.3.0.eb @@ -34,10 +34,7 @@ dependencies = [ osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] -# symlink 'pip' command to 'pip3' that is included with Python installation -# required so we can update pip to version included in extensions, using pip -installopts = " && ln -s %(installdir)s/bin/pip3 %(installdir)s/bin/pip" - +install_pip = True exts_default_options = { 'download_dep_fail': True, @@ -49,10 +46,6 @@ exts_default_options = { # order is important! # package versions updated 23 April 2020 exts_list = [ - ('pip', '20.0.2', { - 'use_pip': False, - 'checksums': ['7db0c8ea4c7ea51c8049640e8e6e7fde949de672bfa4949920675563a5a6967f'], - }), ('setuptools', '45.2.0', { 'source_tmpl': '%(name)s-%(version)s.zip', 'checksums': ['89c6e6011ec2f6d57d43a3f9296c4ef022c2cbf49bab26b407fe67992ae3397f'], @@ -60,6 +53,9 @@ exts_list = [ ('wheel', '0.34.2', { 'checksums': ['8788e9155fe14f54164c1b9eb0a319d98ef02c160725587ad60f14ddc57b6f96'], }), + ('pip', '20.0.2', { + 'checksums': ['7db0c8ea4c7ea51c8049640e8e6e7fde949de672bfa4949920675563a5a6967f'], + }), ('nose', '1.3.7', { 'checksums': ['f1bffef9cbc82628f6e7d7b40d7e255aefaa1adb6a1b1d26c69a8b79e6208a98'], }), diff --git a/easybuild/easyconfigs/p/Python/Python-3.8.6-GCCcore-10.2.0.eb b/easybuild/easyconfigs/p/Python/Python-3.8.6-GCCcore-10.2.0.eb index 4371dc3f09b..74d7a4c7022 100644 --- a/easybuild/easyconfigs/p/Python/Python-3.8.6-GCCcore-10.2.0.eb +++ b/easybuild/easyconfigs/p/Python/Python-3.8.6-GCCcore-10.2.0.eb @@ -34,9 +34,7 @@ dependencies = [ osdependencies = [OS_PKG_OPENSSL_DEV] -# symlink 'pip' command to 'pip3' that is included with Python installation -# required so we can update pip to version included in extensions, using pip -installopts = " && ln -s %(installdir)s/bin/pip3 %(installdir)s/bin/pip" +install_pip = True exts_default_options = { 'download_dep_fail': True, @@ -49,10 +47,6 @@ exts_default_options = { # order is important! # package versions updated 13 October 2020 exts_list = [ - ('pip', '20.2.3', { - 'use_pip': False, - 'checksums': ['30c70b6179711a7c4cf76da89e8a0f5282279dfb0278bec7b94134be92543b6d'], - }), ('setuptools', '50.3.0', { 'source_tmpl': '%(name)s-%(version)s.zip', 'checksums': ['39060a59d91cf5cf403fa3bacbb52df4205a8c3585e0b9ba4b30e0e19d4c4b18'], @@ -60,6 +54,9 @@ exts_list = [ ('wheel', '0.35.1', { 'checksums': ['99a22d87add3f634ff917310a3d87e499f19e663413a52eb9232c447aa646c9f'], }), + ('pip', '20.2.3', { + 'checksums': ['30c70b6179711a7c4cf76da89e8a0f5282279dfb0278bec7b94134be92543b6d'], + }), ('nose', '1.3.7', { 'checksums': ['f1bffef9cbc82628f6e7d7b40d7e255aefaa1adb6a1b1d26c69a8b79e6208a98'], }), @@ -331,24 +328,16 @@ exts_list = [ ('intreehooks', '1.0', { 'checksums': ['87e600d3b16b97ed219c078681260639e77ef5a17c0e0dbdd5a302f99b4e34e1'], }), - ('crashtest', '0.3.1', { - 'use_pip': False, - 'checksums': ['42ca7b6ce88b6c7433e2ce47ea884e91ec93104a4b754998be498a8e6c3d37dd'], - }), ('pylev', '1.3.0', { 'checksums': ['063910098161199b81e453025653ec53556c1be7165a9b7c50be2f4d57eae1c3'], }), ('pastel', '0.2.1', { - 'use_pip': False, - 'checksums': ['e6581ac04e973cac858828c6202c1e1e81fee1dc7de7683f3e1ffe0bfd8a573d'], + 'source_tmpl': SOURCE_WHL, + 'checksums': ['4349225fcdf6c2bb34d483e523475de5bb04a5c10ef711263452cb37d7dd4364'], }), ('clikit', '0.6.2', { - 'use_pip': False, - 'checksums': ['442ee5db9a14120635c5990bcdbfe7c03ada5898291f0c802f77be71569ded59'], - }), - ('jeepney', '0.4.3', { - 'use_pip': False, - 'checksums': ['3479b861cc2b6407de5188695fa1a8d57e5072d7059322469b62628869b8e36e'], + 'source_tmpl': SOURCE_WHL, + 'checksums': ['71268e074e68082306e23d7369a7b99f824a0ef926e55ba2665e911f7208489e'], }), ('SecretStorage', '3.1.2', { 'checksums': ['15da8a989b65498e29be338b3b279965f1b8f09b9668bd8010da183024c8bff6'], @@ -362,8 +351,8 @@ exts_list = [ 'checksums': ['f70ef01a8f2b968b83643db370a1e85bc0e4bc8b358f9661504279afb019d21d'], }), ('tomlkit', '0.7.0', { - 'use_pip': False, - 'checksums': ['ac57f29693fab3e309ea789252fcce3061e19110085aa31af5446ca749325618'], + 'source_tmpl': SOURCE_WHL, + 'checksums': ['6babbd33b17d5c9691896b0e68159215a9387ebfa938aa3ac42f4a4beeb2b831'], }), ('shellingham', '1.3.2', { 'checksums': ['576c1982bea0ba82fb46c36feb951319d7f42214a82634233f58b40d858a751e'], @@ -393,8 +382,8 @@ exts_list = [ 'checksums': ['b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f'], }), ('cleo', '0.8.1', { - 'use_pip': False, - 'checksums': ['3d0e22d30117851b45970b6c14aca4ab0b18b1b53c8af57bed13208147e4069f'], + 'source_tmpl': SOURCE_WHL, + 'checksums': ['141cda6dc94a92343be626bb87a0b6c86ae291dfc732a57bf04310d4b4201753'], }), ('cachy', '0.3.0', { 'checksums': ['186581f4ceb42a0bbe040c407da73c14092379b1e4c0e327fdb72ae4a9b269b1'], @@ -406,7 +395,6 @@ exts_list = [ 'checksums': ['be9aa45477a134aee56c8fac518627e1154df063e85f67d4f83ce0ccc23688e8'], }), ('ptyprocess', '0.6.0', { - 'use_pip': False, 'checksums': ['923f299cc5ad920c68f2bc0bc98b75b9f838b93b599941a6b63ddbc2476394c0'], }), ('lockfile', '0.12.2', { @@ -419,6 +407,12 @@ exts_list = [ ('poetry', '1.1.3', { 'checksums': ['49eae89e2c44b0323214d0bbcefc21ebe3a19baa44db98eefabd4db9e82c7253'], }), + ('crashtest', '0.3.1', { + 'checksums': ['42ca7b6ce88b6c7433e2ce47ea884e91ec93104a4b754998be498a8e6c3d37dd'], + }), + ('jeepney', '0.4.3', { + 'checksums': ['3479b861cc2b6407de5188695fa1a8d57e5072d7059322469b62628869b8e36e'], + }), ('fsspec', '0.8.4', { 'checksums': ['e1e494d4814f6804769f3c7bfd7a722a15113cc0339d14755297f09306b8f21f'], }), diff --git a/easybuild/easyconfigs/p/Python/Python-3.9.5-GCCcore-10.3.0.eb b/easybuild/easyconfigs/p/Python/Python-3.9.5-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..73460e65a1e --- /dev/null +++ b/easybuild/easyconfigs/p/Python/Python-3.9.5-GCCcore-10.3.0.eb @@ -0,0 +1,439 @@ +name = 'Python' +version = '3.9.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': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] +checksums = ['e0fbd5b6e1ee242524430dee3c91baf4cbbaba4a72dd1674b90fda87b713c7ab'] + +builddependencies = [ + ('UnZip', '6.0'), + ('Rust', '1.52.1'), # required for setuptools-rust, which is needed for cryptography +] + +dependencies = [ + ('binutils', '2.36.1'), + ('bzip2', '1.0.8'), # required for bz2 package in Python stdlib + ('zlib', '1.2.11'), + ('libreadline', '8.1'), + ('ncurses', '6.2'), + ('SQLite', '3.35.4'), + ('XZ', '5.2.5'), + ('GMP', '6.2.1'), # required for pycrypto + ('libffi', '3.3'), # required for cryptography + ('OpenSSL', '1.1', '', True), +] + +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 10 May 2021 +exts_list = [ + ('wheel', '0.36.2', { + 'checksums': ['e11eefd162658ea59a60a0f6c7d493a7190ea4b9a85e335b33489d9f17e0245e'], + }), + ('setuptools', '56.2.0', { + 'checksums': ['7bb5652625e94e73b9358b7ed8c6431b732e80cf31f4e0972294c64f0e5b849e'], + }), + ('pip', '21.1.1', { + 'checksums': ['51ad01ddcd8de923533b01a870e7b987c2eb4d83b50b89e1bf102723ff9fed8b'], + }), + ('nose', '1.3.7', { + 'checksums': ['f1bffef9cbc82628f6e7d7b40d7e255aefaa1adb6a1b1d26c69a8b79e6208a98'], + }), + ('blist', '1.3.6', { + 'patches': ['Python-3_9-blist-1.3.6-fix-undefined_symbol_PyObject_GC_IS_TRACKED.patch'], + 'checksums': [ + '3a12c450b001bdf895b30ae818d4d6d3f1552096b8c995f0fe0c74bef04d1fc3', # blist-1.3.6.tar.gz + # Python-3_9-blist-1.3.6-fix-undefined_symbol_PyObject_GC_IS_TRACKED.patch + '18a643d1d1565b05df7dcc9a612a86dcf7b3b352435032f6425a61b597f911d0', + ], + }), + ('paycheck', '1.0.2', { + 'checksums': ['6db7fc367c146cd59d2327ad4d2d6b0a24bc1be2d6953bb0773cbf702ee1ed34'], + }), + ('pbr', '5.6.0', { + 'checksums': ['42df03e7797b796625b1029c0400279c7c34fd7df24a7d7818a1abb5b38710dd'], + }), + ('Cython', '0.29.23', { + 'checksums': ['6a0d31452f0245daacb14c979c77e093eb1a546c760816b5eed0047686baad8e'], + }), + ('six', '1.16.0', { + 'checksums': ['1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926'], + }), + ('toml', '0.10.2', { + 'checksums': ['b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f'], + }), + ('setuptools_scm', '6.0.1', { + 'checksums': ['d1925a69cb07e9b29416a275b9fadb009a23c148ace905b2fb220649a6c18e92'], + }), + ('python-dateutil', '2.8.1', { + 'modulename': 'dateutil', + 'checksums': ['73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c'], + }), + ('decorator', '5.0.7', { + 'checksums': ['6f201a6c4dac3d187352661f508b9364ec8091217442c9478f1f83c003a0f060'], + }), + ('liac-arff', '2.5.0', { + 'modulename': 'arff', + 'checksums': ['3220d0af6487c5aa71b47579be7ad1d94f3849ff1e224af3bf05ad49a0b5c4da'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'patches': ['pycrypto-2.6.1_remove-usr-include.patch'], + 'checksums': [ + 'f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c', # pycrypto-2.6.1.tar.gz + # pycrypto-2.6.1_remove-usr-include.patch + '06c3d3bb290305e1360a023ea03f9281116c230de62382e6be9474996086712e', + ], + }), + ('ecdsa', '0.16.1', { + 'checksums': ['cfc046a2ddd425adbd1a78b3c46f0d1325c657811c0f45ecc3a0a6236c1e50ff'], + }), + ('ipaddress', '1.0.23', { + 'checksums': ['b7f8e0369580bb4a24d5ba1d7cc29660a4a6987763faf1d8a8046830e020e7e2'], + }), + ('asn1crypto', '1.4.0', { + 'checksums': ['f4f6e119474e58e04a2b1af817eb585b4fd72bdd89b998624712b5c99be7641c'], + }), + ('idna', '2.10', { + 'checksums': ['b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6'], + }), + ('pycparser', '2.20', { + 'checksums': ['2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0'], + }), + ('cffi', '1.14.5', { + 'checksums': ['fd78e5fee591709f32ef6edb9a015b4aa1a5022598e36227500c8f4e02328d9c'], + }), + ('setuptools-rust', '0.12.1', { + 'checksums': ['647009e924f0ae439c7f3e0141a184a69ad247ecb9044c511dabde232d3d570e'], + }), + ('semantic_version', '2.8.5', { + 'checksums': ['d2cb2de0558762934679b9a104e82eca7af448c9f4974d1f3eeccff651df8a54'], + }), + ('cryptography', '3.4.7', { + 'checksums': ['3d10de8116d25649631977cb37da6cbdd2d6fa0e0281d014a5b7d337255ca713'], + # avoid that cargo uses $HOME/.cargo, which can lead to build failures if home directory is NFS mounted, + # see https://github.com/rust-lang/cargo/issues/6652 + 'preinstallopts': "export CARGO_HOME=%(builddir)s/cargo && ", + }), + ('pyasn1', '0.4.8', { + 'checksums': ['aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba'], + }), + ('PyNaCl', '1.4.0', { + 'modulename': 'nacl', + 'checksums': ['54e9a2c849c742006516ad56a88f5c74bf2ce92c9f67435187c3c5953b346505'], + }), + ('bcrypt', '3.2.0', { + 'checksums': ['5b93c1726e50a93a033c36e5ca7fdcd29a5c7395af50a6892f5d9e7c6cfbfb29'], + }), + ('paramiko', '2.7.2', { + 'checksums': ['7f36f4ba2c0d81d219f4595e35f70d56cc94f9ac40a6acdf51d6ca210ce65035'], + }), + ('pyparsing', '2.4.7', { + 'checksums': ['c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1'], + }), + ('netifaces', '0.10.9', { + 'checksums': ['2dee9ffdd16292878336a58d04a20f0ffe95555465fee7c9bd23b3490ef2abf3'], + }), + ('netaddr', '0.8.0', { + 'checksums': ['d6cc57c7a07b1d9d2e917aa8b36ae8ce61c35ba3fcd1b83ca31c5a0ee2b5a243'], + }), + ('mock', '4.0.3', { + 'checksums': ['7d3fbbde18228f4ff2f1f119a45cdffa458b4c0dee32eb4d2bb2f82554bac7bc'], + }), + ('pytz', '2021.1', { + 'checksums': ['83a4a90894bf38e243cf052c8b58f381bfe9a7a483f6a9cab140bc7f702ac4da'], + }), + ('bitstring', '3.1.7', { + 'checksums': ['fdf3eb72b229d2864fb507f8f42b1b2c57af7ce5fec035972f9566de440a864a'], + }), + ('appdirs', '1.4.4', { + 'checksums': ['7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41'], + }), + ('distlib', '0.3.1', { + 'source_tmpl': 'distlib-%(version)s.zip', + 'checksums': ['edf6116872c863e1aa9d5bb7cb5e05a022c519a4594dc703843343a9ddd9bff1'], + }), + ('filelock', '3.0.12', { + 'checksums': ['18d82244ee114f543149c66a6e0c14e9c4f8a1044b5cdaadd0f82159d6a6ff59'], + }), + ('importlib_metadata', '4.0.1', { + 'checksums': ['8c501196e49fb9df5df43833bdb1e4328f64847763ec8a50703148b73784d581'], + }), + ('virtualenv', '20.4.6', { + 'checksums': ['72cf267afc04bf9c86ec932329b7e94db6a0331ae9847576daaa7ca3c86b29a4'], + }), + ('docopt', '0.6.2', { + 'checksums': ['49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491'], + }), + ('joblib', '1.0.1', { + 'checksums': ['9c17567692206d2f3fb9ecf5e991084254fe631665c450b443761c4186a613f7'], + }), + ('chardet', '4.0.0', { + 'checksums': ['0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa'], + }), + ('certifi', '2020.12.5', { + 'checksums': ['1a4995114262bffbc2413b159f2a1a480c969de6e6eb13ee966d470af86af59c'], + }), + ('urllib3', '1.26.4', { + 'checksums': ['e7b021f7241115872f92f43c6508082facffbd1c048e3c6e2bb9c2a157e28937'], + }), + ('requests', '2.25.1', { + 'checksums': ['27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804'], + }), + ('xlrd', '2.0.1', { + 'checksums': ['f72f148f54442c6b056bf931dbc34f986fd0c3b0b6b5a58d013c9aef274d0c88'], + }), + ('py_expression_eval', '0.3.13', { + 'checksums': ['6e7d59d391d54a034609ce66b820e7dd68c757672d166dcc514bf7abf15ba57e'], + }), + ('tabulate', '0.8.9', { + 'checksums': ['eb1d13f25760052e8931f2ef80aaf6045a6cceb47514db8beab24cded16f13a7'], + }), + ('ujson', '4.0.2', { + 'checksums': ['c615a9e9e378a7383b756b7e7a73c38b22aeb8967a8bfbffd4741f7ffd043c4d'], + }), + ('atomicwrites', '1.4.0', { + 'checksums': ['ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a'], + }), + ('py', '1.10.0', { + 'checksums': ['21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3'], + }), + ('scandir', '1.10.0', { + 'checksums': ['4d4631f6062e658e9007ab3149a9b914f3548cb38bfb021c64f39a025ce578ae'], + }), + ('pathlib2', '2.3.5', { + 'checksums': ['6cd9a47b597b37cc57de1c05e56fb1a1c9cc9fab04fe78c29acd090418529868'], + }), + ('zipp', '3.4.1', { + 'checksums': ['3607921face881ba3e026887d8150cca609d517579abe052ac81fc5aeffdbd76'], + }), + ('pluggy', '0.13.1', { + 'checksums': ['15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0'], + }), + ('more-itertools', '8.7.0', { + 'checksums': ['c5d6da9ca3ff65220c3bfd2a8db06d698f05d4d2b9be57e1deb2be5a45019713'], + }), + ('attrs', '21.2.0', { + 'modulename': 'attr', + 'checksums': ['ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb'], + }), + ('wcwidth', '0.2.5', { + 'checksums': ['c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83'], + }), + ('iniconfig', '1.1.1', { + 'checksums': ['bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32'], + }), + ('pytest', '6.2.4', { + 'checksums': ['50bcad0a0b9c5a72c8e4e7c9855a3ad496ca6a881a3641b4260605450772c54b'], + }), + ('MarkupSafe', '1.1.1', { + 'checksums': ['29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b'], + }), + ('Jinja2', '2.11.3', { + 'checksums': ['a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6'], + }), + ('packaging', '20.9', { + 'checksums': ['5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5'], + }), + ('sphinxcontrib-websupport', '1.2.4', { + 'modulename': 'sphinxcontrib.websupport', + 'checksums': ['4edf0223a0685a7c485ae5a156b6f529ba1ee481a1417817935b20bde1956232'], + }), + ('Pygments', '2.9.0', { + 'checksums': ['a18f47b506a429f6f4b9df81bb02beab9ca21d0a5fee38ed15aef65f0545519f'], + }), + ('imagesize', '1.2.0', { + 'checksums': ['b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1'], + }), + ('docutils', '0.17.1', { + 'checksums': ['686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125'], + }), + ('snowballstemmer', '2.1.0', { + 'checksums': ['e997baa4f2e9139951b6f4c631bad912dfd3c792467e2f03d7239464af90e914'], + }), + ('Babel', '2.9.1', { + 'checksums': ['bc0c176f9f6a994582230df350aa6e05ba2ebe4b3ac317eab29d9be5d2768da0'], + }), + ('alabaster', '0.7.12', { + 'checksums': ['a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02'], + }), + ('sphinxcontrib-applehelp', '1.0.2', { + 'modulename': 'sphinxcontrib.applehelp', + 'checksums': ['a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58'], + }), + ('sphinxcontrib-devhelp', '1.0.2', { + 'modulename': 'sphinxcontrib.devhelp', + 'checksums': ['ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4'], + }), + ('sphinxcontrib-htmlhelp', '1.0.3', { + 'modulename': 'sphinxcontrib.htmlhelp', + 'checksums': ['e8f5bb7e31b2dbb25b9cc435c8ab7a79787ebf7f906155729338f3156d93659b'], + }), + ('sphinxcontrib-jsmath', '1.0.1', { + 'modulename': 'sphinxcontrib.jsmath', + 'checksums': ['a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8'], + }), + ('sphinxcontrib-qthelp', '1.0.3', { + 'modulename': 'sphinxcontrib.qthelp', + 'checksums': ['4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72'], + }), + ('sphinxcontrib-serializinghtml', '1.1.4', { + 'modulename': 'sphinxcontrib.serializinghtml', + 'checksums': ['eaa0eccc86e982a9b939b2b82d12cc5d013385ba5eadcc7e4fed23f4405f77bc'], + }), + ('Sphinx', '4.0.0', { + 'checksums': ['b246ebd74f5fb966d7e90086bbda5ed74ee4d30b4c3cbefddc1fb5210aa317c7'], + }), + ('sphinx-bootstrap-theme', '0.7.1', { + 'checksums': ['571e43ccb76d4c6c06576aa24a826b6ebc7adac45a5b54985200128806279d08'], + }), + ('colorama', '0.4.4', { + 'checksums': ['5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b'], + }), + ('click', '7.1.2', { + 'checksums': ['d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a'], + }), + ('psutil', '5.8.0', { + 'checksums': ['0c9ccb99ab76025f2f0bbecf341d4656e9c1351db8cc8a03ccd62e318ab4b5c6'], + }), + ('future', '0.18.2', { + 'checksums': ['b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d'], + }), + ('sortedcontainers', '2.3.0', { + 'checksums': ['59cc937650cf60d677c16775597c89a960658a09cf7c1a668f86e1e4464b10a1'], + }), + ('intervaltree', '3.1.0', { + 'checksums': ['902b1b88936918f9b2a19e0e5eb7ccb430ae45cde4f39ea4b36932920d33952d'], + }), + ('pytoml', '0.1.21', { + 'checksums': ['8eecf7c8d0adcff3b375b09fe403407aa9b645c499e5ab8cac670ac4a35f61e7'], + }), + ('flit-core', '3.2.0', { + 'source_tmpl': 'flit_core-%(version)s.tar.gz', + 'checksums': ['ff87f25c5dbc24ef30ea334074e35030e4885e4c5de3bf4e21f15746f6d99431'], + }), + ('flit', '3.2.0', { + 'checksums': ['592464c9268bbacec9bc67b5a3ae62e6e090aeec1563e69501df338a1728e551'], + }), + ('regex', '2021.4.4', { + 'checksums': ['52ba3d3f9b942c49d7e4bc105bb28551c44065f139a65062ab7912bef10c9afb'], + }), + ('intreehooks', '1.0', { + 'checksums': ['87e600d3b16b97ed219c078681260639e77ef5a17c0e0dbdd5a302f99b4e34e1'], + }), + ('pylev', '1.3.0', { + 'checksums': ['063910098161199b81e453025653ec53556c1be7165a9b7c50be2f4d57eae1c3'], + }), + ('pastel', '0.2.1', { + 'source_tmpl': SOURCE_WHL, + 'checksums': ['4349225fcdf6c2bb34d483e523475de5bb04a5c10ef711263452cb37d7dd4364'], + }), + ('clikit', '0.6.2', { + 'source_tmpl': SOURCE_WHL, + 'checksums': ['71268e074e68082306e23d7369a7b99f824a0ef926e55ba2665e911f7208489e'], + }), + ('SecretStorage', '3.3.1', { + 'checksums': ['fd666c51a6bf200643495a04abb261f83229dcb6fd8472ec393df7ffc8b6f195'], + }), + ('keyring', '21.8.0', { + 'modulename': False, # Doesn't work properly if HOME directory contains keys + 'checksums': ['1746d3ac913d449a090caf11e9e4af00e26c3f7f7e81027872192b2398b98675'], + }), + ('keyrings.alt', '4.0.2', { + 'modulename': False, + 'checksums': ['cc475635099d6edd7e475c5a479e5b4da5e811a3af04495a1e9ada488d16fe25'], + }), + ('tomlkit', '0.7.0', { + 'source_tmpl': SOURCE_WHL, + 'checksums': ['6babbd33b17d5c9691896b0e68159215a9387ebfa938aa3ac42f4a4beeb2b831'], + }), + ('shellingham', '1.4.0', { + 'checksums': ['4855c2458d6904829bd34c299f11fdeed7cfefbf8a2c522e4caea6cd76b3171e'], + }), + ('requests-toolbelt', '0.9.1', { + 'checksums': ['968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0'], + }), + ('pyrsistent', '0.17.3', { + 'checksums': ['2e636185d9eb976a18a8a8e96efce62f2905fea90041958d8cc2a189756ebf3e'], + }), + ('pkginfo', '1.7.0', { + 'checksums': ['029a70cb45c6171c329dfc890cde0879f8c52d6f3922794796e06f577bb03db4'], + }), + ('pexpect', '4.8.0', { + 'checksums': ['fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c'], + }), + ('jsonschema', '3.2.0', { + 'checksums': ['c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a'], + }), + ('simplejson', '3.17.2', { + 'checksums': ['75ecc79f26d99222a084fbdd1ce5aad3ac3a8bd535cd9059528452da38b68841'], + }), + ('webencodings', '0.5.1', { + 'checksums': ['b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923'], + }), + ('html5lib', '1.1', { + 'checksums': ['b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f'], + }), + ('cleo', '0.8.1', { + 'source_tmpl': SOURCE_WHL, + 'checksums': ['141cda6dc94a92343be626bb87a0b6c86ae291dfc732a57bf04310d4b4201753'], + }), + ('cachy', '0.3.0', { + 'checksums': ['186581f4ceb42a0bbe040c407da73c14092379b1e4c0e327fdb72ae4a9b269b1'], + }), + ('msgpack', '1.0.2', { + 'checksums': ['fae04496f5bc150eefad4e9571d1a76c55d021325dcd484ce45065ebbdd00984'], + }), + ('CacheControl', '0.12.6', { + 'checksums': ['be9aa45477a134aee56c8fac518627e1154df063e85f67d4f83ce0ccc23688e8'], + }), + ('ptyprocess', '0.7.0', { + 'source_tmpl': SOURCE_WHL, + 'checksums': ['4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35'], + }), + ('lockfile', '0.12.2', { + 'checksums': ['6aed02de03cba24efabcd600b30540140634fc06cfa603822d508d5361e9f799'], + }), + ('poetry-core', '1.0.3', { + 'modulename': 'poetry.core', + 'checksums': ['2315c928249fc3207801a81868b64c66273077b26c8d8da465dccf8f488c90c5'], + }), + ('poetry', '1.1.6', { + 'checksums': ['e7c58a50c14aebc18e7de9df64f1dad74b194f21b8e5257251449f0feb4784fa'], + }), + ('crashtest', '0.3.1', { + 'source_tmpl': SOURCE_PY3_WHL, + 'checksums': ['300f4b0825f57688b47b6d70c6a31de33512eb2fa1ac614f780939aa0cf91680'], + }), + ('jeepney', '0.6.0', { + 'source_tmpl': SOURCE_PY3_WHL, + 'checksums': ['aec56c0eb1691a841795111e184e13cad504f7703b9a64f63020816afa79a8ae'], + }), + ('fsspec', '2021.4.0', { + 'checksums': ['8b1a69884855d1a8c038574292e8b861894c3373282d9a469697a2b41d5289a6'], + }), + ('threadpoolctl', '2.1.0', { + 'checksums': ['ddc57c96a38beb63db45d6c159b5ab07b6bced12c45a1f07b2b92f272aebfa6b'], + }), + ('simplegeneric', '0.8.1', { + 'source_tmpl': 'simplegeneric-%(version)s.zip', + 'checksums': ['dc972e06094b9af5b855b3df4a646395e43d1c9d0d39ed345b7393560d0b9173'], + }), +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Python/Python-3_9-blist-1.3.6-fix-undefined_symbol_PyObject_GC_IS_TRACKED.patch b/easybuild/easyconfigs/p/Python/Python-3_9-blist-1.3.6-fix-undefined_symbol_PyObject_GC_IS_TRACKED.patch new file mode 100644 index 00000000000..41967a2a390 --- /dev/null +++ b/easybuild/easyconfigs/p/Python/Python-3_9-blist-1.3.6-fix-undefined_symbol_PyObject_GC_IS_TRACKED.patch @@ -0,0 +1,238 @@ +From d816f8c30cc15b1a7cdc9fa855ff919359069fb3 Mon Sep 17 00:00:00 2001 +From: "H. Vetinari" +Date: Tue, 13 Oct 2020 16:34:17 +0200 +Subject: [PATCH 4/4] compatibility with PEP 620 + +--- + blist/_blist.c | 8 +- + blist/pythoncapi_compat.h | 192 ++++++++++++++++++++++++++++++++++++++ + 2 files changed, 199 insertions(+), 1 deletion(-) + create mode 100644 blist/pythoncapi_compat.h + +diff --git a/blist/_blist.c b/blist/_blist.c +index fee7b1a..9fdf178 100644 +--- a/blist/_blist.c ++++ b/blist/_blist.c +@@ -98,7 +98,7 @@ + #endif + #endif + +-/* This macro is defined in Python 3. We need it since calling ++/* This macro is defined in Python<3.9. We need it since calling + * PyObject_GC_UnTrack twice is unsafe. */ + /* True if the object is currently tracked by the GC. */ + #define _PyObject_GC_IS_TRACKED(o) \ +@@ -122,6 +122,12 @@ + #define PyInt_AsLong PyLong_AsLong + #define PyInt_AsSsize_t PyLong_AsSsize_t + #define PyInt_FromLong PyLong_FromLong ++#if PY_MINOR_VERSION > 8 ++/* _PyObject_GC_IS_TRACKED was removed from Python 3.9, re-add it; ++ * see PEP 620 and https://github.com/pythoncapi/pythoncapi_compat */ ++#include "pythoncapi_compat.h" ++#define _PyObject_GC_IS_TRACKED(o) PyObject_GC_IsTracked((PyObject*)(o)) ++#endif + #endif + + #ifndef BLIST_IN_PYTHON +diff --git a/blist/pythoncapi_compat.h b/blist/pythoncapi_compat.h +new file mode 100644 +index 0000000..a255b3a +--- /dev/null ++++ b/blist/pythoncapi_compat.h +@@ -0,0 +1,192 @@ ++/* Header file providing new functions of the Python C API ++ for old Python versions. ++ ++ File distributed under the MIT license. ++ Homepage: https://github.com/pythoncapi/pythoncapi_compat. ++*/ ++ ++#ifndef PYTHONCAPI_COMPAT ++#define PYTHONCAPI_COMPAT ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++#include ++#include "frameobject.h" // PyFrameObject ++ ++ ++// bpo-39573: Py_TYPE(), Py_REFCNT() and Py_SIZE() can no longer be used ++// as l-value in Python 3.10. ++#if PY_VERSION_HEX < 0x030900A4 ++static inline void _Py_SET_REFCNT(PyObject *ob, Py_ssize_t refcnt) ++{ ++ ob->ob_refcnt = refcnt; ++} ++#define Py_SET_REFCNT(ob, refcnt) _Py_SET_REFCNT((PyObject*)(ob), refcnt) ++ ++ ++static inline void ++_Py_SET_TYPE(PyObject *ob, PyTypeObject *type) ++{ ++ ob->ob_type = type; ++} ++#define Py_SET_TYPE(ob, type) _Py_SET_TYPE((PyObject*)(ob), type) ++ ++static inline void ++_Py_SET_SIZE(PyVarObject *ob, Py_ssize_t size) ++{ ++ ob->ob_size = size; ++} ++#define Py_SET_SIZE(ob, size) _Py_SET_SIZE((PyVarObject*)(ob), size) ++ ++#endif // PY_VERSION_HEX < 0x030900A4 ++ ++ ++#if PY_VERSION_HEX < 0x030900B1 ++static inline PyCodeObject* ++PyFrame_GetCode(PyFrameObject *frame) ++{ ++ assert(frame != NULL); ++ PyCodeObject *code = frame->f_code; ++ assert(code != NULL); ++ Py_INCREF(code); ++ return code; ++} ++#endif ++ ++ ++#if PY_VERSION_HEX < 0x030900B1 ++static inline PyFrameObject* ++PyFrame_GetBack(PyFrameObject *frame) ++{ ++ assert(frame != NULL); ++ PyFrameObject *back = frame->f_back; ++ Py_XINCREF(back); ++ return back; ++} ++#endif ++ ++ ++#if PY_VERSION_HEX < 0x030900A5 ++static inline PyInterpreterState * ++PyThreadState_GetInterpreter(PyThreadState *tstate) ++{ ++ assert(tstate != NULL); ++ return tstate->interp; ++} ++#endif ++ ++ ++#if PY_VERSION_HEX < 0x030900B1 ++static inline PyFrameObject* ++PyThreadState_GetFrame(PyThreadState *tstate) ++{ ++ assert(tstate != NULL); ++ PyFrameObject *frame = tstate->frame; ++ Py_XINCREF(frame); ++ return frame; ++} ++#endif ++ ++ ++#if PY_VERSION_HEX < 0x030900A5 ++static inline PyInterpreterState * ++PyInterpreterState_Get(void) ++{ ++ PyThreadState *tstate = PyThreadState_GET(); ++ if (tstate == NULL) { ++ Py_FatalError("GIL released (tstate is NULL)"); ++ } ++ PyInterpreterState *interp = tstate->interp; ++ if (interp == NULL) { ++ Py_FatalError("no current interpreter"); ++ } ++ return interp; ++} ++#endif ++ ++ ++#if 0x030700A1 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x030900A6 ++static inline uint64_t ++PyThreadState_GetID(PyThreadState *tstate) ++{ ++ assert(tstate != NULL); ++ return tstate->id; ++} ++#endif ++ ++ ++#if PY_VERSION_HEX < 0x030900A1 ++static inline PyObject* ++PyObject_CallNoArgs(PyObject *func) ++{ ++ return PyObject_CallFunctionObjArgs(func, NULL); ++} ++#endif ++ ++ ++#if PY_VERSION_HEX < 0x030900A4 ++static inline PyObject* ++PyObject_CallOneArg(PyObject *func, PyObject *arg) ++{ ++ return PyObject_CallFunctionObjArgs(func, arg, NULL); ++} ++#endif ++ ++ ++#if PY_VERSION_HEX < 0x030900A5 ++static inline int ++PyModule_AddType(PyObject *module, PyTypeObject *type) ++{ ++ if (PyType_Ready(type) < 0) { ++ return -1; ++ } ++ ++ // inline _PyType_Name() ++ const char *name = type->tp_name; ++ assert(name != NULL); ++ const char *dot = strrchr(name, '.'); ++ if (dot != NULL) { ++ name = dot + 1; ++ } ++ ++ Py_INCREF(type); ++ if (PyModule_AddObject(module, name, (PyObject *)type) < 0) { ++ Py_DECREF(type); ++ return -1; ++ } ++ ++ return 0; ++} ++#endif ++ ++ ++#if PY_VERSION_HEX < 0x030900A6 ++static inline int ++PyObject_GC_IsTracked(PyObject* obj) ++{ ++ return (PyObject_IS_GC(obj) && _PyObject_GC_IS_TRACKED(obj)); ++} ++ ++static inline int ++PyObject_GC_IsFinalized(PyObject *obj) ++{ ++ return (PyObject_IS_GC(obj) && _PyGCHead_FINALIZED((PyGC_Head *)(obj)-1)); ++} ++#endif // PY_VERSION_HEX < 0x030900A6 ++ ++ ++#if PY_VERSION_HEX < 0x030900A4 ++static inline int ++_Py_IS_TYPE(const PyObject *ob, const PyTypeObject *type) { ++ return ob->ob_type == type; ++} ++#define Py_IS_TYPE(ob, type) _Py_IS_TYPE((const PyObject*)(ob), type) ++#endif ++ ++ ++#ifdef __cplusplus ++} ++#endif ++#endif // PYTHONCAPI_COMPAT +-- +2.26.2.windows.1 + diff --git a/easybuild/easyconfigs/p/p4-phylogenetics/p4-phylogenetics-1.4-20210322-foss-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/p/p4-phylogenetics/p4-phylogenetics-1.4-20210322-foss-2019b-Python-3.7.4.eb new file mode 100644 index 00000000000..c8f8e5222f1 --- /dev/null +++ b/easybuild/easyconfigs/p/p4-phylogenetics/p4-phylogenetics-1.4-20210322-foss-2019b-Python-3.7.4.eb @@ -0,0 +1,44 @@ +easyblock = 'PythonPackage' + +name = 'p4-phylogenetics' +version = '1.4-20210322' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://p4.nhm.ac.uk/' +description = "A Python phyloinformatic toolkit, and an implementation of tree-heterogeneous models of evolution." + +toolchain = {'name': 'foss', 'version': '2019b'} + +github_account = 'pgfoster' +local_commit = 'd9c8d1b1' +source_urls = [GITHUB_SOURCE] +sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}] +checksums = ['681c4d0c2d38b9fe080903691562e20304a51a2404be8d70036d69ac9e70639b'] + +dependencies = [ + ('Python', '3.7.4'), + ('SciPy-bundle', '2019.10', versionsuffix), + ('bitarray', '1.2.1', versionsuffix), + ('GSL', '2.6'), + ('NLopt', '2.6.1'), +] + +use_pip = False +download_dep_fail = True + +# Set paths to GSL from EasyBuild +prebuildopts = 'sed -i "48d;s|^#my_lib_dirs.*|my_lib_dirs = [\'$EBROOTGSL/lib\']|" setup.py && ' +prebuildopts += 'sed -i "47d;s|^#my_include_dirs.*|my_include_dirs = [\'$EBROOTGSL/include\']|" setup.py && ' + +sanity_pip_check = True + +sanity_check_paths = { + 'files': ['bin/p4'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [('p4 --help')] + +options = {'modulename': 'p4'} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/p7zip/p7zip-17.04-GCCcore-10.3.0.eb b/easybuild/easyconfigs/p/p7zip/p7zip-17.04-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..6d18ac44dc4 --- /dev/null +++ b/easybuild/easyconfigs/p/p7zip/p7zip-17.04-GCCcore-10.3.0.eb @@ -0,0 +1,39 @@ +easyblock = 'MakeCp' + +name = 'p7zip' +version = '17.04' + +homepage = 'https://github.com/jinfeihan57/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': '10.3.0'} + +github_account = 'jinfeihan57' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['ea029a2e21d2d6ad0a156f6679bd66836204aa78148a4c5e498fe682e77127ef'] + +builddependencies = [ + ('binutils', '2.36.1'), +] + +prebuildopts = "cp makefile.linux_amd64 makefile.linux &&" +buildopts = 'all3 CC="$CC" CXX="$CXX" OPTFLAGS="$CFLAGS"' + +files_to_copy = [ + (['bin/7z', 'bin/7za', 'bin/7zr', 'bin/7zCon.sfx'], 'bin'), + (['bin/7z.%s' % SHLIB_EXT, 'bin/Codecs'], 'libexec'), +] + +sanity_check_paths = { + 'files': ['bin/7z', 'bin/7za', 'bin/7zCon.sfx', 'bin/7zr', 'libexec/7z.%s' % SHLIB_EXT], + 'dirs': ['libexec/Codecs'], +} + +sanity_check_commands = [ + '7z --help', + '7z x || test $? -gt 0', +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/p/pagmo/pagmo-2.17.0-foss-2020b.eb b/easybuild/easyconfigs/p/pagmo/pagmo-2.17.0-foss-2020b.eb new file mode 100644 index 00000000000..7458df08fd4 --- /dev/null +++ b/easybuild/easyconfigs/p/pagmo/pagmo-2.17.0-foss-2020b.eb @@ -0,0 +1,36 @@ +easyblock = 'CMakeMake' + +name = 'pagmo' +version = '2.17.0' + +homepage = 'https://esa.github.io/pagmo2' +description = "pagmo is a C++ scientific library for massively parallel optimization." + +toolchain = {'name': 'foss', 'version': '2020b'} +toolchainopts = {'usempi': True} + +source_urls = ['https://github.com/esa/pagmo2/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['1b95b036f75e6fa0b21082ab228dbd63cd18ca10d9622ac53629245e0f95c35c'] + +builddependencies = [ + ('CMake', '3.18.4'), +] + +dependencies = [ + ('Boost', '1.74.0'), + ('tbb', '2020.3'), + ('Eigen', '3.3.8'), + ('NLopt', '2.6.2'), +] + +configopts = "-DPAGMO_WITH_EIGEN3=ON -DPAGMO_WITH_NLOPT=ON -DPAGMO_BUILD_TESTS=ON" + +runtest = 'test' + +sanity_check_paths = { + 'files': ['lib/libpagmo.%s' % SHLIB_EXT], + 'dirs': ['include/pagmo', 'lib/cmake/pagmo'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/parallel/parallel-20210322-GCCcore-10.2.0.eb b/easybuild/easyconfigs/p/parallel/parallel-20210322-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..a5bb031caf7 --- /dev/null +++ b/easybuild/easyconfigs/p/parallel/parallel-20210322-GCCcore-10.2.0.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'parallel' +version = '20210322' + +homepage = 'https://savannah.gnu.org/projects/parallel/' +description = """parallel: Build and execute shell commands in parallel""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_BZ2] +checksums = ['98f71b445a23a18bb4e9bce4f374b93e6a6d9decdf892be8d22459f224b85694'] + +builddependencies = [('binutils', '2.35')] + +dependencies = [('Perl', '5.32.0')] + +sanity_check_paths = { + 'files': ['bin/parallel'], + 'dirs': [] +} + +sanity_check_commands = ["parallel --help"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/p/parasail/parasail-2.4.3-GCC-10.2.0.eb b/easybuild/easyconfigs/p/parasail/parasail-2.4.3-GCC-10.2.0.eb new file mode 100644 index 00000000000..9ad845641f6 --- /dev/null +++ b/easybuild/easyconfigs/p/parasail/parasail-2.4.3-GCC-10.2.0.eb @@ -0,0 +1,27 @@ +easyblock = 'CMakeMake' + +name = 'parasail' +version = '2.4.3' + +homepage = 'https://github.com/jeffdaily/parasail' +description = """parasail is a SIMD C (C99) library containing implementations + of the Smith-Waterman (local), Needleman-Wunsch (global), and semi-global + pairwise sequence alignment algorithms. """ + +toolchain = {'name': 'GCC', 'version': '10.2.0'} + +# https://github.com/jeffdaily/parasail +github_account = 'jeffdaily' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['6f0cddcaaf7c00573e62a3b081a09380cb022b2ed6a3a138108f8823775ca026'] + +builddependencies = [('CMake', '3.18.4')] + +sanity_check_paths = { + 'files': ['bin/parasail_aligner', 'bin/parasail_stats', + 'lib/libparasail.%s' % SHLIB_EXT, 'include/parasail.h'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/phonopy/phonopy-2.7.1-intel-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/p/phonopy/phonopy-2.7.1-intel-2019b-Python-3.7.4.eb new file mode 100644 index 00000000000..694e7938d28 --- /dev/null +++ b/easybuild/easyconfigs/p/phonopy/phonopy-2.7.1-intel-2019b-Python-3.7.4.eb @@ -0,0 +1,39 @@ +easyblock = 'PythonPackage' + +name = 'phonopy' +version = '2.7.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://atztogo.github.io/phonopy/' +description = """Phonopy is an open source package of phonon calculations based on the supercell approach.""" + +toolchain = {'name': 'intel', 'version': '2019b'} + +sources = [SOURCE_TAR_GZ] +checksums = ['482c6ff29c058d091ac885e561e28ba3e516ea9e91c44a951cad11f3ae19856c'] + +dependencies = [ + ('Python', '3.7.4'), + ('SciPy-bundle', '2019.10', versionsuffix), # for numpy + ('matplotlib', '3.1.1', versionsuffix), + ('PyYAML', '5.1.2'), + ('h5py', '2.10.0', versionsuffix), + ('spglib-python', '1.16.0', versionsuffix), +] + +# required because we're building a Python package using Intel compilers on top of Python built with GCC +check_ldshared = True + +download_dep_fail = True +use_pip = True + +sanity_check_paths = { + 'files': ['bin/phonopy'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["phonopy --help"] + +sanity_pip_check = True + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/pigz/pigz-2.6-GCCcore-10.2.0.eb b/easybuild/easyconfigs/p/pigz/pigz-2.6-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..c97ee4199ce --- /dev/null +++ b/easybuild/easyconfigs/p/pigz/pigz-2.6-GCCcore-10.2.0.eb @@ -0,0 +1,54 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# +# 2.4.0: +# Jonas Demeulemeester +# The Francis Crick Institute +## +easyblock = 'MakeCp' + +name = 'pigz' +version = '2.6' + +homepage = 'https://zlib.net/pigz/' + +description = """ + pigz, which stands for parallel implementation of gzip, is a fully + functional replacement for gzip that exploits multiple processors and multiple + cores to the hilt when compressing data. pigz was written by Mark Adler, and + uses the zlib and pthread libraries. +""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = [ + 'https://zlib.net/pigz/', + 'https://zlib.net/pigz/fossils/', +] +sources = [SOURCE_TAR_GZ] +patches = ['%(name)s-%(version)s_makefile.patch'] +checksums = [ + '2eed7b0d7449d1d70903f2a62cd6005d262eb3a8c9e98687bc8cbb5809db2a7d', # pigz-2.6.tar.gz + '7e37175714d43c946373d07c522ec98a77c0f8572a9d448f759c41f6f060275d', # pigz-2.6_makefile.patch +] + +builddependencies = [ + ('binutils', '2.35'), +] + +dependencies = [ + ('zlib', '1.2.11'), +] + +buildopts = 'CC="$CC" CFLAGS="$CFLAGS" LDFLAGS="-L$EBROOTZLIB/lib"' + +files_to_copy = [(["pigz", "unpigz"], "bin")] + +sanity_check_paths = { + 'files': ['bin/pigz', 'bin/unpigz'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/p/pigz/pigz-2.6-GCCcore-10.3.0.eb b/easybuild/easyconfigs/p/pigz/pigz-2.6-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..e483ffc5caa --- /dev/null +++ b/easybuild/easyconfigs/p/pigz/pigz-2.6-GCCcore-10.3.0.eb @@ -0,0 +1,45 @@ +easyblock = 'MakeCp' + +name = 'pigz' +version = '2.6' + +homepage = 'https://zlib.net/pigz/' + +description = """ + pigz, which stands for parallel implementation of gzip, is a fully + functional replacement for gzip that exploits multiple processors and multiple + cores to the hilt when compressing data. pigz was written by Mark Adler, and + uses the zlib and pthread libraries. +""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = [ + 'https://zlib.net/pigz/', + 'https://zlib.net/pigz/fossils/', +] +sources = [SOURCE_TAR_GZ] +patches = ['%(name)s-%(version)s_makefile.patch'] +checksums = [ + '2eed7b0d7449d1d70903f2a62cd6005d262eb3a8c9e98687bc8cbb5809db2a7d', # pigz-2.6.tar.gz + '7e37175714d43c946373d07c522ec98a77c0f8572a9d448f759c41f6f060275d', # pigz-2.6_makefile.patch +] + +builddependencies = [ + ('binutils', '2.36.1'), +] + +dependencies = [ + ('zlib', '1.2.11'), +] + +buildopts = 'CC="$CC" CFLAGS="$CFLAGS" LDFLAGS="-L$EBROOTZLIB/lib"' + +files_to_copy = [(["pigz", "unpigz"], "bin")] + +sanity_check_paths = { + 'files': ['bin/pigz', 'bin/unpigz'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/p/pigz/pigz-2.6_makefile.patch b/easybuild/easyconfigs/p/pigz/pigz-2.6_makefile.patch new file mode 100644 index 00000000000..946bd5a872a --- /dev/null +++ b/easybuild/easyconfigs/p/pigz/pigz-2.6_makefile.patch @@ -0,0 +1,20 @@ +# Patch Makefile so zlib provided by EasyBuild is picked up +# Author: Mikael Öhman (Chalmers University of Technology) +--- Makefile.orig 2021-04-15 13:35:40.977195747 +0200 ++++ Makefile 2021-04-15 13:36:56.553572278 +0200 +@@ -1,5 +1,4 @@ +-CC=gcc +-CFLAGS=-O3 -Wall -Wextra -Wno-unknown-pragmas -Wcast-qual ++ZLIB=-L$(EBROOTZLIB)/lib + LDFLAGS= + # CFLAGS=-O3 -Wall -Wextra -Wno-unknown-pragmas -Wcast-qual -g -fsanitize=thread + # LDFLAGS=-g -fsanitize=thread +@@ -12,7 +11,7 @@ + # use gcc and gmake on Solaris + + pigz: pigz.o yarn.o try.o $(ZOP) +- $(CC) $(LDFLAGS) -o pigz pigz.o yarn.o try.o $(ZOP) $(LIBS) ++ $(CC) $(LDFLAGS) -o pigz $^ $(ZLIB) $(LIBS) + ln -f pigz unpigz + + pigz.o: pigz.c yarn.h try.h $(ZOPFLI)deflate.h $(ZOPFLI)util.h diff --git a/easybuild/easyconfigs/p/pixman/pixman-0.40.0-GCCcore-10.3.0.eb b/easybuild/easyconfigs/p/pixman/pixman-0.40.0-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..a0194a4d7c8 --- /dev/null +++ b/easybuild/easyconfigs/p/pixman/pixman-0.40.0-GCCcore-10.3.0.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'pixman' +version = '0.40.0' + +homepage = 'http://www.pixman.org/' +description = """ + Pixman is a low-level software library for pixel manipulation, providing + features such as image compositing and trapezoid rasterization. Important + users of pixman are the cairo graphics library and the X server. +""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://cairographics.org/releases/'] +sources = [SOURCE_TAR_GZ] +checksums = ['6d200dec3740d9ec4ec8d1180e25779c00bc749f94278c8b9021f5534db223fc'] + +builddependencies = [ + ('binutils', '2.36.1'), +] + + +sanity_check_paths = { + 'files': ['lib/libpixman-1.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/pkg-config/pkg-config-0.29.2-GCCcore-10.3.0.eb b/easybuild/easyconfigs/p/pkg-config/pkg-config-0.29.2-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..abe889327e3 --- /dev/null +++ b/easybuild/easyconfigs/p/pkg-config/pkg-config-0.29.2-GCCcore-10.3.0.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'pkg-config' +version = '0.29.2' + +homepage = 'https://www.freedesktop.org/wiki/Software/pkg-config/' + +description = """ + pkg-config is a helper tool used when compiling applications and libraries. + It helps you insert the correct compiler options on the command line so an + application can use gcc -o test test.c `pkg-config --libs --cflags glib-2.0` + for instance, rather than hard-coding values on where to find glib (or other + libraries). +""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://pkg-config.freedesktop.org/releases/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['6fc69c01688c9458a57eb9a1664c9aba372ccda420a02bf4429fe610e7e7d591'] + +builddependencies = [('binutils', '2.36.1')] + +# don't use PAX, it might break. +tar_config_opts = True + +configopts = " --with-internal-glib" + +sanity_check_paths = { + 'files': ['bin/pkg-config'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/p/pkgconfig/pkgconfig-1.5.1-GCCcore-8.2.0-python.eb b/easybuild/easyconfigs/p/pkgconfig/pkgconfig-1.5.1-GCCcore-8.2.0-python.eb index 50045a6a21b..27d4ae43af2 100644 --- a/easybuild/easyconfigs/p/pkgconfig/pkgconfig-1.5.1-GCCcore-8.2.0-python.eb +++ b/easybuild/easyconfigs/p/pkgconfig/pkgconfig-1.5.1-GCCcore-8.2.0-python.eb @@ -11,7 +11,6 @@ toolchain = {'name': 'GCCcore', 'version': '8.2.0'} sources = ['%(name)s-%(version)s-py2.py3-none-any.whl'] checksums = ['cddf2d7ecadb272178a942eb852a9dee46bda2adcc36c3416b0fef47a4ed9f38'] -unpack_sources = False multi_deps = {'Python': ['3.7.2', '2.7.15']} diff --git a/easybuild/easyconfigs/p/pkgconfig/pkgconfig-1.5.1-GCCcore-8.3.0-Python-3.7.4.eb b/easybuild/easyconfigs/p/pkgconfig/pkgconfig-1.5.1-GCCcore-8.3.0-Python-3.7.4.eb index aa70a35a310..3ccb7c45766 100644 --- a/easybuild/easyconfigs/p/pkgconfig/pkgconfig-1.5.1-GCCcore-8.3.0-Python-3.7.4.eb +++ b/easybuild/easyconfigs/p/pkgconfig/pkgconfig-1.5.1-GCCcore-8.3.0-Python-3.7.4.eb @@ -11,7 +11,6 @@ toolchain = {'name': 'GCCcore', 'version': '8.3.0'} sources = ['%(name)s-%(version)s-py2.py3-none-any.whl'] checksums = ['cddf2d7ecadb272178a942eb852a9dee46bda2adcc36c3416b0fef47a4ed9f38'] -unpack_sources = False builddependencies = [('binutils', '2.32')] diff --git a/easybuild/easyconfigs/p/plantcv/plantcv-3.8.0-foss-2020a-Python-3.8.2.eb b/easybuild/easyconfigs/p/plantcv/plantcv-3.8.0-foss-2020a-Python-3.8.2.eb index a2a77dca699..7514aa4f83c 100644 --- a/easybuild/easyconfigs/p/plantcv/plantcv-3.8.0-foss-2020a-Python-3.8.2.eb +++ b/easybuild/easyconfigs/p/plantcv/plantcv-3.8.0-foss-2020a-Python-3.8.2.eb @@ -41,7 +41,6 @@ exts_list = [ }), ('opencv-python', '3.4.10.35', { 'source_tmpl': 'opencv_python-%(version)s-cp38-cp38-manylinux2014_x86_64.whl', - 'unpack_sources': False, 'checksums': ['be25d76d9a104c73a0bb934894e54f2cebf5fb7aa46925fafbe2ccfcc48297cc'], 'modulename': 'cv2', }), diff --git a/easybuild/easyconfigs/p/pocl/pocl-1.6-gcccuda-2020b.eb b/easybuild/easyconfigs/p/pocl/pocl-1.6-gcccuda-2020b.eb new file mode 100644 index 00000000000..d5d54b8902c --- /dev/null +++ b/easybuild/easyconfigs/p/pocl/pocl-1.6-gcccuda-2020b.eb @@ -0,0 +1,40 @@ +easyblock = 'CMakeNinja' + +name = 'pocl' +version = '1.6' + +homepage = 'https://portablecl.org' +description = "Pocl is a portable open source (MIT-licensed) implementation of the OpenCL standard" + +toolchain = {'name': 'gcccuda', 'version': '2020b'} + +source_urls = ['https://github.com/pocl/pocl/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['b0a4c0c056371b6f0db726b88fbb76bbee94948fb2abd4dbc8d958f7c42f766c'] + +builddependencies = [ + ('CMake', '3.18.4'), + ('Ninja', '1.10.1'), + ('pkg-config', '0.29.2'), +] + +dependencies = [ + ('Clang', '11.0.1'), + ('hwloc', '2.2.0'), + ('libtool', '2.4.6'), + ('libxml2', '2.9.10'), +] + +separate_build_dir = True + +# disable attempt to find an ICD loader, always build libOpenCL.so, enable CUDA +configopts = "-DENABLE_ICD=0 -DINSTALL_OPENCL_HEADERS=1 -DENABLE_CUDA=1 " +# make sure we use the easybuild Clang +configopts += "-DWITH_LLVM_CONFIG=$EBROOTCLANG/bin/llvm-config -DSTATIC_LLVM=ON" + +sanity_check_paths = { + 'files': ['bin/poclcc', 'lib64/libOpenCL.%s' % SHLIB_EXT], + 'dirs': ['include/CL', 'lib64/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/preCICE/preCICE-2.1.1-foss-2020a-Python-3.8.2.eb b/easybuild/easyconfigs/p/preCICE/preCICE-2.1.1-foss-2020a-Python-3.8.2.eb index 04f052ca9fe..f12ae5482d1 100644 --- a/easybuild/easyconfigs/p/preCICE/preCICE-2.1.1-foss-2020a-Python-3.8.2.eb +++ b/easybuild/easyconfigs/p/preCICE/preCICE-2.1.1-foss-2020a-Python-3.8.2.eb @@ -32,6 +32,11 @@ dependencies = [ ('PETSc', '3.12.4', versionsuffix), ] +# 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 ' + separate_build_dir = True build_shared_libs = True diff --git a/easybuild/easyconfigs/p/preCICE/preCICE-2.2.0-foss-2020a-Python-3.8.2.eb b/easybuild/easyconfigs/p/preCICE/preCICE-2.2.0-foss-2020a-Python-3.8.2.eb index b8455bee8a9..aab3c7f8764 100644 --- a/easybuild/easyconfigs/p/preCICE/preCICE-2.2.0-foss-2020a-Python-3.8.2.eb +++ b/easybuild/easyconfigs/p/preCICE/preCICE-2.2.0-foss-2020a-Python-3.8.2.eb @@ -45,6 +45,8 @@ 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"' diff --git a/easybuild/easyconfigs/p/preCICE/preCICE-2.2.0-intel-2020a-Python-3.8.2.eb b/easybuild/easyconfigs/p/preCICE/preCICE-2.2.0-intel-2020a-Python-3.8.2.eb index b37f0543fe1..21cf75dc33d 100644 --- a/easybuild/easyconfigs/p/preCICE/preCICE-2.2.0-intel-2020a-Python-3.8.2.eb +++ b/easybuild/easyconfigs/p/preCICE/preCICE-2.2.0-intel-2020a-Python-3.8.2.eb @@ -45,6 +45,8 @@ 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"' diff --git a/easybuild/easyconfigs/p/prokka/prokka-1.14.5-gompi-2020b.eb b/easybuild/easyconfigs/p/prokka/prokka-1.14.5-gompi-2020b.eb new file mode 100644 index 00000000000..28077ad116d --- /dev/null +++ b/easybuild/easyconfigs/p/prokka/prokka-1.14.5-gompi-2020b.eb @@ -0,0 +1,47 @@ +# EasyBuild easyconfig +# +# John Dey jfdey@fredhutch.org +# Fred Hutchenson Cancer Research Center +# +# Updated: Pavel Grochal (INUITS) + +easyblock = 'Tarball' + +name = 'prokka' +version = '1.14.5' + +homepage = 'https://www.vicbioinformatics.com/software.prokka.shtml' +description = "Prokka is a software tool for the rapid annotation of prokaryotic genomes." + +toolchain = {'name': 'gompi', 'version': '2020b'} + +source_urls = ['https://github.com/tseemann/prokka/archive/'] +sources = ['v%(version)s.zip'] +checksums = ['0c13dd5621c352633565f5831c4e85ce2e1e400c2f17ba50800282ae121803ff'] + +dependencies = [ + ('BioPerl', '1.7.8'), + ('BLAST+', '2.11.0'), + ('Java', '11', '', True), +] + +local_bin_files = ['prokka', 'prokka-cdd_to_hmm', 'prokka-genpept_to_fasta_db', 'prokka-tigrfams_to_hmm', + 'prokka-biocyc_to_fasta_db', 'prokka-clusters_to_hmm', 'prokka-hamap_to_hmm', + 'prokka-uniprot_to_fasta_db', 'prokka-build_kingdom_dbs', 'prokka-genbank_to_fasta_db', + 'prokka-make_tarball'] + +postinstallcmds = ["%(installdir)s/bin/prokka --setupdb"] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in local_bin_files] + ['binaries/linux/aragorn', 'db/cm/Bacteria', 'doc/ToDoList.txt'], + 'dirs': ['bin', 'binaries', 'db', 'db/cm', 'db/genus', 'db/hmm', 'db/kingdom', 'doc'], +} + +sanity_check_commands = [ + "prokka --version", + "prokka --listdb", +] + +modloadmsg = "prokka scripts are located in $EBROOTPROKKA/bin; databases are located in $EBROOTPROKKA/db\n" + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/py-aiger/py-aiger-6.1.14-GCCcore-10.2.0.eb b/easybuild/easyconfigs/p/py-aiger/py-aiger-6.1.14-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..f292e1aa4b2 --- /dev/null +++ b/easybuild/easyconfigs/p/py-aiger/py-aiger-6.1.14-GCCcore-10.2.0.eb @@ -0,0 +1,77 @@ +easyblock = 'PythonBundle' + +name = 'py-aiger' +version = '6.1.14' + +homepage = 'https://github.com/mvcisback/py-aiger' +description = """ +A python library for manipulating sequential and combinatorial circuits. +This module provides the py-aiger extensions: aiger_bv, aiger_cnf, aiger_ptltl, +aiger_coins, aiger_gridworld, aiger_dfa""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +builddependencies = [ + ('binutils', '2.35'), +] + +dependencies = [ + ('Python', '3.8.6'), + ('DFA', '2.1.2'), # needed by py-aiger-dfa +] + +use_pip = True +sanity_pip_check = True + +# sortedcontainers<3.0.0,>=2.3.0 required, Python/3.8.6 contains sortedcontainers 2.2.2 +exts_list = [ + ('sortedcontainers', '2.3.0', { + 'checksums': ['59cc937650cf60d677c16775597c89a960658a09cf7c1a668f86e1e4464b10a1'], + }), + ('bidict', '0.21.2', { + 'checksums': ['4fa46f7ff96dc244abfc437383d987404ae861df797e2fd5b190e233c302be09'], + }), + ('funcy', '1.15', { + 'checksums': ['65b746fed572b392d886810a98d56939c6e0d545abb750527a717c21ced21008'], + }), + ('parsimonious', '0.8.1', { + 'checksums': ['3add338892d580e0cb3b1a39e4a1b427ff9f687858fdd61097053742391a9f6b'], + }), + ('toposort', '1.6', { + 'checksums': ['a7428f56ef844f5055bb9e9e44b343983773ae6dce0fe5b101e08e27ffbd50ac'], + }), + (name, version, { + 'modulename': 'aiger', + 'checksums': ['74b1bc428d0ff7b273bc929d761ce7e55ccc42083350c41a0f8e59d53836e667'], + }), + ('py-aiger-bv', '4.6.1', { + 'modulename': 'aiger_bv', + 'checksums': ['eae1757b2a12bada8d6fe1c35ef83688aba3f28aa951e5436e5947319a5a3521'], + }), + ('py-aiger-cnf', '5.0.1', { + 'modulename': 'aiger_cnf', + 'checksums': ['85c1446e6cad0353716df7eb1a902eb4487ce27691c4a1e16a3c9699ed733276'], + }), + ('py-aiger-ptltl', '3.1.0', { + 'modulename': 'aiger_ptltl', + 'checksums': ['f1bbd5b7259e6e83020e07676ed22ccf71bb3b04ad9d5cb7bf231b76ef8bf1b8'], + }), + ('py-aiger-coins', '3.3.0', { + 'modulename': 'aiger_coins', + 'checksums': ['f596b05640c376ee7abf50b3127eff45aaa38765892584428893bbd142058136'], + }), + ('py-aiger-discrete', '0.1.8', { + 'modulename': 'aiger_gridworld', + 'checksums': ['70ad69a06368651a8ff57ea176b7bb7509aca70218b39a3d416339b8b1541a67'], + }), + ('py-aiger-gridworld', '0.4.0', { + 'modulename': 'aiger_gridworld', + 'checksums': ['1ddf31909a2330eeca1834d60321ad59f7942543ed81ba10a66a0328430bbc0f'], + }), + ('py-aiger-dfa', '0.3.1', { + 'modulename': 'aiger_dfa', + 'checksums': ['05f31bf5ad42781fed6a2ca228059a35467cda3b4f1de0f4d98b0482be90fa00'], + }), +] + +moduleclass = 'cae' diff --git a/easybuild/easyconfigs/p/pybedtools/pybedtools-0.8.2-GCC-10.2.0-Python-2.7.18.eb b/easybuild/easyconfigs/p/pybedtools/pybedtools-0.8.2-GCC-10.2.0-Python-2.7.18.eb new file mode 100644 index 00000000000..37d55f3c118 --- /dev/null +++ b/easybuild/easyconfigs/p/pybedtools/pybedtools-0.8.2-GCC-10.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': '10.2.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['a184a36099458627e7ef52ea88218f7c00dc9c505b4256ece9ede58b1efa8771'] + +dependencies = [ + ('Python', '2.7.18'), + ('BEDTools', '2.30.0'), + ('Pysam', '0.16.0.1', versionsuffix), +] + +download_dep_fail = True +use_pip = True + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/pybind11/pybind11-2.6.2-GCCcore-10.3.0.eb b/easybuild/easyconfigs/p/pybind11/pybind11-2.6.2-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..ad21aadc19b --- /dev/null +++ b/easybuild/easyconfigs/p/pybind11/pybind11-2.6.2-GCCcore-10.3.0.eb @@ -0,0 +1,23 @@ +name = 'pybind11' +version = '2.6.2' + +homepage = 'https://pybind11.readthedocs.io' +description = """pybind11 is a lightweight header-only library that exposes C++ types in Python and vice versa, + mainly to create Python bindings of existing C++ code.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://github.com/pybind/pybind11/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['8ff2fff22df038f5cd02cea8af56622bc67f5b64534f1b83b9f133b8366acff2'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('CMake', '3.20.1'), + ('Eigen', '3.3.9'), +] +dependencies = [('Python', '3.9.5')] + +configopts = "-DPYTHON_EXECUTABLE=$EBROOTPYTHON/bin/python" + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/pydicom/pydicom-2.1.2-GCCcore-10.2.0.eb b/easybuild/easyconfigs/p/pydicom/pydicom-2.1.2-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..7d182f0b70b --- /dev/null +++ b/easybuild/easyconfigs/p/pydicom/pydicom-2.1.2-GCCcore-10.2.0.eb @@ -0,0 +1,28 @@ +easyblock = 'PythonPackage' + +name = 'pydicom' +version = '2.1.2' + +homepage = 'https://pydicom.github.io/' +description = "Pure python package for DICOM medical file reading and writing." + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +github_account = 'pydicom' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['e7cfbc4a997e327583bee047b7c9340845328373d088e776cf9565e47609a1a3'] + +builddependencies = [ + ('binutils', '2.35'), +] + +dependencies = [ + ('Python', '3.8.6'), +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/pydot/pydot-1.4.2-GCCcore-10.2.0.eb b/easybuild/easyconfigs/p/pydot/pydot-1.4.2-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..8476b86031d --- /dev/null +++ b/easybuild/easyconfigs/p/pydot/pydot-1.4.2-GCCcore-10.2.0.eb @@ -0,0 +1,25 @@ +easyblock = 'PythonPackage' + +name = 'pydot' +version = '1.4.2' + +homepage = 'https://github.com/pydot/pydot' +description = "Python interface to Graphviz's Dot language." + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['248081a39bcb56784deb018977e428605c1c758f10897a339fce1dd728ff007d'] + +builddependencies = [('binutils', '2.35')] + +dependencies = [ + ('Python', '3.8.6'), + ('Graphviz', '2.47.0', '-Java-11'), +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/pyfaidx/pyfaidx-0.5.9.5-GCCcore-10.2.0.eb b/easybuild/easyconfigs/p/pyfaidx/pyfaidx-0.5.9.5-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..b4502d61426 --- /dev/null +++ b/easybuild/easyconfigs/p/pyfaidx/pyfaidx-0.5.9.5-GCCcore-10.2.0.eb @@ -0,0 +1,30 @@ +easyblock = 'PythonPackage' + +name = 'pyfaidx' +version = '0.5.9.5' + +homepage = 'https://pypi.python.org/pypi/pyfaidx' +description = "pyfaidx: efficient pythonic random access to fasta subsequences" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['9965644c5bd62bedc0ff7f336cbb2baef6406a36b4ec5c786b199872ce46192b'] + +builddependencies = [('binutils', '2.35')] + +dependencies = [('Python', '3.8.6')] + +download_dep_fail = True +use_pip = True + +sanity_check_paths = { + 'files': ['bin/faidx'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["faidx --help"] + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/pyfasta/pyfasta-0.5.2-foss-2020b.eb b/easybuild/easyconfigs/p/pyfasta/pyfasta-0.5.2-foss-2020b.eb new file mode 100644 index 00000000000..184d7423459 --- /dev/null +++ b/easybuild/easyconfigs/p/pyfasta/pyfasta-0.5.2-foss-2020b.eb @@ -0,0 +1,30 @@ +easyblock = 'PythonPackage' + +name = 'pyfasta' +version = '0.5.2' + +homepage = 'https://pypi.org/project/pyfasta/' +description = """fast, memory-efficient, pythonic (and command-line) access to fasta sequence files""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +sources = [SOURCE_TAR_GZ] +checksums = ['ab08d75fa90253bc91933d10567d5d9cca2718f4796ef3bdc36b68df0e45b258'] + +use_pip = True +download_dep_fail = True + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11') +] + +sanity_check_paths = { + 'files': ['bin/pyfasta'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} +sanity_check_commands = ['pyfasta extract --help'] + +sanity_pip_check = True + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/p/pygmo/pygmo-2.16.1-foss-2020b.eb b/easybuild/easyconfigs/p/pygmo/pygmo-2.16.1-foss-2020b.eb new file mode 100644 index 00000000000..fff50e2e31f --- /dev/null +++ b/easybuild/easyconfigs/p/pygmo/pygmo-2.16.1-foss-2020b.eb @@ -0,0 +1,52 @@ +easyblock = 'CMakePythonPackage' + +name = 'pygmo' +version = '2.16.1' + +homepage = 'https://esa.github.io/pygmo2' +description = "pygmo is a scientific Python library for massively parallel optimization." + +toolchain = {'name': 'foss', 'version': '2020b'} + +source_urls = ['https://github.com/esa/pygmo2/archive/refs/tags/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['54d4fa99e4bff539fca67dfcdc909499fd3f1a3186f7c7fc8200f19512954166'] + +builddependencies = [ + ('CMake', '3.18.4'), + ('pybind11', '2.6.0'), +] + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), + ('Boost', '1.74.0'), + ('pagmo', '2.17.0'), + ('matplotlib', '3.3.3'), + ('networkx', '2.5'), +] + +runtest = False + +exts_defaultclass = 'PythonPackage' + +exts_default_options = { + 'source_urls': [PYPI_SOURCE], + 'download_dep_fail': True, + 'use_pip': True, +} + +exts_list = [ + ('cloudpickle', '1.6.0', { + 'sources': ['%(name)s-%(version)s.tar.gz'], + 'checksums': ['9bc994f9e9447593bd0a45371f0e7ac7333710fcf64a4eb9834bf149f4ef2f32'], + }), + ('dill', '0.3.3', { + 'sources': ['%(name)s-%(version)s.zip'], + 'checksums': ['efb7f6cb65dba7087c1e111bb5390291ba3616741f96840bfc75792a1a9b5ded'], + }), +] + +sanity_pip_check = True + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/pyproj/pyproj-3.0.1-GCCcore-10.2.0.eb b/easybuild/easyconfigs/p/pyproj/pyproj-3.0.1-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..55cfb0d3a0d --- /dev/null +++ b/easybuild/easyconfigs/p/pyproj/pyproj-3.0.1-GCCcore-10.2.0.eb @@ -0,0 +1,37 @@ +easyblock = 'PythonPackage' + +name = 'pyproj' +version = '3.0.1' + +homepage = 'https://pyproj4.github.io/pyproj' +description = "Python interface to PROJ4 library for cartographic transformations" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['bfbac35490dd17f706700673506eeb8170f8a2a63fb5878171d4e6eef242d141'] + +builddependencies = [ + ('binutils', '2.35'), +] + +dependencies = [ + ('Python', '3.8.6'), + ('PROJ', '7.2.1'), +] + +download_dep_fail = True +use_pip = True + +preinstallopts = "export PROJ_DIR=$EBROOTPROJ && " + +sanity_check_paths = { + 'files': ['bin/pyproj'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ['pyproj --help'] + +sanity_pip_check = True + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/p/pysheds/pysheds-0.2.7.1-foss-2020b.eb b/easybuild/easyconfigs/p/pysheds/pysheds-0.2.7.1-foss-2020b.eb new file mode 100644 index 00000000000..88589c72da0 --- /dev/null +++ b/easybuild/easyconfigs/p/pysheds/pysheds-0.2.7.1-foss-2020b.eb @@ -0,0 +1,35 @@ +easyblock = 'PythonBundle' + +name = 'pysheds' +version = '0.2.7.1' + +homepage = 'https://mattbartos.com/pysheds/' +description = "Simple and fast watershed delineation in python." + +toolchain = {'name': 'foss', 'version': '2020b'} + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), + ('scikit-image', '0.18.1'), + ('pyproj', '3.0.1'), + ('rasterio', '1.2.3'), +] + +use_pip = True + +# the latest pypi version of pysheds is currently behind the github one at 0.2.7 +exts_list = [ + ('geojson', '2.5.0', { + 'checksums': ['6e4bb7ace4226a45d9c8c8b1348b3fc43540658359f93c3f7e03efa9f15f658a'], + }), + (name, version, { + 'source_tmpl': '%(version)s.tar.gz', + 'source_urls': ['https://github.com/mdbartos/pysheds/archive/'], + 'checksums': ['1f086931b71af7a0770f38840a4ff61606a984da7246dd9bbc1143467ee9639d'], + }), +] + +sanity_pip_check = True + +moduleclass = 'geo' diff --git a/easybuild/easyconfigs/p/python-igraph/python-igraph-0.9.0-foss-2020b.eb b/easybuild/easyconfigs/p/python-igraph/python-igraph-0.9.0-foss-2020b.eb new file mode 100644 index 00000000000..792aba8a30a --- /dev/null +++ b/easybuild/easyconfigs/p/python-igraph/python-igraph-0.9.0-foss-2020b.eb @@ -0,0 +1,53 @@ +easyblock = 'PythonBundle' + +name = 'python-igraph' +version = '0.9.0' + +homepage = 'https://igraph.org/python' +description = """Python interface to the igraph high performance graph library, primarily aimed at complex network + research and analysis.""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +builddependencies = [ + ('pkg-config', '0.29.2'), +] + +dependencies = [ + ('Python', '3.8.6'), + ('igraph', '0.9.1'), + ('PyCairo', '1.20.0'), + ('Clang', '11.0.1'), + ('libxml2', '2.9.10'), + ('zlib', '1.2.11'), +] + +use_pip = True + +exts_list = [ + ('texttable', '1.6.3', { + 'checksums': ['ce0faf21aa77d806bbff22b107cc22cce68dc9438f97a2df32c93e9afa4ce436'], + }), + (name, version, { + 'installopts': '--install-option="--use-pkg-config" --install-option="--static"', + 'modulename': 'igraph', + 'patches': ['python-igraph-%(version)s_fix-igraph-libs.patch'], + 'checksums': [ + '7aa1d77fa02e27475eb4f14503f3cb342c3ed8990d9224640fd29c70797f2dd6', # python-igraph-0.9.0.tar.gz + # python-igraph-0.9.0_fix-igraph-libs.patch + '7af7a6e6a8b982ced7cdd939d82a98829512088744bebad34c714a3c4803f126', + ], + }), +] + +sanity_check_paths = { + 'files': ['bin/igraph'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +# cairo must be available for proper plotting support +sanity_check_commands = ["python -c 'from igraph.drawing.utils import find_cairo; cairo = find_cairo(); cairo.Context'"] + +sanity_pip_check = True + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/python-parasail/python-parasail-1.2.4-fosscuda-2020b.eb b/easybuild/easyconfigs/p/python-parasail/python-parasail-1.2.4-fosscuda-2020b.eb new file mode 100644 index 00000000000..0f02c507794 --- /dev/null +++ b/easybuild/easyconfigs/p/python-parasail/python-parasail-1.2.4-fosscuda-2020b.eb @@ -0,0 +1,32 @@ +easyblock = 'PythonPackage' + +name = 'python-parasail' +version = '1.2.4' + +homepage = 'https://github.com/jeffdaily/parasail-python' +description = "Python Bindings for the Parasail C Library" + +toolchain = {'name': 'fosscuda', 'version': '2020b'} + +source_urls = ['https://pypi.python.org/packages/source/%(nameletter)s/parasail'] +sources = ['parasail-%(version)s.tar.gz'] +checksums = ['8e6e0762924a461bb437cbb71122765c6912dace880e338bd19c7f9d12efead2'] + +builddependencies = [ + ('parasail', '2.4.3'), +] +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), +] + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +# make sure setup.py finds the parasail library +preinstallopts = "ln -s $EBROOTPARASAIL/lib/libparasail.so parasail/libparasail.%s && " % SHLIB_EXT + +options = {'modulename': 'parasail'} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/q/QUAST/QUAST-5.0.2-foss-2020b-Python-2.7.18.eb b/easybuild/easyconfigs/q/QUAST/QUAST-5.0.2-foss-2020b-Python-2.7.18.eb new file mode 100644 index 00000000000..58f9709a656 --- /dev/null +++ b/easybuild/easyconfigs/q/QUAST/QUAST-5.0.2-foss-2020b-Python-2.7.18.eb @@ -0,0 +1,51 @@ +easyblock = 'PythonPackage' + +name = 'QUAST' +version = '5.0.2' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/ablab/%(namelower)s' +description = """QUAST evaluates genome assemblies by computing various metrics. +It works both with and without reference genomes. The tool accepts multiple +assemblies, thus is suitable for comparison.""" + +toolchain = {'name': 'foss', 'version': '2020b'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/ablab/quast/archive/'] +sources = ['quast_%(version)s.tar.gz'] +checksums = ['9f30c03e0bfd261492fe6b72fb07645bdee5b29d741f75fc75857b6fa095d91d'] + +dependencies = [ + ('Python', '2.7.18'), + ('Perl', '5.32.0'), + ('matplotlib', '2.2.5', versionsuffix), + ('Java', '11', '', True), + ('Boost', '1.74.0'), +] + +download_dep_fail = True +use_pip = True + +install_target = 'install_full' + +postinstallcmds = ["cd %(installdir)s/bin && ln -s quast.py quast"] + +options = {'modulename': 'quast_libs'} + +sanity_check_paths = { + 'files': ['bin/%(namelower)s', 'bin/%(namelower)s.py', 'bin/meta%(namelower)s.py'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + "wget quast.sf.net/test_data.tar.gz && " + "tar xzf test_data.tar.gz && " + "%(namelower)s.py --test && " + "rm ./test_data.tar.gz ./test_data -rf", + "%(namelower)s -h", +] + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/q/Qt5/Qt5-5.15.2-GCCcore-10.3.0.eb b/easybuild/easyconfigs/q/Qt5/Qt5-5.15.2-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..0d7bdcbe989 --- /dev/null +++ b/easybuild/easyconfigs/q/Qt5/Qt5-5.15.2-GCCcore-10.3.0.eb @@ -0,0 +1,69 @@ +easyblock = 'EB_Qt' + +name = 'Qt5' +version = '5.15.2' + +homepage = 'https://qt.io/' +description = "Qt is a comprehensive cross-platform C++ application framework." + +toolchain = {'name': 'GCCcore', 'version': '10.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 = [ + 'Qt5-5.13.1_fix-avx2.patch', + 'Qt5-5.13.1_fix-qmake-libdir.patch', + 'Qt5-5.14.1_fix-OF-Gentoo.patch', +] +checksums = [ + '3a530d1b243b5dec00bc54937455471aaa3e56849d2593edb8ded07228202240', # qt-everywhere-src-5.15.2.tar.xz + '6f46005f056bf9e6ff3e5d012a874d18ee03b33e685941f2979c970be91a9dbc', # Qt5-5.13.1_fix-avx2.patch + '511ca9c0599ceb1989f73d8ceea9199c041512d3a26ee8c5fd870ead2c10cb63', # Qt5-5.13.1_fix-qmake-libdir.patch + '0b9defb7ce75314d85bebe07e143db7f7de316fec64c17cbd13f7eec5d2d1afa', # Qt5-5.14.1_fix-OF-Gentoo.patch +] + +builddependencies = [ + ('binutils', '2.36.1'), + ('pkg-config', '0.29.2'), + # deps for QtWebEngine + ('Bison', '3.7.6'), + ('flex', '2.6.4'), + ('gperf', '3.1'), + ('Ninja', '1.10.2'), + ('Python', '2.7.18', '-bare'), + ('re2c', '2.1.1') +] + +dependencies = [ + ('double-conversion', '3.1.5'), + ('GLib', '2.68.2'), + ('PCRE2', '10.36'), + ('libpng', '1.6.37'), + # deps for QtWebEngine + ('X11', '20210518'), + ('fontconfig', '2.13.93'), + ('DBus', '1.13.18'), + ('libevent', '2.1.12'), + ('libGLU', '9.0.1'), + ('libjpeg-turbo', '2.0.6'), + ('NSS', '3.65'), + ('snappy', '1.1.8'), + ('JasPer', '2.0.28'), + ('bzip2', '1.0.8'), + ('OpenSSL', '1.1', '', True), +] + +# qtgamepad needs recent kernel/libevdev (fails on RHEL 6.x) +# qtwayland fails to build on (some) Centos 7 systems +configopts = '-skip qtgamepad -skip qtwayland' + +# make sure QtWebEngine component is being built & installed +check_qtwebengine = True + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/q/QuantumESPRESSO/QuantumESPRESSO-6.6-foss-2020a.eb b/easybuild/easyconfigs/q/QuantumESPRESSO/QuantumESPRESSO-6.6-foss-2020a.eb new file mode 100644 index 00000000000..e28840d75ad --- /dev/null +++ b/easybuild/easyconfigs/q/QuantumESPRESSO/QuantumESPRESSO-6.6-foss-2020a.eb @@ -0,0 +1,43 @@ +name = 'QuantumESPRESSO' +version = '6.6' + +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': '2020a'} +toolchainopts = {'usempi': True, 'openmp': True} + +source_urls = [ + 'https://github.com/QEF/q-e/releases/download/qe-%(version)s/', + 'https://github.com/dceresoli/qe-gipaw/archive/', + 'https://github.com/wannier-developers/wannier90/archive/' +] +sources = [ + 'qe-%(version)s-ReleasePack.tgz', + {'filename': 'qe-gipaw-%(version)s.tar.gz', 'download_filename': '%(version)s.tar.gz'}, + {'filename': 'wannier90-3.1.0.tar.gz', 'download_filename': 'v3.1.0.tar.gz'}, +] +checksums = [ + 'de6996b9f1bf480bcd0166d24e918f5ff3c8fdb710f59f781bc9d33819280eb5', # qe-6.6-ReleasePack.tgz + '277fbe3bd10cb8f64e0f351a0c2fff1f68fb3ccdeb18107900803f4566661459', # qe-gipaw-6.6.tar.gz + '40651a9832eb93dec20a8360dd535262c261c34e13c41b6755fa6915c936b254', # wannier90-3.1.0.tar.gz +] + +dependencies = [ + ('HDF5', '1.10.6'), + ('ELPA', '2019.11.001'), + ('libxc', '4.3.4'), +] + +# The third party packages should be installed separately and added as +# dependencies. The exception is w90, which is force built +buildopts = 'all gwl xspectra couple epw gipaw w90' + +# parallel build tends to fail +parallel = 1 + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/r/R-INLA/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb b/easybuild/easyconfigs/r/R-INLA/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb new file mode 100644 index 00000000000..2bb0ece82c1 --- /dev/null +++ b/easybuild/easyconfigs/r/R-INLA/R-INLA-21.05.02-foss-2020b-R-4.0.4.eb @@ -0,0 +1,88 @@ +easyblock = 'Bundle' + +name = 'R-INLA' +version = '21.05.02' +versionsuffix = '-R-%(rver)s' + +homepage = 'https://www.r-inla.org' +description = "R-INLA is a package in R that do approximate Bayesian inference for Latent Gaussian Models." + +toolchain = {'name': 'foss', 'version': '2020b'} +toolchainopts = {'openmp': True} + +dependencies = [ + ('R', '4.0.4'), + ('GSL', '2.6'), + ('zlib', '1.2.11'), + ('SuiteSparse', '5.8.1', '-METIS-5.1.0'), + ('METIS', '5.1.0'), + ('muParser', '2.3.2'), + ('Rmath', '%(rver)s'), + ('X11', '20201008'), +] + +default_easyblock = 'ConfigureMake' +# all components are installed from the same source tarball +default_component_specs = { + 'source_urls': ['https://github.com/hrue/r-inla/archive/refs/tags/'], + 'sources': [{'download_filename': 'Version_%s.tar.gz' % version, 'filename': 'R-INLA-%s.tar.gz' % version}], + 'skipsteps': ['configure'], + 'checksums': ['7e2f6f92ca36739ae8f948697491572cf62191955f74bbf495703e0e1ffb88a6'], +} + +local_gmrflib_buildopts = ' -C r-inla-*/gmrflib PREFIX=%(installdir)s CC="$CC" FC="$FC" ' +local_gmrflib_buildopts += ' FLAGS="$CXXFLAGS -DINLA_LINK_WITH_OPENBLAS " ' + +local_inla_buildopts = '-C r-inla-*/inlaprog PREFIX=%(installdir)s ' +local_inla_buildopts += ' CC="$CC" CXX="$CXX" FC="$FC" ' +local_inla_buildopts += ' FLAGS="$CXXFLAGS -DINLA_LINK_WITH_OPENBLAS"' + +components = [ + ('taucs', version, { + 'easyblock': 'MakeCp', + 'prebuildopts': "cd r-inla-*/extlibs && tar xvfz taucs-2.2--my-fix.tgz && cd taucs-2.2--my-fix && ", + 'buildopts': 'CC="$CC" CFLAGS="$CFLAGS" FC="$FC" FFLAGS="$FFLAGS" LIBBLAS="$LIBBLAS" LIBLAPACK="$LIBLAPACK"', + 'files_to_copy': [(['r-inla-*/extlibs/taucs-2.2--my-fix/lib/linux/libtaucs.a'], 'lib')], + }), + ('fmesher', version, { + 'checksums': default_component_specs['checksums'] + [ + '9ec131a8a470ea2614be77f917c0d66eacecbba4b511c90d6427059fe2c36b51', + ], + 'patches': ['R-INLA-%(version)s-skip-binaries.patch'], + 'buildopts': '-C r-inla-*/fmesher PREFIX=%(installdir)s CC="$CC" CXX="$CXX" FLAGS="$CXXFLAGS -std=c++11"', + 'installopts': '-C r-inla-*/fmesher PREFIX=%(installdir)s', + }), + ('GMRFLib', version, { + 'buildopts': local_gmrflib_buildopts, + 'installopts': '-C r-inla-*/gmrflib PREFIX=%(installdir)s', + }), + ('rinla', version, { + 'checksums': default_component_specs['checksums'] + [ + '368bef641bbb55fe198529ee350e603936efebfca7b16f54a6c60573ecef2e9d', + ], + 'patches': ['R-INLA-%(version)s-foss-2020b-remove-hardcoding.patch'], + 'easyblock': 'RPackage', + 'start_dir': 'r-inla-Version_%s/rinla' % version, + }), + (name, version, { + 'prebuildopts': 'export CPATH=$EBROOTR/lib64/R/include/:$CPATH && ', + 'buildopts': local_inla_buildopts, + 'installopts': '-C r-inla-*/inlaprog PREFIX=%(installdir)s', + }), +] + +local_bins = ['inla', 'fmesher'] + +postinstallcmds = ['ln -s %%(installdir)s/bin/%s %%(installdir)s/INLA/bin/linux/64bit/%s' % (x, x) for x in local_bins] + +sanity_check_paths = { + 'files': ['%s/%s' % (p, x) for p in ['bin', 'INLA/bin/linux/64bit'] for x in local_bins] + + ['lib/libGMRFLib.a', 'lib/libGMRFLib-geo.a', 'lib/libtaucs.a'], + 'dirs': ['doc', 'include/GMRFLib'], +} + +sanity_check_commands = ["Rscript -e 'library(INLA)'"] + ["%s -h" % x for x in local_bins] + +modextrapaths = {'R_LIBS_SITE': ''} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/r/R-INLA/R-INLA-21.05.02-foss-2020b-remove-hardcoding.patch b/easybuild/easyconfigs/r/R-INLA/R-INLA-21.05.02-foss-2020b-remove-hardcoding.patch new file mode 100644 index 00000000000..8889bedb9be --- /dev/null +++ b/easybuild/easyconfigs/r/R-INLA/R-INLA-21.05.02-foss-2020b-remove-hardcoding.patch @@ -0,0 +1,71 @@ +# remove hardcoded paths from scripts && set MKL to false (using FOSS toolchain) +# author: Denis Kristak + Kenneth Hoste (HPC-UGent) +--- r-inla-Version_21.05.02/rinla/inst/bin/linux/64bit/inla.run.orig 2021-05-02 21:30:04.000000000 +0200 ++++ r-inla-Version_21.05.02/rinla/inst/bin/linux/64bit/inla.run 2021-05-18 15:17:11.175865393 +0200 +@@ -13,15 +13,15 @@ + fi + fi + +-for d in {,/usr}/lib64 /usr/lib64/R/lib {,/usr}/lib/x86_64-linux-gnu {,/usr}/lib; do +- if [ -d "$d" ]; then +- if [ -z "$D" ]; then +- D="$d" +- else +- D="$D:$d" +- fi +- fi +-done ++# for d in {,/usr}/lib64 /usr/lib64/R/lib {,/usr}/lib/x86_64-linux-gnu {,/usr}/lib; do ++# if [ -d "$d" ]; then ++# if [ -z "$D" ]; then ++# D="$d" ++# else ++# D="$D:$d" ++# fi ++# fi ++# done + + for f in $DIR/first/lib*.so*; do + case "$f" in +--- r-inla-Version_21.05.02/rinla/R/options.R.orig 2021-05-18 15:17:11.175865393 +0200 ++++ r-inla-Version_21.05.02/rinla/R/options.R 2021-05-18 15:27:35.211947369 +0200 +@@ -101,7 +101,7 @@ + num.threads = paste0(parallel::detectCores(all.tests = TRUE, logical = FALSE), ":1"), + blas.num.threads = 0L, + smtp = "default", +- mkl = if (inla.os("linux") || inla.os("mac")) TRUE else FALSE, ++ mkl = FALSE, + vecLib = if (inla.os("mac")) TRUE else FALSE, + vecLibPath = "", + pardiso.license = NULL, +--- r-inla-Version_21.05.02/rinla/inst/bin/linux/64bit/fmesher.run.orig 2021-05-25 11:45:08.870229000 +0200 ++++ r-inla-Version_21.05.02/rinla/inst/bin/linux/64bit/fmesher.run 2021-05-25 11:51:42.965833000 +0200 +@@ -4,17 +4,17 @@ + prog=${tmp%%.run} + DIR=$(dirname "$cmd") + +-D="" +-for d in {,/usr}/lib64 /usr/lib64/R/lib {,/usr}/lib/x86_64-linux-gnu {,/usr}/lib; do +- if [ -d "$d" ]; then +- if [ -z "$D" ]; then +- D="$d" +- else +- D="$D:$d" +- fi +- fi +-done +-export LD_LIBRARY_PATH="$DIR/first:$D:$DIR:$LD_LIBRARY_PATH" ++#D="" ++#for d in {,/usr}/lib64 /usr/lib64/R/lib {,/usr}/lib/x86_64-linux-gnu {,/usr}/lib; do ++# if [ -d "$d" ]; then ++# if [ -z "$D" ]; then ++# D="$d" ++# else ++# D="$D:$d" ++# fi ++# fi ++#done ++#export LD_LIBRARY_PATH="$DIR/first:$D:$DIR:$LD_LIBRARY_PATH" + + if [ "${INLA_DEBUG}XX" != "XX" ]; then + echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH" diff --git a/easybuild/easyconfigs/r/R-INLA/R-INLA-21.05.02-skip-binaries.patch b/easybuild/easyconfigs/r/R-INLA/R-INLA-21.05.02-skip-binaries.patch new file mode 100644 index 00000000000..1f46d80d20a --- /dev/null +++ b/easybuild/easyconfigs/r/R-INLA/R-INLA-21.05.02-skip-binaries.patch @@ -0,0 +1,105 @@ +# Adds links to dependencies built from source, rather than included binaries && fix scripts to work with easybuild +# author: Denis Kristak +diff --recursive --no-dereference -ub r-inla-Version_21.05.02_orig/build-user/linux/Makefile r-inla-Version_21.05.02/build-user/linux/Makefile +--- r-inla-Version_21.05.02_orig/build-user/linux/Makefile 2021.05.02 14:42:11.000000000 +0200 ++++ r-inla-Version_21.05.02/build-user/linux/Makefile 2021-04-12 12:54:14.608535633 +0200 +@@ -48,7 +48,7 @@ + CXX=g++ + FC=gfortran + LD=$(CXX) +-ARGS = CC="$(CC)" CXX="$(CXX)" FC="$(FC)" LD="$(LD)" ++ARGS = CC="$(CC)" CXX="$(CXX)" FC="$(FC)" LD="$(LD)" $(EB_ARGS) + + all :; + @(echo "";\ +@@ -152,7 +152,7 @@ + @rm $(PREFIX)/bin/fmesher + + inla : +- ln -sTf /usr/include $(INCPREFIX)/muParser ++ # ln -sTf /usr/include $(INCPREFIX)/muParser + $(MAKE) -C inla/inlaprog PREFIX=$(PREFIX) FLAGS="$(FLAGS_INLA)" $(ARGS) -k clean + $(MAKE) -C inla/inlaprog PREFIX=$(PREFIX) FLAGS="$(FLAGS_INLA)" $(ARGS) + $(MAKE) -C inla/inlaprog PREFIX=$(PREFIX) FLAGS="$(FLAGS_INLA)" $(ARGS) install +diff --recursive --no-dereference -ub r-inla-Version_21.05.02_orig/fmesher/Makefile r-inla-Version_21.05.02/fmesher/Makefile +--- r-inla-Version_21.05.02_orig/fmesher/Makefile 2021.05.02 14:42:11.000000000 +0200 ++++ r-inla-Version_21.05.02/fmesher/Makefile 2021-04-14 10:15:20.159406939 +0200 +@@ -64,8 +64,7 @@ + done; \ +- $(INSTALL) -m755 $(FMESHER) $(PREFIX)/bin/$(FMESHER);\ ++ $(INSTALL) -m755 $(FMESHER) $(PREFIX)/bin/$(FMESHER); +- test -d doc && \ +- $(RSYNC) -auv --no-p --no-o --no-g --chmod=ugo=rwX --delete doc/ $(PREFIX)/doc/fmesher/; \ +- $(RSYNC) -auv --no-p --no-o --no-g --chmod=ugo=rwX --delete examples/ $(PREFIX)/doc/fmesher/examples/; ++ # $(RSYNC) -auv --no-p --no-o --no-g --chmod=ugo=rwX --delete doc/ $(PREFIX)/doc/fmesher/; \ ++ # $(RSYNC) -auv --no-p --no-o --no-g --chmod=ugo=rwX --delete examples/ $(PREFIX)/doc/fmesher/examples/; + + clean: + make -C src clean +diff --recursive --no-dereference -ub r-inla-Version_21.05.02_orig/gmrflib/Makefile r-inla-Version_21.05.02/gmrflib/Makefile +--- r-inla-Version_21.05.02_orig/gmrflib/Makefile 2021.05.02 14:42:11.000000000 +0200 ++++ r-inla-Version_21.05.02/gmrflib/Makefile 2021-04-14 10:09:44.854511197 +0200 +@@ -151,8 +151,8 @@ + done; \ + $(INSTALL) -m$$mode $(LIBNAME) $(PREFIX)/lib; \ + $(INSTALL) -m$$mode $(LIBNAMEG) $(PREFIX)/lib; \ +- rsync -auv --no-p --no-o --no-g --chmod=ugo=rwX --delete doc/* $(PREFIX)/doc/GMRFLib; \ +- rsync -auv --no-p --no-o --no-g --chmod=ugo=rwX --delete sphere/* $(PREFIX)/doc/GMRFLib/data; \ ++ # rsync -auv --no-p --no-o --no-g --chmod=ugo=rwX --delete doc/* $(PREFIX)/doc/GMRFLib; \ ++ # rsync -auv --no-p --no-o --no-g --chmod=ugo=rwX --delete sphere/* $(PREFIX)/doc/GMRFLib/data; \ + for header in $(HEADERS); do \ + $(INSTALL) -m$$mode $$header $(PREFIX)/include/GMRFLib; \ + done; \ +diff --recursive --no-dereference -ub r-inla-Version_21.05.02_orig/inlaprog/Makefile r-inla-Version_21.05.02/inlaprog/Makefile +--- r-inla-Version_21.05.02_orig/inlaprog/Makefile 2021.05.02 14:42:11.000000000 +0200 ++++ r-inla-Version_21.05.02/inlaprog/Makefile 2021-04-14 13:05:37.474015183 +0200 +@@ -9,13 +9,11 @@ + + ## *** chose either one of these; rgeneric requires the second version *** + ifeq ($(INLA_WITHOUT_LIBR),1) +- RLIB_INC = -DINLA_WITH_RMATH \ +- -I/usr/include -I/usr/include/R -I/usr/share/R/include +- RLIB_LIB = -L/usr/lib -lRmath ++ RLIB_INC = -DINLA_WITH_RMATH ++ RLIB_LIB = -lRmath + else +- RLIB_INC = -DINLA_WITH_RMATH -DINLA_LIBR \ +- -I/usr/include -I/usr/include/R -I/usr/share/R/include +- RLIB_LIB = -L/usr/lib -lRmath -L/usr/lib/R/lib -lR ++ RLIB_INC = -DINLA_WITH_RMATH -DINLA_LIBR ++ RLIB_LIB = -lRmath -lR + endif + + # select compilers and optimized compiler-options, add -fopenmp or similar to use OpenMP +@@ -32,7 +30,7 @@ + + # The external libraries to link with + EXTLIBS1 = -L$(PREFIX)/lib -lGMRFLib -L$(LEXTPREFIX)/lib +-EXTLIBS2 = -lgsl -ltaucs -lmetis -llapack -lblas -lgslcblas -lamd -lmuparser -lz -lgfortran -lcrypto ++EXTLIBS2 = -lgsl -ltaucs -lmetis -lscalapack -lopenblas -lgslcblas -lamd -lmuparser -lz -lgfortran -lcrypto # todo + EXTLIBS3 = -Wl,--whole-archive -lpthread -Wl,--no-whole-archive -lm + + ################################################################################ +@@ -89,8 +87,8 @@ + done; \ + install -m755 $(INLA) $(PREFIX)/bin/$(INLA);\ + install -m755 $(INLA) $(PREFIX)/bin/$(INLA)-$(VERSION);\ +- rsync -auv --no-p --no-o --no-g --chmod=ugo=rwX --delete doc/* $(PREFIX)/doc/inla; \ +- rsync -auv --no-p --no-o --no-g --chmod=ugo=rwX --delete examples/* $(PREFIX)/doc/inla/examples; ++ # rsync -auv --no-p --no-o --no-g --chmod=ugo=rwX --delete doc/* $(PREFIX)/doc/inla; \ ++ # rsync -auv --no-p --no-o --no-g --chmod=ugo=rwX --delete examples/* $(PREFIX)/doc/inla/examples; + + src/TAGS : $(wildcard src/*.c src/*.h) + etags --output=$@ $^ +diff --recursive --no-dereference -ub r-inla-Version_21.05.02_orig/inlaprog/src/eval.c r-inla-Version_21.05.02/inlaprog/src/eval.c +--- r-inla-Version_21.05.02_orig/inlaprog/src/eval.c 2021.05.02 14:42:11.000000000 +0200 ++++ r-inla-Version_21.05.02/inlaprog/src/eval.c 2021-04-12 12:44:25.592540392 +0200 +@@ -41,7 +41,7 @@ + #include + #include + +-#include ++#include + + #include "GMRFLib/GMRFLib.h" + #include "inla.h" diff --git a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.12-foss-2020b-R-4.0.3.eb b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.12-foss-2020b-R-4.0.3.eb index 3c687feedcf..7f84ef8fa48 100644 --- a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.12-foss-2020b-R-4.0.3.eb +++ b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.12-foss-2020b-R-4.0.3.eb @@ -328,7 +328,12 @@ exts_list = [ 'checksums': ['48c81620346c1c652d15098d1c90df749a28ca747ade82d2a1e276191fc1d691'], }), ('rhdf5filters', '1.2.0', { - 'checksums': ['58df019a2c8626cc236ebe19d44b830a6c3b5f787ea4090d5b57454a88d676cb'], + 'patches': ['rhdf5filters-1.2.0_fix-configure-aarch64.patch'], + 'checksums': [ + '58df019a2c8626cc236ebe19d44b830a6c3b5f787ea4090d5b57454a88d676cb', # rhdf5filters_1.2.0.tar.gz + # rhdf5filters-1.2.0_fix-configure-aarch64.patch + '01d00415dcf41d7ca331b69ef7b3d99834719474ef1da8f66a540d027e24da5b', + ], }), ('rhdf5', '2.34.0', { 'checksums': ['11d70b8d8284d4b7a6beb4c5b65abd42451e46d04f65dfc82bf265a677c8952a'], @@ -1014,6 +1019,12 @@ exts_list = [ ('FRASER', '1.2.1', { 'checksums': ['37562b7e92fd95feb950f160b38427f23a9e31729fa0783b441fc74fc45f7120'], }), + ('GenABEL.data', '1.0.0', { + 'checksums': ['2c28d5df63ae13545cf7aea6ce5f22ae1bbb58219fdaed6c1d5d5affc072c65c'], + }), + ('GenABEL', '1.8-0', { + 'checksums': ['434fc806b918738ec67171a37a47099d1706332819317e368fe0ccb8f149a469'], + }), ] modextrapaths = {'R_LIBS_SITE': ''} diff --git a/easybuild/easyconfigs/r/R-bundle-Bioconductor/rhdf5filters-1.2.0_fix-configure-aarch64.patch b/easybuild/easyconfigs/r/R-bundle-Bioconductor/rhdf5filters-1.2.0_fix-configure-aarch64.patch new file mode 100644 index 00000000000..128ac48e243 --- /dev/null +++ b/easybuild/easyconfigs/r/R-bundle-Bioconductor/rhdf5filters-1.2.0_fix-configure-aarch64.patch @@ -0,0 +1,278 @@ +fix configure script for aarch64 CPUs +see https://github.com/grimbough/rhdf5filters/pull/6 + +From 6e9bb1e1f6a32584d4acb3773b03f48811e504e5 Mon Sep 17 00:00:00 2001 +From: Mike Smith +Date: Tue, 24 Nov 2020 15:51:57 +0100 +Subject: [PATCH 01/45] Modifying configure to identify CPU architecture + +--- + configure | 179 ++++++++++++++++++++++++++++++++------------------- + configure.ac | 33 ++++++++-- + 2 files changed, 137 insertions(+), 75 deletions(-) + +diff --git a/configure b/configure +index 144ffc7..e118c13 100755 +--- a/configure ++++ b/configure +@@ -1992,6 +1992,17 @@ RHDF5_INCLUDE=`"${R_HOME}/bin${R_ARCH_BIN}/Rscript" -e 'cat(system.file("include + + echo "configuring the BLOSC filter..." + ++## check if we have an x86 CPU ++machine=`uname -m` ++case $machine in #( ++ *86*) : ++ x86_CPU=true ;; #( ++ *) : ++ x86_CPU=false ++ ;; ++esac ++echo x86_CPU="$x86_CPU" ++ + ## see if -msse2 is a supported flag + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' +@@ -2818,8 +2829,74 @@ else + MSSE2=false + fi + +-## check CPU supports sse2 +-ac_ext=c ++## see if -mavx2 is a supported flag ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mavx2" >&5 ++$as_echo_n "checking whether C compiler accepts -mavx2... " >&6; } ++if ${ax_cv_check_cflags___mavx2+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ++ ax_check_save_flags=$CFLAGS ++ CFLAGS="$CFLAGS -mavx2" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ax_cv_check_cflags___mavx2=yes ++else ++ ax_cv_check_cflags___mavx2=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ CFLAGS=$ax_check_save_flags ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mavx2" >&5 ++$as_echo "$ax_cv_check_cflags___mavx2" >&6; } ++if test "x$ax_cv_check_cflags___mavx2" = xyes; then : ++ MAVX2=true ++else ++ MAVX2=false ++fi ++ ++ ++if test "$cross_compiling" = yes; then : ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++as_fn_error $? "cannot run test program while cross compiling ++See \`config.log' for more details" "$LINENO" 5; } ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++int ++main () ++{ ++__builtin_cpu_init (); ++ ; ++ return 0; ++} ++ ++_ACEOF ++if ac_fn_c_try_run "$LINENO"; then : ++ ax_cv_gcc_check_x86_cpu_init=true ++else ++ ax_cv_gcc_check_x86_cpu_init=false ++fi ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext ++fi ++ ++ ++## check CPU supports sse2 and avx2 ++if "$x86_CPU" == true && "$ax_cv_gcc_check_x86_cpu_init" == true ; then ++ ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' + ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +@@ -2931,72 +3008,6 @@ fi + + + +-if "$MSSE2" = true && "$SSE2_SUPPORTED" = true ; then +- SSE2="-DSHUFFLE_SSE2_ENABLED" +- MSSE2="-msse2" +- SSE2_BITSHUFFLE='bitshuffle-sse2.o: bitshuffle-sse2.c +- $(CC) $(FLAGS) -c bitshuffle-sse2.c' +- SSE2_BITSHUFFLE_OBJ='bitshuffle-sse2.o' +- SSE2_SHUFFLE='shuffle-sse2.o: shuffle-sse2.c +- $(CC) $(FLAGS) -c shuffle-sse2.c' +- SSE2_SHUFFLE_OBJ='shuffle-sse2.o' +- SSE2_OBJ_PATH='lib/blosc-1.16.3/' +-else +- SSE2="" +- MSSE2="" +- SSE2_BITSHUFFLE="" +- SSE2_SHUFFLE="" +- SSE2_BITSHUFFLE_OBJ="" +- SSE2_SHUFFLE_OBJ="" +- SSE2_OBJ_PATH="" +-fi +- +- +- +- +- +- +- +- +- +-## see if -mavx2 is a supported flag +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mavx2" >&5 +-$as_echo_n "checking whether C compiler accepts -mavx2... " >&6; } +-if ${ax_cv_check_cflags___mavx2+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- +- ax_check_save_flags=$CFLAGS +- CFLAGS="$CFLAGS -mavx2" +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-int +-main () +-{ +- +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_compile "$LINENO"; then : +- ax_cv_check_cflags___mavx2=yes +-else +- ax_cv_check_cflags___mavx2=no +-fi +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +- CFLAGS=$ax_check_save_flags +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mavx2" >&5 +-$as_echo "$ax_cv_check_cflags___mavx2" >&6; } +-if test "x$ax_cv_check_cflags___mavx2" = xyes; then : +- MAVX2=true +-else +- MAVX2=false +-fi +- +-## check CPU supports avx2 +- + + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' +@@ -3062,6 +3073,38 @@ else + fi + + ++else ++ SSE2_SUPPORTED=false ++ AVX2_SUPPORTED=false ++fi ++ ++if "$MSSE2" = true && "$SSE2_SUPPORTED" = true ; then ++ SSE2="-DSHUFFLE_SSE2_ENABLED" ++ MSSE2="-msse2" ++ SSE2_BITSHUFFLE='bitshuffle-sse2.o: bitshuffle-sse2.c ++ $(CC) $(FLAGS) -c bitshuffle-sse2.c' ++ SSE2_BITSHUFFLE_OBJ='bitshuffle-sse2.o' ++ SSE2_SHUFFLE='shuffle-sse2.o: shuffle-sse2.c ++ $(CC) $(FLAGS) -c shuffle-sse2.c' ++ SSE2_SHUFFLE_OBJ='shuffle-sse2.o' ++ SSE2_OBJ_PATH='lib/blosc-1.16.3/' ++else ++ SSE2="" ++ MSSE2="" ++ SSE2_BITSHUFFLE="" ++ SSE2_SHUFFLE="" ++ SSE2_BITSHUFFLE_OBJ="" ++ SSE2_SHUFFLE_OBJ="" ++ SSE2_OBJ_PATH="" ++fi ++ ++ ++ ++ ++ ++ ++ ++ + + if "$MAVX2" = true && "$AVX2_SUPPORTED" = true ; then + AVX2="-DSHUFFLE_AVX2_ENABLED" +diff --git a/configure.ac b/configure.ac +index bce61de..3edd950 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -36,10 +36,34 @@ AC_SUBST(RHDF5_INCLUDE) + + echo "configuring the BLOSC filter..." + ++## check if we have an x86 CPU ++machine=`uname -m` ++AS_CASE([$machine], ++ [*86*], [x86_CPU=true], ++ [x86_CPU=false] ++) ++echo x86_CPU="$x86_CPU" ++ + ## see if -msse2 is a supported flag + AX_CHECK_COMPILE_FLAG([-msse2], [MSSE2=true], [MSSE2=false]) +-## check CPU supports sse2 +-AX_GCC_X86_CPU_SUPPORTS(sse2, [SSE2_SUPPORTED=true], [SSE2_SUPPORTED=false]) ++## see if -mavx2 is a supported flag ++AX_CHECK_COMPILE_FLAG([-mavx2], [MAVX2=true], [MAVX2=false]) ++ ++AC_RUN_IFELSE( ++ [AC_LANG_PROGRAM([#include ], ++ [__builtin_cpu_init ();]) ++ ], ++ [ax_cv_gcc_check_x86_cpu_init=true], ++ [ax_cv_gcc_check_x86_cpu_init=false]) ++ ++## check CPU supports sse2 and avx2 ++if [ "$x86_CPU" == true ] && [ "$ax_cv_gcc_check_x86_cpu_init" == true ]; then ++ AX_GCC_X86_CPU_SUPPORTS(sse2, [SSE2_SUPPORTED=true], [SSE2_SUPPORTED=false]) ++ AX_GCC_X86_CPU_SUPPORTS(avx2, [AVX2_SUPPORTED=true], [AVX2_SUPPORTED=false]) ++else ++ SSE2_SUPPORTED=false ++ AVX2_SUPPORTED=false ++fi + + if [ "$MSSE2" = true ] && [ "$SSE2_SUPPORTED" = true ] ; then + SSE2="-DSHUFFLE_SSE2_ENABLED" +@@ -69,11 +93,6 @@ AC_SUBST(SSE2_BITSHUFFLE_OBJ) + AC_SUBST(SSE2_SHUFFLE_OBJ) + AC_SUBST(SSE2_OBJ_PATH) + +-## see if -mavx2 is a supported flag +-AX_CHECK_COMPILE_FLAG([-mavx2], [MAVX2=true], [MAVX2=false]) +-## check CPU supports avx2 +-AX_GCC_X86_CPU_SUPPORTS(avx2, [AVX2_SUPPORTED=true], [AVX2_SUPPORTED=false]) +- + if [ "$MAVX2" = true ] && [ "$AVX2_SUPPORTED" = true ] ; then + AVX2="-DSHUFFLE_AVX2_ENABLED" + MAVX2="-mavx2" + diff --git a/easybuild/easyconfigs/r/R-keras/R-keras-2.4.0-foss-2020b-R-4.0.4.eb b/easybuild/easyconfigs/r/R-keras/R-keras-2.4.0-foss-2020b-R-4.0.4.eb new file mode 100644 index 00000000000..02ccc3c1466 --- /dev/null +++ b/easybuild/easyconfigs/r/R-keras/R-keras-2.4.0-foss-2020b-R-4.0.4.eb @@ -0,0 +1,49 @@ +easyblock = 'Bundle' + +name = 'R-keras' +version = '2.4.0' +versionsuffix = '-R-%(rver)s' + +homepage = 'https://cran.r-project.org/web/packages/keras' +description = """ Interface to 'Keras' , a high-level neural networks 'API'. """ + +toolchain = {'name': 'foss', 'version': '2020b'} + +dependencies = [ + ('Python', '3.8.6'), + ('R', '4.0.4'), + ('TensorFlow', '2.4.1'), +] + +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 = [ + ('config', '0.3.1', { + 'checksums': ['d48878be8f47041e4ffeaa449dd1e5f48f6174a4592e465913e72b6cf6b95f50'], + }), + ('tfruns', '1.5.0', { + 'checksums': ['898a45a5e8420af1542919874a26cf8c00ae12638e6842197773b818de648e12'], + }), + ('tensorflow', version, { + 'checksums': ['670ec0f2bc5de97b0916b4989ec4748a978ac2ceed097c993df51c5733a7207c'], + }), + ('keras', version, { + 'checksums': ['ad1ee6d6e09b7884c2e6b173ba7b1193f81592126e99195643ad06d48a2b7c01'], + }), +] + +modextrapaths = {'R_LIBS_SITE': ''} + +sanity_check_paths = { + 'files': [], + 'dirs': ['config', 'tfruns', 'tensorflow', 'keras'], +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/r/R-keras/R-keras-2.4.0-fosscuda-2020b-R-4.0.4.eb b/easybuild/easyconfigs/r/R-keras/R-keras-2.4.0-fosscuda-2020b-R-4.0.4.eb new file mode 100644 index 00000000000..124e5addf5f --- /dev/null +++ b/easybuild/easyconfigs/r/R-keras/R-keras-2.4.0-fosscuda-2020b-R-4.0.4.eb @@ -0,0 +1,49 @@ +easyblock = 'Bundle' + +name = 'R-keras' +version = '2.4.0' +versionsuffix = '-R-%(rver)s' + +homepage = 'https://cran.r-project.org/web/packages/keras' +description = """ Interface to 'Keras' , a high-level neural networks 'API'. """ + +toolchain = {'name': 'fosscuda', 'version': '2020b'} + +dependencies = [ + ('Python', '3.8.6'), + ('R', '4.0.4'), + ('TensorFlow', '2.4.1'), +] + +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 = [ + ('config', '0.3.1', { + 'checksums': ['d48878be8f47041e4ffeaa449dd1e5f48f6174a4592e465913e72b6cf6b95f50'], + }), + ('tfruns', '1.5.0', { + 'checksums': ['898a45a5e8420af1542919874a26cf8c00ae12638e6842197773b818de648e12'], + }), + ('tensorflow', version, { + 'checksums': ['670ec0f2bc5de97b0916b4989ec4748a978ac2ceed097c993df51c5733a7207c'], + }), + ('keras', version, { + 'checksums': ['ad1ee6d6e09b7884c2e6b173ba7b1193f81592126e99195643ad06d48a2b7c01'], + }), +] + +modextrapaths = {'R_LIBS_SITE': ''} + +sanity_check_paths = { + 'files': [], + 'dirs': ['config', 'tfruns', 'tensorflow', 'keras'], +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/r/R/DMCfun-1.3.0_fix-parallel-detect.patch b/easybuild/easyconfigs/r/R/DMCfun-1.3.0_fix-parallel-detect.patch new file mode 100644 index 00000000000..f989ec8518a --- /dev/null +++ b/easybuild/easyconfigs/r/R/DMCfun-1.3.0_fix-parallel-detect.patch @@ -0,0 +1,37 @@ +# parallal::detectCores() detects physical cores and not available cores. It is ususally problem in queue systems +# like PBS or Slurm. This patch gives solution for that problem for PBS and with Slurm with PBS compatibility switched +# on. For other queue systems, a different solutiom might needed. +# April 13th 2021 by B. Hajgato (UGent) +diff -ru DMCfun.orig/MD5 DMCfun/MD5 +--- DMCfun.orig/MD5 2021-01-10 18:50:10.000000000 +0100 ++++ DMCfun/MD5 2021-04-13 09:31:31.242654188 +0200 +@@ -4,7 +4,7 @@ + a835c7e49694b2c835c438362b16946f *R/DMCfun.R + 034299149a3219bf581d440b19d94fbb *R/RcppExports.R + 4e07b13ccaf91457dfc167540129c61f *R/dmcData.R +-0bce9adf54182001c9eadbca3c6af0f8 *R/dmcFit.R ++d66108a6cddee34ca0dc1556b6b24f53 *R/dmcFit.R + 655fea3d9c03b02d6f2539ec478ab9b0 *R/dmcSim.R + f301185baf6007e9ade686f9964ecf23 *R/methods.R + 1b5964cab6608330647f601921f15a5c *R/plot.R +diff -ru DMCfun.orig/R/dmcFit.R DMCfun/R/dmcFit.R +--- DMCfun.orig/R/dmcFit.R 2020-12-03 18:53:03.000000000 +0100 ++++ DMCfun/R/dmcFit.R 2021-04-13 09:28:47.506520017 +0200 +@@ -159,7 +159,7 @@ + if (nzchar(chk) && (chk == "true")) { + num_cores <- 2L + } else { +- num_cores <- parallel::detectCores() / 2 ++ num_cores <- as.numeric(Sys.getenv("SLURM_CPUS_ON_NODE", Sys.getenv("PBS_NUM_PPN", parallel::detectCores() / 2))) + } + + # Older code (pre June 2020) used doSNOW progress bar +@@ -297,7 +297,7 @@ + if (nzchar(chk) && (chk == "true")) { + num_cores <- 2L + } else { +- num_cores <- parallel::detectCores() / 2 ++ num_cores <- as.numeric(Sys.getenv("SLURM_CPUS_ON_NODE", Sys.getenv("PBS_NUM_PPN", parallel::detectCores() / 2))) + } + cl <- parallel::makeCluster(num_cores) + invisible(parallel::clusterExport(cl = cl, varlist=c("dmcSim", "calculateCostValue"))) diff --git a/easybuild/easyconfigs/r/R/R-4.0.3-foss-2020b.eb b/easybuild/easyconfigs/r/R/R-4.0.3-foss-2020b.eb index b27365ac401..f4c74e7d9bf 100644 --- a/easybuild/easyconfigs/r/R/R-4.0.3-foss-2020b.eb +++ b/easybuild/easyconfigs/r/R/R-4.0.3-foss-2020b.eb @@ -1694,7 +1694,7 @@ exts_list = [ 'patches': ['HWxtest-1.1.9_add-fcommon.patch'], 'checksums': [ 'a37309bed4a99212ca104561239d834088217e6c5e5e136ff022544c706f25e6', # HWxtest_1.1.9.tar.gz - '4ce08c35035dbcc4edf092cdb405ae32c21c05b3786c15c0aa4bfe13bd81f451', # HWxtest-1.1.9_add-fcommon.patch, + '4ce08c35035dbcc4edf092cdb405ae32c21c05b3786c15c0aa4bfe13bd81f451', # HWxtest-1.1.9_add-fcommon.patch ], }), ('diveRsity', '1.9.90', { @@ -2801,7 +2801,50 @@ exts_list = [ 'checksums': ['73b1ed560ffd74599517e8baa4c5b293aa062e9c8d50219a3a24b63e72fa7c00'], }), ('DMCfun', '1.3.0', { - 'checksums': ['2ca5e633c1af56d7f13a811a72e33853026ad4b6ca34290d017c8bb66443d2e7'], + 'patches': ['DMCfun-1.3.0_fix-parallel-detect.patch'], + 'checksums': [ + '2ca5e633c1af56d7f13a811a72e33853026ad4b6ca34290d017c8bb66443d2e7', # DMCfun_1.3.0.tar.gz + # DMCfun-1.3.0_fix-parallel-detect.patch + '67259a76722717f29577d7a25c822a4fb9c1b5ce45699d02aa53ab0ffa1d0b2a', + ], + }), + ('miceadds', '3.11-6', { + 'checksums': ['121d03c812fbcf584a25585ac73f6c44f4b5d6cd21b05362ddd15395fb3909f6'], + }), + ('visdat', '0.5.3', { + 'checksums': ['527c76b6643b8475a58516763ef40238cdc61ec62d2dcf690f7c316b93b878c6'], + }), + ('UpSetR', '1.4.0', { + 'checksums': ['351e5fee64204cf77fd378cf2a2c0456cc19d4d98a2fd5f3dac74b69a505f100'], + }), + ('naniar', '0.6.0', { + 'checksums': ['9c93c64f51dd8c3002c930c276ef57651e91c8db12f885a03113753c604e7e54'], + }), + ('stringdist', '0.9.6.3', { + 'checksums': ['cd6d98f982e9ae7c4154a040c3a3f959bce19abf0229d64d22efef41f85b3f1b'], + }), + ('image.binarization', '0.1.1', { + 'checksums': ['f1d0c5e54b62b77249d6adf3e37b5fabec0dd6bb6a3b4a8a9c2152d59dab52b5'], + }), + ('lassosum', '0.4.5', { + 'source_urls': ['https://github.com/tshmak/%(name)s/releases/download/v%(version)s/'], + 'sources': ['%(name)s_%(version)s.tar.gz'], + 'checksums': ['18c0d0b5022bcf81a9bf1b3b6647da3e080f221828b473ea2a45a9bf98474fbc'], + }), + ('lslx', '0.6.10', { + 'checksums': ['adc2b2a621625b52165245ab2f3a0bfba4f4db64fcc6ad48a3e5b219c3bd2fa1'], + }), + ('truncnorm', '1.0-8', { + 'checksums': ['49564e8d87063cf9610201fbc833859ed01935cc0581b9e21c42a0d21a47c87e'], + }), + ('Rsolnp', '1.16', { + 'checksums': ['3142776062beb8e2b45cdbc4fe6e5446b6d33505253d79f2890fe4178d9cf670'], + }), + ('regsem', '1.6.2', { + 'checksums': ['b65201c730e10b0a80d1dd788e0c370372a1f22f314f2e49ce4dc63cb3ffd992'], + }), + ('semPLS', '1.0-10', { + 'checksums': ['cb587ccfdaf970f426dc7146035c7e010b1c51c17bf4fc089fd796eda58db460'], }), ] diff --git a/easybuild/easyconfigs/r/R/R-4.0.3-fosscuda-2020b.eb b/easybuild/easyconfigs/r/R/R-4.0.3-fosscuda-2020b.eb index 4ac9ced88b6..6b48ef208c5 100644 --- a/easybuild/easyconfigs/r/R/R-4.0.3-fosscuda-2020b.eb +++ b/easybuild/easyconfigs/r/R/R-4.0.3-fosscuda-2020b.eb @@ -2811,7 +2811,50 @@ exts_list = [ 'checksums': ['73b1ed560ffd74599517e8baa4c5b293aa062e9c8d50219a3a24b63e72fa7c00'], }), ('DMCfun', '1.3.0', { - 'checksums': ['2ca5e633c1af56d7f13a811a72e33853026ad4b6ca34290d017c8bb66443d2e7'], + 'patches': ['DMCfun-1.3.0_fix-parallel-detect.patch'], + 'checksums': [ + '2ca5e633c1af56d7f13a811a72e33853026ad4b6ca34290d017c8bb66443d2e7', # DMCfun_1.3.0.tar.gz + # DMCfun-1.3.0_fix-parallel-detect.patch + '67259a76722717f29577d7a25c822a4fb9c1b5ce45699d02aa53ab0ffa1d0b2a', + ], + }), + ('miceadds', '3.11-6', { + 'checksums': ['121d03c812fbcf584a25585ac73f6c44f4b5d6cd21b05362ddd15395fb3909f6'], + }), + ('visdat', '0.5.3', { + 'checksums': ['527c76b6643b8475a58516763ef40238cdc61ec62d2dcf690f7c316b93b878c6'], + }), + ('UpSetR', '1.4.0', { + 'checksums': ['351e5fee64204cf77fd378cf2a2c0456cc19d4d98a2fd5f3dac74b69a505f100'], + }), + ('naniar', '0.6.0', { + 'checksums': ['9c93c64f51dd8c3002c930c276ef57651e91c8db12f885a03113753c604e7e54'], + }), + ('stringdist', '0.9.6.3', { + 'checksums': ['cd6d98f982e9ae7c4154a040c3a3f959bce19abf0229d64d22efef41f85b3f1b'], + }), + ('image.binarization', '0.1.1', { + 'checksums': ['f1d0c5e54b62b77249d6adf3e37b5fabec0dd6bb6a3b4a8a9c2152d59dab52b5'], + }), + ('lassosum', '0.4.5', { + 'source_urls': ['https://github.com/tshmak/%(name)s/releases/download/v%(version)s/'], + 'sources': ['%(name)s_%(version)s.tar.gz'], + 'checksums': ['18c0d0b5022bcf81a9bf1b3b6647da3e080f221828b473ea2a45a9bf98474fbc'], + }), + ('lslx', '0.6.10', { + 'checksums': ['adc2b2a621625b52165245ab2f3a0bfba4f4db64fcc6ad48a3e5b219c3bd2fa1'], + }), + ('truncnorm', '1.0-8', { + 'checksums': ['49564e8d87063cf9610201fbc833859ed01935cc0581b9e21c42a0d21a47c87e'], + }), + ('Rsolnp', '1.16', { + 'checksums': ['3142776062beb8e2b45cdbc4fe6e5446b6d33505253d79f2890fe4178d9cf670'], + }), + ('regsem', '1.6.2', { + 'checksums': ['b65201c730e10b0a80d1dd788e0c370372a1f22f314f2e49ce4dc63cb3ffd992'], + }), + ('semPLS', '1.0-10', { + 'checksums': ['cb587ccfdaf970f426dc7146035c7e010b1c51c17bf4fc089fd796eda58db460'], }), # Specific packages for GPUs ('OpenCL', '0.2-1', { diff --git a/easybuild/easyconfigs/r/R/R-4.0.4-foss-2020b.eb b/easybuild/easyconfigs/r/R/R-4.0.4-foss-2020b.eb index e3afe51d73c..4d3fed4c0ca 100644 --- a/easybuild/easyconfigs/r/R/R-4.0.4-foss-2020b.eb +++ b/easybuild/easyconfigs/r/R/R-4.0.4-foss-2020b.eb @@ -2836,7 +2836,50 @@ exts_list = [ 'checksums': ['73b1ed560ffd74599517e8baa4c5b293aa062e9c8d50219a3a24b63e72fa7c00'], }), ('DMCfun', '1.3.0', { - 'checksums': ['2ca5e633c1af56d7f13a811a72e33853026ad4b6ca34290d017c8bb66443d2e7'], + 'patches': ['DMCfun-1.3.0_fix-parallel-detect.patch'], + 'checksums': [ + '2ca5e633c1af56d7f13a811a72e33853026ad4b6ca34290d017c8bb66443d2e7', # DMCfun_1.3.0.tar.gz + # DMCfun-1.3.0_fix-parallel-detect.patch + '67259a76722717f29577d7a25c822a4fb9c1b5ce45699d02aa53ab0ffa1d0b2a', + ], + }), + ('miceadds', '3.11-6', { + 'checksums': ['121d03c812fbcf584a25585ac73f6c44f4b5d6cd21b05362ddd15395fb3909f6'], + }), + ('visdat', '0.5.3', { + 'checksums': ['527c76b6643b8475a58516763ef40238cdc61ec62d2dcf690f7c316b93b878c6'], + }), + ('UpSetR', '1.4.0', { + 'checksums': ['351e5fee64204cf77fd378cf2a2c0456cc19d4d98a2fd5f3dac74b69a505f100'], + }), + ('naniar', '0.6.0', { + 'checksums': ['9c93c64f51dd8c3002c930c276ef57651e91c8db12f885a03113753c604e7e54'], + }), + ('stringdist', '0.9.6.3', { + 'checksums': ['cd6d98f982e9ae7c4154a040c3a3f959bce19abf0229d64d22efef41f85b3f1b'], + }), + ('image.binarization', '0.1.1', { + 'checksums': ['f1d0c5e54b62b77249d6adf3e37b5fabec0dd6bb6a3b4a8a9c2152d59dab52b5'], + }), + ('lassosum', '0.4.5', { + 'source_urls': ['https://github.com/tshmak/%(name)s/releases/download/v%(version)s/'], + 'sources': ['%(name)s_%(version)s.tar.gz'], + 'checksums': ['18c0d0b5022bcf81a9bf1b3b6647da3e080f221828b473ea2a45a9bf98474fbc'], + }), + ('lslx', '0.6.10', { + 'checksums': ['adc2b2a621625b52165245ab2f3a0bfba4f4db64fcc6ad48a3e5b219c3bd2fa1'], + }), + ('truncnorm', '1.0-8', { + 'checksums': ['49564e8d87063cf9610201fbc833859ed01935cc0581b9e21c42a0d21a47c87e'], + }), + ('Rsolnp', '1.16', { + 'checksums': ['3142776062beb8e2b45cdbc4fe6e5446b6d33505253d79f2890fe4178d9cf670'], + }), + ('regsem', '1.6.2', { + 'checksums': ['b65201c730e10b0a80d1dd788e0c370372a1f22f314f2e49ce4dc63cb3ffd992'], + }), + ('semPLS', '1.0-10', { + 'checksums': ['cb587ccfdaf970f426dc7146035c7e010b1c51c17bf4fc089fd796eda58db460'], }), ] diff --git a/easybuild/easyconfigs/r/R/R-4.0.4-fosscuda-2020b.eb b/easybuild/easyconfigs/r/R/R-4.0.4-fosscuda-2020b.eb index 20534135a09..8eac804505c 100644 --- a/easybuild/easyconfigs/r/R/R-4.0.4-fosscuda-2020b.eb +++ b/easybuild/easyconfigs/r/R/R-4.0.4-fosscuda-2020b.eb @@ -2822,6 +2822,70 @@ exts_list = [ ('rnetcarto', '0.2.4', { 'checksums': ['266702330250e9fbeb8616d86edf1d50d63084a0731d17e84a04dc6faacf653a'], }), + ('DEoptim', '2.2-5', { + 'checksums': ['ae12dedcd4a43994e811e7285f8c12bfdb688e7c99d65515cf7e8cb6db13955a'], + }), + ('optextras', '2019-12.4', { + 'checksums': ['59006383860826be502ea8757e39ed94338f04d246c4fc398a088e004d8b13eb'], + }), + ('setRNG', '2013.9-1', { + 'checksums': ['1a1a399682a06a5fea3934985ebb1334005676c6a2a22d06f3c91c3923432908'], + }), + ('Rvmmin', '2018-4.17', { + 'checksums': ['d53ba7ab06596a47990caf101a50935b2b34402f9dd8414f098a873026ff1f56'], + }), + ('Rcgmin', '2013-2.21', { + 'checksums': ['a824a09c32d7565a3e30607c71333506d5b7197478fbe8b43f8a77dad6c12f0a'], + }), + ('optimr', '2019-12.16', { + 'checksums': ['73b1ed560ffd74599517e8baa4c5b293aa062e9c8d50219a3a24b63e72fa7c00'], + }), + ('DMCfun', '1.3.0', { + 'patches': ['DMCfun-1.3.0_fix-parallel-detect.patch'], + 'checksums': [ + '2ca5e633c1af56d7f13a811a72e33853026ad4b6ca34290d017c8bb66443d2e7', # DMCfun_1.3.0.tar.gz + # DMCfun-1.3.0_fix-parallel-detect.patch + '67259a76722717f29577d7a25c822a4fb9c1b5ce45699d02aa53ab0ffa1d0b2a', + ], + }), + ('miceadds', '3.11-6', { + 'checksums': ['121d03c812fbcf584a25585ac73f6c44f4b5d6cd21b05362ddd15395fb3909f6'], + }), + ('visdat', '0.5.3', { + 'checksums': ['527c76b6643b8475a58516763ef40238cdc61ec62d2dcf690f7c316b93b878c6'], + }), + ('UpSetR', '1.4.0', { + 'checksums': ['351e5fee64204cf77fd378cf2a2c0456cc19d4d98a2fd5f3dac74b69a505f100'], + }), + ('naniar', '0.6.0', { + 'checksums': ['9c93c64f51dd8c3002c930c276ef57651e91c8db12f885a03113753c604e7e54'], + }), + ('stringdist', '0.9.6.3', { + 'checksums': ['cd6d98f982e9ae7c4154a040c3a3f959bce19abf0229d64d22efef41f85b3f1b'], + }), + ('image.binarization', '0.1.1', { + 'checksums': ['f1d0c5e54b62b77249d6adf3e37b5fabec0dd6bb6a3b4a8a9c2152d59dab52b5'], + }), + ('lassosum', '0.4.5', { + 'source_urls': ['https://github.com/tshmak/%(name)s/releases/download/v%(version)s/'], + 'sources': ['%(name)s_%(version)s.tar.gz'], + 'checksums': ['18c0d0b5022bcf81a9bf1b3b6647da3e080f221828b473ea2a45a9bf98474fbc'], + }), + ('lslx', '0.6.10', { + 'checksums': ['adc2b2a621625b52165245ab2f3a0bfba4f4db64fcc6ad48a3e5b219c3bd2fa1'], + }), + ('truncnorm', '1.0-8', { + 'checksums': ['49564e8d87063cf9610201fbc833859ed01935cc0581b9e21c42a0d21a47c87e'], + }), + ('Rsolnp', '1.16', { + 'checksums': ['3142776062beb8e2b45cdbc4fe6e5446b6d33505253d79f2890fe4178d9cf670'], + }), + ('regsem', '1.6.2', { + 'checksums': ['b65201c730e10b0a80d1dd788e0c370372a1f22f314f2e49ce4dc63cb3ffd992'], + }), + ('semPLS', '1.0-10', { + 'checksums': ['cb587ccfdaf970f426dc7146035c7e010b1c51c17bf4fc089fd796eda58db460'], + }), # Specific packages for GPUs ('OpenCL', '0.2-1', { 'checksums': ['5cc80395bf3c28a27ff124e3d602e8037487f8f6d1800ccb6c145eb432c716ae'], diff --git a/easybuild/easyconfigs/r/RAxML-NG/RAxML-NG-1.0.2-gompi-2020b.eb b/easybuild/easyconfigs/r/RAxML-NG/RAxML-NG-1.0.2-gompi-2020b.eb new file mode 100644 index 00000000000..b18fbb2c5fb --- /dev/null +++ b/easybuild/easyconfigs/r/RAxML-NG/RAxML-NG-1.0.2-gompi-2020b.eb @@ -0,0 +1,87 @@ +easyblock = 'CMakeMakeCp' + +name = 'RAxML-NG' +version = '1.0.2' + +local_terrap_commit = '8af2e4c838c82329adf14fa8df2c341b757378af' +local_pllmod_commit = '4fd9592f469cd481771b9c7e8c33e223bfc0dfc0' +local_libpll_commit = 'f946d906bef1ac0ccc4380eb11fbceebfb0ca1e7' + +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': 'gompi', 'version': '2020b'} + +local_extract_lib = 'tar --strip-components=1 -C %%(builddir)s/raxml-ng-%%(version)s/libs/%s -xzf %%s' +sources = [ + { + 'source_urls': ['https://github.com/amkozlov/raxml-ng/archive/'], + 'filename': '%(version)s.tar.gz', + }, + { + 'source_urls': ['https://github.com/amkozlov/terraphast-one/archive/'], + 'download_filename': '%s.tar.gz' % local_terrap_commit, + 'filename': 'terraphist-one-%(version)s.tar.gz', + 'extract_cmd': local_extract_lib % 'terraphast', + }, + { + 'source_urls': ['https://github.com/ddarriba/pll-modules/archive/'], + 'download_filename': '%s.tar.gz' % local_pllmod_commit, + 'filename': 'pll-modules-%(version)s.tar.gz', + 'extract_cmd': local_extract_lib % 'pll-modules', + }, + { + 'source_urls': ['https://github.com/xflouris/libpll-2/archive/'], + 'download_filename': '%s.tar.gz' % local_libpll_commit, + 'filename': 'libpll-2-%(version)s.tar.gz', + 'extract_cmd': local_extract_lib % 'pll-modules/libs/libpll', + }, +] +checksums = [ + 'bf629280f5b76cfc017b9accafc22760de3797d367fb9c8a8a2ec630bcec23fa', # 1.0.2.tar.gz + 'c0590e62f5ffb8b11551abcee2b43fb9454dcece2c87763ebe0d104de2eb541d', # terraphist-one-1.0.2.tar.gz + '64f58ed77d074818505cf032c3509482c2e00ba0636990131e05f8a148e1a3a9', # pll-modules-1.0.2.tar.gz + '0d9d93fb5057048ed966a30bf8e1de84def2fd25decc45e01094722c4dd92d48', # libpll-2-1.0.2.tar.gz +] + +dependencies = [ + ('GMP', '6.2.0'), +] + +builddependencies = [ + ('binutils', '2.35'), + ('CMake', '3.18.4'), + ('googletest', '1.10.0'), + ('flex', '2.6.4'), + ('Bison', '3.7.1'), +] + +configopts = '-DUSE_MPI=ON ' +configopts += '-DUSE_GMP=ON ' + +build_type = 'Release' + +separate_build_dir = True + +# too much parallellism makes the build fail with: +# No rule to make target 'localdeps/lib/libterraces.a'; +# see https://github.com/amkozlov/raxml-ng/issues/108 +maxparallel = 10 + +runtest = 'test' + +files_to_copy = [ + (["bin/raxml-ng-mpi"], "bin"), +] + +sanity_check_paths = { + 'files': ['bin/raxml-ng-mpi'], + 'dirs': [], +} + +sanity_check_commands = ['raxml-ng-mpi -h'] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/r/RAxML/RAxML-8.2.12-gompi-2020a-hybrid-avx2.eb b/easybuild/easyconfigs/r/RAxML/RAxML-8.2.12-gompi-2020a-hybrid-avx2.eb new file mode 100644 index 00000000000..c863451d483 --- /dev/null +++ b/easybuild/easyconfigs/r/RAxML/RAxML-8.2.12-gompi-2020a-hybrid-avx2.eb @@ -0,0 +1,38 @@ +## +# 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:: Custom +# +# Notes:: +## + +easyblock = 'MakeCp' + +name = 'RAxML' +version = '8.2.12' +versionsuffix = '-hybrid-avx2' + +homepage = 'https://github.com/stamatak/standard-RAxML' +description = "RAxML search algorithm for maximum likelihood based inference of phylogenetic trees." + +toolchain = {'name': 'gompi', 'version': '2020a'} +toolchainopts = {'usempi': True} + +source_urls = ['https://github.com/stamatak/standard-RAxML/archive/'] +sources = ['v%(version)s.zip'] +checksums = ['abe6978c6027e897ebed67066836e4eadd57ecd0d042045634424dd001e86105'] + +buildopts = '-f Makefile.AVX2.HYBRID.gcc CC="$CC"' + +files_to_copy = [(["raxmlHPC-HYBRID-AVX2"], "bin"), "usefulScripts", "README", "manual"] + +postinstallcmds = ["cd %(installdir)s/bin && ln -s raxmlHPC-HYBRID-AVX2 raxmlHPC"] + +sanity_check_paths = { + 'files': ['bin/raxmlHPC'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/r/RStudio-Server/RStudio-Server-1.2.1335-fix_env.patch b/easybuild/easyconfigs/r/RStudio-Server/RStudio-Server-1.2.1335-fix_env.patch new file mode 100644 index 00000000000..9f965ed2e9a --- /dev/null +++ b/easybuild/easyconfigs/r/RStudio-Server/RStudio-Server-1.2.1335-fix_env.patch @@ -0,0 +1,17 @@ +commit https://github.com/ComputeCanada/easybuild-easyconfigs/commit/7c6171057562a68086bcb81362f1e997ba4aaeba +Author: @cmd-ntrf +Date: May 4 2019 + +Without this patch, RStudio does not inherits environment variables set before launching it. Since R is provided by a separate module, it means RStudio has no idea where R is nor any other library or executables that were loaded before launching RStudio. + +diff -Nru rstudio-1.2.1335.orig/src/cpp/core/system/PosixSystem.cpp rstudio-1.2.1335/src/cpp/core/system/PosixSystem.cpp +--- rstudio-1.2.1335.orig/src/cpp/core/system/PosixSystem.cpp 2019-03-28 05:08:20.000000000 +0000 ++++ rstudio-1.2.1335/src/cpp/core/system/PosixSystem.cpp 2019-05-04 19:23:19.014327797 +0000 +@@ -2195,6 +2195,7 @@ + + // setup environment + core::system::Options env; ++ core::system::environment(&env); + copyEnvironmentVar("PATH", &env); + copyEnvironmentVar("MANPATH", &env); + copyEnvironmentVar("LANG", &env); diff --git a/easybuild/easyconfigs/r/RStudio-Server/RStudio-Server-1.3.1093-foss-2020a-Java-11-R-4.0.0.eb b/easybuild/easyconfigs/r/RStudio-Server/RStudio-Server-1.3.1093-foss-2020a-Java-11-R-4.0.0.eb index 23cdd0d2fdc..4c871371f5e 100644 --- a/easybuild/easyconfigs/r/RStudio-Server/RStudio-Server-1.3.1093-foss-2020a-Java-11-R-4.0.0.eb +++ b/easybuild/easyconfigs/r/RStudio-Server/RStudio-Server-1.3.1093-foss-2020a-Java-11-R-4.0.0.eb @@ -16,7 +16,15 @@ toolchain = {'name': 'foss', 'version': '2020a'} source_urls = ['https://github.com/rstudio/rstudio/archive'] sources = ['v%(version)s.tar.gz'] -checksums = ['af8dc5e71ee934043856938af2e2065d1f1efef08aba37962ed03f6ccb8201bb'] +patches = [ + 'RStudio-Server-1.3.1093_fix-use-of-var.patch', + 'RStudio-Server-1.2.1335-fix_env.patch', +] +checksums = [ + 'af8dc5e71ee934043856938af2e2065d1f1efef08aba37962ed03f6ccb8201bb', # v1.3.1093.tar.gz + '36e22c34d07095522ed570492c047296e782fe3519fdb1dc491bcf820d3aa343', # RStudio-Server-1.3.1093_fix-use-of-var.patch + 'a7b6edab4f5605f5695b5a987f2f1b229e90dbcfcb7a85cc2ea9341e8766941b', # RStudio-Server-1.2.1335-fix_env.patch +] builddependencies = [ ('pkg-config', '0.29.2'), @@ -34,15 +42,33 @@ osdependencies = [ ('pam-devel', 'libpam0g-dev') ] +start_dir = "%(builddir)s/rstudio-%(version)s" +separate_build_dir = False build_type = "Release" -local_dep_dir = "%(builddir)s/rstudio-%(version)s/dependencies/common" -preconfigopts = ("(cd %s && ./install-dictionaries && " - "./install-pandoc && ./install-mathjax) && ") % local_dep_dir + +preconfigopts = " && ".join([ + "cd %(builddir)s/rstudio-%(version)s/dependencies/common", + "./install-cef", + "./install-dictionaries", + "./install-mathjax", + "./install-pandoc", + "./install-packages", + "cd ../..", + "", # To append && +]) + configopts = "-DRSTUDIO_TARGET=Server -DRSTUDIO_BOOST_SIGNALS_VERSION=2" sanity_check_paths = { - 'files': ["bin/rstudio-server"], + 'files': ["bin/rstudio-server", "bin/rsession", "bin/rserver", "bin/rserver-pam", "bin/rpostback"], 'dirs': ['bin', 'extras', 'resources', 'www', 'www-symbolmaps', 'R'], } +sanity_check_commands = [ + # This command requires environment variables R_HOME and R_DOC_DIR + "R_HOME=$EBROOTR/lib64/R R_DOC_DIR=$R_HOME/doc rsession --verify-installation=1", + "rserver --verify-installation=1", + "rstudio-server verify-installation", +] + moduleclass = 'lang' diff --git a/easybuild/easyconfigs/r/RStudio-Server/RStudio-Server-1.3.1093_fix-use-of-var.patch b/easybuild/easyconfigs/r/RStudio-Server/RStudio-Server-1.3.1093_fix-use-of-var.patch new file mode 100644 index 00000000000..153104111a4 --- /dev/null +++ b/easybuild/easyconfigs/r/RStudio-Server/RStudio-Server-1.3.1093_fix-use-of-var.patch @@ -0,0 +1,26 @@ +commit https://github.com/ComputeCanada/easybuild-easyconfigs/commit/77ecdad8fc629078d106fba250951c5c8c22ae52 +Author: @ccoulombe +Date: Nov. 5 2020 + + Patch Rstudio to use /tmp by default for data-dir and pid file +diff -Nru rstudio-1.3.1093.orig/src/cpp/server/ServerOptions.cpp rstudio-1.3.1093/src/cpp/server/ServerOptions.cpp +--- rstudio-1.3.1093.orig/src/cpp/server/ServerOptions.cpp 2021-04-19 12:42:58.217742905 -0400 ++++ rstudio-1.3.1093/src/cpp/server/ServerOptions.cpp 2021-04-19 13:00:06.787497937 -0400 +@@ -214,7 +214,7 @@ + core::system::effectiveUserIsRoot()), + "run program as daemon") + ("server-pid-file", +- value(&serverPidFile_)->default_value("/var/run/rstudio-server.pid"), ++ value(&serverPidFile_)->default_value("/tmp/rstudio-server.pid"), + "location of pid file to write (only in daemon mode)") + ("server-app-armor-enabled", + value(&serverAppArmorEnabled_)->default_value(0), +@@ -226,7 +226,7 @@ + value(&secureCookieKeyFile_)->default_value(""), + "path override for secure cookie key") + ("server-data-dir", +- value(&serverDataDir_)->default_value("/var/run/rstudio-server"), ++ value(&serverDataDir_)->default_value("/tmp/rstudio-server"), + "path to data directory where rstudio server will write run-time state") + ("server-add-header", + value>(&serverAddHeaders_)->default_value(std::vector{})->multitoken(), diff --git a/easybuild/easyconfigs/r/Ray-project/Ray-project-0.8.4-foss-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/r/Ray-project/Ray-project-0.8.4-foss-2019b-Python-3.7.4.eb index f2ffc57ef00..6726bb26e7a 100644 --- a/easybuild/easyconfigs/r/Ray-project/Ray-project-0.8.4-foss-2019b-Python-3.7.4.eb +++ b/easybuild/easyconfigs/r/Ray-project/Ray-project-0.8.4-foss-2019b-Python-3.7.4.eb @@ -26,8 +26,6 @@ dependencies = [ use_pip = True sanity_pip_check = True -exts_default_options = {'source_urls': [PYPI_SOURCE]} - exts_list = [ ('lz4', '3.0.2', { 'checksums': ['9c9f6a8b71c18c24bd83537a4d616f0301623a5e98db7c7ca956d608e1bcd4c7'], @@ -95,7 +93,6 @@ exts_list = [ ('py-spy', '0.3.3', { 'modulename': False, 'source_tmpl': 'py_spy-%(version)s-py2.py3-none-manylinux1_x86_64.whl', - 'unpack_sources': False, 'checksums': ['e9d6946741c267fe82aef18d2fc1e095a90a83fb5f3d9fc89b0f20a39613a639'], }), ('redis', '3.4.1', { @@ -105,7 +102,6 @@ exts_list = [ # https://github.com/ray-project/ray/issues/5274 ('Ray', version, { 'source_tmpl': '%(namelower)s-%(version)s-cp37-cp37m-manylinux1_x86_64.whl', - 'unpack_sources': False, 'checksums': ['f2cca186a9f8a18f9d58eadcd8ea126addc3192e922f36a7ced46b8b8904ac65'], }), ] diff --git a/easybuild/easyconfigs/r/Ray-project/Ray-project-1.0.1-fosscuda-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/r/Ray-project/Ray-project-1.0.1-fosscuda-2019b-Python-3.7.4.eb index 82518a1afc4..ea3efe2d1f9 100644 --- a/easybuild/easyconfigs/r/Ray-project/Ray-project-1.0.1-fosscuda-2019b-Python-3.7.4.eb +++ b/easybuild/easyconfigs/r/Ray-project/Ray-project-1.0.1-fosscuda-2019b-Python-3.7.4.eb @@ -26,8 +26,6 @@ dependencies = [ use_pip = True sanity_pip_check = True -exts_default_options = {'source_urls': [PYPI_SOURCE]} - # Ray is run from wheel, because build doesn't pass LD_LIBRARY_PATH properly to Bazel/Protobuf # https://github.com/ray-project/ray/issues/5274 exts_list = [ @@ -136,7 +134,6 @@ exts_list = [ ('py-spy', '0.3.3', { 'modulename': False, 'source_tmpl': 'py_spy-%(version)s-py2.py3-none-manylinux1_x86_64.whl', - 'unpack_sources': False, 'checksums': ['e9d6946741c267fe82aef18d2fc1e095a90a83fb5f3d9fc89b0f20a39613a639'], }), ('redis', '3.4.1', { @@ -144,7 +141,6 @@ exts_list = [ }), ('ray', version, { 'source_tmpl': '%(namelower)s-%(version)s-cp37-cp37m-manylinux1_x86_64.whl', - 'unpack_sources': False, 'checksums': ['8ba29033e5e5e7fd8c402b42abb17dc04dfe15398350a1532ef809b0e8ed6a06'], }), ] diff --git a/easybuild/easyconfigs/r/ReFrame/ReFrame-3.5.2.eb b/easybuild/easyconfigs/r/ReFrame/ReFrame-3.5.2.eb new file mode 100644 index 00000000000..44e2cd25dda --- /dev/null +++ b/easybuild/easyconfigs/r/ReFrame/ReFrame-3.5.2.eb @@ -0,0 +1,63 @@ +easyblock = 'PythonBundle' + +name = 'ReFrame' +version = '3.5.2' + +homepage = 'https://github.com/eth-cscs/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.0.1', { + 'use_pip': False, + 'checksums': ['99bbde183ec5ec037318e774b0d8ae0a64352fe53b2c7fd630be1d07e94f41e5'] + }), + ('setuptools', '53.0.0', { + 'source_tmpl': 'setuptools-%(version)s.tar.gz', + 'checksums': ['1b18ef17d74ba97ac9c0e4b4265f123f07a8ae85d9cd093949fa056d3eeeead5'], + }), + ('reframe', version, { + 'preinstallopts': "./bootstrap.sh +docs +pygelf && cp -r external %(installdir)s && ", + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/eth-cscs/reframe/archive/'], + 'checksums': ['50d461811f6bba7c9b897866a290063e1bd229e7055f5acc2de1f749b99bfce7'] + }), +] + +postinstallcmds = [ + 'cp -r tutorials %(installdir)s', + 'mkdir -p %(installdir)s/share/man/man1 %(installdir)s/share/man/man8', + 'cp docs/man/man1/reframe.1 %(installdir)s/share/man/man1', + 'cp docs/man/man8/reframe.settings.8 %(installdir)s/share/man/man8', + 'cp -r share/completions %(installdir)s/share/completions' +] + +sanity_check_paths = { + 'files': ['bin/reframe', 'share/man/man1/reframe.1', + 'share/man/man8/reframe.settings.8', + 'share/completions/reframe.bash', + 'share/completions/reframe.fish', + 'share/completions/reframe.tcsh'], + 'dirs': ['lib', 'tutorials', 'external'] +} + +sanity_check_commands = ['reframe -V'] + +sanity_pip_check = True + +# need to add 'bin' subdir to $PATH explicitly to ensure right 'pip' command is used for installing extensions +modextrapaths = { + 'PATH': 'bin', + # bootstrap script installs required dependencies to 'external' subdirectory + 'PYTHONPATH': 'external', +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/r/RegTools/RegTools-0.5.2-foss-2020b.eb b/easybuild/easyconfigs/r/RegTools/RegTools-0.5.2-foss-2020b.eb new file mode 100644 index 00000000000..9c668e77d17 --- /dev/null +++ b/easybuild/easyconfigs/r/RegTools/RegTools-0.5.2-foss-2020b.eb @@ -0,0 +1,38 @@ +easyblock = 'CMakeMake' + +name = 'RegTools' +version = '0.5.2' + +homepage = 'https://regtools.readthedocs.org' +description = """RegTools is a set of tools that integrate DNA-seq and RNA-seq data to help interpret mutations in a +regulatory and splicing context.""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +source_urls = ['https://github.com/griffithlab/%(namelower)s/archive'] +sources = ['%(version)s.tar.gz'] +checksums = ['24d3bc18174237e0fc2d0330839c8dc21c97cdb7d6e528c518188c10f17f3e7e'] + +builddependencies = [ + ('CMake', '3.18.4'), +] + +# required by included scripts +dependencies = [ + ('Python', '3.8.6'), + ('PyYAML', '5.3.1'), # required by create_IGVsessions.py script + ('R', '4.0.3'), +] + +# 'make install' is not supported... +install_cmd = "mkdir %(installdir)s/bin && cp -a regtools %(installdir)s/bin/ && " +install_cmd += "cp -a %(builddir)s/regtools-%(version)s/scripts %(installdir)s/" + +sanity_check_paths = { + 'files': ['bin/regtools'], + 'dirs': ['scripts'], +} + +sanity_check_commands = ["regtools --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/r/Rmath/Rmath-4.0.4-foss-2020b.eb b/easybuild/easyconfigs/r/Rmath/Rmath-4.0.4-foss-2020b.eb new file mode 100644 index 00000000000..5f67afb26fc --- /dev/null +++ b/easybuild/easyconfigs/r/Rmath/Rmath-4.0.4-foss-2020b.eb @@ -0,0 +1,48 @@ +# Easyconfig for Rmath +# Author: Caspar van Leeuwen +# SURFsara, Amsterdam, The Netherlands + +easyblock = 'ConfigureMake' + +name = 'Rmath' +version = '4.0.4' + +homepage = "https://www.r-project.org/" +description = """Rmath is the standalone version of the R math library. + Rmath can be used in your own C/C++ routines.""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s/'] +sources = ['R-%(version)s.tar.gz'] +checksums = ['523f27d69744a08c8f0bd5e1e6c3d89a4db29ed983388ba70963a3cd3a4a802e'] + +dependencies = [ + ('bzip2', '1.0.8'), + ('cURL', '7.72.0'), + ('libreadline', '8.0'), + ('PCRE2', '10.35'), + ('XZ', '5.2.5'), + ('zlib', '1.2.11') +] + +# Copied from R-3.3.1-intel-2016b.eb. +# Again, unsure if these affect R-math: R documentation doesn't specify. +configopts = "--with-pic --enable-threads --with-x=no --with-pcre2" + +# Since we're only installing Rmath anyway, we don't care about R packages. +configopts += " --with-recommended-packages=no" + +# To build Rmath, docs say you need to execute 'make' in src/nmath/standalone +# https://cran.r-project.org/doc/manuals/r-devel/R-admin.html#Configuration-options +prebuildopts = 'cd src/nmath/standalone;' +preinstallopts = prebuildopts + +sanity_check_paths = { + 'files': [('lib/libRmath.a', 'lib64/libRmath.so'), + ('lib/libRmath.%s' % SHLIB_EXT, 'lib64/libRmath.%s' % SHLIB_EXT), + 'include/Rmath.h'], + 'dirs': [] +} + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/r/Rust/Rust-1.52.1-GCCcore-10.3.0.eb b/easybuild/easyconfigs/r/Rust/Rust-1.52.1-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..a4cedb1f126 --- /dev/null +++ b/easybuild/easyconfigs/r/Rust/Rust-1.52.1-GCCcore-10.3.0.eb @@ -0,0 +1,46 @@ +easyblock = 'ConfigureMake' + +name = 'Rust' +version = '1.52.1' + +homepage = 'https://www.rust-lang.org' +description = """Rust is a systems programming language that runs blazingly fast, prevents segfaults, + and guarantees thread safety.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://static.rust-lang.org/dist/'] +sources = ['rustc-%(version)s-src.tar.gz'] +checksums = ['3a6f23a26d0e8f87abbfbf32c5cd7daa0c0b71d0986abefc56b9a5fbfbd0bf98'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('CMake', '3.20.1'), +] + +dependencies = [ + ('OpenSSL', '1.1', '', True), +] + +configopts = "--enable-extended --sysconfdir=%(installdir)s/etc " + +# avoid build dependency on Ninja, which requires Python, +# since Rust is a build dependency for cryptography that is included with Python +configopts += "--set=llvm.ninja=false " + +# avoid failure when home directory is an NFS mount, +# see https://github.com/rust-lang/cargo/issues/6652 +prebuildopts = "export CARGO_HOME=%(builddir)s/cargo && " +preinstallopts = prebuildopts + +sanity_check_paths = { + 'files': ['bin/cargo', 'bin/rustc', 'bin/rustdoc'], + 'dirs': ['lib/rustlib', 'share/doc', 'share/man'], +} + +sanity_check_commands = [ + "cargo --version", + "rustc --version", +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/r/rMATS-turbo/rMATS-turbo-4.1.1-foss-2020b.eb b/easybuild/easyconfigs/r/rMATS-turbo/rMATS-turbo-4.1.1-foss-2020b.eb new file mode 100644 index 00000000000..c4ab2d228d0 --- /dev/null +++ b/easybuild/easyconfigs/r/rMATS-turbo/rMATS-turbo-4.1.1-foss-2020b.eb @@ -0,0 +1,68 @@ +easyblock = 'Bundle' + +name = 'rMATS-turbo' +version = '4.1.1' + +homepage = 'https://github.com/Xinglab/rmats-turbo' +description = """rMATS turbo is the C/Cython version of rMATS (refer to http://rnaseq-mats.sourceforge.net).""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +builddependencies = [ + ('CMake', '3.18.4'), +] +dependencies = [ + ('Python', '3.8.6'), + ('GSL', '2.6'), + ('SAMtools', '1.11'), + ('STAR', '2.7.6a'), + ('BamTools', '2.5.1'), +] + +local_ldflags = " -lm -lgfortran -lgsl -lgslcblas -lgomp -lopenblas $LIBLAPACK " +local_buildopts = ' CC="$CC" CXX="$CXX" FC="$FC" LDFLAGS="%s"' % local_ldflags + +default_component_specs = { + 'sources': ['v%(version)s.tar.gz'], + 'source_urls': ['https://github.com/Xinglab/%(name)s/archive/refs/tags/'], + 'checksums': ['cdfde24b68be0b41b4ca43e5414d3c292deb7efd617d7ee2315e2d6e6bcb1c92'], +} + +components = [ + (name, version, { + 'easyblock': 'MakeCp', + 'start_dir': 'rmats-turbo-%(version)s/rMATS_C', + 'buildopts': "%s" % local_buildopts, + 'files_to_copy': [(['rMATSexe', '../rmats.py'], 'bin')], + }), + ('rmats-turbo-python', version, { + 'easyblock': 'PythonPackage', + 'patches': [('rMATS-turbo-%(version)s_bamtools_as_dependency.patch')], + 'checksums': [ + 'cdfde24b68be0b41b4ca43e5414d3c292deb7efd617d7ee2315e2d6e6bcb1c92', + 'e3b4d6a8d612a909cb9b920a7770406955f093b2788f6d7bf6ccab5527eda86a', + ], + 'start_dir': 'rmats-turbo-%(version)s/rMATS_pipeline', + 'use_pip': True, + 'download_dep_fail': True, + 'sanity_pip_check': True, + 'options': {'modulename': 'rmatspipeline'}, + }), +] + +modextrapaths = { + 'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages'] +} + +postinstallcmds = ["chmod a+x %(installdir)s/bin/rmats.py"] + +sanity_check_commands = [ + 'rmats.py --version', +] + +sanity_check_paths = { + 'files': ['bin/rMATSexe', 'bin/rmats.py'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/r/rMATS-turbo/rMATS-turbo-4.1.1_bamtools_as_dependency.patch b/easybuild/easyconfigs/r/rMATS-turbo/rMATS-turbo-4.1.1_bamtools_as_dependency.patch new file mode 100644 index 00000000000..94041816293 --- /dev/null +++ b/easybuild/easyconfigs/r/rMATS-turbo/rMATS-turbo-4.1.1_bamtools_as_dependency.patch @@ -0,0 +1,36 @@ +# author: Denis Kristak +# this patch makes rMATS take bamtools from official dependencies, not from the downloaded folder +diff -ruN rmats-turbo-4.1.1_orig/rMATS_pipeline/setup.py rmats-turbo-4.1.1/rMATS_pipeline/setup.py +--- rmats-turbo-4.1.1_orig/rMATS_pipeline/setup.py 2021-05-27 11:08:08.467275054 +0200 ++++ rmats-turbo-4.1.1/rMATS_pipeline/setup.py 2021-05-28 16:18:06.005617527 +0200 +@@ -4,15 +4,16 @@ + from Cython.Build import cythonize + from Cython.Distutils import build_ext + +-bamtools_include = [os.path.abspath('../bamtools/include'),] +-bamtools_lib = [os.path.abspath('../bamtools/lib'),] ++bamtools_root = os.environ['EBROOTBAMTOOLS'] ++bamtools_include = bamtools_root + '/include/bamtools' ++bamtools_lib = bamtools_root + '/lib' + source_pattern = 'rmatspipeline/%s.pyx' + + asevent_ext = [ +- Extension('rmats.rmatspipeline', sources=[source_pattern % "rmatspipeline"], +- include_dirs=bamtools_include, ++ Extension('rmatspipeline', sources=[source_pattern % "rmatspipeline"], ++ include_dirs=[bamtools_include,], + libraries=['m','stdc++','bamtools','z'], +- library_dirs=bamtools_lib, ++ library_dirs=[bamtools_lib,], + extra_compile_args = ['-O3', '-funroll-loops', + '-std=c++11', '-fopenmp', + '-D__STDC_CONSTANT_MACROS', +@@ -25,7 +26,7 @@ + ] + + setup( +- name = 'rmats.rmatspipeline', ++ name = 'rmatspipeline', + ext_modules = cythonize(asevent_ext), + cmdclass = {'build_ext': build_ext}, + ) diff --git a/easybuild/easyconfigs/r/rasterio/rasterio-1.2.3-foss-2020b.eb b/easybuild/easyconfigs/r/rasterio/rasterio-1.2.3-foss-2020b.eb new file mode 100644 index 00000000000..1589973f778 --- /dev/null +++ b/easybuild/easyconfigs/r/rasterio/rasterio-1.2.3-foss-2020b.eb @@ -0,0 +1,64 @@ +easyblock = 'PythonBundle' + +name = 'rasterio' +version = '1.2.3' + +homepage = 'https://github.com/mapbox/rasterio' +description = "Rasterio reads and writes geospatial raster data." + +toolchain = {'name': 'foss', 'version': '2020b'} + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), # for numpy + ('matplotlib', '3.3.3'), + ('GDAL', '3.2.1'), +] + +use_pip = True + +exts_list = [ + ('affine', '2.3.0', { + 'checksums': ['2e045def1aa29e613c42e801a7e10e0b9bacfed1a7c6af0cadf8843530a15102'], + }), + ('jmespath', '0.10.0', { + 'checksums': ['b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9'], + }), + ('botocore', '1.20.61', { + 'checksums': ['c765ddd0648e32b375ced8b82bfcc3f8437107278b2d2c73b7da7f41297b5388'], + }), + ('s3transfer', '0.4.2', { + 'checksums': ['cb022f4b16551edebbb31a377d3f09600dbada7363d8c5db7976e7f47732e1b2'], + }), + ('boto3', '1.17.61', { + 'checksums': ['35b099fa55f5db6e99a92855b9f320736121ae985340adfc73bc46fb443809e9'], + }), + ('click-plugins', '1.1.1', { + 'checksums': ['46ab999744a9d831159c3411bb0c79346d94a444df9a3a3742e9ed63645f264b'], + }), + ('cligj', '0.7.1', { + 'checksums': ['b2f1f7247d59a5387bd3013a08b9ed6829e96fafa4a6e6292341efdb46fe6220'], + }), + ('snuggs', '1.4.7', { + 'checksums': ['501cf113fe3892e14e2fee76da5cd0606b7e149c411c271898e6259ebde2617b'], + }), + (name, version, { + 'checksums': ['d8c345e01052b70ac3bbbe100c83def813c0ab19f7412c2c98e553d03720c1c5'], + }), +] + +fix_python_shebang_for = ['bin/jp.py', 'bin/rio'] + +sanity_check_paths = { + 'files': ['bin/rio'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + "jp.py --help", + "rio --help", +] + +sanity_pip_check = True + +moduleclass = 'geo' diff --git a/easybuild/easyconfigs/r/rclone/rclone-1.54.1-amd64.eb b/easybuild/easyconfigs/r/rclone/rclone-1.54.1-amd64.eb new file mode 100644 index 00000000000..59d352fb20d --- /dev/null +++ b/easybuild/easyconfigs/r/rclone/rclone-1.54.1-amd64.eb @@ -0,0 +1,37 @@ +# Authors:: Jack Perdue - TAMU HPRC - https://hprc.tamu.edu + +easyblock = 'MakeCp' + +name = 'rclone' +version = '1.54.1' +versionsuffix = '-amd64' + +homepage = 'https://rclone.org/' + +description = """ + Rclone is a command line program to sync files and directories to and from + a variety of online storage services +""" + +toolchain = SYSTEM + +source_urls = ['https://downloads.%(name)s.org/v%(version)s/'] +sources = ['%(name)s-v%(version)s-linux%(versionsuffix)s.zip'] +checksums = ['c52cbf3646a2d15765b87cf05fc3b2bca3b1d2782d4922046c597bd979e42720'] + +skipsteps = ['build'] + +files_to_copy = [ + (['rclone'], 'bin'), + (['rclone.1'], 'share/man/man1'), + (['README.*'], 'share/doc'), +] + +sanity_check_paths = { + 'files': ['bin/rclone', 'share/doc/README.txt', 'share/man/man1/rclone.1'], + 'dirs': [] +} + +sanity_check_commands = ['rclone --help'] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/r/re2c/re2c-2.1.1-GCCcore-10.3.0.eb b/easybuild/easyconfigs/r/re2c/re2c-2.1.1-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..6e72325a38c --- /dev/null +++ b/easybuild/easyconfigs/r/re2c/re2c-2.1.1-GCCcore-10.3.0.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 're2c' +version = '2.1.1' + +homepage = 'https://re2c.org/' +description = """re2c is a free and open-source lexer generator for C and C++. Its main goal is generating +fast lexers: at least as fast as their reasonably optimized hand-coded counterparts. Instead of using +traditional table-driven approach, re2c encodes the generated finite state automata directly in the form +of conditional jumps and comparisons.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://github.com/skvadrik/re2c/releases/download/%(version)s'] +sources = ['%(name)s-%(version)s.tar.xz'] +checksums = ['036ee264fafd5423141ebd628890775aa9447a4c4068a6307385d7366fe711f8'] + +builddependencies = [('binutils', '2.36.1')] + +sanity_check_paths = { + 'files': ['bin/re2c'], + 'dirs': [], +} + +sanity_check_commands = ["re2c --help"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/r/request/request-2.88.1-fosscuda-2020b-nodejs-12.19.0.eb b/easybuild/easyconfigs/r/request/request-2.88.1-fosscuda-2020b-nodejs-12.19.0.eb new file mode 100644 index 00000000000..a7e257c4ff7 --- /dev/null +++ b/easybuild/easyconfigs/r/request/request-2.88.1-fosscuda-2020b-nodejs-12.19.0.eb @@ -0,0 +1,31 @@ +# Author: Denis Krišťák (INUITS) + +easyblock = 'Binary' + +name = 'request' +version = '2.88.1' +local_nodejsver = '12.19.0' +versionsuffix = '-nodejs-%s' % local_nodejsver + +homepage = 'https://github.com/request/request/' +description = """Request is designed to be the simplest way possible to make http calls. + It supports HTTPS and follows redirects by default.""" + +toolchain = {'name': 'fosscuda', 'version': '2020b'} + +source_urls = ['https://github.com/request/request/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['6506ec33a673f6a5542a950be65b02b23c8e8cda21847c19ee67dee4fdc7adc4'] + +dependencies = [ + ('nodejs', local_nodejsver), +] + +install_cmd = 'npm install --prefix %(installdir)s -g v%(version)s.tar.gz' + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/node_modules/%(namelower)s'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/SCons/SCons-4.1.0.post1-GCCcore-10.2.0.eb b/easybuild/easyconfigs/s/SCons/SCons-4.1.0.post1-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..6d851b6b514 --- /dev/null +++ b/easybuild/easyconfigs/s/SCons/SCons-4.1.0.post1-GCCcore-10.2.0.eb @@ -0,0 +1,33 @@ +easyblock = 'PythonPackage' + +name = 'SCons' +version = '4.1.0.post1' + +homepage = 'https://www.scons.org/' +description = "SCons is a software construction tool." + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['ecb062482b9d80319b56758c0341eb717735437f86a575bac3552804428bd73e'] + +builddependencies = [('binutils', '2.35')] + +dependencies = [('Python', '3.8.6')] + +download_dep_fail = True +use_pip = True + +sanity_check_paths = { + 'files': ['bin/scons', 'bin/sconsign'], + 'dirs': [], +} + +sanity_check_commands = ["scons --help"] + +sanity_pip_check = True + +# no Python module to import during sanity check +options = {'modulename': False} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/s/SPAdes/SPAdes-3.15.2-GCC-10.2.0-Python-2.7.18.eb b/easybuild/easyconfigs/s/SPAdes/SPAdes-3.15.2-GCC-10.2.0-Python-2.7.18.eb new file mode 100644 index 00000000000..54ab5e1ceb0 --- /dev/null +++ b/easybuild/easyconfigs/s/SPAdes/SPAdes-3.15.2-GCC-10.2.0-Python-2.7.18.eb @@ -0,0 +1,47 @@ +# 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 +# 3.9.0: +# Modified by: +# Adam Huffman +# The Francis Crick Institute + +easyblock = 'CMakeMake' + +name = 'SPAdes' +version = '3.15.2' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://cab.spbu.ru/software/spades/' +description = "Genome assembler for single-cell and isolates data sets" + +toolchain = {'name': 'GCC', 'version': '10.2.0'} + +source_urls = ['http://cab.spbu.ru/files/release%(version)s'] +sources = [SOURCE_TAR_GZ] +checksums = ['e93b43951a814dc7bd6a246e1e863bbad6aac4bfe1928569402c131b2af99d0d'] + +builddependencies = [ + ('CMake', '3.18.4'), +] +dependencies = [ + ('Python', '2.7.18'), + ('zlib', '1.2.11'), + ('bzip2', '1.0.8'), + ('libreadline', '8.0'), +] + +start_dir = 'src' + +configopts = " -DBoost_NO_BOOST_CMAKE=ON" + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['spades-bwa', 'spades-core', 'spades-gbuilder', 'spades-hammer', + 'spades-ionhammer', 'spades-kmercount', 'spades.py']], + 'dirs': [], +} + +sanity_check_commands = [('%(namelower)s.py', '--test')] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/SQLite/SQLite-3.35.4-GCCcore-10.3.0.eb b/easybuild/easyconfigs/s/SQLite/SQLite-3.35.4-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..23c19526514 --- /dev/null +++ b/easybuild/easyconfigs/s/SQLite/SQLite-3.35.4-GCCcore-10.3.0.eb @@ -0,0 +1,40 @@ +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.35.4' +local_filename_version = '3350400' + +homepage = 'https://www.sqlite.org/' +description = "SQLite: SQL Database Engine in a C Library" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://www.sqlite.org/2021/'] +sources = ['%%(namelower)s-autoconf-%s.tar.gz' % (local_filename_version)] +checksums = ['7771525dff0185bfe9638ccce23faa0e1451757ddbda5a6c853bb80b923a512d'] + +builddependencies = [ + ('binutils', '2.36.1'), +] +dependencies = [ + ('libreadline', '8.1'), + ('Tcl', '8.6.11'), +] + +# 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/SRPRISM/SRPRISM-3.1.2-GCCcore-10.2.0.eb b/easybuild/easyconfigs/s/SRPRISM/SRPRISM-3.1.2-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..41984431bdc --- /dev/null +++ b/easybuild/easyconfigs/s/SRPRISM/SRPRISM-3.1.2-GCCcore-10.2.0.eb @@ -0,0 +1,35 @@ +easyblock = 'MakeCp' + +name = 'SRPRISM' +version = '3.1.2' + +homepage = 'https://github.com/ncbi/SRPRISM' +description = "Single Read Paired Read Indel Substitution Minimizer" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['https://github.com/ncbi/SRPRISM/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['93e6864b7ab18be96584950227426102b545db7d6d02762490a43e1610b7eb9b'] + +builddependencies = [('binutils', '2.35')] + +dependencies = [ + ('Java', '11', '', True), + ('NGS', '2.10.9'), + ('bzip2', '1.0.8'), +] + +prebuildopts = "cd srprism/lib && " +buildopts = " && cd ../app && make" + +files_to_copy = [(['srprism/app/srprism'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/srprism'], + 'dirs': [], +} + +sanity_check_commands = ["srprism help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/SSW/SSW-1.1-GCCcore-9.3.0.eb b/easybuild/easyconfigs/s/SSW/SSW-1.1-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..29d94fb7c6e --- /dev/null +++ b/easybuild/easyconfigs/s/SSW/SSW-1.1-GCCcore-9.3.0.eb @@ -0,0 +1,48 @@ +# Author: Jasper Grimm (UoY) + +easyblock = 'MakeCp' + +name = 'SSW' +version = '1.1' + +homepage = 'https://github.com/mengyao/Complete-Striped-Smith-Waterman-Library' +description = """SSW is a fast implementation of the Smith-Waterman algorithm, which uses the + Single-Instruction Multiple-Data (SIMD) instructions to parallelize the algorithm at the + instruction level. SSW library provides an API that can be flexibly used by programs written in + C, C++ and other languages. We also provide a software that can do protein and genome alignment + directly. Current version of our implementation is ~50 times faster than an ordinary + Smith-Waterman. It can return the Smith-Waterman score, alignment location and traceback path + (cigar) of the optimal alignment accurately; and return the sub-optimal alignment score and + location heuristically. +""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} + +source_urls = ['https://github.com/mengyao/Complete-Striped-Smith-Waterman-Library/archive'] +sources = ['v%(version)s.tar.gz'] +patches = ['%(name)s-1.1_build-cpp-lib.patch'] +checksums = [ + 'cdbc20740daeb188ed39413ea5ff9ae4cf72c4d7ccff1d2de2cac0446d64d99f', # v1.1.tar.gz + 'fe0d1f536ecd526dda8879b2f41b62c3c82b39d236f023ee735c1c18d584f06a', # SSW-1.1_build-cpp-lib.patch +] + +builddependencies = [('binutils', '2.34')] + +dependencies = [('zlib', '1.2.11')] + +start_dir = 'src' + +buildopts = 'default' + +files_to_copy = [ + (['ssw_test'], 'bin'), + (['*.%s*' % SHLIB_EXT], 'lib'), + (['*.h'], 'include/ssw'), +] + +sanity_check_paths = { + 'files': ['bin/ssw_test', 'lib/libssw.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/s/SSW/SSW-1.1_build-cpp-lib.patch b/easybuild/easyconfigs/s/SSW/SSW-1.1_build-cpp-lib.patch new file mode 100644 index 00000000000..04f1063e190 --- /dev/null +++ b/easybuild/easyconfigs/s/SSW/SSW-1.1_build-cpp-lib.patch @@ -0,0 +1,76 @@ +Patch created by Jasper Grimm (UoY) +Fix typo (JAVA_INLCUDES -> JAVA_INCLUDES) +Build dynamic library as well as static +Add ssw_cpp.* to library targets +Respect CPPFLAGS +diff -Nru SSW.orig/src/Makefile SSW/src/Makefile +--- SSW.orig/src/Makefile 2021-05-12 11:59:18.000000000 +0100 ++++ SSW/src/Makefile 2021-05-12 12:33:30.000000000 +0100 +@@ -1,16 +1,17 @@ +-CC = gcc +-CXX = g++ +-CFLAGS := -Wall -pipe -O2 +-CXXFLAGS := $(CFLAGS) ++CC ?= gcc ++CXX ?= g++ ++#CFLAGS := -Wall -pipe -O2 ++#CXXFLAGS := $(CFLAGS) + LOBJS = ssw.o + LCPPOBJS = ssw_cpp.o + PROG = ssw_test +-LIB = libssw.so ++SOVERSION = 0 ++LIB = libssw.so.$(SOVERSION) + EXAMPLE = example_c + EXAMPLE_CPP = example_cpp + JAVA_JAR = ssw.jar + JAVA_LIB = libsswjni.so +-JAVA_INLCUDES = -I"$(JAVA_HOME)/include" -I"$(JAVA_HOME)/include/linux" ++JAVA_INCLUDES = -I"$(JAVA_HOME)/include" -I"$(JAVA_HOME)/include/linux" + JAVA_OBJ = ssw/Aligner.class ssw/Alignment.class ssw/Example.class + + .PHONY: all default java clean +@@ -23,21 +24,23 @@ + + java: $(JAVA_JAR) $(JAVA_LIB) + +-$(LIB): ssw.c ssw.h +- $(CC) $(CFLAGS) -fPIC -shared -rdynamic -o $@ $< ++$(LIB): ssw.c ssw.h ssw_cpp.h ssw_cpp.cpp ++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -shared -rdynamic -Wl,-soname,$(LIB) -o $@ $^ $(LDFLAGS) ++ ln -sf $(LIB) libssw.so + +-$(PROG): main.c kseq.h ++$(PROG): main.c kseq.h $(LIB) ++ $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ main.c kseq.h -L. -lssw -lm -lz $(LDFLAGS) + + $(EXAMPLE): example.c + +-$(PROG) $(EXAMPLE): $(LOBJS) +- $(CC) -o $@ $(filter-out %.h,$^) $(CFLAGS) -lm -lz ++$(EXAMPLE): $(LOBJS) ++ $(CC) -o $@ $(filter-out %.h,$^) $(CPPFLAGS) $(CFLAGS) -lm -lz $(LDFLAGS) + + $(EXAMPLE_CPP): example.cpp $(LOBJS) $(LCPPOBJS) +- $(CXX) -o $@ $^ $(CXXFLAGS) -lm -lz ++ $(CXX) -o $@ $^ $(CPPFLAGS) $(CXXFLAGS) -lm -lz $(LDFLAGS) + + $(JAVA_LIB): sswjni.c ssw.c ssw.h +- $(CC) $(CFLAGS) $(JAVA_INLCUDES) -fPIC -shared -rdynamic -o $@ $< ssw.c ++ $(CC) $(CPPFLAGS) $(CFLAGS) $(JAVA_INCLUDES) -fPIC -shared -rdynamic -o $@ $< ssw.c $(LDFLAGS) + + $(JAVA_JAR): $(JAVA_OBJ) + jar cvfe $@ ssw.Example $^ +@@ -46,10 +49,10 @@ + javac -cp ./ $< + + ssw.o: ssw.c ssw.h +- $(CC) -c -o $@ $< $(CFLAGS) ++ $(CC) -c -o $@ $< $(CPPFLAGS) $(CFLAGS) + + ssw_cpp.o: ssw_cpp.cpp ssw_cpp.h ssw.h +- $(CXX) -c -o $@ $< $(CXXFLAGS) ++ $(CXX) -c -o $@ $< $(CPPFLAGS) $(CXXFLAGS) + + clean: + -rm -f $(LOBJS) $(LCPPOBJS) $(PROG) $(LIB) $(EXAMPLE) $(EXAMPLE_CPP) $(JAVA_LIB) $(JAVA_JAR) $(JAVA_OBJ) *~ diff --git a/easybuild/easyconfigs/s/STREAM/STREAM-5.10-GCC-7.3.0-2.30.eb b/easybuild/easyconfigs/s/STREAM/STREAM-5.10-GCC-7.3.0-2.30.eb index 95cce1801a9..09477c184e8 100644 --- a/easybuild/easyconfigs/s/STREAM/STREAM-5.10-GCC-7.3.0-2.30.eb +++ b/easybuild/easyconfigs/s/STREAM/STREAM-5.10-GCC-7.3.0-2.30.eb @@ -11,11 +11,9 @@ toolchain = {'name': 'GCC', 'version': '7.3.0-2.30'} toolchainopts = {'openmp': True} source_urls = ['https://www.cs.virginia.edu/stream/FTP/Code/'] -sources = [{'download_filename': '%(namelower)s.c', 'filename': 'stream-%(version)s.c'}] +sources = [{'download_filename': '%(namelower)s.c', 'filename': 'stream-%(version)s.c', 'extract_cmd': "cp %s ."}] checksums = ['a52bae5e175bea3f7832112af9c085adab47117f7d2ce219165379849231692b'] -skipsteps = ['source'] - # 10 million array elements (1000 runs): requires ~224MB of memory local_cmds = "$CC $CFLAGS %(source)s -mcmodel=large -DSTREAM_ARRAY_SIZE=10000000 -DNTIMES=1000 -o stream_1Kx10M; " # 100 million array elements (1000 runs): requires ~2.2GiB of memory diff --git a/easybuild/easyconfigs/s/STREAM/STREAM-5.10-GCC-8.2.0-2.31.1.eb b/easybuild/easyconfigs/s/STREAM/STREAM-5.10-GCC-8.2.0-2.31.1.eb index 2b361a4bef2..a7f092135b7 100644 --- a/easybuild/easyconfigs/s/STREAM/STREAM-5.10-GCC-8.2.0-2.31.1.eb +++ b/easybuild/easyconfigs/s/STREAM/STREAM-5.10-GCC-8.2.0-2.31.1.eb @@ -11,11 +11,9 @@ toolchain = {'name': 'GCC', 'version': '8.2.0-2.31.1'} toolchainopts = {'openmp': True} source_urls = ['https://www.cs.virginia.edu/stream/FTP/Code/'] -sources = [{'download_filename': '%(namelower)s.c', 'filename': 'stream-%(version)s.c'}] +sources = [{'download_filename': '%(namelower)s.c', 'filename': 'stream-%(version)s.c', 'extract_cmd': "cp %s ."}] checksums = ['a52bae5e175bea3f7832112af9c085adab47117f7d2ce219165379849231692b'] -skipsteps = ['source'] - # 10 million array elements (1000 runs): requires ~224MB of memory local_cmds = "$CC $CFLAGS %(source)s -mcmodel=large -DSTREAM_ARRAY_SIZE=10000000 -DNTIMES=1000 -o stream_1Kx10M; " # 100 million array elements (1000 runs): requires ~2.2GiB of memory diff --git a/easybuild/easyconfigs/s/STREAM/STREAM-5.10-GCC-9.3.0.eb b/easybuild/easyconfigs/s/STREAM/STREAM-5.10-GCC-9.3.0.eb index f775913ef4f..eeb11f69171 100644 --- a/easybuild/easyconfigs/s/STREAM/STREAM-5.10-GCC-9.3.0.eb +++ b/easybuild/easyconfigs/s/STREAM/STREAM-5.10-GCC-9.3.0.eb @@ -11,11 +11,9 @@ toolchain = {'name': 'GCC', 'version': '9.3.0'} toolchainopts = {'openmp': True} source_urls = ['https://www.cs.virginia.edu/stream/FTP/Code/'] -sources = [{'download_filename': '%(namelower)s.c', 'filename': 'stream-%(version)s.c'}] +sources = [{'download_filename': '%(namelower)s.c', 'filename': 'stream-%(version)s.c', 'extract_cmd': "cp %s ."}] checksums = ['a52bae5e175bea3f7832112af9c085adab47117f7d2ce219165379849231692b'] -skipsteps = ['source'] - # 10 million array elements (1000 runs): requires ~224MB of memory local_cmds = "$CC $CFLAGS %(source)s -mcmodel=large -DSTREAM_ARRAY_SIZE=10000000 -DNTIMES=1000 -o stream_1Kx10M; " # 100 million array elements (1000 runs): requires ~2.2GiB of memory diff --git a/easybuild/easyconfigs/s/STREAM/STREAM-5.10-iccifort-2020.1.217.eb b/easybuild/easyconfigs/s/STREAM/STREAM-5.10-iccifort-2020.1.217.eb index 3e547e86eea..2c192e46653 100644 --- a/easybuild/easyconfigs/s/STREAM/STREAM-5.10-iccifort-2020.1.217.eb +++ b/easybuild/easyconfigs/s/STREAM/STREAM-5.10-iccifort-2020.1.217.eb @@ -11,11 +11,9 @@ toolchain = {'name': 'iccifort', 'version': '2020.1.217'} toolchainopts = {'openmp': True} source_urls = ['https://www.cs.virginia.edu/stream/FTP/Code/'] -sources = [{'download_filename': '%(namelower)s.c', 'filename': 'stream-%(version)s.c'}] +sources = [{'download_filename': '%(namelower)s.c', 'filename': 'stream-%(version)s.c', 'extract_cmd': "cp %s ."}] checksums = ['a52bae5e175bea3f7832112af9c085adab47117f7d2ce219165379849231692b'] -skipsteps = ['source'] - # 10 million array elements (1000 runs): requires ~224MB of memory local_cmds = "$CC $CFLAGS %(source)s -mcmodel=large -DSTREAM_ARRAY_SIZE=10000000 -DNTIMES=1000 -o stream_1Kx10M; " # 100 million array elements (1000 runs): requires ~2.2GiB of memory diff --git a/easybuild/easyconfigs/s/STREAM/STREAM-5.10-intel-2016b.eb b/easybuild/easyconfigs/s/STREAM/STREAM-5.10-intel-2016b.eb index 77f76cae049..4d95ca3d436 100644 --- a/easybuild/easyconfigs/s/STREAM/STREAM-5.10-intel-2016b.eb +++ b/easybuild/easyconfigs/s/STREAM/STREAM-5.10-intel-2016b.eb @@ -11,11 +11,9 @@ toolchain = {'name': 'intel', 'version': '2016b'} toolchainopts = {'openmp': True} source_urls = ['https://www.cs.virginia.edu/stream/FTP/Code/'] -sources = [{'download_filename': '%(namelower)s.c', 'filename': 'stream-%(version)s.c'}] +sources = [{'download_filename': '%(namelower)s.c', 'filename': 'stream-%(version)s.c', 'extract_cmd': "cp %s ."}] checksums = ['a52bae5e175bea3f7832112af9c085adab47117f7d2ce219165379849231692b'] -skipsteps = ['source'] - # 10 million array elements (1000 runs): requires ~224MB of memory local_cmds = "$CC $CFLAGS %(source)s -mcmodel=large -DSTREAM_ARRAY_SIZE=10000000 -DNTIMES=1000 -o stream_1Kx10M; " # 100 million array elements (1000 runs): requires ~2.2GiB of memory diff --git a/easybuild/easyconfigs/s/STREAM/STREAM-5.10-intel-2018b.eb b/easybuild/easyconfigs/s/STREAM/STREAM-5.10-intel-2018b.eb index 2093f225402..3938098b988 100644 --- a/easybuild/easyconfigs/s/STREAM/STREAM-5.10-intel-2018b.eb +++ b/easybuild/easyconfigs/s/STREAM/STREAM-5.10-intel-2018b.eb @@ -11,11 +11,9 @@ toolchain = {'name': 'intel', 'version': '2018b'} toolchainopts = {'openmp': True} source_urls = ['https://www.cs.virginia.edu/stream/FTP/Code/'] -sources = [{'download_filename': '%(namelower)s.c', 'filename': 'stream-%(version)s.c'}] +sources = [{'download_filename': '%(namelower)s.c', 'filename': 'stream-%(version)s.c', 'extract_cmd': "cp %s ."}] checksums = ['a52bae5e175bea3f7832112af9c085adab47117f7d2ce219165379849231692b'] -skipsteps = ['source'] - # 10 million array elements (1000 runs): requires ~224MB of memory local_cmds = "$CC $CFLAGS %(source)s -mcmodel=large -DSTREAM_ARRAY_SIZE=10000000 -DNTIMES=1000 -o stream_1Kx10M; " # 100 million array elements (1000 runs): requires ~2.2GiB of memory diff --git a/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-5.7.0-fosscuda-2020b.eb b/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-5.7.0-fosscuda-2020b.eb new file mode 100644 index 00000000000..33df49c169e --- /dev/null +++ b/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-5.7.0-fosscuda-2020b.eb @@ -0,0 +1,35 @@ +easyblock = 'CMakeMake' + +name = 'SUNDIALS' +version = '5.7.0' + +homepage = 'https://computation.llnl.gov/projects/sundials' + +description = "SUNDIALS: SUite of Nonlinear and DIfferential/ALgebraic Equation Solvers" + +toolchain = {'name': 'fosscuda', 'version': '2020b'} +toolchainopts = {'openmp': True, 'usempi': True, 'pic': True} + +source_urls = ['https://computation.llnl.gov/projects/sundials/download/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['8d6dd094feccbb8d6ecc41340ec16a65fabac82ed4415023f6d7c1c2390ea2f3'] + +builddependencies = [('CMake', '3.18.4')] + +separate_build_dir = True + +configopts = "-DMPI_ENABLE=ON -DOPENMP_ENABLE=ON -DLAPACK_ENABLE=ON -DCUDA_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/Sambamba/Sambamba-0.8.0-GCC-10.2.0.eb b/easybuild/easyconfigs/s/Sambamba/Sambamba-0.8.0-GCC-10.2.0.eb new file mode 100644 index 00000000000..6198ea51bde --- /dev/null +++ b/easybuild/easyconfigs/s/Sambamba/Sambamba-0.8.0-GCC-10.2.0.eb @@ -0,0 +1,42 @@ +easyblock = 'MakeCp' + +name = 'Sambamba' +version = '0.8.0' + +homepage = 'https://lomereiter.github.io/sambamba/' +description = """Sambamba is a high performance modern robust and fast tool + (and library), written in the D programming language, for working with SAM + and BAM files. Current functionality is an important subset of samtools + functionality, including view, index, sort, markdup, and depth.""" + +toolchain = {'name': 'GCC', 'version': '10.2.0'} + +source_urls = ['https://github.com/biod/sambamba/archive/'] +sources = [{ + 'filename': SOURCE_TAR_GZ, + 'git_config': { + 'url': 'https://github.com/biod', + 'repo_name': 'sambamba', + 'commit': 'cdc5f84', + 'recursive': True, + } +}] +checksums = [None] + +builddependencies = [ + ('LDC', '1.25.1'), + ('Python', '3.8.6'), +] + +files_to_copy = [(['bin/sambamba-%(version)s'], 'bin')] + +postinstallcmds = ["cd %(installdir)s/bin && ln -s sambamba-%(version)s sambamba"] + +sanity_check_paths = { + 'files': ['bin/sambamba'], + 'dirs': [], +} + +sanity_check_commands = ["sambamba 2>&1 | grep '^sambamba %(version)s'"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.1.0-gompi-2021a-fb.eb b/easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.1.0-gompi-2021a-fb.eb new file mode 100644 index 00000000000..50c13d45b30 --- /dev/null +++ b/easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.1.0-gompi-2021a-fb.eb @@ -0,0 +1,43 @@ +name = 'ScaLAPACK' +version = '2.1.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': '2021a'} +toolchainopts = {'pic': True} + +source_urls = [homepage] +sources = [SOURCELOWER_TGZ] +patches = ['ScaLAPACK-%(version)s_fix-GCC-10.patch'] +checksums = [ + '61d9216cf81d246944720cfce96255878a3f85dec13b9351f1fa0fd6768220a6', # scalapack-2.1.0.tgz + 'bbb713c9fcabac802811c7f2c3a957c2d5d19dfd118ed1f6578c1436b82c7c43', # ScaLAPACK-2.1.0_fix-GCC-10.patch +] + +builddependencies = [ + ('CMake', '3.20.1'), +] + +dependencies = [ + ('FlexiBLAS', '3.0.4'), +] + +# 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 +configopts += '-DCMAKE_C_COMPILER=mpicc ' +configopts += '-DCMAKE_Fortran_COMPILER=mpif90 ' +configopts += '-DCMAKE_Fortran_FLAGS="-lpthread -fopenmp $DCMAKE_Fortran_FLAGS" ' + +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/SciPy-bundle/SciPy-bundle-2020.03-foss-2020a-Python-2.7.18.eb b/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2020.03-foss-2020a-Python-2.7.18.eb index 7d5b1c6b9bc..2008968ea5f 100644 --- a/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2020.03-foss-2020a-Python-2.7.18.eb +++ b/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2020.03-foss-2020a-Python-2.7.18.eb @@ -29,7 +29,12 @@ exts_list = [ ], }), ('scipy', '1.2.3', { - 'checksums': ['ecbe6413ca90b8e19f8475bfa303ac001e81b04ec600d17fa7f816271f7cca57'], + 'patches': ['scipy-1.2.3_fix_nan_problem_in_vi.patch'], + 'checksums': [ + 'ecbe6413ca90b8e19f8475bfa303ac001e81b04ec600d17fa7f816271f7cca57', # scipy-1.2.3.tar.gz + # scipy-1.2.3_fix_nan_problem_in_vi.patch + '0513c5d0491a3f062ed024b6aa7b382706e8c42b3a3fdd26ff7a4d305ac9a30d', + ], }), ('mpi4py', '3.0.3', { 'checksums': ['012d716c8b9ed1e513fcc4b18e5af16a8791f51e6d1716baccf988ad355c5a1f'], diff --git a/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2020.03-fosscuda-2020a-Python-2.7.18.eb b/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2020.03-fosscuda-2020a-Python-2.7.18.eb new file mode 100644 index 00000000000..48f30a5b69e --- /dev/null +++ b/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2020.03-fosscuda-2020a-Python-2.7.18.eb @@ -0,0 +1,53 @@ +easyblock = 'PythonBundle' + +name = 'SciPy-bundle' +version = '2020.03' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://python.org/' +description = "Bundle of Python packages for scientific software" + +toolchain = {'name': 'fosscuda', 'version': '2020a'} +toolchainopts = {'pic': True, 'lowopt': True} + +dependencies = [ + ('Python', '2.7.18'), +] + +use_pip = True +sanity_pip_check = True + +# order is important! +exts_list = [ + ('numpy', '1.16.6', { + 'patches': ['numpy-1.16.2_relax-long-complex-test.patch'], + 'source_tmpl': '%(name)s-%(version)s.zip', + 'checksums': [ + 'e5cf3fdf13401885e8eea8170624ec96225e2174eb0c611c6f26dd33b489e3ff', # numpy-1.16.6.zip + # numpy-1.16.2_relax-long-complex-test.patch + '647dd4099c2968489e5103b50bcd1b3d970b5b536af25ec75efe86127dda07bb', + ], + }), + ('scipy', '1.2.3', { + 'patches': ['scipy-1.2.3_fix_nan_problem_in_vi.patch'], + 'checksums': [ + 'ecbe6413ca90b8e19f8475bfa303ac001e81b04ec600d17fa7f816271f7cca57', # scipy-1.2.3.tar.gz + # scipy-1.2.3_fix_nan_problem_in_vi.patch + '0513c5d0491a3f062ed024b6aa7b382706e8c42b3a3fdd26ff7a4d305ac9a30d', + ], + }), + ('mpi4py', '3.0.3', { + 'checksums': ['012d716c8b9ed1e513fcc4b18e5af16a8791f51e6d1716baccf988ad355c5a1f'], + }), + ('pandas', '0.24.2', { + 'checksums': ['4f919f409c433577a501e023943e582c57355d50a724c589e78bc1d551a535a2'], + }), + ('mpmath', '1.1.0', { + 'checksums': ['fc17abe05fbab3382b61a123c398508183406fa132e0223874578e20946499f6'], + }), + ('deap', '1.3.1', { + 'checksums': ['11f54493ceb54aae10dde676577ef59fc52d52f82729d5a12c90b0813c857a2f'], + }), +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2020.11-foss-2020b-Python-2.7.18.eb b/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2020.11-foss-2020b-Python-2.7.18.eb new file mode 100644 index 00000000000..bcceac76a1c --- /dev/null +++ b/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2020.11-foss-2020b-Python-2.7.18.eb @@ -0,0 +1,60 @@ +easyblock = 'PythonBundle' + +name = 'SciPy-bundle' +version = '2020.11' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://python.org/' +description = "Bundle of Python packages for scientific software" + +toolchain = {'name': 'foss', 'version': '2020b'} +toolchainopts = {'pic': True, 'lowopt': True} + +dependencies = [ + ('Python', '2.7.18'), +] + +use_pip = True +sanity_pip_check = True + +# order is important! +exts_list = [ + ('numpy', '1.16.6', { + 'patches': ['numpy-1.16.2_relax-long-complex-test.patch'], + 'source_tmpl': '%(name)s-%(version)s.zip', + 'checksums': [ + 'e5cf3fdf13401885e8eea8170624ec96225e2174eb0c611c6f26dd33b489e3ff', # numpy-1.16.6.zip + # numpy-1.16.2_relax-long-complex-test.patch + '647dd4099c2968489e5103b50bcd1b3d970b5b536af25ec75efe86127dda07bb', + ], + }), + ('scipy', '1.2.3', { + 'patches': ['scipy-1.2.3_fix_nan_problem_in_vi.patch'], + 'checksums': [ + 'ecbe6413ca90b8e19f8475bfa303ac001e81b04ec600d17fa7f816271f7cca57', # scipy-1.2.3.tar.gz + # scipy-1.2.3_fix_nan_problem_in_vi.patch + '0513c5d0491a3f062ed024b6aa7b382706e8c42b3a3fdd26ff7a4d305ac9a30d', + ], + 'prebuildopts': 'export FFLAGS="$FFLAGS -fallow-argument-mismatch" && ', + }), + ('mpi4py', '3.0.3', { + 'checksums': ['012d716c8b9ed1e513fcc4b18e5af16a8791f51e6d1716baccf988ad355c5a1f'], + }), + ('numexpr', '2.7.3', { + 'checksums': ['43616529f9b7d1afc83386f943dc66c4da5e052f00217ba7e3ad8dd1b5f3a825'], + }), + ('Bottleneck', '1.3.2', { + 'checksums': ['20179f0b66359792ea283b69aa16366419132f3b6cf3adadc0c48e2e8118e573'], + }), + ('pandas', '0.24.2', { + 'checksums': ['4f919f409c433577a501e023943e582c57355d50a724c589e78bc1d551a535a2'], + }), + ('mpmath', '1.1.0', { + 'checksums': ['fc17abe05fbab3382b61a123c398508183406fa132e0223874578e20946499f6'], + }), + ('deap', '1.3.1', { + 'checksums': ['11f54493ceb54aae10dde676577ef59fc52d52f82729d5a12c90b0813c857a2f'], + }), +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2021.05-foss-2021a.eb b/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2021.05-foss-2021a.eb new file mode 100644 index 00000000000..cb732c6888a --- /dev/null +++ b/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2021.05-foss-2021a.eb @@ -0,0 +1,62 @@ +easyblock = 'PythonBundle' + +name = 'SciPy-bundle' +version = '2021.05' + +homepage = 'https://python.org/' +description = "Bundle of Python packages for scientific software" + +toolchain = {'name': 'foss', 'version': '2021a'} +toolchainopts = {'pic': True, 'lowopt': True} + +builddependencies = [('hypothesis', '6.13.1')] + +dependencies = [ + ('Python', '3.9.5'), + ('pybind11', '2.6.2'), # required by scipy +] + +use_pip = True + +# order is important! +exts_list = [ + ('numpy', '1.20.3', { + 'sources': [SOURCE_ZIP], + 'patches': [ + 'numpy-1.20.3_skip-ppc-long-complex-test.patch', + 'numpy-1.20.3_xfail-test-nan.patch', + ], + 'checksums': [ + 'e55185e51b18d788e49fe8305fd73ef4470596b33fc2c1ceb304566b99c71a69', # numpy-1.20.3.zip + # numpy-1.20.3_skip-ppc-long-complex-test.patch + '2f9a12e3a352b39076db84a7622fc8f4796abd3cb7f97f71958a495e864659a4', + 'f0ce961f7d79551598e23050d92f46e827e300f6a7e5a6112e58efcc10385d4d', # numpy-1.20.3_xfail-test-nan.patch + ], + }), + ('scipy', '1.6.3', { + 'checksums': ['a75b014d3294fce26852a9d04ea27b5671d86736beb34acdfc05859246260707'], + }), + ('mpi4py', '3.0.3', { + 'checksums': ['012d716c8b9ed1e513fcc4b18e5af16a8791f51e6d1716baccf988ad355c5a1f'], + }), + ('numexpr', '2.7.3', { + 'checksums': ['43616529f9b7d1afc83386f943dc66c4da5e052f00217ba7e3ad8dd1b5f3a825'], + }), + ('Bottleneck', '1.3.2', { + 'checksums': ['20179f0b66359792ea283b69aa16366419132f3b6cf3adadc0c48e2e8118e573'], + }), + ('pandas', '1.2.4', { + 'preinstallopts': """sed -i 's@extra_compile_args = \["-Werror"\]@extra_compile_args = []@g' setup.py && """, + 'checksums': ['649ecab692fade3cbfcf967ff936496b0cfba0af00a55dfaacd82bdda5cb2279'], + }), + ('mpmath', '1.2.1', { + 'checksums': ['79ffb45cf9f4b101a807595bcb3e72e0396202e0b1d25d689134b48c4216a81a'], + }), + ('deap', '1.3.1', { + 'checksums': ['11f54493ceb54aae10dde676577ef59fc52d52f82729d5a12c90b0813c857a2f'], + }), +] + +sanity_pip_check = True + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/s/SciPy-bundle/numpy-1.20.3_skip-ppc-long-complex-test.patch b/easybuild/easyconfigs/s/SciPy-bundle/numpy-1.20.3_skip-ppc-long-complex-test.patch new file mode 100644 index 00000000000..8f080f822f9 --- /dev/null +++ b/easybuild/easyconfigs/s/SciPy-bundle/numpy-1.20.3_skip-ppc-long-complex-test.patch @@ -0,0 +1,37 @@ +Include a PPC detection for the inaccurate trig functions +See https://github.com/numpy/numpy/issues/15763 + +Author: Alexander Grund (TU Dresden), ported to numpy 1.20.3 by Kenneth Hoste (HPC-UGent) + +--- numpy-1.20.3/numpy/core/tests/test_umath.py.orig 2021-05-23 16:30:32.532283122 +0200 ++++ numpy-1.20.3/numpy/core/tests/test_umath.py 2021-05-23 16:35:26.122552207 +0200 +@@ -23,20 +23,25 @@ + + + def bad_arcsinh(): +- """The blocklisted trig functions are not accurate on aarch64 for ++ """The blocklisted trig functions are not accurate on aarch64/PPC for + complex256. Rather than dig through the actual problem skip the + test. This should be fixed when we can move past glibc2.17 + which is the version in manylinux2014 + """ +- x = 1.78e-10 ++ if platform.machine() == 'aarch64': ++ x = 1.78e-10 ++ elif on_powerpc(): ++ x = 2.16e-10 ++ else: ++ return False + v1 = np.arcsinh(np.float128(x)) + v2 = np.arcsinh(np.complex256(x)).real + # The eps for float128 is 1-e33, so this is way bigger + return abs((v1 / v2) - 1.0) > 1e-23 + +-if platform.machine() == 'aarch64' and bad_arcsinh(): ++if bad_arcsinh(): + skip_longcomplex_msg = ('Trig functions of np.longcomplex values known to be ' +- 'inaccurate on aarch64 for some compilation ' ++ 'inaccurate on aarch64 and PPC for some compilation ' + 'configurations, should be fixed by building on a ' + 'platform using glibc>2.17') + else: diff --git a/easybuild/easyconfigs/s/SciPy-bundle/numpy-1.20.3_xfail-test-nan.patch b/easybuild/easyconfigs/s/SciPy-bundle/numpy-1.20.3_xfail-test-nan.patch new file mode 100644 index 00000000000..55c5b6f69b2 --- /dev/null +++ b/easybuild/easyconfigs/s/SciPy-bundle/numpy-1.20.3_xfail-test-nan.patch @@ -0,0 +1,57 @@ +mark test_nan as expected failure (xfail), see https://github.com/numpy/numpy/issues/18914 +and https://github.com/numpy/numpy/pull/18943 + +From acf249e0c663f148ee6389327f0b35298fc14833 Mon Sep 17 00:00:00 2001 +From: Ralf Gommers +Date: Sat, 8 May 2021 14:52:03 +0200 +Subject: [PATCH] TST: xfail `TestCond.test_nan` unconditionally + +This is happening on too many build configurations, and it's not +completely clear if it's just an OpenBLAS version or also depends +on something else. Reported as happening mostly on macOS, but +also on Fedora. +--- + numpy/linalg/tests/test_linalg.py | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/numpy/linalg/tests/test_linalg.py b/numpy/linalg/tests/test_linalg.py +index 8a270f194147..c6e8cdd039f1 100644 +--- a/numpy/linalg/tests/test_linalg.py ++++ b/numpy/linalg/tests/test_linalg.py +@@ -684,7 +684,7 @@ def hermitian(mat): + axes = list(range(mat.ndim)) + axes[-1], axes[-2] = axes[-2], axes[-1] + return np.conj(np.transpose(mat, axes=axes)) +- ++ + assert_almost_equal(np.matmul(u, hermitian(u)), np.broadcast_to(np.eye(u.shape[-1]), u.shape)) + assert_almost_equal(np.matmul(vt, hermitian(vt)), np.broadcast_to(np.eye(vt.shape[-1]), vt.shape)) + assert_equal(np.sort(s)[..., ::-1], s) +@@ -766,6 +766,9 @@ def test_singular(self): + for A, p in itertools.product(As, p_neg): + linalg.cond(A, p) + ++ @pytest.mark.xfail(True, run=False, ++ reason="Platform/LAPACK-dependent failure, " ++ "see gh-18914") + def test_nan(self): + # nans should be passed through, not converted to infs + ps = [None, 1, -1, 2, -2, 'fro'] +@@ -981,7 +984,7 @@ def test_incompatible_dims(self): + linalg.lstsq(A, y, rcond=None) + + +-@pytest.mark.parametrize('dt', [np.dtype(c) for c in '?bBhHiIqQefdgFDGO']) ++@pytest.mark.parametrize('dt', [np.dtype(c) for c in '?bBhHiIqQefdgFDGO']) + class TestMatrixPower: + + rshft_0 = np.eye(4) +@@ -1010,7 +1013,7 @@ def tz(M): + mz = matrix_power(M, 0) + assert_equal(mz, identity_like_generalized(M)) + assert_equal(mz.dtype, M.dtype) +- ++ + for mat in self.rshft_all: + tz(mat.astype(dt)) + if dt != object: diff --git a/easybuild/easyconfigs/s/SciPy-bundle/scipy-1.2.3_fix_nan_problem_in_vi.patch b/easybuild/easyconfigs/s/SciPy-bundle/scipy-1.2.3_fix_nan_problem_in_vi.patch new file mode 100644 index 00000000000..6cfd087f229 --- /dev/null +++ b/easybuild/easyconfigs/s/SciPy-bundle/scipy-1.2.3_fix_nan_problem_in_vi.patch @@ -0,0 +1,21 @@ +MAINT: special: add an explicit NaN check for `iv` arguments + +Taken from https://github.com/scipy/scipy/pull/10675 + +This fixes a problem with test_nan_inputs[iv] when running on SkylakeX + +Åke Sandgren, 2021-04-08 +diff -ru scipy-1.2.3.orig/scipy/special/cephes/scipy_iv.c scipy-1.2.3/scipy/special/cephes/scipy_iv.c +--- scipy-1.2.3.orig/scipy/special/cephes/scipy_iv.c 2020-01-20 21:44:32.000000000 +0100 ++++ scipy-1.2.3/scipy/special/cephes/scipy_iv.c 2021-04-08 17:12:12.615806427 +0200 +@@ -82,6 +82,10 @@ + int sign; + double t, ax, res; + ++ if (npy_isnan(v) || npy_isnan(x)) { ++ return NPY_NAN; ++ } ++ + /* If v is a negative integer, invoke symmetry */ + t = floor(v); + if (v < 0.0) { diff --git a/easybuild/easyconfigs/s/Seaborn/Seaborn-0.11.1-foss-2020b.eb b/easybuild/easyconfigs/s/Seaborn/Seaborn-0.11.1-foss-2020b.eb new file mode 100644 index 00000000000..5b326ff2827 --- /dev/null +++ b/easybuild/easyconfigs/s/Seaborn/Seaborn-0.11.1-foss-2020b.eb @@ -0,0 +1,28 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics (SIB) +# Biozentrum - University of Basel +easyblock = 'PythonPackage' + +name = 'Seaborn' +version = '0.11.1' + +homepage = 'https://seaborn.pydata.org/' +description = """ Seaborn is a Python visualization library based on matplotlib. + It provides a high-level interface for drawing attractive statistical graphics. """ + +toolchain = {'name': 'foss', 'version': '2020b'} + +sources = [SOURCELOWER_TAR_GZ] +checksums = ['44e78eaed937c5a87fc7a892c329a7cc091060b67ebd1d0d306b446a74ba01ad'] + +dependencies = [ + ('Python', '3.8.6'), + ('matplotlib', '3.3.3'), +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/Seaborn/Seaborn-0.11.1-fosscuda-2020b.eb b/easybuild/easyconfigs/s/Seaborn/Seaborn-0.11.1-fosscuda-2020b.eb new file mode 100644 index 00000000000..6f3585c5831 --- /dev/null +++ b/easybuild/easyconfigs/s/Seaborn/Seaborn-0.11.1-fosscuda-2020b.eb @@ -0,0 +1,28 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics (SIB) +# Biozentrum - University of Basel +easyblock = 'PythonPackage' + +name = 'Seaborn' +version = '0.11.1' + +homepage = 'https://seaborn.pydata.org/' +description = """ Seaborn is a Python visualization library based on matplotlib. + It provides a high-level interface for drawing attractive statistical graphics. """ + +toolchain = {'name': 'fosscuda', 'version': '2020b'} + +sources = [SOURCELOWER_TAR_GZ] +checksums = ['44e78eaed937c5a87fc7a892c329a7cc091060b67ebd1d0d306b446a74ba01ad'] + +dependencies = [ + ('Python', '3.8.6'), + ('matplotlib', '3.3.3'), +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/Seaborn/Seaborn-0.9.1-foss-2020b-Python-2.7.18.eb b/easybuild/easyconfigs/s/Seaborn/Seaborn-0.9.1-foss-2020b-Python-2.7.18.eb new file mode 100644 index 00000000000..94387013b41 --- /dev/null +++ b/easybuild/easyconfigs/s/Seaborn/Seaborn-0.9.1-foss-2020b-Python-2.7.18.eb @@ -0,0 +1,29 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics (SIB) +# Biozentrum - University of Basel +easyblock = 'PythonPackage' + +name = 'Seaborn' +version = '0.9.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://seaborn.pydata.org/' +description = """ Seaborn is a Python visualization library based on matplotlib. + It provides a high-level interface for drawing attractive statistical graphics. """ + +toolchain = {'name': 'foss', 'version': '2020b'} + +sources = [SOURCELOWER_TAR_GZ] +checksums = ['da33aa8c20a9a342ce73831d02831a10413f54a05471c7f31edf34f225d456ae'] + +dependencies = [ + ('Python', '2.7.18'), + ('matplotlib', '2.2.5', versionsuffix), +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/SeqAn/SeqAn-2.4.0-GCCcore-10.2.0.eb b/easybuild/easyconfigs/s/SeqAn/SeqAn-2.4.0-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..cb9f064fb0c --- /dev/null +++ b/easybuild/easyconfigs/s/SeqAn/SeqAn-2.4.0-GCCcore-10.2.0.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 + +easyblock = 'CMakeMake' + +name = 'SeqAn' +version = '2.4.0' + +homepage = 'https://github.com/seqan/seqan' + +description = """ + SeqAn is an open source C++ library of efficient algorithms and data structures + for the analysis of sequences with the focus on biological data. +""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['https://github.com/seqan/seqan/archive/'] +sources = ['%(namelower)s-v%(version)s.tar.gz'] +checksums = ['d7084d17729214003e84818e0280a16f223c8f1c6a30eeef040c27e0c0047bd7'] + +builddependencies = [ + ('binutils', '2.35'), + ('CMake', '3.18.4'), + ('Python', '3.8.6'), +] + +dependencies = [ + ('bzip2', '1.0.8'), + ('zlib', '1.2.11'), +] + +separate_build_dir = True + +postinstallcmds = [ + "mkdir -p %(installdir)s/util/cmake", + "cp -a %(builddir)s/seqan-*/util/cmake/seqan-config.cmake %(installdir)s/util/cmake/", + "cp -a %(builddir)s/seqan-*/include %(installdir)s", +] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["gustaf_mate_joining", "mason_materializer", "mason_variator", + "rabema_prepare_sam", "razers3", "seqan_tcoffee", "s4_join", "samcat", "splazers", + "yara_mapper"]] + ['util/cmake/seqan-config.cmake'], + 'dirs': ['include/seqan'], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/SeqLib/SeqLib-1.2.0-GCC-9.3.0.eb b/easybuild/easyconfigs/s/SeqLib/SeqLib-1.2.0-GCC-9.3.0.eb new file mode 100644 index 00000000000..d8960aa8fe7 --- /dev/null +++ b/easybuild/easyconfigs/s/SeqLib/SeqLib-1.2.0-GCC-9.3.0.eb @@ -0,0 +1,49 @@ +# Author: Jasper Grimm (UoY) + +easyblock = 'ConfigureMake' + +name = 'SeqLib' +version = '1.2.0' + +homepage = 'https://github.com/walaj/SeqLib' +description = """C++ interface to HTSlib, BWA-MEM and Fermi.""" + +toolchain = {'name': 'GCC', 'version': '9.3.0'} + +github_account = 'walaj' +source_urls = [GITHUB_SOURCE] +sources = ['%(version)s.tar.gz'] +patches = [ + '%(name)s-%(version_major_minor)s.0_avoid-bwa-fml-namespace-conflict.patch', + '%(name)s-%(version_major_minor)s.0_use-external-deps.patch', +] +checksums = [ + '6892bdb5cae88d8d8acbbfadd351cfa00004bc7c0fd1ae912dc1ff1ccfd61a70', # 1.2.0.tar.gz + # SeqLib-1.2.0_avoid-bwa-fml-namespace-conflict.patch + '9be9229bcf34db8e4bd1fd49614bb55d84c12df263ca7174980f7f4b1bd63da9', + '8a90edf72f95a52c61e4aed62a9a951bbd56f7c668dec326f2d3836f76b0f71d', # SeqLib-1.2.0_use-external-deps.patch +] + +builddependencies = [('Autotools', '20180311')] + +dependencies = [ + ('zlib', '1.2.11'), + ('XZ', '5.2.5'), + ('bzip2', '1.0.8'), + ('JsonCpp', '1.9.4'), + ('BWA', '0.7.17'), + ('HTSlib', '1.10.2'), + ('fermi-lite', '20190320'), + ('SSW', '1.1'), + ('PCRE', '8.44'), +] + +preconfigopts = "autoreconf -i -f && " + +sanity_check_paths = { + 'files': ['bin/seqtools', 'lib/libseqlib.%s' % SHLIB_EXT], + 'dirs': [], +} +sanity_check_commands = ["seqtools"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/SeqLib/SeqLib-1.2.0_avoid-bwa-fml-namespace-conflict.patch b/easybuild/easyconfigs/s/SeqLib/SeqLib-1.2.0_avoid-bwa-fml-namespace-conflict.patch new file mode 100644 index 00000000000..1ed9ca45822 --- /dev/null +++ b/easybuild/easyconfigs/s/SeqLib/SeqLib-1.2.0_avoid-bwa-fml-namespace-conflict.patch @@ -0,0 +1,149 @@ +# From d899734ae0958e0abd660ee3ba3736e2c17b4319 Mon Sep 17 00:00:00 2001 +# From: Andreas Tille +# Date: Fri, 3 Mar 2017 09:46:51 +0100 +# Subject: [PATCH] Avoid name space conflict with official bwa and fermi-lite +# libraries + +diff -Nru SeqLib-1.2.0.orig/SeqLib/BFC.h SeqLib-1.2.0/SeqLib/BFC.h +--- SeqLib-1.2.0.orig/SeqLib/BFC.h 2021-05-10 15:56:45.000000000 +0100 ++++ SeqLib-1.2.0/SeqLib/BFC.h 2021-05-10 16:50:43.000000000 +0100 +@@ -117,7 +117,7 @@ + float kcov; + + // reads to correct in place +- fseq1_t * m_seqs; ++ fml_seq1_t * m_seqs; + + // number of sequeces + size_t n_seqs; +diff -Nru SeqLib-1.2.0.orig/SeqLib/FermiAssembler.h SeqLib-1.2.0/SeqLib/FermiAssembler.h +--- SeqLib-1.2.0.orig/SeqLib/FermiAssembler.h 2021-05-10 15:56:45.000000000 +0100 ++++ SeqLib-1.2.0/SeqLib/FermiAssembler.h 2021-05-10 16:50:43.000000000 +0100 +@@ -124,7 +124,7 @@ + private: + + // reads to assemble +- fseq1_t *m_seqs; ++ fml_seq1_t *m_seqs; + + // size of m_seqs + size_t m; +diff -Nru SeqLib-1.2.0.orig/src/BFC.cpp SeqLib-1.2.0/src/BFC.cpp +--- SeqLib-1.2.0.orig/src/BFC.cpp 2021-05-10 15:56:43.000000000 +0100 ++++ SeqLib-1.2.0/src/BFC.cpp 2021-05-10 16:51:26.000000000 +0100 +@@ -31,6 +31,7 @@ + */ + + #include "SeqLib/BFC.h" ++#include + + #include + #include +@@ -42,12 +43,12 @@ + // do the intial allocation + if (n_seqs == 0 && !m_seqs) { + m_seqs_size = 32; +- m_seqs = (fseq1_t*)malloc(m_seqs_size * sizeof(fseq1_t)); ++ m_seqs = (fml_seq1_t*)malloc(m_seqs_size * sizeof(fml_seq1_t)); + } + // realloc if not enough space + else if (n_seqs >= m_seqs_size) { + m_seqs_size = 2 * m_seqs_size; +- m_seqs = (fseq1_t*)realloc(m_seqs, m_seqs_size * sizeof(fseq1_t)); ++ m_seqs = (fml_seq1_t*)realloc(m_seqs, m_seqs_size * sizeof(fml_seq1_t)); + } + + if (!m_seqs) +@@ -60,7 +61,7 @@ + if (!strlen(seq)) + return false; + +- fseq1_t *s; ++ fml_seq1_t *s; + + s = &m_seqs[n_seqs]; + +@@ -108,13 +109,13 @@ + assert(n_seqs == 0); + assert(m_names.size() == 0); + +- m_seqs = (fseq1_t*)malloc(1 * sizeof(fseq1_t)); ++ m_seqs = (fml_seq1_t*)malloc(1 * sizeof(fml_seq1_t)); + n_seqs = 1; + + //uint64_t size = 0; + //for (std::vector::const_iterator r = v.begin(); r != v.end(); ++r) { + // for (auto& r : v) { +- fseq1_t *s; ++ fml_seq1_t *s; + s = &m_seqs[0]; + s->seq = strdup(str.c_str()); + s->qual = q.empty() || q.length() != str.length() ? NULL : strdup(q.c_str()); +diff -Nru SeqLib-1.2.0.orig/src/FermiAssembler.cpp SeqLib-1.2.0/src/FermiAssembler.cpp +--- SeqLib-1.2.0.orig/src/FermiAssembler.cpp 2021-05-10 15:56:43.000000000 +0100 ++++ SeqLib-1.2.0/src/FermiAssembler.cpp 2021-05-10 16:50:43.000000000 +0100 +@@ -51,13 +51,13 @@ + + // dynamically alloc the memory + if (m <= n_seqs) m = m <= 0 ? 32 : (m * 2); // if out of mem, double it +- m_seqs = (fseq1_t *)realloc(m_seqs, m * sizeof(fseq1_t)); ++ m_seqs = (fml_seq1_t *)realloc(m_seqs, m * sizeof(fml_seq1_t)); + + // add the name + m_names.push_back(r.Name); + + // construct the seq +- fseq1_t *s; ++ fml_seq1_t *s; + s = &m_seqs[n_seqs]; + s->seq = strdup(r.Seq.c_str()); + s->qual = r.Qual.empty() ? NULL : strdup(r.Qual.c_str()); +@@ -70,12 +70,12 @@ + { + // alloc the memory + m = n_seqs + v.size(); +- m_seqs = (fseq1_t *)realloc(m_seqs, m * sizeof(fseq1_t)); ++ m_seqs = (fml_seq1_t *)realloc(m_seqs, m * sizeof(fml_seq1_t)); + + for (UnalignedSequenceVector::const_iterator r = v.begin(); r != v.end(); + ++r) { + m_names.push_back(r->Name); +- fseq1_t *s; ++ fml_seq1_t *s; + + s = &m_seqs[n_seqs]; + +@@ -90,13 +90,13 @@ + { + // alloc the memory + m_seqs = +- (fseq1_t *)realloc(m_seqs, (n_seqs + brv.size()) * sizeof(fseq1_t)); ++ (fml_seq1_t *)realloc(m_seqs, (n_seqs + brv.size()) * sizeof(fml_seq1_t)); + + uint64_t size = 0; + for (BamRecordVector::const_iterator r = brv.begin(); r != brv.end(); + ++r) { + m_names.push_back(r->Qname()); +- fseq1_t *s; ++ fml_seq1_t *s; + + s = &m_seqs[n_seqs]; + +@@ -120,7 +120,7 @@ + if (!m_seqs) return; // already cleared + + for (size_t i = 0; i < n_seqs; ++i) { +- fseq1_t *s = &m_seqs[i]; ++ fml_seq1_t *s = &m_seqs[i]; + if (s->qual) free(s->qual); + s->qual = NULL; + if (s->seq) free(s->seq); +@@ -173,7 +173,7 @@ + { + UnalignedSequenceVector r; + for (size_t i = 0; i < n_seqs; ++i) { +- fseq1_t *s = &m_seqs[i]; ++ fml_seq1_t *s = &m_seqs[i]; + UnalignedSequence read; + if (s->seq) read.Seq = (std::string(s->seq)); + read.Name = m_names[i]; diff --git a/easybuild/easyconfigs/s/SeqLib/SeqLib-1.2.0_use-external-deps.patch b/easybuild/easyconfigs/s/SeqLib/SeqLib-1.2.0_use-external-deps.patch new file mode 100644 index 00000000000..39b81d77a54 --- /dev/null +++ b/easybuild/easyconfigs/s/SeqLib/SeqLib-1.2.0_use-external-deps.patch @@ -0,0 +1,268 @@ +Patch created by Jasper Grimm (UoY) +Fix include statements (correct subdirectory level) +Link external BWA, fermi-lite, SSW instead of building SeqLib shipped versions +Respect CPPFLAGS +Use libtool to build static and dynamic libraries +diff -Nru SeqLib-1.2.0/benchmark/benchmark.cpp SeqLib-1.2.0b/benchmark/benchmark.cpp +--- SeqLib-1.2.0/benchmark/benchmark.cpp 2021-05-11 12:29:50.000000000 +0100 ++++ SeqLib-1.2.0b/benchmark/benchmark.cpp 2021-05-11 16:51:21.000000000 +0100 +@@ -30,11 +30,11 @@ + #ifdef RUN_HTSLIB + #include + extern "C" { +-#include "htslib/htslib/hts.h" +-#include "htslib/htslib/sam.h" +-#include "htslib/htslib/bgzf.h" +-#include "htslib/htslib/kstring.h" +-#include "htslib/htslib/faidx.h" ++#include "htslib/hts.h" ++#include "htslib/sam.h" ++#include "htslib/bgzf.h" ++#include "htslib/kstring.h" ++#include "htslib/faidx.h" + } + #endif + +diff -Nru SeqLib-1.2.0/configure.ac SeqLib-1.2.0b/configure.ac +--- SeqLib-1.2.0/configure.ac 2021-05-10 16:49:50.000000000 +0100 ++++ SeqLib-1.2.0b/configure.ac 2021-05-12 14:25:56.000000000 +0100 +@@ -4,13 +4,19 @@ + AM_INIT_AUTOMAKE(foreign) + AC_CONFIG_SRCDIR([src/BamReader.cpp]) + AC_CONFIG_HEADER([config.h]) ++AC_CONFIG_MACRO_DIRS([m4]) + AM_MAINTAINER_MODE([disable]) + ##m4_include([m4/m4_ax_openmp.m4]) ++LT_INIT ++ ++LIB_VERSION=2 ++ ++AC_SUBST([VERSION]) ++AC_SUBST([LIB_VERSION]) + + # Checks for programs. + AC_PROG_CXX ## test for cpp compiler + AC_PROG_CC ## test for C compiler +-AC_PROG_RANLIB ## required if libraries are built in package + + # Check for headers + AC_LANG([C++]) +@@ -32,6 +38,8 @@ + fail_on_warning="-Werror" + fi + ++PKG_CHECK_MODULES[[hts], [htslib]] ++ + # Set compiler flags. + AC_SUBST(AM_CXXFLAGS, "-g $fail_on_warning -std=c++11 -Wno-unknown-pragmas") + AC_SUBST(CXXFLAGS, "$CXXFLAGS") +diff -Nru SeqLib-1.2.0/Makefile.am SeqLib-1.2.0b/Makefile.am +--- SeqLib-1.2.0/Makefile.am 2021-05-10 16:49:50.000000000 +0100 ++++ SeqLib-1.2.0b/Makefile.am 2021-05-12 17:22:39.000000000 +0100 +@@ -1,8 +1,10 @@ + AUTOMAKE_OPTIONS = foreign +-SUBDIRS = bwa htslib fermi-lite src +- +-install: +- mkdir -p lib && cp src/libseqlib.a fermi-lite/libfml.a bwa/libbwa.a htslib/libhts.a lib +- +-seqtools: +- mkdir -p bin && cd src/seqtools && make && mv seqtools ../../bin ++ACLOCAL_AMFLAGS = -I m4 ++SUBDIRS = src src/seqtools ++nobase_include_HEADERS = SeqLib/BFC.h SeqLib/BWAWrapper.h SeqLib/BamHeader.h SeqLib/BamReader.h \ ++ SeqLib/BamRecord.h SeqLib/BamWalker.h SeqLib/BamWriter.h SeqLib/FastqReader.h \ ++ SeqLib/FermiAssembler.h SeqLib/GenomicRegion.h \ ++ SeqLib/GenomicRegionCollection.cpp SeqLib/GenomicRegionCollection.h \ ++ SeqLib/IntervalTree.h SeqLib/ReadFilter.h SeqLib/RefGenome.h \ ++ SeqLib/SeqLibCommon.h SeqLib/SeqLibUtils.h SeqLib/SeqPlot.h \ ++ SeqLib/ThreadPool.h SeqLib/UnalignedSequence.h SeqLib/aho_corasick.hpp +diff -Nru SeqLib-1.2.0/SeqLib/BamHeader.h SeqLib-1.2.0b/SeqLib/BamHeader.h +--- SeqLib-1.2.0/SeqLib/BamHeader.h 2021-05-11 12:29:50.000000000 +0100 ++++ SeqLib-1.2.0b/SeqLib/BamHeader.h 2021-05-11 16:51:21.000000000 +0100 +@@ -1,10 +1,10 @@ + #ifndef SEQLIB_BAM_HEADER_H__ + #define SEQLIB_BAM_HEADER_H__ + +-#include "htslib/htslib/hts.h" +-#include "htslib/htslib/sam.h" +-#include "htslib/htslib/bgzf.h" +-#include "htslib/htslib/kstring.h" ++#include "htslib/hts.h" ++#include "htslib/sam.h" ++#include "htslib/bgzf.h" ++#include "htslib/kstring.h" + + #include "SeqLib/SeqLibUtils.h" + #include +diff -Nru SeqLib-1.2.0/SeqLib/BamRecord.h SeqLib-1.2.0b/SeqLib/BamRecord.h +--- SeqLib-1.2.0/SeqLib/BamRecord.h 2021-05-11 12:29:50.000000000 +0100 ++++ SeqLib-1.2.0b/SeqLib/BamRecord.h 2021-05-11 16:51:21.000000000 +0100 +@@ -10,11 +10,11 @@ + #include + + extern "C" { +-#include "htslib/htslib/hts.h" +-#include "htslib/htslib/sam.h" +-#include "htslib/htslib/bgzf.h" +-#include "htslib/htslib/kstring.h" +-#include "htslib/htslib/faidx.h" ++#include "htslib/hts.h" ++#include "htslib/sam.h" ++#include "htslib/bgzf.h" ++#include "htslib/kstring.h" ++#include "htslib/faidx.h" + + } + +diff -Nru SeqLib-1.2.0/SeqLib/BFC.h SeqLib-1.2.0b/SeqLib/BFC.h +--- SeqLib-1.2.0/SeqLib/BFC.h 2021-05-11 12:29:51.000000000 +0100 ++++ SeqLib-1.2.0b/SeqLib/BFC.h 2021-05-11 16:51:21.000000000 +0100 +@@ -2,8 +2,8 @@ + #define SEQLIB_BFC_H + + extern "C" { +- #include "fermi-lite/bfc.h" +- #include "fermi-lite/fml.h" ++ #include "fml/bfc.h" ++ #include "fml/fml.h" + } + + #include "SeqLib/BamRecord.h" +diff -Nru SeqLib-1.2.0/SeqLib/FermiAssembler.h SeqLib-1.2.0b/SeqLib/FermiAssembler.h +--- SeqLib-1.2.0/SeqLib/FermiAssembler.h 2021-05-11 12:29:50.000000000 +0100 ++++ SeqLib-1.2.0b/SeqLib/FermiAssembler.h 2021-05-11 16:51:21.000000000 +0100 +@@ -9,9 +9,9 @@ + + extern "C" + { +-#include "fermi-lite/htab.h" +-#include "fermi-lite/fml.h" +-#include "fermi-lite/bfc.h" ++#include "fml/htab.h" ++#include "fml/fml.h" ++#include "fml/bfc.h" + } + namespace SeqLib { + +@@ -80,7 +80,7 @@ + + /** Aggressively trim graph to discard heterozygotes. + * Suggested by lh3 for bacterial assembly +- * @note See: https://github.com/lh3/fermi-lite/blob/master/example.c ++ * @note See: https://github.com/lh3/fml/blob/master/example.c + */ + void SetAggressiveTrim() { opt.mag_opt.flag |= MAG_F_AGGRESSIVE; } + +diff -Nru SeqLib-1.2.0/SeqLib/RefGenome.h SeqLib-1.2.0b/SeqLib/RefGenome.h +--- SeqLib-1.2.0/SeqLib/RefGenome.h 2021-05-11 12:29:51.000000000 +0100 ++++ SeqLib-1.2.0b/SeqLib/RefGenome.h 2021-05-11 16:51:21.000000000 +0100 +@@ -5,7 +5,7 @@ + #include + #include + +-#include "htslib/htslib/faidx.h" ++#include "htslib/faidx.h" + + namespace SeqLib { + +diff -Nru SeqLib-1.2.0/seq_test/Makefile.am SeqLib-1.2.0b/seq_test/Makefile.am +--- SeqLib-1.2.0/seq_test/Makefile.am 2021-05-10 16:49:50.000000000 +0100 ++++ SeqLib-1.2.0b/seq_test/Makefile.am 2021-05-11 16:51:21.000000000 +0100 +@@ -2,17 +2,9 @@ + + AUTOMAKE_OPTIONS = subdir-objects + +-seq_test_CPPFLAGS = \ +- -I../src \ +- -I../htslib \ +- -I.. \ +- -I../fermi-lite --coverage -D_GLIBCXX_USE_CXX11_ABI=0 ++seq_test_CPPFLAGS = $(CPPFLAGS) -I../src -I.. --coverage -D_GLIBCXX_USE_CXX11_ABI=0 + +-seq_test_LDADD = \ +- ../fermi-lite/libfml.a \ +- ../bwa/libbwa.a \ +- ../htslib/libhts.a \ +- -lboost_unit_test_framework -lboost_system -lboost_timer -lboost_chrono -lbz2 -llzma ++seq_test_LDADD = -lboost_unit_test_framework -lboost_system -lboost_timer -lboost_chrono -lbz2 -llzma + + seq_test_LDFLAGS = --coverage -pthread + +@@ -22,4 +14,4 @@ + ../src/ReadFilter.cpp ../src/BamRecord.cpp \ + ../src/BWAWrapper.cpp \ + ../src/RefGenome.cpp ../src/SeqPlot.cpp ../src/BamHeader.cpp \ +- ../src/FermiAssembler.cpp ../src/ssw_cpp.cpp ../src/ssw.c ../src/jsoncpp.cpp ++ ../src/FermiAssembler.cpp + +diff -Nru SeqLib-1.2.0/src/BamRecord.cpp SeqLib-1.2.0b/src/BamRecord.cpp +--- SeqLib-1.2.0/src/BamRecord.cpp 2021-05-11 12:29:49.000000000 +0100 ++++ SeqLib-1.2.0b/src/BamRecord.cpp 2021-05-11 16:51:20.000000000 +0100 +@@ -5,7 +5,7 @@ + #include + #include + +-#include "SeqLib/ssw_cpp.h" ++#include "ssw/ssw_cpp.h" + + #define TAG_DELIMITER "^" + #define CTAG_DELIMITER '^' +diff -Nru SeqLib-1.2.0/src/FermiAssembler.cpp SeqLib-1.2.0b/src/FermiAssembler.cpp +--- SeqLib-1.2.0/src/FermiAssembler.cpp 2021-05-11 12:29:49.000000000 +0100 ++++ SeqLib-1.2.0b/src/FermiAssembler.cpp 2021-05-11 16:51:20.000000000 +0100 +@@ -1,5 +1,5 @@ + #include "SeqLib/FermiAssembler.h" +-#include "fermi-lite/fml.h" ++#include "fml/fml.h" + #define MAG_MIN_NSR_COEF .1 + + namespace SeqLib { +@@ -20,7 +20,7 @@ + } + + // code copied and slightly modified from +- // fermi-lite/misc.c by Heng Li ++ // fml/misc.c by Heng Li + void FermiAssembler::DirectAssemble(float kcov) + { + rld_t *e = fml_seq2fmi(&opt, n_seqs, m_seqs); +diff -Nru SeqLib-1.2.0/src/Makefile.am SeqLib-1.2.0b/src/Makefile.am +--- SeqLib-1.2.0/src/Makefile.am 2021-05-10 16:49:50.000000000 +0100 ++++ SeqLib-1.2.0b/src/Makefile.am 2021-05-12 16:39:37.000000000 +0100 +@@ -1,7 +1,9 @@ +-noinst_LIBRARIES = libseqlib.a ++lib_LTLIBRARIES = libseqlib.la + +-libseqlib_a_CPPFLAGS = -I../htslib -Wno-sign-compare ++libseqlib_la_CPPFLAGS = $(CPPFLAGS) -Wno-sign-compare + +-libseqlib_a_SOURCES = FastqReader.cpp BFC.cpp ReadFilter.cpp SeqPlot.cpp ssw_cpp.cpp ssw.c \ ++libseqlib_la_SOURCES = FastqReader.cpp BFC.cpp ReadFilter.cpp SeqPlot.cpp \ + GenomicRegion.cpp RefGenome.cpp BamWriter.cpp BamReader.cpp \ +- BWAWrapper.cpp BamRecord.cpp FermiAssembler.cpp BamHeader.cpp jsoncpp.cpp ++ BWAWrapper.cpp BamRecord.cpp FermiAssembler.cpp BamHeader.cpp ++ ++libseqlib_la_LDFLAGS = -version-info @LIB_VERSION@ -lbwa -lfml -lhts -ljsoncpp -lssw +diff -Nru SeqLib-1.2.0/src/ReadFilter.cpp SeqLib-1.2.0b/src/ReadFilter.cpp +--- SeqLib-1.2.0/src/ReadFilter.cpp 2021-05-11 12:29:50.000000000 +0100 ++++ SeqLib-1.2.0b/src/ReadFilter.cpp 2021-05-11 16:51:20.000000000 +0100 +@@ -1,7 +1,7 @@ + #include "SeqLib/ReadFilter.h" + + #include +-#include "htslib/htslib/khash.h" ++#include "htslib/khash.h" + + //#define QNAME "D0EN0ACXX111207:7:2306:6903:136511" + //#define QFLAG -1 +diff -Nru SeqLib-1.2.0/src/seqtools/Makefile.am SeqLib-1.2.0b/src/seqtools/Makefile.am +--- SeqLib-1.2.0/src/seqtools/Makefile.am 2021-05-10 16:49:50.000000000 +0100 ++++ SeqLib-1.2.0b/src/seqtools/Makefile.am 2021-05-12 16:42:26.000000000 +0100 +@@ -1,4 +1,4 @@ + bin_PROGRAMS = seqtools + seqtools_SOURCES = seqtools.cpp +-seqtools_LDADD=../libseqlib.a ../../htslib/libhts.a ../../bwa/libbwa.a ../../fermi-lite/libfml.a $(LDFLAGS) +-seqtools_CPPFLAGS=-I../../htslib -I../.. ++seqtools_LDADD=../libseqlib.la $(LDFLAGS) ++seqtools_CPPFLAGS=$(CPPFLAGS) -I../.. diff --git a/easybuild/easyconfigs/s/SeuratData/SeuratData-20210514-foss-2020b-R-4.0.3.eb b/easybuild/easyconfigs/s/SeuratData/SeuratData-20210514-foss-2020b-R-4.0.3.eb new file mode 100644 index 00000000000..bc92c7305ef --- /dev/null +++ b/easybuild/easyconfigs/s/SeuratData/SeuratData-20210514-foss-2020b-R-4.0.3.eb @@ -0,0 +1,31 @@ +easyblock = 'RPackage' + +name = 'SeuratData' +local_commit = 'b59556b' +version = '20210514' +versionsuffix = '-R-%(rver)s' + +homepage = 'https://github.com/satijalab/seurat-data' +description = """SeuratData is a mechanism for distributing datasets in the form of Seurat objects using R's internal +package and data management systems.""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +sources = [{ + 'filename': SOURCE_TAR_GZ, + 'git_config': { + 'url': 'https://github.com/satijalab', + 'repo_name': 'seurat-data', + 'commit': local_commit, + }, +}] +checksums = [None] + +dependencies = [('R', '4.0.3')] + +sanity_check_paths = { + 'files': [], + 'dirs': [name], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/SeuratWrappers/SeuratWrappers-20210528-foss-2020b-R-4.0.3.eb b/easybuild/easyconfigs/s/SeuratWrappers/SeuratWrappers-20210528-foss-2020b-R-4.0.3.eb new file mode 100644 index 00000000000..badc4022ccf --- /dev/null +++ b/easybuild/easyconfigs/s/SeuratWrappers/SeuratWrappers-20210528-foss-2020b-R-4.0.3.eb @@ -0,0 +1,34 @@ +easyblock = 'RPackage' + +name = 'SeuratWrappers' +local_commit = '7b9818d' +version = '20210528' +versionsuffix = '-R-%(rver)s' + +homepage = 'https://github.com/satijalab/seurat-wrappers' +description = "SeuratWrappers is a collection of community-provided methods and extensions for Seurat" + +toolchain = {'name': 'foss', 'version': '2020b'} + +sources = [{ + 'filename': SOURCE_TAR_GZ, + 'git_config': { + 'url': 'https://github.com/satijalab', + 'repo_name': 'seurat-wrappers', + 'commit': local_commit, + }, +}] +checksums = [None] + +dependencies = [ + ('R', '4.0.3'), + ('R-bundle-Bioconductor', '3.12', versionsuffix), + ('Seurat', '4.0.1', versionsuffix), +] + +sanity_check_paths = { + 'files': [], + 'dirs': [name], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/Spark/Spark-3.1.1-foss-2020a-Python-3.8.2.eb b/easybuild/easyconfigs/s/Spark/Spark-3.1.1-foss-2020a-Python-3.8.2.eb new file mode 100644 index 00000000000..5d026d55f62 --- /dev/null +++ b/easybuild/easyconfigs/s/Spark/Spark-3.1.1-foss-2020a-Python-3.8.2.eb @@ -0,0 +1,54 @@ +# Author: Denis Krišťák (INUITS) + +easyblock = 'Tarball' + +name = 'Spark' +version = '3.1.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://spark.apache.org' +description = """Spark is Hadoop MapReduce done in memory""" + +toolchain = {'name': 'foss', 'version': '2020a'} + +source_urls = [ + 'https://downloads.apache.org/%(namelower)s/%(namelower)s-%(version)s/' +] +sources = ['%(namelower)s-%(version)s-bin-hadoop2.7.tgz'] +checksums = ['4e0846207bf10311de43451bc99309086fce7990aaf54bf3038608b1981afbe7'] + +dependencies = [ + ('Python', '3.8.2'), + ('Java', '11', '', True), + # ('Hadoop', '2.10.0', '-native'), + ('Arrow', '0.17.1', versionsuffix), +] + +exts_defaultclass = 'PythonPackage' +exts_default_options = { + 'download_dep_fail': True, + 'use_pip': True, +} + +exts_list = [ + ('py4j', '0.10.9.2', { + 'source_urls': ['https://pypi.python.org/packages/source/%(nameletter)s/%(name)s'], + 'checksums': ['624f97c363b8dd84822bc666b12fa7f7d97824632b2ff3d852cc491359ce7615'], + }), +] + +sanity_check_paths = { + 'files': ['bin/pyspark', 'bin/spark-shell'], + 'dirs': ['python'] +} + +sanity_check_commands = [ + "pyspark -h", + "python -c 'import pyspark'", +] + +modextrapaths = {'PYTHONPATH': ['python', 'lib/python%(pyshortver)s/site-packages']} + +modextravars = {'SPARK_HOME': '%(installdir)s'} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/s/Spyder/Spyder-4.1.5-foss-2020a-Python-3.8.2.eb b/easybuild/easyconfigs/s/Spyder/Spyder-4.1.5-foss-2020a-Python-3.8.2.eb index 9054edef4e5..83982c1baaf 100644 --- a/easybuild/easyconfigs/s/Spyder/Spyder-4.1.5-foss-2020a-Python-3.8.2.eb +++ b/easybuild/easyconfigs/s/Spyder/Spyder-4.1.5-foss-2020a-Python-3.8.2.eb @@ -87,11 +87,9 @@ exts_list = [ }), ('keyring', '21.4.0', { 'checksums': ['9aeadd006a852b78f4b4ef7c7556c2774d2432bbef8ee538a3e9089ac8b11466'], - 'preinstallopts': """sed -i 's/setup()/setup(version="%(version)s")/g' setup.py && """ }), ('keyrings.alt', '4.0.0', { 'checksums': ['f70ef01a8f2b968b83643db370a1e85bc0e4bc8b358f9661504279afb019d21d'], - 'preinstallopts': """sed -i 's/setup()/setup(version="%(version)s")/g' setup.py && """ }), ('lazy-object-proxy', '1.4.3', { 'checksums': ['f3900e8a5de27447acbf900b4750b0ddfd7ec1ea7fbaf11dfa911141bc522af0'], diff --git a/easybuild/easyconfigs/s/Szip/Szip-2.1.1-GCCcore-10.3.0.eb b/easybuild/easyconfigs/s/Szip/Szip-2.1.1-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..10b926a9b61 --- /dev/null +++ b/easybuild/easyconfigs/s/Szip/Szip-2.1.1-GCCcore-10.3.0.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'Szip' +version = '2.1.1' + +homepage = 'https://www.hdfgroup.org/doc_resource/SZIP/' + +description = """ + Szip compression software, providing lossless compression of scientific data +""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://www.hdfgroup.org/ftp/lib-external/szip/%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['21ee958b4f2d4be2c9cabfa5e1a94877043609ce86fde5f286f105f7ff84d412'] + +builddependencies = [ + ('binutils', '2.36.1'), +] + +sanity_check_paths = { + 'files': ["lib/libsz.a", "lib/libsz.%s" % SHLIB_EXT] + + ["include/%s" % x for x in ["ricehdf.h", "szip_adpt.h", "szlib.h"]], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/samblaster/samblaster-0.1.26-GCC-10.2.0.eb b/easybuild/easyconfigs/s/samblaster/samblaster-0.1.26-GCC-10.2.0.eb new file mode 100644 index 00000000000..cc04b3f897d --- /dev/null +++ b/easybuild/easyconfigs/s/samblaster/samblaster-0.1.26-GCC-10.2.0.eb @@ -0,0 +1,37 @@ +# easybuild easyconfig +# +# John Dey jfdey@fredhutch.org fizwit@github.com +easyblock = 'MakeCp' + +name = 'samblaster' +version = '0.1.26' + +description = """samblaster is a fast and flexible program for marking + duplicates in read-id grouped1 paired-end SAM files.""" + +homepage = 'https://github.com/GregoryFaust/samblaster' + +toolchain = {'name': 'GCC', 'version': '10.2.0'} + +source_urls = ['https://github.com/GregoryFaust/samblaster/archive/'] +sources = [{ + 'download_filename': 'v.%(version)s.zip', + 'filename': SOURCE_ZIP +}] +checksums = ['79ff6f8306482e73e04678424bf14b840d80561660bb59deac1b75ada2f330cf'] + +files_to_copy = [ + (["samblaster"], "bin/"), + 'README.md', + 'SAMBLASTER_Supplemental.pdf', + 'LICENSE.txt', +] + +sanity_check_paths = { + 'files': ['bin/samblaster', 'README.md'], + 'dirs': [] +} + +sanity_check_commands = ["samblaster --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/samclip/samclip-0.4.0-GCCcore-9.3.0.eb b/easybuild/easyconfigs/s/samclip/samclip-0.4.0-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..dde39779b92 --- /dev/null +++ b/easybuild/easyconfigs/s/samclip/samclip-0.4.0-GCCcore-9.3.0.eb @@ -0,0 +1,27 @@ +easyblock = 'Tarball' + +name = 'samclip' +version = '0.4.0' + +homepage = 'https://github.com/tseemann/samclip' +description = """Filter SAM file for soft and hard clipped alignments.""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} + +github_account = 'tseemann' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['8196b705b0319b168949f42818eb3a6bcf96119a24daa950fa0d908d3111d127'] + +dependencies = [('Perl', '5.30.2')] + +sanity_check_paths = { + 'files': [name], + 'dirs': [], +} + +sanity_check_commands = ["%(name)s --help"] + +modextrapaths = {'PATH': ''} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/scanpy/scanpy-1.7.2-foss-2020b.eb b/easybuild/easyconfigs/s/scanpy/scanpy-1.7.2-foss-2020b.eb new file mode 100644 index 00000000000..f599ebcc9b6 --- /dev/null +++ b/easybuild/easyconfigs/s/scanpy/scanpy-1.7.2-foss-2020b.eb @@ -0,0 +1,78 @@ +easyblock = 'PythonBundle' + +name = 'scanpy' +version = '1.7.2' + +homepage = 'https://scanpy.readthedocs.io/en/stable/' +description = """Scanpy is a scalable toolkit for analyzing single-cell gene expression data built + jointly with anndata. It includes preprocessing, visualization, clustering, trajectory inference + and differential expression testing. The Python-based implementation efficiently deals with + datasets of more than one million cells. +""" + +toolchain = {'name': 'foss', 'version': '2020b'} +toolchainopts = {'openmp': True} + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), + ('h5py', '3.1.0'), + ('networkx', '2.5'), + ('numba', '0.52.0'), + ('PyTables', '3.6.1'), + ('statsmodels', '0.12.1'), + ('scikit-learn', '0.23.2'), + ('Seaborn', '0.11.1'), + ('tqdm', '4.56.2'), + ('leidenalg', '0.8.3'), +] + +use_pip = True + +exts_list = [ + ('natsort', '7.1.1', { + 'checksums': ['00c603a42365830c4722a2eb7663a25919551217ec09a243d3399fa8dd4ac403'], + }), + ('anndata', '0.7.6', { + 'checksums': ['a3cc67bba9a4cd4b5984aec64c4f577c2d5a4695f4064027f8e6a9dac1f508b2'], + }), + ('patsy', '0.5.1', { + 'checksums': ['f115cec4201e1465cd58b9866b0b0e7b941caafec129869057405bfe5b5e3991'], + }), + ('pynndescent', '0.5.2', { + 'checksums': ['d9fd22210b8d64368376ff392e876fb72fe3cda282396cfa6a59440ab6600771'], + }), + ('umap-learn', '0.3.10', { + 'modulename': 'umap', + 'checksums': ['21ce6b6d7486905318ba6458b5a9ba2cfb935878d30c24e6fba64ee3bd504d09'], + }), + ('get_version', '2.1', { + 'use_pip': False, + 'checksums': ['8156b526c2557537b8ca82241fa2b82b3da25939627398f6567dee31ba9725bc'], + }), + ('legacy-api-wrap', '1.2', { + 'modulename': 'legacy_api_wrap', + 'use_pip': False, + 'checksums': ['034a44612da7e9943d3964363a98937ab54d55e3301075374abe0d521eb8101b'], + }), + ('stdlib-list', '0.8.0', { + 'modulename': 'stdlib_list', + 'checksums': ['a1e503719720d71e2ed70ed809b385c60cd3fb555ba7ec046b96360d30b16d9f'], + }), + ('sinfo', '0.3.1', { + 'checksums': ['e1b2358808aded7b2ff00ea0cd4e6a2d978fb2a44ee9b15ac23d64a81bf62706'], + }), + (name, version, { + 'checksums': ['ad5e7afdf1948753cd27f6f27ee904df1ce455855eec8520985effe86c53c630'], + }), +] + +sanity_pip_check = True + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['natsort', 'scanpy']], + 'dirs': ['lib/python%(pyshortver)s/site-packages/'], +} +sanity_check_commands = ["%(name)s --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/scikit-allel/scikit-allel-1.3.2-foss-2020b.eb b/easybuild/easyconfigs/s/scikit-allel/scikit-allel-1.3.2-foss-2020b.eb new file mode 100644 index 00000000000..092fe559f03 --- /dev/null +++ b/easybuild/easyconfigs/s/scikit-allel/scikit-allel-1.3.2-foss-2020b.eb @@ -0,0 +1,33 @@ +easyblock = "PythonPackage" + +name = 'scikit-allel' +version = '1.3.2' + +homepage = 'https://scikit-allel.readthedocs.io/en/latest/' +description = """This package provides utilities for exploratory analysis of large scale genetic variation data. + It is based on numpy, scipy and other general-purpose Python scientific libraries.""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +sources = [SOURCE_TAR_GZ] +checksums = ['fcb2932038033557fa2ccdf485b54eea3d8a06a2b0a5692a3dc1130b21bb301a'] + +dependencies = [ + ('Python', '3.8.6'), + ('Seaborn', '0.11.1'), + ('h5py', '3.1.0'), + ('SciPy-bundle', '2020.11'), + ('scikit-learn', '0.23.2'), + ('dask', '2021.2.0'), + ('bcolz', '1.2.1'), + ('zarr', '2.8.1'), +] + +download_dep_fail = True +use_pip = True + +options = {'modulename': 'allel'} + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/scikit-build/scikit-build-0.11.1-intel-2020b.eb b/easybuild/easyconfigs/s/scikit-build/scikit-build-0.11.1-intel-2020b.eb new file mode 100644 index 00000000000..be3e7b09c4a --- /dev/null +++ b/easybuild/easyconfigs/s/scikit-build/scikit-build-0.11.1-intel-2020b.eb @@ -0,0 +1,29 @@ +easyblock = 'PythonBundle' + +name = 'scikit-build' +version = '0.11.1' + +homepage = 'https://scikit-build.readthedocs.io/en/latest' +description = """Scikit-Build, or skbuild, is an improved build system generator +for CPython C/C++/Fortran/Cython extensions.""" + +toolchain = {'name': 'intel', 'version': '2020b'} + +dependencies = [ + ('Python', '3.8.6'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('distro', '1.5.0', { + 'checksums': ['0e58756ae38fbd8fc3020d54badb8eae17c5b9dcbed388b17bb55b8a5928df92'], + }), + (name, version, { + 'modulename': 'skbuild', + 'checksums': ['da40dfd69b2456fad1349a894b90180b43712152b8a85d2a00f4ae2ce8ac9a5c'], + }), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/s/scikit-build/scikit-build-0.11.1-intelcuda-2020b.eb b/easybuild/easyconfigs/s/scikit-build/scikit-build-0.11.1-intelcuda-2020b.eb new file mode 100644 index 00000000000..6ed9c54bced --- /dev/null +++ b/easybuild/easyconfigs/s/scikit-build/scikit-build-0.11.1-intelcuda-2020b.eb @@ -0,0 +1,29 @@ +easyblock = 'PythonBundle' + +name = 'scikit-build' +version = '0.11.1' + +homepage = 'https://scikit-build.readthedocs.io/en/latest' +description = """Scikit-Build, or skbuild, is an improved build system generator +for CPython C/C++/Fortran/Cython extensions.""" + +toolchain = {'name': 'intelcuda', 'version': '2020b'} + +dependencies = [ + ('Python', '3.8.6'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('distro', '1.5.0', { + 'checksums': ['0e58756ae38fbd8fc3020d54badb8eae17c5b9dcbed388b17bb55b8a5928df92'], + }), + (name, version, { + 'modulename': 'skbuild', + 'checksums': ['da40dfd69b2456fad1349a894b90180b43712152b8a85d2a00f4ae2ce8ac9a5c'], + }), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/s/scikit-learn/scikit-learn-0.20.4-foss-2020b-Python-2.7.18.eb b/easybuild/easyconfigs/s/scikit-learn/scikit-learn-0.20.4-foss-2020b-Python-2.7.18.eb new file mode 100644 index 00000000000..77f71dfdbfb --- /dev/null +++ b/easybuild/easyconfigs/s/scikit-learn/scikit-learn-0.20.4-foss-2020b-Python-2.7.18.eb @@ -0,0 +1,29 @@ +easyblock = 'PythonPackage' + +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': '2020b'} + +sources = [SOURCE_TAR_GZ] +checksums = ['dfa8a3f33907614030cdfbc8b6f553dacbecaf09f922244f128af3060a137cfc'] + +dependencies = [ + ('Python', '2.7.18'), + ('SciPy-bundle', '2020.11', versionsuffix) +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +options = {'modulename': 'sklearn'} + +moduleclass = 'data' 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 new file mode 100644 index 00000000000..f6c29cfd247 --- /dev/null +++ b/easybuild/easyconfigs/s/segemehl/segemehl-0.3.4-GCC-10.2.0.eb @@ -0,0 +1,38 @@ +easyblock = 'MakeCp' + +name = 'segemehl' +version = '0.3.4' + +homepage = 'https://www.bioinf.uni-leipzig.de/Software/segemehl/' +description = """segemehl is a software to map short sequencer reads to reference genomes. + Unlike other methods, segemehl is able to detect not only mismatches but also insertions + and deletions. Furthermore, segemehl is not limited to a specific read length and is able + to mapprimer- or polyadenylation contaminated reads correctly. segemehl implements a matching + strategy based on enhanced suffix arrays (ESA). Segemehl now supports the SAM format, reads + gziped queries to save both disk and memory space and allows bisulfite sequencing mapping + and split read mapping.""" + +toolchain = {'name': 'GCC', 'version': '10.2.0'} + +source_urls = ['https://www.bioinf.uni-leipzig.de/Software/segemehl/downloads/'] +sources = [SOURCE_TAR_GZ] +checksums = ['e4336f03d0d15126dbb1c6368c7e80421b0c7354f4a6b492d54d7d14cf5a7f51'] + +builddependencies = [('pkg-config', '0.29.2')] + +dependencies = [ + ('HTSlib', '1.11'), + ('ncurses', '6.2'), + ('zlib', '1.2.11'), +] + +buildopts = 'all' + +files_to_copy = [(["haarz.x", "segemehl.x"], "bin")] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["haarz.x", "segemehl.x"]], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/smithwaterman/smithwaterman-20160702-GCCcore-9.3.0.eb b/easybuild/easyconfigs/s/smithwaterman/smithwaterman-20160702-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..a93cddd94f5 --- /dev/null +++ b/easybuild/easyconfigs/s/smithwaterman/smithwaterman-20160702-GCCcore-9.3.0.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'smithwaterman' +version = '20160702' +local_commit = '2610e25' + +homepage = 'https://github.com/ekg/smithwaterman' +description = """smith-waterman-gotoh alignment algorithm.""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} + +github_account = 'ekg' +source_urls = [GITHUB_SOURCE] +sources = ['%s.tar.gz' % local_commit] +patches = ['%(name)s-20160702_build-shared-lib.patch'] +checksums = [ + '8e1b37ab0e8cd9d3d5cbfdba80258c0ebd0862749b531e213f44cdfe2fc541d8', # 2610e25.tar.gz + '2aa63ec5cd0260efcab002eaf4bbf62497b91afc0e3f82d8290496803c35e582', # smithwaterman-20160702_build-shared-lib.patch +] + +builddependencies = [('binutils', '2.34')] + +skipsteps = ['configure'] + +installopts = 'PREFIX=%(installdir)s ' + +sanity_check_paths = { + 'files': ['bin/%(name)s', 'lib/libsw.%s' % SHLIB_EXT], + 'dirs': [], +} + +sanity_check_commands = ["%(name)s --help"] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/s/smithwaterman/smithwaterman-20160702_build-shared-lib.patch b/easybuild/easyconfigs/s/smithwaterman/smithwaterman-20160702_build-shared-lib.patch new file mode 100644 index 00000000000..05f7482081c --- /dev/null +++ b/easybuild/easyconfigs/s/smithwaterman/smithwaterman-20160702_build-shared-lib.patch @@ -0,0 +1,128 @@ +Author: Jasper Grimm (UoY) +Add targets to build shared, static libraries +Add install target +diff -Nru smithwaterman-2610e259611ae4cde8f03c72499d28f03f6d38a7.orig/Makefile smithwaterman-2610e259611ae4cde8f03c72499d28f03f6d38a7/Makefile +--- smithwaterman-2610e259611ae4cde8f03c72499d28f03f6d38a7.orig/Makefile 2021-05-05 12:54:25.000000000 +0100 ++++ smithwaterman-2610e259611ae4cde8f03c72499d28f03f6d38a7/Makefile 2021-05-07 15:43:45.000000000 +0100 +@@ -6,6 +6,7 @@ + # ---------------------------------- + # define our source and object files + # ---------------------------------- ++ + SOURCES= smithwaterman.cpp BandedSmithWaterman.cpp SmithWatermanGotoh.cpp Repeats.cpp LeftAlign.cpp IndelAllele.cpp + OBJECTS= $(SOURCES:.cpp=.o) disorder.o + OBJECTS_NO_MAIN= disorder.o BandedSmithWaterman.o SmithWatermanGotoh.o Repeats.o LeftAlign.o IndelAllele.o +@@ -14,53 +15,68 @@ + # compiler options + # ---------------- + +-# Use ?= to allow overriding from the env or command-line +-CXX?= c++ +-CXXFLAGS?= -O3 +-OBJ?= sw.o +- +-# I don't think := is useful here, since there is nothing to expand +-LDFLAGS:= -Wl,-s +-#CXXFLAGS=-g +-EXE:= smithwaterman +-LIBS= +- +-all: $(EXE) $(OBJ) +- +-.PHONY: all +- +-libsw.a: smithwaterman.o BandedSmithWaterman.o SmithWatermanGotoh.o LeftAlign.o Repeats.o IndelAllele.o disorder.o +- ar rs $@ smithwaterman.o SmithWatermanGotoh.o disorder.o BandedSmithWaterman.o LeftAlign.o Repeats.o IndelAllele.o +- +-sw.o: BandedSmithWaterman.o SmithWatermanGotoh.o LeftAlign.o Repeats.o IndelAllele.o disorder.o +- ld -r $^ -o sw.o -L. +- #$(CXX) $(CFLAGS) -c -o smithwaterman.cpp $(OBJECTS_NO_MAIN) -I. +- +-### @$(CXX) $(LDFLAGS) $(CFLAGS) -o $@ $^ -I. +-$(EXE): smithwaterman.o BandedSmithWaterman.o SmithWatermanGotoh.o disorder.o LeftAlign.o Repeats.o IndelAllele.o +- $(CXX) $(CFLAGS) $^ -I. -o $@ +- +-#smithwaterman: $(OBJECTS) +-# $(CXX) $(CXXFLAGS) -o $@ $< -I. +- +-smithwaterman.o: smithwaterman.cpp disorder.o +- $(CXX) $(CXXFLAGS) -c -o $@ smithwaterman.cpp -I. +- +-disorder.o: disorder.cpp disorder.h +- $(CXX) $(CXXFLAGS) -c -o $@ $< -I. +-BandedSmithWaterman.o: BandedSmithWaterman.cpp BandedSmithWaterman.h +- $(CXX) $(CXXFLAGS) -c -o $@ $< -I. +-SmithWatermanGotoh.o: SmithWatermanGotoh.cpp SmithWatermanGotoh.h disorder.o +- $(CXX) $(CXXFLAGS) -c -o $@ $< -I. +-Repeats.o: Repeats.cpp +- $(CXX) $(CXXFLAGS) -c -o $@ $< -I. +-LeftAlign.o: LeftAlign.cpp +- $(CXX) $(CXXFLAGS) -c -o $@ $< -I. +-IndelAllele.o: IndelAllele.cpp +- $(CXX) $(CXXFLAGS) -c -o $@ $< -I. ++# Use ?= to allow overriding from the env or command-line, e.g. ++# ++# make CXXFLAGS="-O3 -fPIC" install ++# ++# Package managers will override many of these variables automatically, so ++# this is aimed at making it easy to create packages (Debian packages, ++# FreeBSD ports, MacPorts, pkgsrc, etc.) ++ ++CXX ?= c++ ++CXXFLAGS ?= -O3 ++ ++PREFIX ?= /usr/local ++STRIP ?= strip ++INSTALL ?= install -c ++MKDIR ?= mkdir -p ++AR ?= ar ++ARFLAGS ?= rs ++ ++BIN = smithwaterman ++LIB = libsw.a ++SOVERSION = 1 ++SLIB = libsw.so ++OBJS = disorder.o BandedSmithWaterman.o SmithWatermanGotoh.o \ ++ Repeats.o LeftAlign.o IndelAllele.o ++ ++BINDIR = $(DESTDIR)$(PREFIX)/bin ++INCDIR = $(DESTDIR)$(PREFIX)/include/smithwaterman ++LIBDIR = $(DESTDIR)$(PREFIX)/lib ++ ++.SUFFIXES:.cpp .o .pico .so ++ ++.cpp.o: ++ $(CXX) $(CXXFLAGS) -I. -c -o $@ $< ++ ++.cpp.pico: ++ $(CXX) $(CXXFLAGS) -I. -fPIC -c -o $@ $< ++ ++all: $(BIN) $(LIB) $(SLIB) ++ ++$(LIB): $(OBJS) ++ $(AR) $(ARFLAGS) $@ $^ ++ ++$(SLIB): $(OBJS:.o=.pico) ++ $(CXX) -shared -Wl,-soname,$(SLIB).$(SOVERSION) $(LDFLAGS) -o $@ $^ $(LIBS) ++ ln -sf $@ $(SLIB).$(SOVERSION) ++ ++$(BIN): $(OBJS) smithwaterman.cpp ++ $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) ++ ++install: all ++ $(MKDIR) $(BINDIR) ++ $(MKDIR) $(INCDIR) ++ $(MKDIR) $(LIBDIR) ++ $(INSTALL) $(BIN) $(BINDIR) ++ $(INSTALL) *.h $(INCDIR) ++ $(INSTALL) $(LIB) $(SLIB) $(SLIB).$(SOVERSION) $(LIBDIR) ++ ++install-strip: install ++ $(STRIP) $(BINDIR)/$(BIN) $(LIBDIR)/$(LIB) $(LIBDIR)/$(SLIB) + + .PHONY: clean + + clean: + @echo "Cleaning up." +- @rm -f *.o $(PROGRAM) *~ ++ @rm -rf $(BIN) $(LIB) $(SLIB) $(OBJS) $(DESTDIR) diff --git a/easybuild/easyconfigs/s/snakemake/snakemake-6.1.0-foss-2020b.eb b/easybuild/easyconfigs/s/snakemake/snakemake-6.1.0-foss-2020b.eb new file mode 100644 index 00000000000..c821961ac31 --- /dev/null +++ b/easybuild/easyconfigs/s/snakemake/snakemake-6.1.0-foss-2020b.eb @@ -0,0 +1,69 @@ +easyblock = 'PythonBundle' + +name = 'snakemake' +version = '6.1.0' + +homepage = 'https://snakemake.readthedocs.io' +description = "The Snakemake workflow management system is a tool to create reproducible and scalable data analyses." + +toolchain = {'name': 'foss', 'version': '2020b'} + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), + ('PyYAML', '5.3.1'), + ('GitPython', '3.1.14'), + ('IPython', '7.18.1'), +] + +use_pip = True +sanity_pip_check = True + +# snakemake-6.1.0_fix_jobs.patch is needed for clusters that do not support copying the full env into the batch job +exts_list = [ + ('wrapt', '1.12.1', { + 'checksums': ['b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7'], + }), + ('ratelimiter', '1.2.0.post0', { + 'checksums': ['5c395dcabdbbde2e5178ef3f89b568a3066454a6ddc223b76473dac22f89b4f7'], + }), + ('ConfigArgParse', '1.4', { + 'checksums': ['abef9ff44fb0091f0e3bb2ee7e5b26a02b5b62d45408a5272a9bd461f5b59b4b'], + }), + ('datrie', '0.8.2', { + 'checksums': ['525b08f638d5cf6115df6ccd818e5a01298cd230b2dac91c8ff2e6499d18765d'], + }), + ('toposort', '1.6', { + 'checksums': ['a7428f56ef844f5055bb9e9e44b343983773ae6dce0fe5b101e08e27ffbd50ac'], + }), + ('amply', '0.1.4', { + 'checksums': ['cb12dcb49d16b168c02be128a1527ecde50211e4bd94af76ff4e67707f5a2d38'], + }), + ('PuLP', '2.4', { + 'checksums': ['b2aff10989b3692e3a59301a0cb0acddeb25dcea378f8804c86007075eae55b5'], + }), + ('smart_open', '4.1.2', { + 'checksums': ['4bbb6233364fc1173cc0af6b7a56ed76fce32509514f1978a995a5835f3177f1'], + }), + (name, version, { + # 'patches': ['snakemake-6.1.0_fix_jobs.patch'], + 'checksums': [ + '6b8dd2018940679438e84d772cce19814bb1c4e68265dc5e0efe6bb07cf71fb4', # snakemake-6.1.0.tar.gz + # '259d95efa252822ffa96b799f24ca930b0934c6d236c0162bf42356d9fe2ac61', # snakemake-6.1.0_fix_jobs.patch + ], + }), +] + +# SNAKEMAKE_LOAD_MODULE is needed for snakemake-6.1.0_fix_jobs.patch to work +# local_snakemake_load is the command for loading this module (here: default EB module naming scheme) +# local_snakemake_load = 'module load %(module_name)s' +# modextravars = {'SNAKEMAKE_LOAD_MODULE': local_snakemake_load} + +sanity_check_paths = { + 'files': ['bin/snakemake'], + 'dirs': ['lib/python%(pyshortver)s/site-packages/snakemake'], +} + +sanity_check_commands = ['snakemake --help'] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/snakemake/snakemake-6.1.0_fix_jobs.patch b/easybuild/easyconfigs/s/snakemake/snakemake-6.1.0_fix_jobs.patch new file mode 100644 index 00000000000..d116f6242df --- /dev/null +++ b/easybuild/easyconfigs/s/snakemake/snakemake-6.1.0_fix_jobs.patch @@ -0,0 +1,17 @@ +Load the snakemake module before running in job script, with added environment variable SNAKEMAKE_LOAD_MODULE, +and always use the python executable defined by the environment. +This patch is for clusters that don't support exporting the full environment into the batch job. +Author: Samuel Moors (Vrije Universiteit Brussel) +diff -ur snakemake-6.1.0.orig/snakemake/executors/__init__.py snakemake-6.1.0/snakemake/executors/__init__.py +--- snakemake-6.1.0.orig/snakemake/executors/__init__.py 2021-04-01 13:15:46.000000000 +0200 ++++ snakemake-6.1.0/snakemake/executors/__init__.py 2021-04-06 18:42:59.587044210 +0200 +@@ -658,7 +658,8 @@ + "{envvars} " "cd {workflow.workdir_init} && " + if assume_shared_fs + else "", +- "{path:u} {sys.executable} " if assume_shared_fs else "python ", ++ os.getenv('SNAKEMAKE_LOAD_MODULE', ':') + ' && ', ++ "python ", + "-m snakemake {target} --snakefile {snakefile} ", + "--force -j{cores} --keep-target-files --keep-remote --max-inventory-time 0 ", + "--wait-for-files {wait_for_files} --latency-wait {latency_wait} ", diff --git a/easybuild/easyconfigs/s/snappy/snappy-1.1.8-GCCcore-10.3.0.eb b/easybuild/easyconfigs/s/snappy/snappy-1.1.8-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..cb8a7b5b743 --- /dev/null +++ b/easybuild/easyconfigs/s/snappy/snappy-1.1.8-GCCcore-10.3.0.eb @@ -0,0 +1,29 @@ +easyblock = 'CMakeMake' + +name = 'snappy' +version = '1.1.8' + +homepage = 'https://github.com/google/snappy' +description = """Snappy is a compression/decompression library. It does not aim +for maximum compression, or compatibility with any other compression library; +instead, it aims for very high speeds and reasonable compression.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://github.com/google/snappy/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = ['16b677f07832a612b0836178db7f374e414f94657c138e6993cbfc5dcc58651f'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('CMake', '3.20.1'), +] + +configopts = ['', '-DBUILD_SHARED_LIBS=ON'] + +sanity_check_paths = { + 'files': ['lib64/libsnappy.a', 'lib64/libsnappy.%s' % SHLIB_EXT, 'include/snappy.h'], + 'dirs': [''] +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/s/snp-sites/snp-sites-2.5.1-GCCcore-9.3.0.eb b/easybuild/easyconfigs/s/snp-sites/snp-sites-2.5.1-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..3b9c97a9623 --- /dev/null +++ b/easybuild/easyconfigs/s/snp-sites/snp-sites-2.5.1-GCCcore-9.3.0.eb @@ -0,0 +1,37 @@ +# Author: Jasper Grimm (UoY) + +easyblock = 'ConfigureMake' + +name = 'snp-sites' +version = '2.5.1' + +homepage = 'https://sanger-pathogens.github.io/snp-sites/' +description = """Finds SNP sites from a multi-FASTA alignment file.""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} + +github_account = 'sanger-pathogens' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['913f79302e5d3127aea382756abc9ffeb05e26ce00022f43a6ea16a55cdd7a7e'] + +builddependencies = [ + ('Autotools', '20180311'), + ('pkg-config', '0.29.2'), + ('binutils', '2.34'), + ('Check', '0.15.2'), +] + +dependencies = [('zlib', '1.2.11')] + +preconfigopts = 'autoreconf -i -f &&' + +runtest = 'check' + +sanity_check_paths = { + 'files': ['bin/snp-sites'], + 'dirs': [], +} +sanity_check_commands = ["snp-sites -h"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/spglib-python/spglib-python-1.16.0-intel-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/s/spglib-python/spglib-python-1.16.0-intel-2019b-Python-3.7.4.eb new file mode 100644 index 00000000000..c359de02227 --- /dev/null +++ b/easybuild/easyconfigs/s/spglib-python/spglib-python-1.16.0-intel-2019b-Python-3.7.4.eb @@ -0,0 +1,36 @@ +easyblock = 'PythonPackage' + +name = 'spglib-python' +version = '1.16.0' +versionsuffix = '-Python-%(pyver)s' + +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': 'intel', 'version': '2019b'} + +source_urls = ['https://pypi.python.org/packages/source/%(nameletter)s/spglib'] +sources = ['spglib-%(version)s.tar.gz'] +checksums = ['94d056e48e7e6fe2e6fe4161471e774ac03221a6225fd83d551d3184220c1edf'] + +dependencies = [ + ('Python', '3.7.4'), + ('SciPy-bundle', '2019.10', versionsuffix), +] + +# required because we're building a Python package using Intel compilers on top of Python built with GCC +check_ldshared = True + +download_dep_fail = True +use_pip = True + +options = {'modulename': 'spglib'} + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages'] +} + +sanity_pip_check = True + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/s/statsmodels/statsmodels-0.12.1-fosscuda-2020b.eb b/easybuild/easyconfigs/s/statsmodels/statsmodels-0.12.1-fosscuda-2020b.eb new file mode 100644 index 00000000000..7a62cf629ca --- /dev/null +++ b/easybuild/easyconfigs/s/statsmodels/statsmodels-0.12.1-fosscuda-2020b.eb @@ -0,0 +1,32 @@ +# Author: Denis Krišťák (INUITS) + +easyblock = 'PythonBundle' + +name = 'statsmodels' +version = '0.12.1' + +homepage = 'https://www.statsmodels.org/' +description = """Statsmodels is a Python module that allows users to explore data, estimate statistical models, +and perform statistical tests.""" + +toolchain = {'name': 'fosscuda', 'version': '2020b'} + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), +] + +use_pip = True + +exts_list = [ + ('patsy', '0.5.1', { + 'checksums': ['f115cec4201e1465cd58b9866b0b0e7b941caafec129869057405bfe5b5e3991'], + }), + (name, version, { + 'checksums': ['a271b4ccec190148dccda25f0cbdcbf871f408fc1394a10a7dc1af4a62b91c8e'], + }), +] + +sanity_pip_check = True + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/t/TALON/TALON-5.0-foss-2020b.eb b/easybuild/easyconfigs/t/TALON/TALON-5.0-foss-2020b.eb new file mode 100644 index 00000000000..595fe319580 --- /dev/null +++ b/easybuild/easyconfigs/t/TALON/TALON-5.0-foss-2020b.eb @@ -0,0 +1,39 @@ +easyblock = 'PythonPackage' + +name = 'TALON' +version = '5.0' + +homepage = 'https://github.com/mortazavilab/TALON' +description = """TALON is a Python package for identifying and quantifying known and +novel genes/isoforms in long-read transcriptome data sets. TALON is technology-agnostic +in that it works from mapped SAM files, allowing data from different sequencing platforms +(i.e. PacBio and Oxford Nanopore) to be analyzed side by side.""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +source_urls = ['https://github.com/mortazavilab/%(name)s/archive/refs/tags/'] +sources = ['v%(version)s.tar.gz'] +# patches = ['TALON-%(version)s_less_strict_deps.patch'] +checksums = [ + 'aeb1c1f46a4c757a8bb866b9a4446186f0f280e9391933a040de9dad30453649', # v5.0.tar.gz +] + +dependencies = [ + ('Python', '3.8.6'), + ('pyfaidx', '0.5.9.5'), + ('SciPy-bundle', '2020.11'), + ('BEDTools', '2.30.0'), + ('Pysam', '0.16.0.1'), + ('pybedtools', '0.8.2'), +] + +preinstallopts = "sed -i 's/pysam==/pysam>=/g' requirements.txt && " +preinstallopts += "sed -i 's/pysam==/pysam>=/g' setup.py && " + +download_dep_fail = True +use_pip = True + +sanity_pip_check = True +sanity_check_commands = ['talon_label_reads -h'] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/t/TALON/TALON-5.0_less_strict_deps.patch b/easybuild/easyconfigs/t/TALON/TALON-5.0_less_strict_deps.patch new file mode 100644 index 00000000000..ae167de7749 --- /dev/null +++ b/easybuild/easyconfigs/t/TALON/TALON-5.0_less_strict_deps.patch @@ -0,0 +1,21 @@ +diff -ruN TALON-5.0/requirements.txt TALON-5.0_edit/requirements.txt +--- TALON-5.0/requirements.txt 2020-03-20 05:13:53.000000000 +0100 ++++ TALON-5.0_edit/requirements.txt 2021-05-26 14:36:01.257975762 +0200 +@@ -1,4 +1,4 @@ + pandas + pyfaidx +-pysam==0.15.4 ++pysam>=0.15.4 + pybedtools +diff -ruN TALON-5.0/setup.py TALON-5.0_edit/setup.py +--- TALON-5.0/setup.py 2020-03-20 05:13:53.000000000 +0100 ++++ TALON-5.0_edit/setup.py 2021-05-26 14:36:06.873983709 +0200 +@@ -49,7 +49,7 @@ + python_requires=">=3.6", + install_requires=[ + "pandas", +- "pysam==0.15.4", ++ "pysam>=0.15.4", + "pybedtools", + "pyfaidx" + ], diff --git a/easybuild/easyconfigs/t/TCLAP/TCLAP-1.2.4-GCCcore-9.3.0.eb b/easybuild/easyconfigs/t/TCLAP/TCLAP-1.2.4-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..4da32484d45 --- /dev/null +++ b/easybuild/easyconfigs/t/TCLAP/TCLAP-1.2.4-GCCcore-9.3.0.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'TCLAP' +version = '1.2.4' + +homepage = 'http://tclap.sourceforge.net/' +description = """TCLAP is a small, flexible library that provides a simple interface for defining and accessing +command line arguments. It was intially inspired by the user friendly CLAP libary.""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} +toolchainopts = {'pic': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['634c5b59dbb1ccbc9d6a5f6de494a257e29a3f59dcb6fc30445ff39b45188574'] + +builddependencies = [ + ('Autotools', '20180311'), + ('binutils', '2.34'), + ('pkg-config', '0.29.2'), +] + +preconfigopts = "autoreconf -i -f && " + +runtest = 'check' + +sanity_check_paths = { + 'files': ['include/tclap/CmdLine.h'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/t/TRF/TRF-4.09.1-GCCcore-10.2.0.eb b/easybuild/easyconfigs/t/TRF/TRF-4.09.1-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..9f5d55cc2ac --- /dev/null +++ b/easybuild/easyconfigs/t/TRF/TRF-4.09.1-GCCcore-10.2.0.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'TRF' +version = '4.09.1' + +homepage = 'https://tandem.bu.edu/trf/trf.html' +description = """Tandem Repeats Finder: a program to analyze DNA sequences.""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +github_account = 'Benson-Genomics-Lab' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['516015b625473350c3d1c9b83cac86baea620c8418498ab64c0a67029c3fb28a'] + +builddependencies = [ + ('binutils', '2.35'), + ('Autotools', '20200321'), +] + +preconfigopts = "autoreconf -i -f && " + +sanity_check_paths = { + 'files': ['bin/%(namelower)s'], + 'dirs': [], +} + +sanity_check_commands = ["%(namelower)s -v"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/t/TRF/TRF-4.09.1-GCCcore-9.3.0.eb b/easybuild/easyconfigs/t/TRF/TRF-4.09.1-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..81b41527d96 --- /dev/null +++ b/easybuild/easyconfigs/t/TRF/TRF-4.09.1-GCCcore-9.3.0.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'TRF' +version = '4.09.1' + +homepage = 'https://tandem.bu.edu/trf/trf.html' +description = """Tandem Repeats Finder: a program to analyze DNA sequences.""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} + +github_account = 'Benson-Genomics-Lab' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['516015b625473350c3d1c9b83cac86baea620c8418498ab64c0a67029c3fb28a'] + +builddependencies = [ + ('binutils', '2.34'), + ('Autotools', '20180311'), +] + +preconfigopts = "autoreconf -i -f && " + +sanity_check_paths = { + 'files': ['bin/%(namelower)s'], + 'dirs': [], +} + +sanity_check_commands = ["%(namelower)s -v"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/t/TagDust/TagDust-2.33-GCCcore-10.2.0.eb b/easybuild/easyconfigs/t/TagDust/TagDust-2.33-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..003fb9008b0 --- /dev/null +++ b/easybuild/easyconfigs/t/TagDust/TagDust-2.33-GCCcore-10.2.0.eb @@ -0,0 +1,39 @@ +# easybuild easyconfig +# +# Fred Hutchinson Cancer Research Center - Seattle Washington - US +# John Dey +# +easyblock = 'ConfigureMake' + +name = 'TagDust' +version = '2.33' + +homepage = 'http://tagdust.sourceforge.net/' +description = """Raw sequences produced by next generation sequencing (NGS) machines may contain adapter, + linker, barcode and fingerprint sequences. TagDust2 is a program to extract and correctly label the + sequences to be mapped in downstream pipelines.""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['https://sourceforge.net/projects/tagdust/files'] +sources = [SOURCELOWER_TAR_GZ] +patches = ['%(name)s-%(version)s_extern.patch'] +checksums = [ + '8825e2975eae11e19033f233b5951517b5126bd19e049a500b1e048eaa215f84', # tagdust-2.33.tar.gz + 'dd8f861d0b6307d1f020f57a080fcefb683ac79916cad484c429df950c223524', # TagDust-2.33_extern.patch +] + +parallel = 1 + +builddependencies = [ + ('binutils', '2.35'), + ('Pandoc', '2.10', '', True), +] + +sanity_check_paths = { + 'dirs': [], + 'files': ['bin/tagdust'], +} + +sanity_check_commands = [('%(namelower)s', '--version')] +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/t/TagDust/TagDust-2.33-GCCcore-8.3.0.eb b/easybuild/easyconfigs/t/TagDust/TagDust-2.33-GCCcore-8.3.0.eb new file mode 100644 index 00000000000..5675584ba3d --- /dev/null +++ b/easybuild/easyconfigs/t/TagDust/TagDust-2.33-GCCcore-8.3.0.eb @@ -0,0 +1,34 @@ +# easybuild easyconfig +# +# Fred Hutchinson Cancer Research Center - Seattle Washington - US +# John Dey +# +easyblock = 'ConfigureMake' + +name = 'TagDust' +version = '2.33' + +homepage = 'http://tagdust.sourceforge.net/' +description = """Raw sequences produced by next generation sequencing (NGS) machines may contain adapter, + linker, barcode and fingerprint sequences. TagDust2 is a program to extract and correctly label the + sequences to be mapped in downstream pipelines.""" + +toolchain = {'name': 'GCCcore', 'version': '8.3.0'} + +source_urls = ['https://sourceforge.net/projects/tagdust/files'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['8825e2975eae11e19033f233b5951517b5126bd19e049a500b1e048eaa215f84'] + +parallel = 1 + +builddependencies = [ + ('binutils', '2.32'), + ('Pandoc', '2.10', '', True), +] + +sanity_check_paths = { + 'dirs': [], + 'files': ['bin/tagdust'], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/t/TagDust/TagDust-2.33_extern.patch b/easybuild/easyconfigs/t/TagDust/TagDust-2.33_extern.patch new file mode 100644 index 00000000000..9367eb74d21 --- /dev/null +++ b/easybuild/easyconfigs/t/TagDust/TagDust-2.33_extern.patch @@ -0,0 +1,38 @@ +john dey - GCC 10.2 fix extern referances + +diff -ruN tagdust-2.33.orig/src/nuc_code.c tagdust-2.33/src/nuc_code.c +--- tagdust-2.33.orig/src/nuc_code.c 2015-02-01 21:24:57.000000000 -0800 ++++ tagdust-2.33/src/nuc_code.c 2021-04-27 17:55:29.444774000 -0700 +@@ -36,9 +36,11 @@ + #include + + #include "tagdust2.h" +-#include "nuc_code.h" + + ++unsigned int nuc_code[256]; ++unsigned int rev_nuc_code[5]; ++ + /** \fn void init_nuc_code() + \brief Initializes nucleotide conversion arrays. + +diff -ruN tagdust-2.33.orig/src/nuc_code.h tagdust-2.33/src/nuc_code.h +--- tagdust-2.33.orig/src/nuc_code.h 2014-12-14 17:26:55.000000000 -0800 ++++ tagdust-2.33/src/nuc_code.h 2021-04-27 17:40:49.349731000 -0700 +@@ -32,14 +32,14 @@ + * + * + */ +-unsigned int nuc_code[256]; ++extern unsigned int nuc_code[256]; + + /** + * @brief Converts 0-5 nucleotides into printable ASCII to. + * + * + */ +-unsigned int rev_nuc_code[5]; ++extern unsigned int rev_nuc_code[5]; + + int init_nuc_code(void); + diff --git a/easybuild/easyconfigs/t/Tcl/Tcl-8.6.11-GCCcore-10.3.0.eb b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.11-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..c82ee222867 --- /dev/null +++ b/easybuild/easyconfigs/t/Tcl/Tcl-8.6.11-GCCcore-10.3.0.eb @@ -0,0 +1,41 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.11' + +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': '10.3.0'} + +source_urls = ['http://prdownloads.sourceforge.net/%(namelower)s'] +sources = ['%(namelower)s%(version)s-src.tar.gz'] +checksums = ['8c0486668586672c5693d7d95817cb05a18c5ecca2f40e2836b9578064088258'] + +builddependencies = [ + ('binutils', '2.36.1'), +] +dependencies = [ + ('zlib', '1.2.11'), +] + +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/TensorFlow/TensorFlow-2.4.1-fosscuda-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.4.1-fosscuda-2019b-Python-3.7.4.eb index aac39f44a10..44857f51abf 100644 --- a/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.4.1-fosscuda-2019b-Python-3.7.4.eb +++ b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.4.1-fosscuda-2019b-Python-3.7.4.eb @@ -43,11 +43,8 @@ dependencies = [ ('zlib', '1.2.11'), ] -exts_default_options = { - 'source_urls': [PYPI_SOURCE], - 'sanity_pip_check': True, -} use_pip = True +sanity_pip_check = True # Dependencies created and updated using findPythonDeps.sh: # https://gist.github.com/Flamefire/49426e502cd8983757bd01a08a10ae0d @@ -157,6 +154,7 @@ exts_list = [ 'TensorFlow-2.4.0_add-missing-llvm-deps.patch', 'TensorFlow-2.4.0_fix-absl-on-power.patch', 'TensorFlow-2.4.0_dont-use-var-lock.patch', + 'TensorFlow-2.4.1_fix-min-priority-test.patch', 'TensorFlow-2.4.1_remove-duplicate-gpu-tests.patch', 'TensorFlow-2.4.1_skip-unique-string-test.patch', ], @@ -215,6 +213,8 @@ exts_list = [ 'cd0e1181cfc56c259cb57b7f9590816db5f5cde3fab39b3386c001359ca6e9fa', # TensorFlow-2.4.0_dont-use-var-lock.patch 'b14f2493fd2edf79abd1c4f2dde6c98a3e7d5cb9c25ab9386df874d5f072d6b5', + # TensorFlow-2.4.1_fix-min-priority-test.patch + '389febce9a0612fd457daf4cb18c02f77fc7311bacae0963602a3198d9f2737f', # TensorFlow-2.4.1_remove-duplicate-gpu-tests.patch 'f384cd97e004673ae530b6e5cc826f8fddb46646991f1a228fc07b2aac87ee80', # TensorFlow-2.4.1_skip-unique-string-test.patch diff --git a/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.4.1-fosscuda-2020b.eb b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.4.1-fosscuda-2020b.eb index c832a52b75a..9a4a9e1ad3a 100644 --- a/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.4.1-fosscuda-2020b.eb +++ b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.4.1-fosscuda-2020b.eb @@ -45,10 +45,8 @@ dependencies = [ ('zlib', '1.2.11'), ] -exts_default_options = { - 'sanity_pip_check': True, -} use_pip = True +sanity_pip_check = True # Dependencies created and updated using findPythonDeps.sh: # https://gist.github.com/Flamefire/49426e502cd8983757bd01a08a10ae0d @@ -167,6 +165,7 @@ exts_list = [ 'TensorFlow-2.4.0_add-missing-llvm-deps.patch', 'TensorFlow-2.4.0_fix-absl-on-power.patch', 'TensorFlow-2.4.0_dont-use-var-lock.patch', + 'TensorFlow-2.4.1_fix-min-priority-test.patch', 'TensorFlow-2.4.1_remove-duplicate-gpu-tests.patch', ], 'source_tmpl': 'v%(version)s.tar.gz', @@ -224,6 +223,8 @@ exts_list = [ 'cd0e1181cfc56c259cb57b7f9590816db5f5cde3fab39b3386c001359ca6e9fa', # TensorFlow-2.4.0_dont-use-var-lock.patch 'b14f2493fd2edf79abd1c4f2dde6c98a3e7d5cb9c25ab9386df874d5f072d6b5', + # TensorFlow-2.4.1_fix-min-priority-test.patch + '389febce9a0612fd457daf4cb18c02f77fc7311bacae0963602a3198d9f2737f', # TensorFlow-2.4.1_remove-duplicate-gpu-tests.patch 'f384cd97e004673ae530b6e5cc826f8fddb46646991f1a228fc07b2aac87ee80', ], diff --git a/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.4.1_fix-min-priority-test.patch b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.4.1_fix-min-priority-test.patch new file mode 100644 index 00000000000..0adfa11056e --- /dev/null +++ b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.4.1_fix-min-priority-test.patch @@ -0,0 +1,37 @@ +From 1e6532cc1aab8ba0a627a31db02ec807762c7666 Mon Sep 17 00:00:00 2001 +From: Artem Belevich +Date: Wed, 21 Apr 2021 15:35:20 -0700 +Subject: [PATCH] Use large priority value to allow for changes in valid ranges + across drivers. Recent NVIDIA drivers bumped allowed range from {-2,0} -> + {-5,0} which resulted in the unintentional test failure. Ideally we want to + query for the valid range and use the invalid value outside of that range, + but a fixed large value should do for now. + +PiperOrigin-RevId: 369749515 +Change-Id: I19f2991a5e422cfbd33e3d5b6f1e0e013c6767fd +--- + tensorflow/core/common_runtime/gpu/gpu_device_test.cc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tensorflow/core/common_runtime/gpu/gpu_device_test.cc b/tensorflow/core/common_runtime/gpu/gpu_device_test.cc +index 277872c7a08a8..ca79775077045 100644 +--- a/tensorflow/core/common_runtime/gpu/gpu_device_test.cc ++++ b/tensorflow/core/common_runtime/gpu/gpu_device_test.cc +@@ -236,7 +236,7 @@ TEST_F(GPUDeviceTest, SingleVirtualDeviceWithInvalidPriority) { + #else + // Priority outside the range (-2, 0) for NVidia GPUs + SessionOptions opts = +- MakeSessionOptions("0", 0, 1, {{123, 456}}, {{-3, 0}}); ++ MakeSessionOptions("0", 0, 1, {{123, 456}}, {{-9999, 0}}); + #endif + std::vector> devices; + Status status = DeviceFactory::GetFactory("GPU")->CreateDevices( +@@ -249,7 +249,7 @@ TEST_F(GPUDeviceTest, SingleVirtualDeviceWithInvalidPriority) { + " virtual device 0 on GPU# 0"); + #else + ExpectErrorMessageSubstr( +- status, "Priority -3 is outside the range of supported priorities"); ++ status, "Priority -9999 is outside the range of supported priorities"); + #endif + } + { diff --git a/easybuild/easyconfigs/t/Theano/Theano-1.1.2-foss-2020b-PyMC.eb b/easybuild/easyconfigs/t/Theano/Theano-1.1.2-foss-2020b-PyMC.eb new file mode 100644 index 00000000000..840804ddc27 --- /dev/null +++ b/easybuild/easyconfigs/t/Theano/Theano-1.1.2-foss-2020b-PyMC.eb @@ -0,0 +1,38 @@ +easyblock = 'PythonPackage' + +name = 'Theano' +version = '1.1.2' +versionsuffix = '-PyMC' + +homepage = 'https://deeplearning.net/software/theano' +description = """Theano is a Python library that allows you to define, optimize, +and evaluate mathematical expressions involving multi-dimensional arrays efficiently.""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +source_urls = ['https://pypi.python.org/packages/source/T/Theano%(versionsuffix)s'] +sources = ['Theano-PyMC-%(version)s.tar.gz'] +checksums = ['5da6c2242ea72a991c8446d7fe7d35189ea346ef7d024c890397011114bf10fc'] + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), +] + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +fix_python_shebang_for = ['bin/theano-cache', 'bin/theano-nose'] + +sanity_check_paths = { + 'files': ['bin/theano-cache'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +local_blas_warning = "Using NumPy C-API based implementation for BLAS functions" +sanity_check_commands = [ + "python -c 'import theano.tensor' 2>&1 | grep '%s'; test $? != 0" % local_blas_warning, +] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/t/Tkinter/Tkinter-2.7.18-GCCcore-10.2.0.eb b/easybuild/easyconfigs/t/Tkinter/Tkinter-2.7.18-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..b75688dff42 --- /dev/null +++ b/easybuild/easyconfigs/t/Tkinter/Tkinter-2.7.18-GCCcore-10.2.0.eb @@ -0,0 +1,22 @@ +name = 'Tkinter' +version = '2.7.18' + +homepage = 'https://python.org/' +description = """Tkinter module, built with the Python buildsystem""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://www.python.org/ftp/python/%(version)s/'] +sources = ['Python-%(version)s.tgz'] +checksums = ['da3080e3b488f648a3d7a4560ddee895284c3380b11d6de75edb986526b9a814'] + +builddependencies = [('binutils', '2.35')] + +dependencies = [ + ('Python', version), + ('Tk', '8.6.10'), + ('zlib', '1.2.11'), +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/t/TopHat/TopHat-2.1.2-GCC-10.2.0-Python-2.7.18.eb b/easybuild/easyconfigs/t/TopHat/TopHat-2.1.2-GCC-10.2.0-Python-2.7.18.eb new file mode 100644 index 00000000000..5e3929fa843 --- /dev/null +++ b/easybuild/easyconfigs/t/TopHat/TopHat-2.1.2-GCC-10.2.0-Python-2.7.18.eb @@ -0,0 +1,49 @@ +# 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': '10.2.0'} +toolchainopts = {'cstd': 'gnu++98', 'pic': 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 = [('Autotools', '20200321')] + +dependencies = [ + ('Boost', '1.74.0'), + ('zlib', '1.2.11'), + ('Python', '2.7.18'), +] + +preconfigopts = './autogen.sh && ' +configopts = '--with-boost=$EBROOTBOOST' + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/%(namelower)s'], + 'dirs': [], +} + +sanity_check_commands = ['tophat --version'] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/t/TranscriptClean/TranscriptClean-2.0.2-foss-2020b.eb b/easybuild/easyconfigs/t/TranscriptClean/TranscriptClean-2.0.2-foss-2020b.eb new file mode 100644 index 00000000000..8c991436195 --- /dev/null +++ b/easybuild/easyconfigs/t/TranscriptClean/TranscriptClean-2.0.2-foss-2020b.eb @@ -0,0 +1,36 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Denis Kristak (INUITS) + +easyblock = "Tarball" + +name = 'TranscriptClean' +version = '2.0.2' + +homepage = 'https://github.com/mortazavilab/TranscriptClean' +description = """TranscriptClean is a Python program that corrects mismatches, microindels, +and noncanonical splice junctions in long reads that have been mapped to the genome.""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +source_urls = ['https://github.com/mortazavilab/TranscriptClean/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['27326c10d04a2e2fef29865fc3f040a8db705ea4a4aeb6cf48a36c102f00381c'] + +dependencies = [ + ('R', '4.0.3'), + ('Python', '3.8.6'), + ('BEDTools', '2.30.0'), + ('SAMtools', '1.11'), + ('pybedtools', '0.8.2'), + ('SciPy-bundle', '2020.11'), + ('pyfasta', '0.5.2'), +] + +sanity_check_commands = ['python %(installdir)s/TranscriptClean.py --help'] + +sanity_check_paths = { + 'files': ['dstruct.py', 'TranscriptClean.py', 'transcript.py'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/t/Transformers/Transformers-4.2.1-foss-2020a-Python-3.8.2.eb b/easybuild/easyconfigs/t/Transformers/Transformers-4.2.1-foss-2020a-Python-3.8.2.eb index 46fc99ed5ff..2c42a614ad2 100644 --- a/easybuild/easyconfigs/t/Transformers/Transformers-4.2.1-foss-2020a-Python-3.8.2.eb +++ b/easybuild/easyconfigs/t/Transformers/Transformers-4.2.1-foss-2020a-Python-3.8.2.eb @@ -27,7 +27,6 @@ exts_list = [ }), ('tokenizers', '0.9.4', { 'source_tmpl': 'tokenizers-0.9.4-cp38-cp38-manylinux2010_x86_64.whl', - 'unpack_sources': False, 'checksums': ['31184c4691aed1e84088d7a18c1000bbc59f7bedeec95774ec4027129ea16272'], }), (name, version, { diff --git a/easybuild/easyconfigs/t/Trim_Galore/Trim_Galore-0.6.6-GCC-10.2.0-Python-2.7.18.eb b/easybuild/easyconfigs/t/Trim_Galore/Trim_Galore-0.6.6-GCC-10.2.0-Python-2.7.18.eb new file mode 100644 index 00000000000..add75646761 --- /dev/null +++ b/easybuild/easyconfigs/t/Trim_Galore/Trim_Galore-0.6.6-GCC-10.2.0-Python-2.7.18.eb @@ -0,0 +1,50 @@ +# Contribution from the Crick HPC team +# uploaded by J. Sassmannshausen +# +# Updated to version 0.6.2: Pavel Grochal (INUITS) +# Updated to version 0.6.5: Alex Domingo (VUB) +# +easyblock = 'Tarball' + +name = 'Trim_Galore' +version = '0.6.6' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://www.bioinformatics.babraham.ac.uk/projects/trim_galore/' +description = """Trim Galore is a wrapper around Cutadapt and FastQC to +consistently apply adapter and quality trimming to FastQ files, with extra +functionality for RRBS data.""" + +toolchain = {'name': 'GCC', 'version': '10.2.0'} + +source_urls = ['https://github.com/FelixKrueger/TrimGalore/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = ['b8db8ffd131d9d9e7c8532a5a1f1caee656c0c58d3eafd460fee3c39b9fcab5e'] + +builddependencies = [('binutils', '2.35')] + +dependencies = [ + ('Python', '2.7.18'), + ('Java', '11', '', True), + ('pigz', '2.6'), + ('Perl', '5.32.0'), + ('FastQC', '0.11.9', '-Java-%(javaver)s', True), + ('cutadapt', '1.18', versionsuffix), +] + +postinstallcmds = [ + "chmod +x %(installdir)s/%(namelower)s", + "sed -i '1 i#!/usr/bin/env perl' %(installdir)s/%(namelower)s", + "mkdir %(installdir)s/bin && mv %(installdir)s/%(namelower)s %(installdir)s/bin/%(namelower)s", +] + +sanity_check_paths = { + 'files': ["bin/trim_galore"], + 'dirs': [], +} + +sanity_check_commands = [ + "trim_galore --help" +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/t/tMAE/tMAE-1.0.0-foss-2020b-R-4.0.3.eb b/easybuild/easyconfigs/t/tMAE/tMAE-1.0.0-foss-2020b-R-4.0.3.eb new file mode 100644 index 00000000000..88e2eb64810 --- /dev/null +++ b/easybuild/easyconfigs/t/tMAE/tMAE-1.0.0-foss-2020b-R-4.0.3.eb @@ -0,0 +1,33 @@ +easyblock = 'RPackage' + +name = 'tMAE' +version = '1.0.0' +versionsuffix = '-R-%(rver)s' + +homepage = 'https://github.com/mumichae/tMAE' +description = """ +Package containing functions to: + + perform a negative binomial test on allele-specific counts + add gnomAD minor allele frequencies + MAplot (FC vs total counts) of allele-specific counts and results + allelic counts (ALT vs REF)""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +dependencies = [ + ('R', '4.0.3'), + ('R-bundle-Bioconductor', '3.12', '-R-%(rver)s'), +] + +github_account = 'mumichae' +source_urls = [GITHUB_SOURCE] +sources = ['%(version)s.tar.gz'] +checksums = ['c418876819abcbde3d439d9c6504b32411b412d0242a245437c41465adcc952c'] + +sanity_check_paths = { + 'files': [], + 'dirs': [name], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/t/tabixpp/tabixpp-1.1.0-GCC-9.3.0.eb b/easybuild/easyconfigs/t/tabixpp/tabixpp-1.1.0-GCC-9.3.0.eb new file mode 100644 index 00000000000..1c7562561a5 --- /dev/null +++ b/easybuild/easyconfigs/t/tabixpp/tabixpp-1.1.0-GCC-9.3.0.eb @@ -0,0 +1,41 @@ +# Author: Jasper Grimm (UoY) + +easyblock = 'ConfigureMake' + +name = 'tabixpp' +version = '1.1.0' + +homepage = 'https://github.com/ekg/tabixpp' +description = """C++ wrapper to tabix indexer""" + +toolchain = {'name': 'GCC', 'version': '9.3.0'} + +github_account = 'ekg' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +patches = ['%(name)s-1.1.0_use-external-HTSlib.patch'] +checksums = [ + '56c8f1b07190aba5e1d0b738e380e726d380f0ad8b2d0df133200b0ab1f8ed88', # v1.1.0.tar.gz + '65496b6e042cf54290386a33cf0de26cb1160b3ddb35216765999d790b99cab4', # tabixpp-1.1.0_use-external-HTSlib.patch +] + +builddependencies = [('binutils', '2.34')] + +dependencies = [ + ('zlib', '1.2.11'), + ('bzip2', '1.0.8'), + ('XZ', '5.2.5'), + ('HTSlib', '1.10.2'), + ('PCRE', '8.44'), +] + +skipsteps = ['configure'] + +preinstallopts = 'PREFIX=%(installdir)s' + +sanity_check_paths = { + 'files': ['bin/tabix++', 'lib/libtabixpp.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/t/tabixpp/tabixpp-1.1.0_use-external-HTSlib.patch b/easybuild/easyconfigs/t/tabixpp/tabixpp-1.1.0_use-external-HTSlib.patch new file mode 100644 index 00000000000..978c8c7b578 --- /dev/null +++ b/easybuild/easyconfigs/t/tabixpp/tabixpp-1.1.0_use-external-HTSlib.patch @@ -0,0 +1,125 @@ +# Patch to use an existing HTSlib rather than the one shipped with tabixpp, and +# build static and dynamic libaries. Based on the PR by outpaddling: +# https://github.com/ekg/tabixpp/pull/10 + +diff -Nru tabixpp-1.1.0.orig/Makefile tabixpp-1.1.0/Makefile +--- tabixpp-1.1.0.orig/Makefile 2021-05-04 15:54:06.000000000 +0100 ++++ tabixpp-1.1.0/Makefile 2021-05-07 12:53:58.000000000 +0100 +@@ -1,52 +1,71 @@ + +-# Use ?= to allow override from the env or command-line. ++# Use ?= to allow overriding from the env or command-line, e.g. ++# ++# make CXXFLAGS="-O3 -fPIC" install ++# ++# Package managers will override many of these variables automatically, so ++# this is aimed at making it easy to create packages (Debian packages, ++# FreeBSD ports, MacPorts, pkgsrc, etc.) ++ ++CC ?= cc ++CXX ?= c++ ++CXXFLAGS ?= -g -Wall -O2 #-m64 #-arch ppc ++CPPFLAGS ?= -Ihtslib ++LDLIBS ?= -lhts -llzma -lbz2 -lz -lpthread -lm ++ ++PREFIX ?= /usr/local ++STRIP ?= strip ++INSTALL ?= install -c ++MKDIR ?= mkdir -p ++AR ?= ar ++ARFLAGS ?= rs ++ ++DFLAGS = -D_FILE_OFFSET_BITS=64 -D_USE_KNETFILE ++BIN = tabix++ ++LIB = libtabixpp.a ++SOVERSION = 1 ++SLIB = libtabixpp.so ++OBJS = tabix.o ++ ++LIBDIR = $(DESTDIR)$(PREFIX)/lib ++BINDIR = $(DESTDIR)$(PREFIX)/bin ++INCDIR = $(DESTDIR)$(PREFIX)/include/tabixpp ++ ++.SUFFIXES:.cpp .o .pico .so ++ ++.cpp.o: ++ $(CXX) $(CXXFLAGS) $(DFLAGS) -I. $(CPPFLAGS) -c -o $@ $< ++ ++.cpp.pico: ++ $(CXX) $(CXXFLAGS) $(DFLAGS) -I. $(CPPFLAGS) -fPIC -c -o $@ $< ++ ++all: $(BIN) $(SLIB) $(LIB) ++ ++$(LIB): $(OBJS) ++ $(AR) $(ARFLAGS) $@ $^ ++ ++$(SLIB): $(OBJS:.o=.pico) ++ $(CXX) -shared -Wl,-soname,$(SLIB).$(SOVERSION) $(LDFLAGS) -o $@ $^ $(LDLIBS) ++ ln -sf $@ $(SLIB).$(SOVERSION) ++ ++$(BIN): $(OBJS) main.cpp ++ $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ main.cpp $(OBJS) $(LDLIBS) ++ ++install: all ++ $(MKDIR) $(BINDIR) ++ $(MKDIR) $(LIBDIR) ++ $(MKDIR) $(INCDIR) ++ $(INSTALL) $(BIN) $(BINDIR) ++ $(INSTALL) *.hpp $(INCDIR) ++ $(INSTALL) $(LIB) $(SLIB) $(SLIB).$(SOVERSION) $(LIBDIR) + +-CC?= gcc +-CXX?= g++ +-CXXFLAGS?= -g -Wall -O2 -fPIC #-m64 #-arch ppc +-INCLUDES?= -Ihtslib +-HTS_HEADERS?= htslib/htslib/bgzf.h htslib/htslib/tbx.h +-HTS_LIB?= htslib/libhts.a +-LIBPATH?= -L. -Lhtslib +-LIBS?= -lhts -lpthread -lm -lbz2 -llzma -lz +-DFLAGS= -D_FILE_OFFSET_BITS=64 -D_USE_KNETFILE +-PROG= tabix++ +-SUBDIRS=. +- +-ifeq ($(OS),Windows_NT) +- LIBS += -lws2_32 +-endif +- +-.SUFFIXES:.c .o +- +-.c.o: +- $(CC) $(CPPFLAGS) -c $(CXXFLAGS) $(DFLAGS) $(INCLUDES) $< -o $@ +- +-all-recur lib-recur clean-recur cleanlocal-recur install-recur: +- @target=`echo $@ | sed s/-recur//`; \ +- wdir=`pwd`; \ +- list='$(SUBDIRS)'; for subdir in $$list; do \ +- cd $$subdir; \ +- $(MAKE) CC="$(CC)" DFLAGS="$(DFLAGS)" CXXFLAGS="$(CXXFLAGS)" \ +- INCLUDES="$(INCLUDES)" LIBPATH="$(LIBPATH)" $$target \ +- || exit 1; \ +- cd $$wdir; \ +- done; +- +-all: $(PROG) +- +-tabix.o: $(HTS_HEADERS) tabix.cpp tabix.hpp +- $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c tabix.cpp $(INCLUDES) +- +-htslib/libhts.a: +- cd htslib && $(MAKE) lib-static +- +-tabix++: tabix.o main.cpp $(HTS_LIB) +- $(CXX) $(LDFLAGS) $(CPPFLAGS) $(CXXFLAGS) -o $@ main.cpp tabix.o $(INCLUDES) $(LIBPATH) $(LIBS) ++install-strip: install ++ $(STRIP) $(BINDIR)/$(BIN) $(LIBDIR)/$(LIB) + + cleanlocal: +- rm -fr gmon.out *.o a.out *.dSYM $(PROG) *~ *.a tabix.aux tabix.log \ +- tabix.pdf *.class libtabix.*.dylib libtabix.so* ++ rm -rf $(BIN) $(LIB) $(SLIB) $(OBJS) $(DESTDIR) ++ rm -fr gmon.out *.o a.out *.dSYM $(BIN) *~ *.a tabix.aux tabix.log \ ++ tabix.pdf *.class libtabix.*.dylib + cd htslib && $(MAKE) clean + +-clean:cleanlocal-recur ++clean: cleanlocal-recur diff --git a/easybuild/easyconfigs/t/taxator-tk/taxator-tk-1.3.3-GCC-10.2.0.eb b/easybuild/easyconfigs/t/taxator-tk/taxator-tk-1.3.3-GCC-10.2.0.eb new file mode 100644 index 00000000000..d8f225d930a --- /dev/null +++ b/easybuild/easyconfigs/t/taxator-tk/taxator-tk-1.3.3-GCC-10.2.0.eb @@ -0,0 +1,36 @@ +easyblock = 'CMakeMake' + +name = 'taxator-tk' +version = '1.3.3' + +homepage = 'https://github.com/fungs/taxator-tk' +description = "A set of programs for the taxonomic analysis of nucleotide sequence data" + +toolchain = {'name': 'GCC', 'version': '10.2.0'} + +source_urls = ['https://github.com/fungs/taxator-tk/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['c1da90bee42337a994c66653208c820b7b0d203093981eaec4eef0a9f6fdd156'] + +builddependencies = [('CMake', '3.18.4')] + +dependencies = [ + ('SeqAn', '2.4.0'), + ('Boost', '1.74.0'), +] + +separate_build_dir = True + +buildopts = "&& mkdir -p %(installdir)s/bin" +buildopts += " && cp -a {alignments-filter,binner,taxator,taxknife,unittest_ncbitaxonomy} %(installdir)s/bin/" + +skipsteps = ['install'] + +sanity_check_paths = { + 'files': ['bin/alignments-filter', 'bin/binner', 'bin/taxator', 'bin/taxknife', 'bin/unittest_ncbitaxonomy'], + 'dirs': [], +} + +sanity_check_commands = ["taxator --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/t/tcsh/tcsh-6.22.03-GCCcore-10.2.0.eb b/easybuild/easyconfigs/t/tcsh/tcsh-6.22.03-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..46a56b3bba5 --- /dev/null +++ b/easybuild/easyconfigs/t/tcsh/tcsh-6.22.03-GCCcore-10.2.0.eb @@ -0,0 +1,43 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg/Computer Science and Communications Research Unit +# Authors:: Valentin Plugaru +# 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_05-06.html +## +easyblock = 'ConfigureMake' + +name = 'tcsh' +version = '6.22.03' + +homepage = 'https://www.tcsh.org' +description = """Tcsh is an enhanced, but completely compatible version of the Berkeley UNIX C shell (csh). + It is a command language interpreter usable both as an interactive login shell and a shell script command + processor. It includes a command-line editor, programmable word completion, spelling correction, a history + mechanism, job control and a C-like syntax.""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = [ + 'https://astron.com/pub/%(namelower)s', + 'https://astron.com/pub/%(namelower)s/old', + 'ftp://ftp.astron.com/pub/%(namelower)s', + 'ftp://ftp.astron.com/pub/%(namelower)s/old', +] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['be2cfd653d2a0c7f506d2dd14c12324ba749bd484037be6df44a3973f52262b7'] + +builddependencies = [('binutils', '2.35')] + +dependencies = [('ncurses', '6.2')] + +sanity_check_paths = { + 'files': ["bin/tcsh"], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/t/tensorflow-probability/tensorflow-probability-0.12.1-foss-2020b.eb b/easybuild/easyconfigs/t/tensorflow-probability/tensorflow-probability-0.12.1-foss-2020b.eb index 021eaa0106f..a33fbf38cd5 100644 --- a/easybuild/easyconfigs/t/tensorflow-probability/tensorflow-probability-0.12.1-foss-2020b.eb +++ b/easybuild/easyconfigs/t/tensorflow-probability/tensorflow-probability-0.12.1-foss-2020b.eb @@ -34,7 +34,6 @@ exts_list = [ 'modulename': 'tensorflow_probability', 'source_tmpl': 'v%(version)s.tar.gz', 'source_urls': ['https://github.com/tensorflow/probability/archive/'], - 'unpack_sources': False, 'checksums': ['1fe89e85fd053bf36e8645a5a1a53b729bc254cf1516bc224fcbd1e4ff50083a'], }), ] diff --git a/easybuild/easyconfigs/t/tensorflow-probability/tensorflow-probability-0.12.1-fosscuda-2020b.eb b/easybuild/easyconfigs/t/tensorflow-probability/tensorflow-probability-0.12.1-fosscuda-2020b.eb index 3bd4385f27e..28b222eb331 100644 --- a/easybuild/easyconfigs/t/tensorflow-probability/tensorflow-probability-0.12.1-fosscuda-2020b.eb +++ b/easybuild/easyconfigs/t/tensorflow-probability/tensorflow-probability-0.12.1-fosscuda-2020b.eb @@ -34,7 +34,6 @@ exts_list = [ 'modulename': 'tensorflow_probability', 'source_tmpl': 'v%(version)s.tar.gz', 'source_urls': ['https://github.com/tensorflow/probability/archive/'], - 'unpack_sources': False, 'checksums': ['1fe89e85fd053bf36e8645a5a1a53b729bc254cf1516bc224fcbd1e4ff50083a'], }), ] diff --git a/easybuild/easyconfigs/t/tensorflow-probability/tensorflow-probability-0.9.0-foss-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/t/tensorflow-probability/tensorflow-probability-0.9.0-foss-2019b-Python-3.7.4.eb index fe98b1397a7..dd21b9b7fa7 100644 --- a/easybuild/easyconfigs/t/tensorflow-probability/tensorflow-probability-0.9.0-foss-2019b-Python-3.7.4.eb +++ b/easybuild/easyconfigs/t/tensorflow-probability/tensorflow-probability-0.9.0-foss-2019b-Python-3.7.4.eb @@ -24,8 +24,6 @@ dependencies = [ ('TensorFlow', '2.1.0', versionsuffix), ] -exts_default_options = {'source_urls': [PYPI_SOURCE]} - use_pip = True exts_list = [ @@ -36,7 +34,6 @@ exts_list = [ 'modulename': 'tensorflow_probability', 'source_tmpl': 'tensorflow_probability-%(version)s-py2.py3-none-any.whl', 'checksums': ['66928dcbbc12987e574232a576bd9643ba7ca6b2a837f2182417286ac955d50f'], - 'unpack_sources': False, }), ] diff --git a/easybuild/easyconfigs/t/time/time-1.9-GCCcore-10.2.0.eb b/easybuild/easyconfigs/t/time/time-1.9-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..c8fda7a1c70 --- /dev/null +++ b/easybuild/easyconfigs/t/time/time-1.9-GCCcore-10.2.0.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'time' +version = '1.9' + +homepage = 'https://www.gnu.org/software/time/' +description = """The `time' command runs another program, then displays information about the resources used by that + program, collected by the system while the program was running.""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['fbacf0c81e62429df3e33bda4cee38756604f18e01d977338e23306a3e3b521e'] + +builddependencies = [('binutils', '2.35')] + +postinstallcmds = ["ln -s %(installdir)s/bin/%(name)s %(installdir)s/bin/gtime"] + +sanity_check_paths = { + 'files': ['bin/gtime', 'bin/%(name)s'], + 'dirs': [], +} + +sanity_check_commands = ["time echo test"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/t/tmux/tmux-3.2-GCCcore-10.2.0.eb b/easybuild/easyconfigs/t/tmux/tmux-3.2-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..df0fc993001 --- /dev/null +++ b/easybuild/easyconfigs/t/tmux/tmux-3.2-GCCcore-10.2.0.eb @@ -0,0 +1,36 @@ +easyblock = 'ConfigureMake' + +name = 'tmux' +version = '3.2' + +homepage = 'https://github.com/tmux/tmux/' +description = """tmux is a terminal multiplexer: it enables a number of +terminals to be created, accessed, and controlled from a single screen. tmux +may be detached from a screen and continue running in the background, then +later reattached.""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} +toolchainopts = {'optarch': True} + +source_urls = ['https://github.com/%(name)s/%(name)s/releases/download/%(version)s/'] +sources = [SOURCE_TAR_GZ] +checksums = ['664d345338c11cbe429d7ff939b92a5191e231a7c1ef42f381cebacb1e08a399'] + +builddependencies = [ + ('binutils', '2.35'), + ('Bison', '3.7.1'), + ('make', '4.3'), + ('pkg-config', '0.29.2'), +] + +dependencies = [ + ('libevent', '2.1.12'), + ('ncurses', '6.2'), +] + +sanity_check_paths = { + 'files': ['bin/tmux'], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/t/tmux/tmux-3.2-GCCcore-9.3.0.eb b/easybuild/easyconfigs/t/tmux/tmux-3.2-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..c5111b05a4f --- /dev/null +++ b/easybuild/easyconfigs/t/tmux/tmux-3.2-GCCcore-9.3.0.eb @@ -0,0 +1,36 @@ +easyblock = 'ConfigureMake' + +name = 'tmux' +version = '3.2' + +homepage = 'https://github.com/tmux/tmux/' +description = """tmux is a terminal multiplexer: it enables a number of +terminals to be created, accessed, and controlled from a single screen. tmux +may be detached from a screen and continue running in the background, then +later reattached.""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} +toolchainopts = {'optarch': True} + +source_urls = ['https://github.com/%(name)s/%(name)s/releases/download/%(version)s/'] +sources = [SOURCE_TAR_GZ] +checksums = ['664d345338c11cbe429d7ff939b92a5191e231a7c1ef42f381cebacb1e08a399'] + +builddependencies = [ + ('binutils', '2.34'), + ('Bison', '3.5.3'), + ('make', '4.3'), + ('pkg-config', '0.29.2'), +] + +dependencies = [ + ('libevent', '2.1.11'), + ('ncurses', '6.2'), +] + +sanity_check_paths = { + 'files': ['bin/tmux'], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/t/torchvision/torchvision-0.8.2-fosscuda-2019b-Python-3.7.4-PyTorch-1.7.1.eb b/easybuild/easyconfigs/t/torchvision/torchvision-0.8.2-fosscuda-2019b-Python-3.7.4-PyTorch-1.7.1.eb new file mode 100644 index 00000000000..231c9d75148 --- /dev/null +++ b/easybuild/easyconfigs/t/torchvision/torchvision-0.8.2-fosscuda-2019b-Python-3.7.4-PyTorch-1.7.1.eb @@ -0,0 +1,34 @@ +easyblock = 'PythonPackage' + +name = 'torchvision' +version = '0.8.2' +local_pytorch_version = '1.7.1' +versionsuffix = '-Python-%%(pyver)s-PyTorch-%s' % local_pytorch_version + +homepage = 'https://github.com/pytorch/vision' +description = " Datasets, Transforms and Models specific to Computer Vision" + +toolchain = {'name': 'fosscuda', 'version': '2019b'} + +source_urls = ['https://github.com/pytorch/vision/archive'] +sources = ['v%(version)s.tar.gz'] +checksums = ['9a866c3c8feb23b3221ce261e6153fc65a98ce9ceaa71ccad017016945c178bf'] + +builddependencies = [('CMake', '3.15.3')] + +dependencies = [ + ('Python', '3.7.4'), + ('Pillow-SIMD', '6.0.x.post0'), + ('PyTorch', local_pytorch_version, '-Python-%(pyver)s'), +] + +use_pip = True +download_dep_fail = True + +# Defaults. Can be changed with --cuda-compute-capabilities +cuda_compute_capabilities = ['3.5', '3.7', '5.2', '6.0', '6.1', '7.0', '7.2', '7.5'] +preinstallopts = 'export TORCH_CUDA_ARCH_LIST="%(cuda_cc_semicolon_sep)s" && ' + +sanity_pip_check = True + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/t/tqdm/tqdm-4.60.0-GCCcore-10.2.0.eb b/easybuild/easyconfigs/t/tqdm/tqdm-4.60.0-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..ab14afd56fe --- /dev/null +++ b/easybuild/easyconfigs/t/tqdm/tqdm-4.60.0-GCCcore-10.2.0.eb @@ -0,0 +1,22 @@ +easyblock = 'PythonPackage' + +name = 'tqdm' +version = '4.60.0' + +homepage = "https://github.com/tqdm/tqdm" +description = """A fast, extensible progress bar for Python and CLI""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['ebdebdb95e3477ceea267decfc0784859aa3df3e27e22d23b83e9b272bf157ae'] + +builddependencies = [('binutils', '2.35')] + +dependencies = [('Python', '3.8.6')] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/t/trimAl/trimAl-1.4.1-GCCcore-9.3.0.eb b/easybuild/easyconfigs/t/trimAl/trimAl-1.4.1-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..a509e00b02e --- /dev/null +++ b/easybuild/easyconfigs/t/trimAl/trimAl-1.4.1-GCCcore-9.3.0.eb @@ -0,0 +1,29 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Updated by: Robert QIAO, Flinders University +# +easyblock = 'MakeCp' + +name = 'trimAl' +version = '1.4.1' + +homepage = 'https://github.com/scapella/trimal' +description = """EVB, FEP and LIE simulator.""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} +toolchainopts = {'pic': True} + +github_account = 'scapella' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['cb8110ca24433f85c33797b930fa10fe833fa677825103d6e7f81dd7551b9b4e'] +builddependencies = [('binutils', '2.34', '', True)] +start_dir = 'source' + +files_to_copy = [(['trimal', 'readal', 'statal'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/trimal', 'bin/readal', 'bin/statal'], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/u/UCX/UCX-1.10.0-GCCcore-10.3.0.eb b/easybuild/easyconfigs/u/UCX/UCX-1.10.0-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..e6cca24c295 --- /dev/null +++ b/easybuild/easyconfigs/u/UCX/UCX-1.10.0-GCCcore-10.3.0.eb @@ -0,0 +1,53 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'UCX' +version = '1.10.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': '10.3.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-%(version)s-dynamic_modules.patch'] +checksums = [ + 'b885e24b1b94724c03cb213c355381e98df1e2d1fd7f633cf8055b6dd05db92d', # ucx-1.10.0.tar.gz + '3098c91f2aadc5f148466a2e8756769ad5e99f9515d8cfb6ad8a5712e7433408', # UCX-1.10.0-dynamic_modules.patch +] + +builddependencies = [ + ('binutils', '2.36.1'), + ('Autotools', '20210128'), + ('pkg-config', '0.29.2'), +] + +osdependencies = [OS_PKG_IBVERBS_DEV] + +dependencies = [ + ('zlib', '1.2.11'), + ('numactl', '2.0.14'), +] + +configure_cmd = "contrib/configure-release" + +configopts = '--enable-optimizations --enable-cma --enable-mt --with-verbs ' +configopts += '--without-java --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/UCX/UCX-1.10.0-dynamic_modules.patch b/easybuild/easyconfigs/u/UCX/UCX-1.10.0-dynamic_modules.patch new file mode 100644 index 00000000000..a544f407db8 --- /dev/null +++ b/easybuild/easyconfigs/u/UCX/UCX-1.10.0-dynamic_modules.patch @@ -0,0 +1,27 @@ +# UCX is hardcoded to only load the modules it is compiled with. +# This patch adds an optional EB_UCX_xxx_MODULES that can override this list, allowing new modules to be loaded later. +# Author: micketeer@gmail.com +--- src/ucs/sys/module.c.orig 2021-05-13 18:33:07.970879181 +0200 ++++ src/ucs/sys/module.c 2021-05-27 16:26:44.764207368 +0200 +@@ -244,12 +244,20 @@ + char *modules_str; + char *saveptr; + char *module_name; ++ char *env_modules; ++ char buf[64]; + + ucs_module_loader_init_paths(); + + UCS_INIT_ONCE(init_once) { + ucs_module_debug("loading modules for %s", framework); +- modules_str = ucs_strdup(modules, "modules_list"); ++ ucs_snprintf_safe(buf, sizeof(buf), "EB_UCX_%s_MODULES", framework); ++ env_modules = getenv(buf); ++ if (env_modules != NULL) { ++ modules_str = ucs_strdup(env_modules, "modules_list"); ++ } else { ++ modules_str = ucs_strdup(modules, "modules_list"); ++ } + if (modules_str != NULL) { + saveptr = NULL; + module_name = strtok_r(modules_str, ":", &saveptr); diff --git a/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-10.2.0.eb b/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-10.2.0.eb index 43ecaaf0413..07c853d36ac 100644 --- a/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-10.2.0.eb +++ b/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-10.2.0.eb @@ -33,7 +33,7 @@ dependencies = [ skipsteps = ['configure'] -buildopts = '-f unix/Makefile D_USE_BZ2=-DUSE_BZIP2 L_BZ2=-lbz2 ' +buildopts = '-f unix/Makefile CC="$CC" D_USE_BZ2=-DUSE_BZIP2 L_BZ2=-lbz2 ' buildopts += 'LF2="$LDFLAGS" ' # Note: CF is multiple lines buildopts += 'CF="$CFLAGS $CPPFLAGS -I. -DACORN_FTYPE_NFS -DWILD_STOP_AT_DIR -DLARGE_FILE_SUPPORT ' diff --git a/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-10.3.0.eb b/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..298d828976d --- /dev/null +++ b/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-10.3.0.eb @@ -0,0 +1,52 @@ +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': '10.3.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.36.1'), +] + +dependencies = [ + ('bzip2', '1.0.8'), +] + +skipsteps = ['configure'] + +buildopts = '-f unix/Makefile CC="$CC" D_USE_BZ2=-DUSE_BZIP2 L_BZ2=-lbz2 ' +buildopts += 'LF2="$LDFLAGS" ' +# Note: CF is multiple lines +buildopts += 'CF="$CFLAGS $CPPFLAGS -I. -DACORN_FTYPE_NFS -DWILD_STOP_AT_DIR -DLARGE_FILE_SUPPORT ' +buildopts += '-DUNICODE_SUPPORT -DUNICODE_WCHAR -DUTF8_MAYBE_NATIVE -DNO_LCHMOD ' +buildopts += '-DDATE_FORMAT=DF_YMD -DUSE_BZIP2 -DIZ_HAVE_UXUIDGID -DNOMEMCPY -DNO_WORKING_ISPRINT" 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/UnZip/UnZip-6.0-GCCcore-6.4.0.eb b/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-6.4.0.eb index 7d1ce7f9c9c..60f30fa5d24 100644 --- a/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-6.4.0.eb +++ b/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-6.4.0.eb @@ -33,7 +33,7 @@ dependencies = [ skipsteps = ['configure'] -buildopts = '-f unix/Makefile D_USE_BZ2=-DUSE_BZIP2 L_BZ2=-lbz2 ' +buildopts = '-f unix/Makefile CC="$CC" D_USE_BZ2=-DUSE_BZIP2 L_BZ2=-lbz2 ' buildopts += 'LF2="$LDFLAGS" ' # Note: CF is multiple lines buildopts += 'CF="$CFLAGS $CPPFLAGS -I. -DACORN_FTYPE_NFS -DWILD_STOP_AT_DIR -DLARGE_FILE_SUPPORT ' diff --git a/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-7.3.0.eb b/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-7.3.0.eb index edeb2e4d21f..180041d3961 100644 --- a/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-7.3.0.eb +++ b/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-7.3.0.eb @@ -33,7 +33,7 @@ dependencies = [ skipsteps = ['configure'] -buildopts = '-f unix/Makefile D_USE_BZ2=-DUSE_BZIP2 L_BZ2=-lbz2 ' +buildopts = '-f unix/Makefile CC="$CC" D_USE_BZ2=-DUSE_BZIP2 L_BZ2=-lbz2 ' buildopts += 'LF2="$LDFLAGS" ' # Note: CF is multiple lines buildopts += 'CF="$CFLAGS $CPPFLAGS -I. -DACORN_FTYPE_NFS -DWILD_STOP_AT_DIR -DLARGE_FILE_SUPPORT ' diff --git a/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-8.2.0.eb b/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-8.2.0.eb index 374205c0332..e882c0aae0b 100644 --- a/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-8.2.0.eb +++ b/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-8.2.0.eb @@ -33,7 +33,7 @@ dependencies = [ skipsteps = ['configure'] -buildopts = '-f unix/Makefile D_USE_BZ2=-DUSE_BZIP2 L_BZ2=-lbz2 ' +buildopts = '-f unix/Makefile CC="$CC" D_USE_BZ2=-DUSE_BZIP2 L_BZ2=-lbz2 ' buildopts += 'LF2="$LDFLAGS" ' # Note: CF is multiple lines buildopts += 'CF="$CFLAGS $CPPFLAGS -I. -DACORN_FTYPE_NFS -DWILD_STOP_AT_DIR -DLARGE_FILE_SUPPORT ' diff --git a/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-8.3.0.eb b/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-8.3.0.eb index c5077c7c819..6a5a3011231 100644 --- a/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-8.3.0.eb +++ b/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-8.3.0.eb @@ -33,7 +33,7 @@ dependencies = [ skipsteps = ['configure'] -buildopts = '-f unix/Makefile D_USE_BZ2=-DUSE_BZIP2 L_BZ2=-lbz2 ' +buildopts = '-f unix/Makefile CC="$CC" D_USE_BZ2=-DUSE_BZIP2 L_BZ2=-lbz2 ' buildopts += 'LF2="$LDFLAGS" ' # Note: CF is multiple lines buildopts += 'CF="$CFLAGS $CPPFLAGS -I. -DACORN_FTYPE_NFS -DWILD_STOP_AT_DIR -DLARGE_FILE_SUPPORT ' diff --git a/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-9.3.0.eb b/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-9.3.0.eb index d60ec1b9bcc..947ade8ed55 100644 --- a/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-9.3.0.eb +++ b/easybuild/easyconfigs/u/UnZip/UnZip-6.0-GCCcore-9.3.0.eb @@ -33,7 +33,7 @@ dependencies = [ skipsteps = ['configure'] -buildopts = '-f unix/Makefile D_USE_BZ2=-DUSE_BZIP2 L_BZ2=-lbz2 ' +buildopts = '-f unix/Makefile CC="$CC" D_USE_BZ2=-DUSE_BZIP2 L_BZ2=-lbz2 ' buildopts += 'LF2="$LDFLAGS" ' # Note: CF is multiple lines buildopts += 'CF="$CFLAGS $CPPFLAGS -I. -DACORN_FTYPE_NFS -DWILD_STOP_AT_DIR -DLARGE_FILE_SUPPORT ' diff --git a/easybuild/easyconfigs/u/umap-learn/umap-learn-0.4.6-fosscuda-2020b.eb b/easybuild/easyconfigs/u/umap-learn/umap-learn-0.4.6-fosscuda-2020b.eb new file mode 100644 index 00000000000..5c5bc73b021 --- /dev/null +++ b/easybuild/easyconfigs/u/umap-learn/umap-learn-0.4.6-fosscuda-2020b.eb @@ -0,0 +1,32 @@ +# Author: Denis Krišťák (INUITS) + +easyblock = 'PythonPackage' + +name = 'umap-learn' +version = '0.4.6' + +homepage = 'https://pypi.org/project/umap-learn/' +description = """Uniform Manifold Approximation and Projection (UMAP) is a +dimension reduction technique that can be used for visualisation similarly to t-SNE, +but also for general non-linear dimension reduction.""" + +toolchain = {'name': 'fosscuda', 'version': '2020b'} + +sources = [SOURCE_TAR_GZ] +checksums = ['4276da9a039c79fa5b4f8d3515a8ccaaccf11a2f59ce8d15baf9d2015a5e82b3'] + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), + ('scikit-learn', '0.23.2'), + ('numba', '0.52.0'), +] + +download_dep_fail = True +use_pip = True + +options = {'modulename': 'umap'} + +sanity_pip_check = True + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/u/util-linux/util-linux-2.36-GCCcore-10.3.0.eb b/easybuild/easyconfigs/u/util-linux/util-linux-2.36-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..2c5b3987c04 --- /dev/null +++ b/easybuild/easyconfigs/u/util-linux/util-linux-2.36-GCCcore-10.3.0.eb @@ -0,0 +1,41 @@ +easyblock = 'ConfigureMake' + +name = 'util-linux' +version = '2.36' + +homepage = 'https://www.kernel.org/pub/linux/utils/util-linux' + +description = "Set of Linux utilities" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['%s/v%%(version_major_minor)s' % homepage] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['82942cd877a989f6d12d4ce2c757fb67ec53d8c5cd9af0537141ec5f84a2eea3'] + +# 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 " + +builddependencies = [('binutils', '2.36.1')] + +dependencies = [ + ('ncurses', '6.2'), + ('zlib', '1.2.11'), +] + +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/v/VAtools/VAtools-3.0.1-foss-2018b-Python-3.6.6.eb b/easybuild/easyconfigs/v/VAtools/VAtools-3.0.1-foss-2018b-Python-3.6.6.eb index a708679e99b..0a8d80ecae0 100644 --- a/easybuild/easyconfigs/v/VAtools/VAtools-3.0.1-foss-2018b-Python-3.6.6.eb +++ b/easybuild/easyconfigs/v/VAtools/VAtools-3.0.1-foss-2018b-Python-3.6.6.eb @@ -33,7 +33,6 @@ exts_list = [ (name, version, { 'source_tmpl': 'vatools-%(version)s-py3-none-any.whl', 'source_urls': ['https://pypi.python.org/packages/source/v/vatools/'], - 'unpack_sources': False, 'checksums': ['d26f775df7e7ee8d84eb0857ac1a1226200ce92ecda9ad8d7dd2cb13d3b19de4'], }), ] @@ -51,4 +50,6 @@ sanity_check_commands = [ 'vep-annotation-reporter -h', ] +sanity_pip_check = True + moduleclass = 'bio' diff --git a/easybuild/easyconfigs/v/Valgrind/Valgrind-3.17.0-gompi-2021a.eb b/easybuild/easyconfigs/v/Valgrind/Valgrind-3.17.0-gompi-2021a.eb new file mode 100644 index 00000000000..7ee78a6422e --- /dev/null +++ b/easybuild/easyconfigs/v/Valgrind/Valgrind-3.17.0-gompi-2021a.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'Valgrind' +version = '3.17.0' + +homepage = 'https://valgrind.org' +description = "Valgrind: Debugging and profiling tools" + +toolchain = {'name': 'gompi', 'version': '2021a'} +toolchainopts = {'optarch': True} + +source_urls = [ + 'https://sourceware.org/pub/valgrind/', + 'https://www.mirrorservice.org/sites/sourceware.org/pub/valgrind/', +] +sources = [SOURCELOWER_TAR_BZ2] +checksums = ['ad3aec668e813e40f238995f60796d9590eee64a16dff88421430630e69285a2'] + +configopts = ' --with-mpicc="$MPICC"' + +local_binaries = [ + 'callgrind_annotate', 'callgrind_control', 'cg_annotate', 'cg_diff', + 'cg_merge', 'ms_print', 'valgrind', 'valgrind-listener', 'vgdb' +] +local_archs = ('amd64', 'arm64', 'ppc64le') + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in local_binaries] + + [['lib/valgrind/libmpiwrap-%s-linux.%s' % (a, SHLIB_EXT) for a in local_archs]], + 'dirs': [] +} + +moduleclass = 'debugger' diff --git a/easybuild/easyconfigs/v/vcflib/vcflib-1.0.2-GCC-9.3.0-Python-3.8.2.eb b/easybuild/easyconfigs/v/vcflib/vcflib-1.0.2-GCC-9.3.0-Python-3.8.2.eb new file mode 100644 index 00000000000..96720191f53 --- /dev/null +++ b/easybuild/easyconfigs/v/vcflib/vcflib-1.0.2-GCC-9.3.0-Python-3.8.2.eb @@ -0,0 +1,60 @@ +# Author: Jasper Grimm (UoY) + +easyblock = 'CMakeMake' + +name = 'vcflib' +version = '1.0.2' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/vcflib/vcflib' +description = """vcflib provides methods to manipulate and interpret sequence variation as it can be + described by VCF. The Variant Call Format (VCF) is a flat-file, tab-delimited textual format intended + to concisely describe reference-indexed genetic variations between individuals.""" + +toolchain = {'name': 'GCC', 'version': '9.3.0'} + +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +patches = ['vcflib-1.0.2_use-external-deps.patch'] +checksums = [ + 'a3ef230864328d96eb3b086bf5bbcc34d6699710c358444621f6c3e3f507c910', # v1.0.2.tar.gz + '8f505c13b258b510b29768d1eaca5c77bc01cb083eec7866bc961a9b647f16d6', # vcflib-1.0.2_use-external-deps.patch +] + +builddependencies = [ + ('binutils', '2.34'), + ('CMake', '3.16.4'), + ('pkg-config', '0.29.2'), +] + +dependencies = [ + ('Python', '3.8.2'), + ('Perl', '5.30.2'), + ('XZ', '5.2.5'), + ('zlib', '1.2.11'), + ('bzip2', '1.0.8'), + ('HTSlib', '1.10.2'), + ('tabixpp', '1.1.0'), + ('intervaltree', '0.1'), + ('fastahack', '1.0.0'), + ('filevercmp', '20141119'), + ('fsom', '20141119'), + ('multichoose', '1.0.3'), + ('smithwaterman', '20160702'), +] + +preconfigopts = "find %(builddir)s/%(name)s-%(version)s/src -type f -regextype egrep -regex '.*\.(h|cpp)' -exec sed -i" +preconfigopts += " -e 's|SmithWatermanGotoh.h|smithwaterman/SmithWatermanGotoh.h|g'" +preconfigopts += " -e 's|IntervalTree.h|intervaltree/IntervalTree.h|g'" +preconfigopts += " -e 's|multichoose.h|multichoose/multichoose.h|g' -e 's|filevercmp.h|filevercmp/filevercmp.h|g'" +preconfigopts += " -e 's|tabix.hpp|tabixpp/tabix.hpp|g' -e 's|Fasta.h|fastahack/Fasta.h|g'" +preconfigopts += " -e 's|disorder.h|smithwaterman/disorder.h|g' {} \; && " + +sanity_check_paths = { + 'files': ['bin/vcfannotate', 'bin/vcfcombine', 'lib/libvcflib.%s' % SHLIB_EXT], + 'dirs': [], +} + +sanity_check_commands = ["vcfremap"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/v/vcflib/vcflib-1.0.2_use-external-deps.patch b/easybuild/easyconfigs/v/vcflib/vcflib-1.0.2_use-external-deps.patch new file mode 100644 index 00000000000..713dabd44f7 --- /dev/null +++ b/easybuild/easyconfigs/v/vcflib/vcflib-1.0.2_use-external-deps.patch @@ -0,0 +1,112 @@ +Author: Jasper Grimm (UoY) +Use external dependencies +Add target to build shared library +Rename static library from libvcflib_static to libvcflib +diff -Nru vcflib.orig/CMakeLists.txt vcflib/CMakeLists.txt +--- vcflib.orig/CMakeLists.txt 2021-05-05 16:17:44.000000000 +0100 ++++ vcflib/CMakeLists.txt 2021-05-07 17:30:22.000000000 +0100 +@@ -31,7 +31,7 @@ + set_package_properties(Threads PROPERTIES TYPE REQUIRED) + + pkg_check_modules(HTSLIB REQUIRED htslib) +-pkg_check_modules(TABIXPP tabixpp) # Optional ++#pkg_check_modules(TABIXPP tabixpp) # Optional + + # ---- Build switches + +@@ -54,11 +54,11 @@ + + include_directories(include) + # include_directories(tabixpp) +-include_directories(fastahack) +-include_directories(intervaltree) +-include_directories(smithwaterman) +-include_directories(multichoose) +-include_directories(filevercmp) ++#include_directories(fastahack) ++#include_directories(intervaltree) ++#include_directories(smithwaterman) ++#include_directories(multichoose) ++#include_directories(filevercmp) + + if(HTSLIB_LOCAL) + include_directories(tabixpp/htslib) +@@ -66,14 +66,15 @@ + + file(GLOB INCLUDES + src/*.h* +- multichoose/*.h* +- intervaltree/*.h* ++ # multichoose/*.h* ++ # intervaltree/*.h* + # tabixpp/*.h* +- smithwaterman/*.h* +- fastahack/*.h* +- filevercmp/*.h*) ++ # smithwaterman/*.h* ++ # fastahack/*.h* ++ # filevercmp/*.h* ++ ) + +-add_library(vcflib STATIC ++set(SOURCES + src/Variant.h + src/split.h + src/pdflib.hpp +@@ -90,14 +91,14 @@ + src/ssw.hpp + src/ssw_cpp.hpp + # tabixpp/tabix.cpp # do we need this? +- fastahack/Fasta.cpp +- smithwaterman/SmithWatermanGotoh.cpp +- smithwaterman/Repeats.cpp +- smithwaterman/IndelAllele.cpp +- smithwaterman/disorder.cpp +- smithwaterman/LeftAlign.cpp +- fsom/fsom.c +- filevercmp/filevercmp.c ++ # fastahack/Fasta.cpp ++ # smithwaterman/SmithWatermanGotoh.cpp ++ # smithwaterman/Repeats.cpp ++ # smithwaterman/IndelAllele.cpp ++ # smithwaterman/disorder.cpp ++ # smithwaterman/LeftAlign.cpp ++ # fsom/fsom.c ++ # filevercmp/filevercmp.c + ) + + set(BINS +@@ -192,6 +193,11 @@ + add_definitions(-DVCFLIB_VERSION="${BUILD_NUMBER}") + add_definitions(-DVERSION="${BUILD_NUMBER}") + ++add_library(vcflib_static STATIC ${SOURCES}) ++set_target_properties(vcflib_static PROPERTIES OUTPUT_NAME vcflib) ++add_library(vcflib SHARED ${SOURCES}) ++set_target_properties(vcflib PROPERTIES VERSION ${BUILD_NUMBER} SOVERSION 1) ++ + # ---- Build htslib + # + # Note by default we use the distributed htslib! These are +@@ -229,8 +235,8 @@ + if (NOT BUILD_ONLY_LIB) + foreach(BIN ${BINS}) + add_executable(${BIN} src/${BIN}.cpp) +- target_include_directories(${BIN} PUBLIC ${TABIXPP_LIBRARIES} ${HTSLIB_INCLUDE_DIRS}) +- target_link_libraries(${BIN} vcflib tabixpp -DGIT_VERSION=0.9.0 ${TABIXPP_LIBRARIES} ${HTSLIB_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${ZLIB_LIBRARIES} ${LIBLZMA_LIBRARIES} ${BZIP2_LIBRARIES}) ++ target_include_directories(${BIN} PUBLIC ${CPPFLAGS}) ++ target_link_libraries(${BIN} vcflib tabixpp fastahack sw fsom filevercmp -DGIT_VERSION=0.9.0 ${LDFLAGS} ${LIBS}) + endforeach(BIN ${BINS}) + install(TARGETS ${BINS} RUNTIME DESTINATION bin) + endif() +@@ -311,7 +317,9 @@ + + # ---- Install + +-install(TARGETS vcflib ARCHIVE DESTINATION lib) ++#install(TARGETS vcflib ARCHIVE DESTINATION lib) ++install(TARGETS vcflib LIBRARY DESTINATION lib) ++install(TARGETS vcflib_static ARCHIVE DESTINATION lib) + + install(FILES ${INCLUDES} DESTINATION include) + diff --git a/easybuild/easyconfigs/v/vorbis-tools/vorbis-tools-1.4.2-GCCcore-10.3.0.eb b/easybuild/easyconfigs/v/vorbis-tools/vorbis-tools-1.4.2-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..d725a09a260 --- /dev/null +++ b/easybuild/easyconfigs/v/vorbis-tools/vorbis-tools-1.4.2-GCCcore-10.3.0.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'vorbis-tools' +version = '1.4.2' + +homepage = 'https://xiph.org/vorbis/' +description = """Command-line tools for creating and playing Ogg Vorbis files.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://ftp.osuosl.org/pub/xiph/releases/vorbis/'] +sources = [SOURCE_TAR_GZ] +checksums = ['db7774ec2bf2c939b139452183669be84fda5774d6400fc57fde37f77624f0b0'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('pkg-config', '0.29.2'), +] + +dependencies = [ + ('libvorbis', '1.3.7'), + ('FLAC', '1.3.3'), +] + +local_bins = ['oggdec', 'oggenc', 'ogginfo', 'vorbiscomment'] +sanity_check_paths = { + 'files': ['bin/%s' % x for x in local_bins] + ['bin/vcut'], + 'dirs': [], +} + +sanity_check_commands = ["%s --help" % x for x in local_bins] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/v/vt/vt-0.57721-GCC-9.3.0.eb b/easybuild/easyconfigs/v/vt/vt-0.57721-GCC-9.3.0.eb new file mode 100644 index 00000000000..7b0d2a1d9b8 --- /dev/null +++ b/easybuild/easyconfigs/v/vt/vt-0.57721-GCC-9.3.0.eb @@ -0,0 +1,62 @@ +# Author: Jasper Grimm (UoY) + +easyblock = 'MakeCp' + +name = 'vt' +version = '0.57721' + +homepage = 'https://genome.sph.umich.edu/wiki/Vt' +description = """A tool set for short variant discovery in genetic sequence data.""" + +toolchain = {'name': 'GCC', 'version': '9.3.0'} + +github_account = 'atks' +source_urls = [GITHUB_SOURCE] +sources = ['%(version)s.tar.gz'] +patches = [ + '%(name)s-0.57721_use-external-libs.patch', + '%(name)s-0.57721_fix-Rmath-includes.patch', + '%(name)s-0.57721_avoid-implicit-conversion.patch', + '%(name)s-0.57721_update-faidx.patch', + '%(name)s-0.57721_fail-on-test-error.patch', +] +checksums = [ + '8f06d464ec5458539cfa30f81a034f47fe7f801146fe8ca80c14a3816b704e17', # 0.57721.tar.gz + '5a31713ae7c5febf850eec294dbba45b6b240d832cb94bdfe9ee695fd13e45bb', # vt-0.57721_use-external-libs.patch + '663525f5180a66d8817f271a69de1884576e2414d46b7ba93029d78f71d5b14c', # vt-0.57721_fix-Rmath-includes.patch + '56d874d5c7d488761f25afb4ee3717c88dfd959ed76efb75a8531b8428d30ccd', # vt-0.57721_avoid-implicit-conversion.patch + 'ba2cfc24a88a4291b2da634db49e18199c379eb95d3b3acac59556bc68c292df', # vt-0.57721_update-faidx.patch + '4146282eb6ec852485f5a16e647da9c3b210450ceb5519b9b4a98bc52124469a', # vt-0.57721_fail-on-test-error.patch +] + +builddependencies = [ + ('binutils', '2.34'), + ('TCLAP', '1.2.4'), +] + +dependencies = [ + ('zlib', '1.2.11'), + ('bzip2', '1.0.8'), + ('cURL', '7.69.1'), + ('PCRE', '8.44'), + ('PCRE2', '10.34'), + ('libdeflate', '1.7'), + ('libRmath', '4.0.0'), + ('LIBSVM', '3.24'), + ('HTSlib', '1.10.2'), +] + +runtest = 'test' + +files_to_copy = [ + (['vt'], 'bin'), + (['*.h'], 'include/vt'), + 'test', 'README.md', 'LICENSE', +] + +sanity_check_paths = { + 'files': ['bin/vt'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/v/vt/vt-0.57721_avoid-implicit-conversion.patch b/easybuild/easyconfigs/v/vt/vt-0.57721_avoid-implicit-conversion.patch new file mode 100644 index 00000000000..50c2d8703ae --- /dev/null +++ b/easybuild/easyconfigs/v/vt/vt-0.57721_avoid-implicit-conversion.patch @@ -0,0 +1,32 @@ +Patch created by Jasper Grimm (UoY) +Avoid implicit conversion by casting bcf_get_pos1 to int32_t +Explicitly include algorithm library +diff -Nru vt-0.57721b/bcf_ordered_writer.cpp vt-0.57721c/bcf_ordered_writer.cpp +--- vt-0.57721b/bcf_ordered_writer.cpp 2021-05-17 15:11:33.000000000 +0100 ++++ vt-0.57721c/bcf_ordered_writer.cpp 2021-05-17 15:01:54.000000000 +0100 +@@ -22,6 +22,7 @@ + */ + + #include "bcf_ordered_writer.h" ++#include + + BCFOrderedWriter::BCFOrderedWriter(std::string output_vcf_file_name, int32_t window, int32_t compression) + { +@@ -155,7 +156,7 @@ + + if (i==buffer.end()) + { +- int32_t cutoff_pos1 = std::max(bcf_get_pos1(buffer.front())-window,1); ++ int32_t cutoff_pos1 = std::max((int32_t)bcf_get_pos1(buffer.front())-window,1); + if (bcf_get_pos1(v)1) + { +- int32_t cutoff_pos1 = std::max(bcf_get_pos1(buffer.front())-window,1); ++ int32_t cutoff_pos1 = std::max((int32_t)bcf_get_pos1(buffer.front())-window,1); + + while (buffer.size()>1) + { diff --git a/easybuild/easyconfigs/v/vt/vt-0.57721_fail-on-test-error.patch b/easybuild/easyconfigs/v/vt/vt-0.57721_fail-on-test-error.patch new file mode 100644 index 00000000000..16d92bdc8df --- /dev/null +++ b/easybuild/easyconfigs/v/vt/vt-0.57721_fail-on-test-error.patch @@ -0,0 +1,14 @@ +Created by Jasper Grimm (UoY) +Ensure failing tests results in a non-zero exit code +diff -Nru vt-0.57721d/test/test.sh vt-0.57721e/test/test.sh +--- vt-0.57721d/test/test.sh 2021-05-17 16:42:26.000000000 +0100 ++++ vt-0.57721e/test/test.sh 2021-05-17 17:00:48.000000000 +0100 +@@ -234,4 +234,7 @@ + echo -n " " + echo -n ${PASSED_TESTS} + echo -n " / " +-echo ${NO_TESTS} ++echo ${NO_TESTS} ++if [ ${PASSED_TESTS} -ne ${NO_TESTS} ]; then ++ exit 1 ++fi diff --git a/easybuild/easyconfigs/v/vt/vt-0.57721_fix-Rmath-includes.patch b/easybuild/easyconfigs/v/vt/vt-0.57721_fix-Rmath-includes.patch new file mode 100644 index 00000000000..4117bfeca96 --- /dev/null +++ b/easybuild/easyconfigs/v/vt/vt-0.57721_fix-Rmath-includes.patch @@ -0,0 +1,110 @@ +Patch created by Jasper Grimm (UoY) +Fix Rmath include statements to match installed include hierarchy +diff -Nru vt-0.57721/consolidate.h vt-0.57721b/consolidate.h +--- vt-0.57721/consolidate.h 2021-05-14 16:42:01.000000000 +0100 ++++ vt-0.57721b/consolidate.h 2021-05-17 14:40:08.000000000 +0100 +@@ -25,7 +25,7 @@ + #define CONSOLIDATE_VARIANTS_H + + #include "program.h" +-#include "Rmath/Rmath.h" ++#include "Rmath.h" + #include "log_tool.h" + + void consolidate(int argc, char **argv); +diff -Nru vt-0.57721/discover.h vt-0.57721b/discover.h +--- vt-0.57721/discover.h 2021-05-14 16:42:01.000000000 +0100 ++++ vt-0.57721b/discover.h 2021-05-17 14:40:07.000000000 +0100 +@@ -28,7 +28,7 @@ + #include "variant_filter.h" + #include "pileup.h" + #include "bam_ordered_reader.h" +-#include "Rmath/Rmath.h" ++#include "Rmath.h" + #include "log_tool.h" + + void discover(int argc, char ** argv); +diff -Nru vt-0.57721/estimator.h vt-0.57721b/estimator.h +--- vt-0.57721/estimator.h 2021-05-14 16:42:00.000000000 +0100 ++++ vt-0.57721b/estimator.h 2021-05-17 14:40:06.000000000 +0100 +@@ -27,7 +27,7 @@ + #include "utils.h" + #include "hts_utils.h" + #include "log_tool.h" +-#include "Rmath/Rmath.h" ++#include "Rmath.h" + + /** + * Class containing estimating methods of common features. +diff -Nru vt-0.57721/hts_utils.cpp vt-0.57721b/hts_utils.cpp +--- vt-0.57721/hts_utils.cpp 2021-05-14 16:42:01.000000000 +0100 ++++ vt-0.57721b/hts_utils.cpp 2021-05-17 15:11:32.000000000 +0100 +@@ -22,7 +22,7 @@ + */ + + #include "hts_utils.h" +-#include "Rmath/Rmath.h" ++#include "Rmath.h" + + /******** + *General +diff -Nru vt-0.57721/multiallelics_consolidator.h vt-0.57721b/multiallelics_consolidator.h +--- vt-0.57721/multiallelics_consolidator.h 2021-05-14 16:42:01.000000000 +0100 ++++ vt-0.57721b/multiallelics_consolidator.h 2021-05-17 14:40:08.000000000 +0100 +@@ -28,7 +28,7 @@ + #include "utils.h" + #include "bcf_ordered_reader.h" + #include "bcf_ordered_writer.h" +-#include "Rmath/Rmath.h" ++#include "Rmath.h" + #include "candidate_region_extractor.h" + #include "candidate_motif_picker.h" + #include "flank_detector.h" +diff -Nru vt-0.57721/svm_train.h vt-0.57721b/svm_train.h +--- vt-0.57721/svm_train.h 2021-05-14 16:42:01.000000000 +0100 ++++ vt-0.57721b/svm_train.h 2021-05-17 14:40:08.000000000 +0100 +@@ -26,7 +26,7 @@ + + #include "program.h" + #include "libsvm/svm.h" +-#include "Rmath/Rmath.h" ++#include "Rmath.h" + + void svm_train(int argc, char ** argv); + +diff -Nru vt-0.57721/variant_filter.h vt-0.57721b/variant_filter.h +--- vt-0.57721/variant_filter.h 2021-05-14 16:42:01.000000000 +0100 ++++ vt-0.57721b/variant_filter.h 2021-05-17 14:40:07.000000000 +0100 +@@ -26,7 +26,7 @@ + + #include "hts_utils.h" + #include "utils.h" +-#include "Rmath/Rmath.h" ++#include "Rmath.h" + + /** + * Class for filtering variants in discover +diff -Nru vt-0.57721/vntr_consolidator.h vt-0.57721b/vntr_consolidator.h +--- vt-0.57721/vntr_consolidator.h 2021-05-14 16:42:01.000000000 +0100 ++++ vt-0.57721b/vntr_consolidator.h 2021-05-17 14:40:08.000000000 +0100 +@@ -28,7 +28,7 @@ + #include "utils.h" + #include "bcf_ordered_reader.h" + #include "bcf_ordered_writer.h" +-#include "Rmath/Rmath.h" ++#include "Rmath.h" + #include "candidate_region_extractor.h" + #include "candidate_motif_picker.h" + #include "flank_detector.h" +diff -Nru vt-0.57721/vntr_extractor.h vt-0.57721b/vntr_extractor.h +--- vt-0.57721/vntr_extractor.h 2021-05-14 16:42:01.000000000 +0100 ++++ vt-0.57721b/vntr_extractor.h 2021-05-17 14:40:07.000000000 +0100 +@@ -28,7 +28,7 @@ + #include "utils.h" + #include "bcf_ordered_reader.h" + #include "bcf_ordered_writer.h" +-#include "Rmath/Rmath.h" ++#include "Rmath.h" + #include "candidate_region_extractor.h" + #include "candidate_motif_picker.h" + #include "flank_detector.h" diff --git a/easybuild/easyconfigs/v/vt/vt-0.57721_update-faidx.patch b/easybuild/easyconfigs/v/vt/vt-0.57721_update-faidx.patch new file mode 100644 index 00000000000..2d56db5f465 --- /dev/null +++ b/easybuild/easyconfigs/v/vt/vt-0.57721_update-faidx.patch @@ -0,0 +1,26 @@ +Created by Jasper Grimm (UoY) +Update hts_utils.h faidx1_t struct to be compatible with HTSlib 1.9+ + (https://github.com/samtools/htslib/pull/701) +diff -Nru vt-0.57721c/hts_utils.h vt-0.57721d/hts_utils.h +--- vt-0.57721c/hts_utils.h 2021-05-17 14:58:38.000000000 +0100 ++++ vt-0.57721d/hts_utils.h 2021-05-17 16:44:20.000000000 +0100 +@@ -40,9 +40,11 @@ + *FAI UTILS + **********/ + typedef struct { ++ int id; // faidx_t->name[id] is for this struct. + int32_t line_len, line_blen; + int64_t len; + uint64_t offset; ++ uint64_t qual_offset; + } faidx1_t; + + KHASH_MAP_INIT_STR(s, faidx1_t) +@@ -52,6 +54,7 @@ + int n, m; + char **name; + khash_t(s) *hash; ++ enum fai_format_options format; + }; + + /** diff --git a/easybuild/easyconfigs/v/vt/vt-0.57721_use-external-libs.patch b/easybuild/easyconfigs/v/vt/vt-0.57721_use-external-libs.patch new file mode 100644 index 00000000000..5e783e7e2db --- /dev/null +++ b/easybuild/easyconfigs/v/vt/vt-0.57721_use-external-libs.patch @@ -0,0 +1,79 @@ +Patch created by Jasper Grimm (UoY) +Avoid setting CXX, CXXFLAGS etc. if already defined +Link to external libdeflate, HTSlib, Rmath, PCRE2 and LIBSVM +Define MATHLIB_STANDALONE +Define PCRE2_CODE_UNIT_WITH=8 +diff -Nru vt-0.57721.orig/Makefile vt-0.57721/Makefile +--- vt-0.57721.orig/Makefile 2021-05-14 16:41:53.000000000 +0100 ++++ vt-0.57721/Makefile 2021-05-17 15:31:57.000000000 +0100 +@@ -1,7 +1,8 @@ +-OPTFLAG = -O3 +-INCLUDES = -I./lib -I. -I./lib/htslib -I./lib/Rmath -I./lib/pcre2 +-CXXFLAGS = -pipe -std=c++0x $(OPTFLAG) $(INCLUDES) -D__STDC_LIMIT_MACROS +-CXX = g++ ++OPTFLAG ?= -O3 ++CPPFLAGS += -I. ++CXXFLAGS ?= -pipe -std=c++0x $(OPTFLAG) ++DFLAGS ?= -D__STDC_LIMIT_MACROS -DMATHLIB_STANDALONE -DPCRE2_CODE_UNIT_WIDTH=8 ++CXX ?= g++ + + SOURCESONLY = + +@@ -139,39 +140,39 @@ + TARGET = vt + TOOLSRC = $(SOURCES:=.cpp) $(SOURCESONLY) + TOOLOBJ = $(TOOLSRC:.cpp=.o) +-LIBDEFLATE = lib/libdeflate/libdeflate.a +-LIBHTS = lib/htslib/libhts.a +-LIBRMATH = lib/Rmath/libRmath.a +-LIBPCRE2 = lib/pcre2/libpcre2.a +-LIBSVM = lib/libsvm/libsvm.a ++# LIBDEFLATE = lib/libdeflate/libdeflate.a ++# LIBHTS = lib/htslib/libhts.a ++# LIBRMATH = lib/Rmath/libRmath.a ++# LIBPCRE2 = lib/pcre2/libpcre2.a ++# LIBSVM = lib/libsvm/libsvm.a + + all : $(TARGET) + +-${LIBDEFLATE} : +- cd lib/libdeflate; $(MAKE) || exit 1; ++# ${LIBDEFLATE} : ++# cd lib/libdeflate; $(MAKE) || exit 1; + +-${LIBHTS} : ${LIBDEFLATE} +- export LDFLAGS=-L${PWD}/lib/libdeflate; export CPPFLAGS=-I${PWD}/lib/libdeflate; cd lib/htslib; autoheader; autoconf; ./configure; $(MAKE) libhts.a || exit 1; ++# ${LIBHTS} : ${LIBDEFLATE} ++# export LDFLAGS=-L${PWD}/lib/libdeflate; export CPPFLAGS=-I${PWD}/lib/libdeflate; cd lib/htslib; autoheader; autoconf; ./configure; $(MAKE) libhts.a || exit 1; + +-${LIBRMATH} : +- cd lib/Rmath; $(MAKE) libRmath.a || exit 1; ++# ${LIBRMATH} : ++# cd lib/Rmath; $(MAKE) libRmath.a || exit 1; + +-${LIBPCRE2} : +- cd lib/pcre2; $(MAKE) libpcre2.a || exit 1; ++# ${LIBPCRE2} : ++# cd lib/pcre2; $(MAKE) libpcre2.a || exit 1; + +-${LIBSVM} : +- cd lib/libsvm; $(MAKE) libsvm.a || exit 1; ++# ${LIBSVM} : ++# cd lib/libsvm; $(MAKE) libsvm.a || exit 1; + + version : + git rev-parse HEAD | cut -c 1-8 | awk '{print "#define VERSION \"0.5772-"$$0"\""}' > version.h; + +-$(TARGET) : ${LIBHTS} ${LIBRMATH} ${LIBPCRE2} ${LIBSVM} $(TOOLOBJ) +- $(CXX) $(CXXFLAGS) -o $@ $(TOOLOBJ) $(LIBHTS) $(LIBRMATH) ${LIBPCRE2} ${LIBDEFLATE} -lz -lpthread -lbz2 -llzma -lcurl -lcrypto ++$(TARGET) : $(TOOLOBJ) ++ $(CXX) $(DFLAGS) $(LDFLAGS) $(CPPFLAGS) $(CXXFLAGS) -o $@ $^ -lz -lm -lpthread -lbz2 -llzma -lcurl -lcrypto -ldeflate -lpcre2-8 -lsvm -lhts -lRmath + + $(TOOLOBJ): $(HEADERSONLY) + + .cpp.o : +- $(CXX) $(CXXFLAGS) -o $@ -c $*.cpp ++ $(CXX) $(DFLAGS) $(LDFLAGS) $(CPPFLAGS) $(CXXFLAGS) -o $@ -c $*.cpp + + .PHONY: clean cleanvt test version + diff --git a/easybuild/easyconfigs/w/WRF/WRF-3.9.1.1-foss-2020b-dmpar.eb b/easybuild/easyconfigs/w/WRF/WRF-3.9.1.1-foss-2020b-dmpar.eb new file mode 100644 index 00000000000..9fea5e70362 --- /dev/null +++ b/easybuild/easyconfigs/w/WRF/WRF-3.9.1.1-foss-2020b-dmpar.eb @@ -0,0 +1,51 @@ +name = 'WRF' +version = '3.9.1.1' +buildtype = "dmpar" +versionsuffix = '-%s' % buildtype + +homepage = 'https://www.mmm.ucar.edu/weather-research-and-forecasting-model' +description = """The Weather Research and Forecasting (WRF) Model is a next-generation mesoscale + numerical weather prediction system designed to serve both operational forecasting and atmospheric + research needs.""" + +toolchain = {'name': 'foss', 'version': '2020b'} +toolchainopts = {'opt': False} # don't use agressive optimization, stick to -O2 + +source_urls = [ + 'https://www2.mmm.ucar.edu/wrf/src/', + 'https://www.mmm.ucar.edu/wrf/src/', +] +sources = ['%(name)sV%(version)s.TAR.gz'] +patches = [ + 'WRF_parallel_build_fix.patch', + 'WRF-%(version)s_netCDF-Fortran_separate_path.patch', + 'WRF-%(version)s_GCC-10-allow-argument-mismatch.patch', + 'WRF-3.9.1.1_libtirpc.patch', +] +checksums = [ + 'e2c503c1b5adc2d3409b39d37df29d60188ff1de8c870eca15197a86d3538299', # WRFV3.9.1.1.TAR.gz + 'f93bb6dbb8b52d72f816e2f9a6815bffd536afeca8511552ec5abc4253a59346', # WRF_parallel_build_fix.patch + # WRF-3.9.1.1_netCDF-Fortran_separate_path.patch + '49ae0eb4c5bacd3b932be14ccb9ac2d28cbd70828b633d9f13860c92d92b1eb7', + # WRF-3.9.1.1_GCC-10-allow-argument-mismatch.patch + '3cc8a43838c7d821d02a7c64acbc08b730691af5ab6bc5f6ba0afd6356c4af01', + '9a8547d6c68b0f318f74063b690c5c8cfcd3437ebebe837dbd1d4a2dc1ad2427', # WRF-3.9.1.1_libtirpc.patch +] + +# csh is used by WRF install scripts +builddependencies = [ + ('tcsh', '6.22.03'), + ('time', '1.9'), +] + +dependencies = [ + ('libtirpc', '1.3.1'), + ('JasPer', '2.0.24'), + ('netCDF', '4.7.4'), + ('netCDF-Fortran', '4.5.3'), +] + +# limit parallel build to 20 +maxparallel = 20 + +moduleclass = 'geo' diff --git a/easybuild/easyconfigs/w/WRF/WRF-3.9.1.1-intel-2020b-dmpar.eb b/easybuild/easyconfigs/w/WRF/WRF-3.9.1.1-intel-2020b-dmpar.eb new file mode 100644 index 00000000000..44a07366630 --- /dev/null +++ b/easybuild/easyconfigs/w/WRF/WRF-3.9.1.1-intel-2020b-dmpar.eb @@ -0,0 +1,51 @@ +name = 'WRF' +version = '3.9.1.1' +buildtype = "dmpar" +versionsuffix = '-%s' % buildtype + +homepage = 'https://www.mmm.ucar.edu/weather-research-and-forecasting-model' +description = """The Weather Research and Forecasting (WRF) Model is a next-generation mesoscale + numerical weather prediction system designed to serve both operational forecasting and atmospheric + research needs.""" + +toolchain = {'name': 'intel', 'version': '2020b'} +toolchainopts = {'opt': False} # don't use agressive optimization, stick to -O2 + +source_urls = [ + 'https://www2.mmm.ucar.edu/wrf/src/', + 'https://www.mmm.ucar.edu/wrf/src/', +] +sources = ['%(name)sV%(version)s.TAR.gz'] +patches = [ + 'WRF_parallel_build_fix.patch', + 'WRF-%(version)s_netCDF-Fortran_separate_path.patch', + 'WRF-%(version)s_GCC-10-allow-argument-mismatch.patch', + 'WRF-3.9.1.1_libtirpc.patch', +] +checksums = [ + 'e2c503c1b5adc2d3409b39d37df29d60188ff1de8c870eca15197a86d3538299', # WRFV3.9.1.1.TAR.gz + 'f93bb6dbb8b52d72f816e2f9a6815bffd536afeca8511552ec5abc4253a59346', # WRF_parallel_build_fix.patch + # WRF-3.9.1.1_netCDF-Fortran_separate_path.patch + '49ae0eb4c5bacd3b932be14ccb9ac2d28cbd70828b633d9f13860c92d92b1eb7', + # WRF-3.9.1.1_GCC-10-allow-argument-mismatch.patch + '3cc8a43838c7d821d02a7c64acbc08b730691af5ab6bc5f6ba0afd6356c4af01', + '9a8547d6c68b0f318f74063b690c5c8cfcd3437ebebe837dbd1d4a2dc1ad2427', # WRF-3.9.1.1_libtirpc.patch +] + +# csh is used by WRF install scripts +builddependencies = [ + ('tcsh', '6.22.03'), + ('time', '1.9'), +] + +dependencies = [ + ('libtirpc', '1.3.1'), + ('JasPer', '2.0.24'), + ('netCDF', '4.7.4'), + ('netCDF-Fortran', '4.5.3'), +] + +# limit parallel build to 20 +maxparallel = 20 + +moduleclass = 'geo' diff --git a/easybuild/easyconfigs/w/WRF/WRF-3.9.1.1_GCC-10-allow-argument-mismatch.patch b/easybuild/easyconfigs/w/WRF/WRF-3.9.1.1_GCC-10-allow-argument-mismatch.patch new file mode 100644 index 00000000000..2b183de4ce1 --- /dev/null +++ b/easybuild/easyconfigs/w/WRF/WRF-3.9.1.1_GCC-10-allow-argument-mismatch.patch @@ -0,0 +1,49 @@ +see https://github.com/wrf-model/WRF/issues/1250 and https://github.com/wrf-model/WRF/pull/1251 + +--- WRFV3/arch/configure_new.defaults.orig 2020-11-08 10:19:34.486759000 +0100 ++++ WRFV3/arch/configure_new.defaults 2020-11-08 10:20:04.994969609 +0100 +@@ -71,7 +71,7 @@ + FCNOOPT = -O0 + FCDEBUG = # -g $(FCNOOPT) # -fbacktrace -ggdb -fcheck=bounds,do,mem,pointer -ffpe-trap=invalid,zero,overflow + FORMAT_FIXED = -ffixed-form +-FORMAT_FREE = -ffree-form -ffree-line-length-none ++FORMAT_FREE = -ffree-form -ffree-line-length-none -fallow-argument-mismatch -fallow-invalid-boz + FCSUFFIX = + BYTESWAPIO = -fconvert=big-endian -frecord-marker=4 + FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) +@@ -783,7 +783,7 @@ + FCNOOPT = -O0 + FCDEBUG = # -g $(FCNOOPT) # -ggdb -fbacktrace -fcheck=bounds,do,mem,pointer -ffpe-trap=invalid,zero,overflow + FORMAT_FIXED = -ffixed-form +-FORMAT_FREE = -ffree-form -ffree-line-length-none ++FORMAT_FREE = -ffree-form -ffree-line-length-none -fallow-argument-mismatch -fallow-invalid-boz + FCSUFFIX = + BYTESWAPIO = -fconvert=big-endian -frecord-marker=4 + FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) +@@ -1004,7 +1004,7 @@ + FCNOOPT = -O0 + FCDEBUG = # -g $(FCNOOPT) # -fbacktrace -ggdb -fcheck=bounds,do,mem,pointer -ffpe-trap=invalid,zero,overflow + FORMAT_FIXED = -ffixed-form +-FORMAT_FREE = -ffree-form -ffree-line-length-none ++FORMAT_FREE = -ffree-form -ffree-line-length-none -fallow-argument-mismatch -fallow-invalid-boz + FCSUFFIX = + BYTESWAPIO = -fconvert=big-endian -frecord-marker=4 + FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) +@@ -1047,7 +1047,7 @@ + FCNOOPT = -O0 + FCDEBUG = # -g $(FCNOOPT) # -fbacktrace -ggdb -fcheck=bounds,do,mem,pointer -ffpe-trap=invalid,zero,overflow + FORMAT_FIXED = -ffixed-form +-FORMAT_FREE = -ffree-form -ffree-line-length-none ++FORMAT_FREE = -ffree-form -ffree-line-length-none -fallow-argument-mismatch -fallow-invalid-boz + FCSUFFIX = + BYTESWAPIO = -fconvert=big-endian -frecord-marker=4 + FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) +@@ -1771,7 +1771,7 @@ + FCNOOPT = -O0 + FCDEBUG = # -g $(FCNOOPT) # -fbacktrace -ggdb -fcheck=bounds,do,mem,pointer -ffpe-trap=invalid,zero,overflow + FORMAT_FIXED = -ffixed-form +-FORMAT_FREE = -ffree-form -ffree-line-length-none ++FORMAT_FREE = -ffree-form -ffree-line-length-none -fallow-argument-mismatch -fallow-invalid-boz + FCSUFFIX = + BYTESWAPIO = -fconvert=big-endian -frecord-marker=4 + FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) diff --git a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-intel-2020a.eb b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-intel-2020a.eb new file mode 100644 index 00000000000..62a8e4a0ad3 --- /dev/null +++ b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-intel-2020a.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': '2020a'} +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/WannierTools/WannierTools-2.5.1-intel-2020b.eb b/easybuild/easyconfigs/w/WannierTools/WannierTools-2.5.1-intel-2020b.eb new file mode 100644 index 00000000000..64d7016da89 --- /dev/null +++ b/easybuild/easyconfigs/w/WannierTools/WannierTools-2.5.1-intel-2020b.eb @@ -0,0 +1,40 @@ +easyblock = 'ConfigureMake' + +name = 'WannierTools' +version = '2.5.1' + +homepage = 'http://www.wanniertools.com' +description = """WannierTools is an open source software that studies the physical properties of given tight-binding + model.""" + +toolchain = {'name': 'intel', 'version': '2020b'} +toolchainopts = {'usempi': True} + +source_urls = ['https://github.com/quanshengwu/wannier_tools/archive'] +sources = ['V%(version)s.tar.gz'] +patches = ['WannierTools-2.5.1_fix_Makefile.patch'] +checksums = [ + '22aad8e95f2da07ac2dd892c2ca0438010779e6cc542e30f34ea5c3f580fd72c', # V2.5.1.tar.gz + '1752319cad40fc258c5b9753baa9db4ca1c5a4d931234164d66212c7ba92f7cb', # WannierTools-2.5.1_fix_Makefile.patch +] + +skipsteps = ['configure'] + +prebuildopts = 'cd src && ' +preinstallopts = prebuildopts + +# use -cpp -fallow-argument-mismatch -ffree-line-length-512 for GNU based compilers +# use -fpp for Intel based compilers +# We use the same Makefile regardless of toolchain due to the Makefile patch +buildopts = '-f Makefile.intel-mpi F90FLAGS="$F90FLAGS -fpp -DMPI" ' +installopts = '-f Makefile.intel-mpi PREFIX=%(installdir)s ' + +# No dependecies in the Makefile +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/wt.x'], + 'dirs': [] +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/w/WannierTools/WannierTools-2.5.1_fix_Makefile.patch b/easybuild/easyconfigs/w/WannierTools/WannierTools-2.5.1_fix_Makefile.patch new file mode 100644 index 00000000000..7f94aaab998 --- /dev/null +++ b/easybuild/easyconfigs/w/WannierTools/WannierTools-2.5.1_fix_Makefile.patch @@ -0,0 +1,55 @@ +Patch Makefile to be EB friendly. +We use just one Makefile regardless of toolchain. + +Åke Sandgren, 2021-04-27 +diff -ru wannier_tools-2.5.1.orig/src/Makefile.intel-mpi wannier_tools-2.5.1/src/Makefile.intel-mpi +--- wannier_tools-2.5.1.orig/src/Makefile.intel-mpi 2020-03-10 20:15:21.000000000 +0100 ++++ wannier_tools-2.5.1/src/Makefile.intel-mpi 2021-04-27 16:24:07.826585523 +0200 +@@ -11,31 +11,34 @@ + main.o + + # compiler +-F90 = mpiifort -fpp -DMPI ++#F90 = mpiifort -fpp -DMPI + +-INCLUDE = -I${MKLROOT}/include +-WFLAG = -nogen-interface +-OFLAG = -O3 -g -traceback -static-intel +-FFLAG = $(OFLAG) $(WFLAG) +-LFLAG = $(OFLAG) ++#INCLUDE = -I${MKLROOT}/include ++#WFLAG = -nogen-interface ++#OFLAG = -O3 -g -traceback -static-intel ++#FFLAG = $(OFLAG) $(WFLAG) ++#LFLAG = $(OFLAG) + + # blas and lapack libraries + # static linking +-LIBS = -Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_lp64.a \ +- ${MKLROOT}/lib/intel64/libmkl_sequential.a \ +- ${MKLROOT}/lib/intel64/libmkl_core.a -Wl,--end-group -lpthread -lm -ldl ++#LIBS = -Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_lp64.a \ ++# ${MKLROOT}/lib/intel64/libmkl_sequential.a \ ++# ${MKLROOT}/lib/intel64/libmkl_core.a -Wl,--end-group -lpthread -lm -ldl + + # dynamic linking + # LIBS = -L/${MKLROOT}/lib/intel64 -lmkl_core -lmkl_sequential -lmkl_intel_lp64 -lpthread + +-main : $(OBJ) +- $(F90) $(LFLAG) $(OBJ) -o wt.x $(LIBS) +- cp -f wt.x ../bin ++wt.x : $(OBJ) ++ $(F90) $(LDFLAGS) $(OBJ) -o wt.x $(LIBLAPACK) $(LIBBLAS) + + .SUFFIXES: .o .f90 + + .f90.o : +- $(F90) $(FFLAG) $(INCLUDE) -c $*.f90 ++ $(F90) $(F90FLAGS) -c $*.f90 ++ ++install: wt.x ++ install -d $(PREFIX)/bin ++ install wt.x $(PREFIX)/bin + + clean : + rm -f *.o *.mod *~ wt.x 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 e83a48d1133..2dd214fecd0 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 @@ -20,7 +20,7 @@ builddependencies = [ ] dependencies = [ ('PCRE', '8.41'), - ('libidn', '1.34'), + ('libidn2', '2.3.0'), ('zlib', '1.2.11'), # OS dependency should be preferred if the os version is more recent then this version, # it's nice to have an up to date openssl for security reasons @@ -34,13 +34,13 @@ dependencies = [ preconfigopts = "export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig && " configopts = '--with-ssl=openssl ' -osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] +osdependencies = [OS_PKG_OPENSSL_DEV] # Optionally, you can use gnutls (default) instead of OpenSSL. # Do not forget to comment out configopts in that case. # osdependencies = [('gnutls-devel', 'gnutls-dev', 'libgnutls-devel')] sanity_check_paths = { - 'files': ['bin/wget'], + 'files': ['bin/%(name)s'], 'dirs': [] } 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 742d833f585..07e2836707e 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 @@ -20,7 +20,7 @@ builddependencies = [ ] dependencies = [ ('PCRE', '8.41'), - ('libidn', '1.35'), + ('libidn2', '2.3.0'), ('zlib', '1.2.11'), # OS dependency should be preferred if the os version is more recent then this version, # it's nice to have an up to date openssl for security reasons @@ -34,7 +34,7 @@ dependencies = [ preconfigopts = "export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig && " configopts = '--with-ssl=openssl ' -osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] +osdependencies = [OS_PKG_OPENSSL_DEV] # Optionally, you can use gnutls (default) instead of OpenSSL. # Do not forget to comment out configopts in that case. # osdependencies = [('gnutls-devel', 'gnutls-dev', 'libgnutls-devel')] 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 ecfed4e6184..284145e9acd 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 @@ -20,7 +20,7 @@ builddependencies = [ ] dependencies = [ ('PCRE', '8.43'), - ('libidn', '1.35'), + ('libidn2', '2.3.0'), ('zlib', '1.2.11'), # OS dependency should be preferred if the os version is more recent then this version, # it's nice to have an up to date openssl for security reasons @@ -34,7 +34,7 @@ dependencies = [ preconfigopts = "export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig && " configopts = '--with-ssl=openssl ' -osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] +osdependencies = [OS_PKG_OPENSSL_DEV] # Optionally, you can use gnutls (default) instead of OpenSSL. # Do not forget to comment out configopts in that case. # osdependencies = [('gnutls-devel', 'gnutls-dev', 'libgnutls-devel')] 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 16e7bb29add..b553d124898 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 @@ -17,10 +17,11 @@ checksums = ['31cccfc6630528db1c8e3a06f6decf2a370060b982841cfab2b8677400a5092e'] builddependencies = [ ('binutils', '2.35'), ('pkg-config', '0.29.2'), + ('Perl', '5.32.0'), ] dependencies = [ ('PCRE', '8.44'), - ('libidn', '1.36'), + ('libidn2', '2.3.0'), ('zlib', '1.2.11'), # OS dependency should be preferred if the os version is more recent then this version, # it's nice to have an up to date openssl for security reasons 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 c6d267711e2..04371b74a51 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 @@ -20,7 +20,7 @@ builddependencies = [ ] dependencies = [ ('PCRE', '8.44'), - ('libidn', '1.35'), + ('libidn2', '2.3.0'), ('zlib', '1.2.11'), # OS dependency should be preferred if the os version is more recent then this version, # it's nice to have an up to date openssl for security reasons 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 new file mode 100644 index 00000000000..c6ac6a93321 --- /dev/null +++ b/easybuild/easyconfigs/w/wget/wget-1.21.1-GCCcore-10.3.0.eb @@ -0,0 +1,48 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'wget' +version = '1.21.1' + +homepage = 'https://www.gnu.org/software/wget' +description = """GNU Wget is a free software package for retrieving files using HTTP, HTTPS and FTP, + the most widely-used Internet protocols. It is a non-interactive commandline tool, + so it may easily be called from scripts, cron jobs, terminals without X-Windows support, etc.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['59ba0bdade9ad135eda581ae4e59a7a9f25e3a4bde6a5419632b31906120e26e'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('pkg-config', '0.29.2'), + ('Perl', '5.32.1'), +] +dependencies = [ + ('PCRE', '8.44'), + ('libidn2', '2.3.0'), + ('zlib', '1.2.11'), + ('OpenSSL', '1.1', '', True), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date gnutls for security reasons + # ('GnuTLS', '3.7.1'), +] + +# 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 && " +configopts = '--with-ssl=openssl ' + +# Optionally, you can use gnutls (default) instead of OpenSSL. +# Do not forget to comment out configopts in that case. +# osdependencies = [('gnutls-devel', 'gnutls-dev', 'libgnutls-devel')] + +sanity_check_paths = { + 'files': ['bin/%(name)s'], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/w/wxWidgets/wxWidgets-3.1.4-GCC-10.2.0.eb b/easybuild/easyconfigs/w/wxWidgets/wxWidgets-3.1.4-GCC-10.2.0.eb new file mode 100644 index 00000000000..90a7f361f2c --- /dev/null +++ b/easybuild/easyconfigs/w/wxWidgets/wxWidgets-3.1.4-GCC-10.2.0.eb @@ -0,0 +1,70 @@ +easyblock = 'ConfigureMake' + +name = 'wxWidgets' +version = '3.1.4' + +homepage = 'https://www.wxwidgets.org' +description = """wxWidgets is a C++ library that lets developers create +applications for Windows, Mac OS X, Linux and other platforms with a +single code base. It has popular language bindings for Python, Perl, +Ruby and many other languages, and unlike other cross-platform toolkits, +wxWidgets gives applications a truly native look and feel because it +uses the platform's native API rather than emulating the GUI.""" + +toolchain = {'name': 'GCC', 'version': '10.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/wxWidgets/wxWidgets/archive'] +sources = ['v%(version)s.tar.gz'] +checksums = ['f2698297b2d2c6d2372c23144c133e531248a64286c78ae17179155c94971d6f'] + +builddependencies = [ + ('gettext', '0.21'), + ('pkg-config', '0.29.2'), + ('Python', '3.8.6'), +] + +dependencies = [ + ('libpng', '1.6.37'), + ('zlib', '1.2.11'), + ('libjpeg-turbo', '2.0.5'), + ('XZ', '5.2.5'), + ('jbigkit', '2.1'), + ('LibTIFF', '4.1.0'), + ('expat', '2.2.9'), + ('GTK+', '3.24.23'), + ('X11', '20201008'), + ('Mesa', '20.2.1'), + ('libGLU', '9.0.1'), + ('SDL2', '2.0.14'), + ('cairo', '1.16.0'), + ('GST-plugins-base', '1.18.4'), + ('GLib', '2.66.1'), +] + +local_cpath_ext = '$EBROOTGTKPLUS/include/gtk-3.0:$EBROOTGLIB/include/glib-2.0:$EBROOTGLIB/lib/glib-2.0/include' + +preconfigopts = 'CPATH=$CPATH:%s ' % local_cpath_ext + +configopts = '--enable-intl --enable-ipv6 ' +# Options required by wxPython +configopts += '--with-gtk=3 --with-gtk-prefix=$EBROOTGTKPLUS ' +# Note: the configure step might claim to find OpenGL headers in +# /usr/include, but it will still use the ones from the Mesa dependency above +configopts += '--with-opengl ' +configopts += '--enable-unicode --enable-sound --enable-graphics_ctx ' +configopts += '--enable-mediactrl --enable-display --enable-geometry ' +configopts += '--enable-debug_flag --enable-optimise --disable-debugreport ' +configopts += '--enable-autoidman --with-sdl ' +configopts += '--disable-webkit --disable-webview --disable-webviewwebkit ' +configopts += '--disable-tests ' + + +prebuildopts = 'CPATH=$CPATH:%s ' % local_cpath_ext + +sanity_check_paths = { + 'files': ['bin/wx-config', 'bin/wxrc'], + 'dirs': ['include/wx-%(version_major_minor)s/wx', 'lib', 'share'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/x/X11/X11-20210518-GCCcore-10.3.0.eb b/easybuild/easyconfigs/x/X11/X11-20210518-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..508c2e2c167 --- /dev/null +++ b/easybuild/easyconfigs/x/X11/X11-20210518-GCCcore-10.3.0.eb @@ -0,0 +1,210 @@ +easyblock = 'Bundle' + +name = 'X11' +version = '20210518' + +homepage = 'https://www.x.org' +description = "The X Window System (X11) is a windowing system for bitmap displays" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +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, +] + +builddependencies = [ + ('binutils', '2.36.1'), + ('Autotools', '20210128'), + ('Bison', '3.7.6'), + ('gettext', '0.21'), + ('pkg-config', '0.29.2'), + ('intltool', '0.51.0'), + ('Meson', '0.58.0'), + ('Ninja', '1.10.2'), +] + +dependencies = [ + ('bzip2', '1.0.8'), + ('fontconfig', '2.13.93'), + ('freetype', '2.10.4'), + ('zlib', '1.2.11'), + ('xorg-macros', '1.19.3'), + ('libpciaccess', '0.16'), +] + +default_easyblock = 'ConfigureMake' + +default_component_specs = { + 'sources': [SOURCE_TAR_GZ], + 'start_dir': '%(name)s-%(version)s', +} + +components = [ + ('libpthread-stubs', '0.4', { # 2017-03-14 + 'checksums': ['50d5686b79019ccea08bcbd7b02fe5a40634abcfd4146b6e75c6420cc170e9d9'], + }), + ('xorgproto', '2021.4', { # 2021-04-29 + 'checksums': ['9de0babd3d8cb16b0c1c47b8389a52f3e1326bb0bc9a9ab34a9500778448a2bd'], + }), + ('libXau', '1.0.9', { # 2019-02-10 + 'checksums': ['1f123d8304b082ad63a9e89376400a3b1d4c29e67e3ea07b3f659cccca690eea'], + }), + ('libXdmcp', '1.1.3', { # 2019-03-16 + 'checksums': ['2ef9653d32e09d1bf1b837d0e0311024979653fe755ad3aaada8db1aa6ea180c'], + }), + ('xcb-proto', '1.14.1', { # 2020-10-08 + 'checksums': ['85cd21e9d9fbc341d0dbf11eace98d55d7db89fda724b0e598855fcddf0944fd'], + }), + ('libxcb', '1.14', { # 2020-02-22 + 'sources': [SOURCE_TAR_GZ], + 'checksums': ['2c7fcddd1da34d9b238c9caeda20d3bd7486456fc50b3cc6567185dbd5b0ad02'], + }), + ('xtrans', '1.4.0', { # 2019-03-16 + 'checksums': ['48ed850ce772fef1b44ca23639b0a57e38884045ed2cbb18ab137ef33ec713f9'], + }), + ('libxkbcommon', '1.3.0', { # 2021-05-01 + 'easyblock': 'MesonNinja', + 'sources': ['libxkbcommon-%(version)s.tar.xz'], + 'checksums': ['7b09e098ea69bc3054f0c57a9a25fda571c4df22398811606e32b5fffeb75e7b'], + 'preconfigopts': '', + 'configopts': '-Denable-wayland=false -Denable-docs=false ', + }), + ('libX11', '1.7.1', { # 2021-05-18 + 'checksums': ['7e6d4120696e90995e66ac24f1042d4f11c14fbefd7aab48de0ed1fe3c4b922b'], + }), + ('libXext', '1.3.4', { # 2019-03-16 + 'checksums': ['8ef0789f282826661ff40a8eef22430378516ac580167da35cc948be9041aac1'], + }), + ('libFS', '1.0.8', { # 2019-03-10 + 'checksums': ['e3da723257f4f4c0c629aec402e0a36fbec66a9418f70d24a159cb0470ec83d2'], + }), + ('libICE', '1.0.10', { # 2019-07-14 + 'checksums': ['1116bc64c772fd127a0d0c0ffa2833479905e3d3d8197740b3abd5f292f22d2d'], + }), + ('libSM', '1.2.3', { # 2018-10-10 + 'checksums': ['1e92408417cb6c6c477a8a6104291001a40b3bb56a4a60608fdd9cd2c5a0f320'], + }), + ('libXScrnSaver', '1.2.3', { # 2018-07-05 + 'checksums': ['4f74e7e412144591d8e0616db27f433cfc9f45aae6669c6c4bb03e6bf9be809a'], + }), + ('libXt', '1.2.1', { # 2021-01-24 + 'checksums': ['6da1bfa9dd0ed87430a5ce95b129485086394df308998ebe34d98e378e3dfb33'], + }), + ('libXmu', '1.1.3', { # 2019-03-16 + 'checksums': ['5bd9d4ed1ceaac9ea023d86bf1c1632cd3b172dce4a193a72a94e1d9df87a62e'], + }), + ('libXpm', '3.5.13', { # 2019-12-13 + 'checksums': ['e3dfb0fb8c1f127432f2a498c7856b37ce78a61e8da73f1aab165a73dd97ad00'], + }), + ('libXaw', '1.0.14', { # 2021-03-27 + 'checksums': ['59cfed2712cc80bbfe62dd1aacf24f58d74a76dd08329a922077b134a8d8048f'], + }), + ('libXfixes', '6.0.0', { # 2021-05-11 + 'checksums': ['82045da5625350838390c9440598b90d69c882c324ca92f73af9f0e992cb57c7'], + }), + ('libXcomposite', '0.4.5', { # 2019-03-11 + 'checksums': ['581c7fc0f41a99af38b1c36b9be64bc13ef3f60091cd3f01105bbc7c01617d6c'], + }), + ('libXrender', '0.9.10', { # 2016-10-04 + 'checksums': ['770527cce42500790433df84ec3521e8bf095dfe5079454a92236494ab296adf'], + }), + ('libXcursor', '1.2.0', { # 2019-03-11 + 'checksums': ['ad5b2574fccaa4c3fa67b9874fbed863d29ad230c784e9a08b20692418f6a1f8'], + }), + ('libXdamage', '1.1.5', { # 2019-03-11 + 'checksums': ['630ec53abb8c2d6dac5cd9f06c1f73ffb4a3167f8118fdebd77afd639dbc2019'], + }), + ('libfontenc', '1.1.4', { # 2019-02-20 + 'checksums': ['895ee0986b32fbfcda7f4f25ef6cbacfa760e1690bf59f02085ce0e7d1eebb41'], + }), + ('libXfont', '1.5.4', { # 2017-11-28 + 'checksums': ['59be6eab53f7b0feb6b7933c11d67d076ae2c0fd8921229c703fc7a4e9a80d6e'], + }), + ('libXfont2', '2.0.4', { # 2019-09-14 + 'checksums': ['74e577294c7406b284c50dfcfb5e5d9b3b0cc2d83d33866920ffe1e4860f585a'], + }), + ('libXft', '2.3.3', { # 2019-03-16 + 'checksums': ['3c3cf88b1a96e49a3d87d67d9452d34b6e25e96ae83959b8d0a980935014d701'], + }), + ('libXi', '1.7.10', { # 2019-06-19 + 'checksums': ['b51e106c445a49409f3da877aa2f9129839001b24697d75a54e5c60507e9a5e3'], + }), + ('libXinerama', '1.1.4', { # 2018-07-05 + 'checksums': ['64de45e18cc76b8e703cb09b3c9d28bd16e3d05d5cd99f2d630de2d62c3acc18'], + }), + ('libXrandr', '1.5.2', { # 2019-03-16 + 'checksums': ['3f10813ab355e7a09f17e147d61b0ce090d898a5ea5b5519acd0ef68675dcf8e'], + }), + ('libXres', '1.2.1', { # 2021-03-31 + 'checksums': ['918fb33c3897b389a1fbb51571c5c04c6b297058df286d8b48faa5af85e88bcc'], + }), + ('libXtst', '1.2.3', { # 2016-10-04 + 'checksums': ['a0c83acce02d4923018c744662cb28eb0dbbc33b4adc027726879ccf68fbc2c2'], + }), + ('libXv', '1.0.11', { # 2016-10-04 + 'checksums': ['c4112532889b210e21cf05f46f0f2f8354ff7e1b58061e12d7a76c95c0d47bb1'], + }), + ('libXvMC', '1.0.12', { # 2019-09-24 + 'checksums': ['024c9ec4f001f037eeca501ee724c7e51cf287eb69ced8c6126e16e7fa9864b5'], + }), + ('libXxf86dga', '1.1.5', { # 2019-03-16 + 'checksums': ['715e2bf5caf6276f0858eb4b11a1aef1a26beeb40dce2942387339da395bef69'], + }), + ('libXxf86vm', '1.1.4', { # 2015-02-24 + 'checksums': ['5108553c378a25688dcb57dca383664c36e293d60b1505815f67980ba9318a99'], + }), + ('libdmx', '1.1.4', { # 2018-05-14 + 'checksums': ['4d05bd5b248c1f46729fa1536b7a5e4d692567327ad41564c36742fb327af925'], + }), + ('libxkbfile', '1.1.0', { # 2019-03-16 + 'checksums': ['2a92adda3992aa7cbad758ef0b8dfeaedebb49338b772c64ddf369d78c1c51d3'], + }), + ('libxshmfence', '1.3', { # 2018-02-26 + 'checksums': ['7eb3d46ad91bab444f121d475b11b39273142d090f7e9ac43e6a87f4ff5f902c'], + }), + ('xcb-util', '0.4.0', { # 2014-10-15 + 'checksums': ['0ed0934e2ef4ddff53fcc70fc64fb16fe766cd41ee00330312e20a985fd927a7'], + }), + ('xcb-util-image', '0.4.0', { # 2014-10-15 + 'checksums': ['cb2c86190cf6216260b7357a57d9100811bb6f78c24576a3a5bfef6ad3740a42'], + }), + ('xcb-util-keysyms', '0.4.0', { # 2014-10-01 + 'checksums': ['0807cf078fbe38489a41d755095c58239e1b67299f14460dec2ec811e96caa96'], + }), + ('xcb-util-renderutil', '0.3.9', { # 2014-06-13 + 'checksums': ['55eee797e3214fe39d0f3f4d9448cc53cffe06706d108824ea37bb79fcedcad5'], + }), + ('xcb-util-wm', '0.4.1', { # 2014-02-19 + 'checksums': ['038b39c4bdc04a792d62d163ba7908f4bb3373057208c07110be73c1b04b8334'], + }), + ('xcb-util-cursor', '0.1.3', { # 2016-05-12 + 'checksums': ['a322332716a384c94d3cbf98f2d8fe2ce63c2fe7e2b26664b6cea1d411723df8'], + }), + ('xkeyboard-config', '2.32', { # 2021-02-16 + 'checksums': ['88effbe680cb5d5b0f566e5f6aa27927aaa7f7e709f43a6af64f83eb44accece'], + }), + ('printproto', '1.0.5', { # 2011-01-06 + 'checksums': ['e8b6f405fd865f0ea7a3a2908dfbf06622f57f2f91359ec65d13b955e49843fc'], + }), + ('libXp', '1.0.3', { # 2015-02-21 + 'checksums': ['f6b8cc4ef05d3eafc9ef5fc72819dd412024b4ed60197c0d5914758125817e9c'], + }), + ('xbitmaps', '1.1.2', { # 2018-03-10 + 'checksums': ['27e700e8ee02c43f7206f4eca8f1953ad15236cac95d7a0f08505c3f7d99c265'], + }), +] + +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/XZ/XZ-5.2.5-GCCcore-10.3.0.eb b/easybuild/easyconfigs/x/XZ/XZ-5.2.5-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..ebb84399388 --- /dev/null +++ b/easybuild/easyconfigs/x/XZ/XZ-5.2.5-GCCcore-10.3.0.eb @@ -0,0 +1,41 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'XZ' +version = '5.2.5' + +homepage = 'https://tukaani.org/xz/' +description = "xz: XZ utilities" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://tukaani.org/xz/'] +sources = [SOURCELOWER_TAR_BZ2] +patches = ['XZ-5.2.2_compat-libs.patch'] +checksums = [ + '5117f930900b341493827d63aa910ff5e011e0b994197c3b71c08a20228a42df', # xz-5.2.5.tar.bz2 + '578da3ea2ddb551972891a60fe31478b16a516d6ea8b6aa3af89e1d558adb703', # XZ-5.2.2_compat-libs.patch +] + +builddependencies = [ + # use gettext built with system toolchain as build dep to avoid cyclic dependency (XZ -> gettext -> libxml2 -> XZ) + ('gettext', '0.21', '', True), + ('binutils', '2.36.1'), +] + +# may become useful in non-x86 archs +# configopts = ' --disable-assembler ' + +sanity_check_paths = { + 'files': ['bin/lzmainfo', 'bin/unxz', 'bin/xz'], + 'dirs': [] +} + +sanity_check_commands = [ + "xz --help", + "unxz --help", +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.2.3-GCCcore-10.2.0.eb b/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.2.3-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..3d942f68bfc --- /dev/null +++ b/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.2.3-GCCcore-10.2.0.eb @@ -0,0 +1,39 @@ +easyblock = 'CMakeMake' + +name = 'Xerces-C++' +version = '3.2.3' + +homepage = 'https://xerces.apache.org/xerces-c/' + +description = """Xerces-C++ is a validating XML parser written in a portable +subset of C++. Xerces-C++ makes it easy to give your application the ability to +read and write XML data. A shared library is provided for parsing, generating, +manipulating, and validating XML documents using the DOM, SAX, and SAX2 +APIs.""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['https://archive.apache.org/dist/xerces/c/%(version_major)s/sources/'] +sources = ['xerces-c-%(version)s.tar.gz'] +checksums = ['fb96fc49b1fb892d1e64e53a6ada8accf6f0e6d30ce0937956ec68d39bd72c7e'] + +builddependencies = [ + ('pkg-config', '0.29.2'), + ('binutils', '2.35'), + ('CMake', '3.18.4'), +] + +dependencies = [ + ('cURL', '7.72.0'), +] + +runtest = 'test' + +sanity_check_paths = { + 'files': ['bin/XInclude', + 'include/xercesc/xinclude/XIncludeUtils.hpp', + 'lib/libxerces-c-3.2.%s' % SHLIB_EXT], + 'dirs': ['bin', 'include', 'lib'] +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/x/XlsxWriter/XlsxWriter-1.4.0-GCCcore-10.2.0.eb b/easybuild/easyconfigs/x/XlsxWriter/XlsxWriter-1.4.0-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..eb57ec2b021 --- /dev/null +++ b/easybuild/easyconfigs/x/XlsxWriter/XlsxWriter-1.4.0-GCCcore-10.2.0.eb @@ -0,0 +1,34 @@ +easyblock = 'PythonPackage' + +name = 'XlsxWriter' +version = '1.4.0' + +homepage = 'https://xlsxwriter.readthedocs.io/' +description = "A Python module for creating Excel XLSX files" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['82be5a58c09bdc2ff8afc25acc815c465275239ddfc56d6e7b2a7e6c5d2e213b'] + +builddependencies = [ + ('binutils', '2.35'), +] + +dependencies = [ + ('Python', '3.8.6'), +] + +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/x264/x264-20210414-GCCcore-10.3.0.eb b/easybuild/easyconfigs/x/x264/x264-20210414-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..dded9d497db --- /dev/null +++ b/easybuild/easyconfigs/x/x264/x264-20210414-GCCcore-10.3.0.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'x264' +local_commit = 'c347e7a0' +version = '20210414' + +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': '10.3.0'} + +source_urls = ['https://code.videolan.org/videolan/x264/-/archive/%s/' % local_commit] +sources = [{'download_filename': 'x264-%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}] +checksums = ['88b8f738e420bcb1dcc6ef27e13d10261dbcddd047712a31867a946a265eec4d'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('NASM', '2.15.05'), +] + +configopts = " --enable-shared --enable-static" + +sanity_check_paths = { + 'files': ['bin/x264', 'include/x264_config.h', 'include/x264.h', + 'lib/libx264.a', 'lib/libx264.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/x/x265/x265-3.5-GCCcore-10.3.0.eb b/easybuild/easyconfigs/x/x265/x265-3.5-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..9495f86059e --- /dev/null +++ b/easybuild/easyconfigs/x/x265/x265-3.5-GCCcore-10.3.0.eb @@ -0,0 +1,33 @@ +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': '10.3.0'} + +source_urls = ['https://bitbucket.org/multicoreware/x265_git/downloads/'] +sources = ['%(name)s_%(version)s.tar.gz'] +checksums = ['e70a3335cacacbba0b3a20ec6fecd6783932288ebc8163ad74bcc9606477cae8'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('CMake', '3.20.1'), + ('Yasm', '1.3.0'), +] + +start_dir = 'source' + +sanity_check_paths = { + 'files': ['bin/x265', 'include/x265_config.h', 'include/x265.h', 'lib/libx265.a', 'lib/libx265.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/x/xESMF/xESMF-0.3.0-intel-2020b.eb b/easybuild/easyconfigs/x/xESMF/xESMF-0.3.0-intel-2020b.eb new file mode 100644 index 00000000000..6777e058f40 --- /dev/null +++ b/easybuild/easyconfigs/x/xESMF/xESMF-0.3.0-intel-2020b.eb @@ -0,0 +1,26 @@ +easyblock = 'PythonPackage' + +name = 'xESMF' +version = '0.3.0' + +homepage = 'https://xesmf.readthedocs.io' +description = "xESMF: Universal Regridder for Geospatial Data" + +toolchain = {'name': 'intel', 'version': '2020b'} + +sources = [SOURCELOWER_TAR_GZ] +checksums = ['66b6deb37f43749df06819fc2003bbd394207617cf7d8fd9dafe655d7af7b94c'] + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), # for numpy, scipy + ('ESMPy', '8.0.1'), + ('xarray', '0.16.2'), +] + +download_dep_fail = True +use_pip = True + +sanity_pip_check = True + +moduleclass = 'geo' diff --git a/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.3-GCCcore-10.3.0.eb b/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.3-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..124c75ffe7f --- /dev/null +++ b/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.19.3-GCCcore-10.3.0.eb @@ -0,0 +1,30 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'xorg-macros' +version = '1.19.3' + +homepage = 'https://cgit.freedesktop.org/xorg/util/macros' +description = """X.org macros utilities.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://gitlab.freedesktop.org/xorg/util/macros/-/archive/util-macros-%(version)s'] +sources = ['macros-util-macros-%(version)s.tar.gz'] +checksums = ['8205d210a580da0938f5ce4392a96b60cf1d9a5f792eaa1474fa4c1977aef4d0'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('Autotools', '20210128'), +] + +preconfigopts = './autogen.sh && ' + +sanity_check_paths = { + 'files': ['share/pkgconfig/xorg-macros.pc'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/x/xproto/xproto-7.0.31-GCCcore-10.2.0.eb b/easybuild/easyconfigs/x/xproto/xproto-7.0.31-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..56ff7cb84e8 --- /dev/null +++ b/easybuild/easyconfigs/x/xproto/xproto-7.0.31-GCCcore-10.2.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': '10.2.0'} + +source_urls = [XORG_PROTO_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['6d755eaae27b45c5cc75529a12855fed5de5969b367ed05003944cf901ed43c7'] + +builddependencies = [ + ('binutils', '2.35'), + ('xorg-macros', '1.19.2'), +] + +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/xproto/xproto-7.0.31-GCCcore-10.3.0.eb b/easybuild/easyconfigs/x/xproto/xproto-7.0.31-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..7830c4f0382 --- /dev/null +++ b/easybuild/easyconfigs/x/xproto/xproto-7.0.31-GCCcore-10.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': '10.3.0'} + +source_urls = [XORG_PROTO_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['6d755eaae27b45c5cc75529a12855fed5de5969b367ed05003944cf901ed43c7'] + +builddependencies = [ + ('binutils', '2.36.1'), + ('xorg-macros', '1.19.3'), +] + +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/y/YAXT/YAXT-0.9.0-gompi-2020b.eb b/easybuild/easyconfigs/y/YAXT/YAXT-0.9.0-gompi-2020b.eb new file mode 100644 index 00000000000..9d9730518a3 --- /dev/null +++ b/easybuild/easyconfigs/y/YAXT/YAXT-0.9.0-gompi-2020b.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'YAXT' +version = '0.9.0' + +homepage = 'https://www.dkrz.de/redmine/projects/yaxt' +description = "Yet Another eXchange Tool" + +toolchain = {'name': 'gompi', 'version': '2020b'} +toolchainopts = {'usempi': True} + +source_urls = ['https://www.dkrz.de/redmine/attachments/download/498/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['d3673e88c1cba3b77e0821393b94b5952d8ed7dc494305c8cf93e7ebec19483c'] + +configopts = 'FC="$F90" FCFLAGS="$F90FLAGS -cpp"' + +sanity_check_paths = { + 'files': ['include/yaxt.h', 'include/yaxt.mod', 'lib/libyaxt.a', 'lib/libyaxt.%s' % SHLIB_EXT], + 'dirs': ['include/xt'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/y/Yasm/Yasm-1.3.0-GCCcore-10.3.0.eb b/easybuild/easyconfigs/y/Yasm/Yasm-1.3.0-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..0d99744bb65 --- /dev/null +++ b/easybuild/easyconfigs/y/Yasm/Yasm-1.3.0-GCCcore-10.3.0.eb @@ -0,0 +1,23 @@ +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': '10.3.0'} + +source_urls = ['https://www.tortall.net/projects/yasm/releases/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['3dce6601b495f5b3d45b59f7d2492a340ee7e84b5beca17e48f862502bd5603f'] + +builddependencies = [('binutils', '2.36.1')] + +sanity_check_paths = { + 'files': ['bin/yasm'], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/z/Zip/Zip-3.0-GCCcore-10.3.0.eb b/easybuild/easyconfigs/z/Zip/Zip-3.0-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..0d9a06cd0fa --- /dev/null +++ b/easybuild/easyconfigs/z/Zip/Zip-3.0-GCCcore-10.3.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': '10.3.0'} + +source_urls = ['https://download.sourceforge.net/infozip'] +sources = ['%(namelower)s%(version_major)s%(version_minor)s.tar.gz'] +checksums = ['f0e8bb1f9b7eb0b01285495a2699df3a4b766784c1765a8f1aeedf63c0806369'] + +builddependencies = [ + ('binutils', '2.36.1'), +] +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/zarr/zarr-2.8.1-foss-2020b.eb b/easybuild/easyconfigs/z/zarr/zarr-2.8.1-foss-2020b.eb new file mode 100644 index 00000000000..31ce9c5cb08 --- /dev/null +++ b/easybuild/easyconfigs/z/zarr/zarr-2.8.1-foss-2020b.eb @@ -0,0 +1,41 @@ +easyblock = "PythonBundle" + +name = 'zarr' +version = '2.8.1' + +homepage = 'https://zarr.readthedocs.io/en/stable/' +description = """Zarr is a Python package providing an implementation of compressed, chunked, N-dimensional arrays, + designed for use in parallel computing.""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), +] + +use_pip = True + +exts_list = [ + ('asciitree', '0.3.3', { + 'checksums': ['4aa4b9b649f85e3fcb343363d97564aa1fb62e249677f2e18a96765145cc0f6e'], + }), + ('fasteners', '0.16', { + 'checksums': ['c995d8c26b017c5d6a6de9ad29a0f9cdd57de61ae1113d28fac26622b06a0933'], + }), + ('monotonic', '1.6', { + 'source_tmpl': '%(version)s.tar.gz', + 'source_urls': ['https://github.com/atdt/monotonic/archive'], + 'checksums': ['9609c249aed584fd714811014870650d08d6f6414402b5a190663c49bf83b221'], + }), + ('numcodecs', '0.7.3', { + 'checksums': ['022b12ad83eb623ec53f154859d49f6ec43b15c36052fa864eaf2d9ee786dd85'], + }), + (name, version, { + 'checksums': ['138e5f64bbaf7aece6da1f229b611a7a04742e15358dde49c6e9bae8404a3bf2'], + }), +] + +sanity_pip_check = True + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/z/zlib/zlib-1.2.11-FCC-4.5.0.eb b/easybuild/easyconfigs/z/zlib/zlib-1.2.11-FCC-4.5.0.eb new file mode 100644 index 00000000000..7ec5802a20d --- /dev/null +++ b/easybuild/easyconfigs/z/zlib/zlib-1.2.11-FCC-4.5.0.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'zlib' +version = '1.2.11' + +homepage = 'https://www.zlib.net/' +description = """zlib is designed to be a free, general-purpose, legally unencumbered -- that is, + not covered by any patents -- lossless data-compression library for use on virtually any + computer hardware and operating system.""" + +toolchain = {'name': 'FCC', 'version': '4.5.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://zlib.net/fossils'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1'] + +# use binutils from the OS, since zlib is itself a dependency of the easybuilt binutils +osdependencies = [('binutils')] + +sanity_check_paths = { + 'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/z/zlib/zlib-1.2.11-GCCcore-10.3.0.eb b/easybuild/easyconfigs/z/zlib/zlib-1.2.11-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..e6d6bbf5052 --- /dev/null +++ b/easybuild/easyconfigs/z/zlib/zlib-1.2.11-GCCcore-10.3.0.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'zlib' +version = '1.2.11' + +homepage = 'https://www.zlib.net/' +description = """zlib is designed to be a free, general-purpose, legally unencumbered -- that is, + not covered by any patents -- lossless data-compression library for use on virtually any + computer hardware and operating system.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://zlib.net/fossils'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1'] + +# use same binutils version that was used when building GCC toolchain +builddependencies = [('binutils', '2.36.1', '', True)] + +sanity_check_paths = { + 'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/z/zlib/zlib-1.2.11-GCCcore-11.1.0.eb b/easybuild/easyconfigs/z/zlib/zlib-1.2.11-GCCcore-11.1.0.eb new file mode 100644 index 00000000000..38623a5181d --- /dev/null +++ b/easybuild/easyconfigs/z/zlib/zlib-1.2.11-GCCcore-11.1.0.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'zlib' +version = '1.2.11' + +homepage = 'https://www.zlib.net/' +description = """zlib is designed to be a free, general-purpose, legally unencumbered -- that is, + not covered by any patents -- lossless data-compression library for use on virtually any + computer hardware and operating system.""" + +toolchain = {'name': 'GCCcore', 'version': '11.1.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://zlib.net/fossils'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1'] + +# use same binutils version that was used when building GCC toolchain +builddependencies = [('binutils', '2.36.1', '', True)] + +sanity_check_paths = { + 'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/z/zstd/zstd-1.4.9-GCCcore-10.3.0.eb b/easybuild/easyconfigs/z/zstd/zstd-1.4.9-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..46eadd95c83 --- /dev/null +++ b/easybuild/easyconfigs/z/zstd/zstd-1.4.9-GCCcore-10.3.0.eb @@ -0,0 +1,41 @@ +easyblock = 'ConfigureMake' + +name = 'zstd' +version = '1.4.9' + +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': '10.3.0'} + +github_account = 'facebook' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['acf714d98e3db7b876e5b540cbf6dee298f60eb3c0723104f6d3f065cd60d6a8'] + +builddependencies = [ + ('binutils', '2.36.1'), +] + +dependencies = [ + ('zlib', '1.2.11'), + ('gzip', '1.10'), + ('XZ', '5.2.5'), + ('lz4', '1.9.3'), +] + +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.py b/setup.py index 93fa628ee1e..375c1c355b1 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.3.4' +VERSION = '4.4.0' MAJ_VER = VERSION.split('.')[0] MAJMIN_VER = '.'.join(VERSION.split('.')[0:2]) @@ -98,6 +98,8 @@ def get_data_files(): "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", "Topic :: Software Development :: Build Tools", ], platforms="Linux", diff --git a/test/easyconfigs/easyconfigs.py b/test/easyconfigs/easyconfigs.py index aa97d9016e1..f0fad481ac4 100644 --- a/test/easyconfigs/easyconfigs.py +++ b/test/easyconfigs/easyconfigs.py @@ -44,11 +44,12 @@ from easybuild.framework.easyblock import EasyBlock from easybuild.framework.easyconfig.default import DEFAULT_CONFIG from easybuild.framework.easyconfig.format.format import DEPENDENCY_PARAMETERS -from easybuild.framework.easyconfig.easyconfig import disable_templating, get_easyblock_class, letter_dir_for +from easybuild.framework.easyconfig.easyconfig import get_easyblock_class, letter_dir_for from easybuild.framework.easyconfig.easyconfig import resolve_template from easybuild.framework.easyconfig.parser import EasyConfigParser, fetch_parameters_from_easyconfig from easybuild.framework.easyconfig.tools import check_sha256_checksums, dep_graph, get_paths_for, process_easyconfig from easybuild.tools import config +from easybuild.tools.build_log import EasyBuildError from easybuild.tools.config import GENERAL_CLASS, build_option from easybuild.tools.filetools import change_dir, is_generic_easyblock, remove_file from easybuild.tools.filetools import verify_checksum, which, write_file @@ -157,7 +158,7 @@ def test_conflicts(self): self.assertFalse(check_conflicts(EasyConfigTest.ordered_specs, modules_tool(), check_inter_ec_conflicts=False), "No conflicts detected") - def check_dep_vars(self, dep, dep_vars): + def check_dep_vars(self, gen, dep, dep_vars): """Check whether available variants of a particular dependency are acceptable or not.""" # 'guilty' until proven 'innocent' @@ -288,17 +289,22 @@ def check_dep_vars(self, dep, dep_vars): (r'5\.', [r'Elk-']), ], # some software depends on numba, which typically requires an older LLVM; - # this includes PyOD, Python-Geometric, scVelo + # this includes BirdNET, cell2location, cryoDRGN, librosa, PyOD, Python-Geometric, scVelo, scanpy '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'scVelo-0\.1\.24-', r'PyTorch-Geometric-1\.[34]\.2']), - (r'10\.0\.1', [r'numba-0\.52\.0-', r'PyTorch-Geometric-1\.6\.3', r'PyOD-0\.8\.7-']), + (r'8\.', [r'numba-0\.47\.0-', r'librosa-0\.7\.2-', r'BirdNET-20201214-', + r'scVelo-0\.1\.24-', r'PyTorch-Geometric-1\.[34]\.2']), + (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-']), ], # rampart requires nodejs > 10, artic-ncov2019 requires rampart 'nodejs': [('12.16.1', ['rampart-1.2.0rc3-', 'artic-ncov2019-2020.04.13'])], # OPERA requires SAMtools 0.x 'SAMtools': [(r'0\.', [r'ChimPipe-0\.9\.5', r'Cufflinks-2\.2\.1', r'OPERA-2\.0\.6', r'CGmapTools-0\.1\.2', r'BatMeth2-2\.1'])], + # NanoPlot, NanoComp use an older version of Seaborn + 'Seaborn': [(r'0\.10\.1', [r'NanoComp-1\.13\.1-', r'NanoPlot-1\.33\.0-'])], 'TensorFlow': [ # medaka 0.11.4/0.12.0 requires recent TensorFlow <= 1.14 (and Python 3.6), # artic-ncov2019 requires medaka @@ -349,57 +355,76 @@ def check_dep_vars(self, dep, dep_vars): if len(py2_dep_vars) == 1 and len(py3_dep_vars) == 1: res = True + # for recent generations, there's no versionsuffix anymore for Python 3, + # but we still allow variants depending on Python 2.x + 3.x + is_recent_gen = False + full_toolchain_regex = re.compile(r'^20[1-9][0-9][ab]$') + gcc_toolchain_regex = re.compile(r'^GCC(core)?-[0-9]?[0-9]\.[0-9]$') + if full_toolchain_regex.match(gen): + is_recent_gen = LooseVersion(gen) >= LooseVersion('2020b') + elif gcc_toolchain_regex.match(gen): + genver = gen.split('-', 1)[1] + is_recent_gen = LooseVersion(genver) >= LooseVersion('10.2') + else: + raise EasyBuildError("Unkown type of toolchain generation: %s" % gen) + + if is_recent_gen: + py2_dep_vars = [x for x in dep_vars.keys() if '; versionsuffix: -Python-2.' in x] + py3_dep_vars = [x for x in dep_vars.keys() if x.strip().endswith('; versionsuffix:')] + if len(py2_dep_vars) == 1 and len(py3_dep_vars) == 1: + res = True + return res def test_check_dep_vars(self): """Test check_dep_vars utility method.""" # one single dep version: OK - self.assertTrue(self.check_dep_vars('testdep', { + self.assertTrue(self.check_dep_vars('2019b', 'testdep', { 'version: 1.2.3; versionsuffix:': ['foo-1.2.3.eb', 'bar-4.5.6.eb'], })) - self.assertTrue(self.check_dep_vars('testdep', { + self.assertTrue(self.check_dep_vars('2019b', 'testdep', { 'version: 1.2.3; versionsuffix: -test': ['foo-1.2.3.eb', 'bar-4.5.6.eb'], })) # two or more dep versions (no special case: not OK) - self.assertFalse(self.check_dep_vars('testdep', { + self.assertFalse(self.check_dep_vars('2019b', 'testdep', { 'version: 1.2.3; versionsuffix:': ['foo-1.2.3.eb'], 'version: 4.5.6; versionsuffix:': ['bar-4.5.6.eb'], })) - self.assertFalse(self.check_dep_vars('testdep', { + self.assertFalse(self.check_dep_vars('2019b', 'testdep', { 'version: 0.0; versionsuffix:': ['foobar-0.0.eb'], 'version: 1.2.3; versionsuffix:': ['foo-1.2.3.eb'], 'version: 4.5.6; versionsuffix:': ['bar-4.5.6.eb'], })) # Java is a special case, with wrapped Java versions - self.assertTrue(self.check_dep_vars('Java', { + self.assertTrue(self.check_dep_vars('2019b', 'Java', { 'version: 1.8.0_221; versionsuffix:': ['foo-1.2.3.eb'], 'version: 1.8; versionsuffix:': ['foo-1.2.3.eb'], })) # two Java wrappers is not OK - self.assertFalse(self.check_dep_vars('Java', { + self.assertFalse(self.check_dep_vars('2019b', 'Java', { 'version: 1.8.0_221; versionsuffix:': ['foo-1.2.3.eb'], 'version: 1.8; versionsuffix:': ['foo-1.2.3.eb'], 'version: 11.0.2; versionsuffix:': ['bar-4.5.6.eb'], 'version: 11; versionsuffix:': ['bar-4.5.6.eb'], })) # OK to have two or more wrappers if versionsuffix is used to indicate exception - self.assertTrue(self.check_dep_vars('Java', { + self.assertTrue(self.check_dep_vars('2019b', 'Java', { 'version: 1.8.0_221; versionsuffix:': ['foo-1.2.3.eb'], 'version: 1.8; versionsuffix:': ['foo-1.2.3.eb'], 'version: 11.0.2; versionsuffix:': ['bar-4.5.6-Java-11.eb'], 'version: 11; versionsuffix:': ['bar-4.5.6-Java-11.eb'], })) # versionsuffix must be there for all easyconfigs to indicate exception - self.assertFalse(self.check_dep_vars('Java', { + self.assertFalse(self.check_dep_vars('2019b', 'Java', { 'version: 1.8.0_221; versionsuffix:': ['foo-1.2.3.eb'], 'version: 1.8; versionsuffix:': ['foo-1.2.3.eb'], 'version: 11.0.2; versionsuffix:': ['bar-4.5.6-Java-11.eb', 'bar-4.5.6.eb'], 'version: 11; versionsuffix:': ['bar-4.5.6-Java-11.eb', 'bar-4.5.6.eb'], })) - self.assertTrue(self.check_dep_vars('Java', { + self.assertTrue(self.check_dep_vars('2019b', 'Java', { 'version: 1.8.0_221; versionsuffix:': ['foo-1.2.3.eb'], 'version: 1.8; versionsuffix:': ['foo-1.2.3.eb'], 'version: 11.0.2; versionsuffix:': ['bar-4.5.6-Java-11.eb'], @@ -410,59 +435,59 @@ def test_check_dep_vars(self): # strange situation: odd number of Java versions # not OK: two Java wrappers (and no versionsuffix to indicate exception) - self.assertFalse(self.check_dep_vars('Java', { + self.assertFalse(self.check_dep_vars('2019b', 'Java', { 'version: 1.8.0_221; versionsuffix:': ['foo-1.2.3.eb'], 'version: 1.8; versionsuffix:': ['foo-1.2.3.eb'], 'version: 11; versionsuffix:': ['bar-4.5.6.eb'], })) # OK because of -Java-11 versionsuffix - self.assertTrue(self.check_dep_vars('Java', { + self.assertTrue(self.check_dep_vars('2019b', 'Java', { 'version: 1.8.0_221; versionsuffix:': ['foo-1.2.3.eb'], 'version: 1.8; versionsuffix:': ['foo-1.2.3.eb'], 'version: 11; versionsuffix:': ['bar-4.5.6-Java-11.eb'], })) # not OK: two Java wrappers (and no versionsuffix to indicate exception) - self.assertFalse(self.check_dep_vars('Java', { + self.assertFalse(self.check_dep_vars('2019b', 'Java', { 'version: 1.8; versionsuffix:': ['foo-1.2.3.eb'], 'version: 11.0.2; versionsuffix:': ['bar-4.5.6.eb'], 'version: 11; versionsuffix:': ['bar-4.5.6.eb'], })) # OK because of -Java-11 versionsuffix - self.assertTrue(self.check_dep_vars('Java', { + self.assertTrue(self.check_dep_vars('2019b', 'Java', { 'version: 1.8; versionsuffix:': ['foo-1.2.3.eb'], 'version: 11.0.2; versionsuffix:': ['bar-4.5.6-Java-11.eb'], 'version: 11; versionsuffix:': ['bar-4.5.6-Java-11.eb'], })) # two different versions of Boost is not OK - self.assertFalse(self.check_dep_vars('Boost', { + self.assertFalse(self.check_dep_vars('2019b', 'Boost', { 'version: 1.64.0; versionsuffix:': ['foo-1.2.3.eb'], 'version: 1.70.0; versionsuffix:': ['foo-2.3.4.eb'], })) # a different Boost version that is only used as dependency for a matching Boost.Python is fine - self.assertTrue(self.check_dep_vars('Boost', { + self.assertTrue(self.check_dep_vars('2019a', 'Boost', { 'version: 1.64.0; versionsuffix:': ['Boost.Python-1.64.0-gompi-2019a.eb'], 'version: 1.70.0; versionsuffix:': ['foo-2.3.4.eb'], })) - self.assertTrue(self.check_dep_vars('Boost', { - 'version: 1.64.0; versionsuffix:': ['Boost.Python-1.64.0-gompi-2018b.eb'], + self.assertTrue(self.check_dep_vars('2019a', 'Boost', { + 'version: 1.64.0; versionsuffix:': ['Boost.Python-1.64.0-gompi-2019a.eb'], 'version: 1.66.0; versionsuffix:': ['Boost.Python-1.66.0-gompi-2019a.eb'], 'version: 1.70.0; versionsuffix:': ['foo-2.3.4.eb'], })) - self.assertFalse(self.check_dep_vars('Boost', { + self.assertFalse(self.check_dep_vars('2019a', 'Boost', { 'version: 1.64.0; versionsuffix:': ['Boost.Python-1.64.0-gompi-2019a.eb'], 'version: 1.66.0; versionsuffix:': ['foo-1.2.3.eb'], 'version: 1.70.0; versionsuffix:': ['foo-2.3.4.eb'], })) - self.assertTrue(self.check_dep_vars('Boost', { + self.assertTrue(self.check_dep_vars('2018a', 'Boost', { 'version: 1.63.0; versionsuffix: -Python-2.7.14': ['EMAN2-2.21a-foss-2018a-Python-2.7.14-Boost-1.63.0.eb'], 'version: 1.64.0; versionsuffix:': ['Boost.Python-1.64.0-gompi-2018a.eb'], 'version: 1.66.0; versionsuffix:': ['BLAST+-2.7.1-foss-2018a.eb'], })) - self.assertTrue(self.check_dep_vars('Boost', { + self.assertTrue(self.check_dep_vars('2019a', 'Boost', { 'version: 1.64.0; versionsuffix:': [ 'Boost.Python-1.64.0-gompi-2019a.eb', 'EMAN2-2.3-foss-2019a-Python-2.7.15.eb', @@ -473,6 +498,39 @@ def test_check_dep_vars(self): ], })) + # two variants is OK, if they're for Python 2.x and 3.x + self.assertTrue(self.check_dep_vars('2020a', 'Python', { + 'version: 2.7.18; versionsuffix:': ['SciPy-bundle-2020.03-foss-2020a-Python-2.7.18.eb'], + 'version: 3.8.2; versionsuffix:': ['SciPy-bundle-2020.03-foss-2020a-Python-3.8.2.eb'], + })) + + self.assertTrue(self.check_dep_vars('2020a', 'SciPy-bundle', { + 'version: 2020.03; versionsuffix: -Python-2.7.18': ['matplotlib-3.2.1-foss-2020a-Python-2.7.18.eb'], + 'version: 2020.03; versionsuffix: -Python-3.8.2': ['matplotlib-3.2.1-foss-2020a-Python-3.8.2.eb'], + })) + + # for recent easyconfig generations, there's no versionsuffix anymore for Python 3 + self.assertTrue(self.check_dep_vars('2020b', 'Python', { + 'version: 2.7.18; versionsuffix:': ['SciPy-bundle-2020.11-foss-2020b-Python-2.7.18.eb'], + 'version: 3.8.6; versionsuffix:': ['SciPy-bundle-2020.11-foss-2020b.eb'], + })) + + self.assertTrue(self.check_dep_vars('GCCcore-10.2', 'PyYAML', { + 'version: 5.3.1; versionsuffix:': ['IPython-7.18.1-GCCcore-10.2.0.eb'], + 'version: 5.3.1; versionsuffix: -Python-2.7.18': ['IPython-7.18.1-GCCcore-10.2.0-Python-2.7.18.eb'], + })) + + self.assertTrue(self.check_dep_vars('2020b', 'SciPy-bundle', { + 'version: 2020.11; versionsuffix: -Python-2.7.18': ['matplotlib-3.3.3-foss-2020b-Python-2.7.18.eb'], + 'version: 2020.11; versionsuffix:': ['matplotlib-3.3.3-foss-2020b.eb'], + })) + + # not allowed for older generations (foss/intel 2020a or older, GCC(core) 10.1.0 or older) + self.assertFalse(self.check_dep_vars('2020a', 'SciPy-bundle', { + 'version: 2020.03; versionsuffix: -Python-2.7.18': ['matplotlib-3.2.1-foss-2020a-Python-2.7.18.eb'], + 'version: 2020.03; versionsuffix:': ['matplotlib-3.2.1-foss-2020a.eb'], + })) + def test_dep_versions_per_toolchain_generation(self): """ Check whether there's only one dependency version per toolchain generation actively used. @@ -538,7 +596,7 @@ def get_deps_for(ec): for tc_gen in sorted(all_deps.keys()): for dep in sorted(all_deps[tc_gen].keys()): dep_vars = all_deps[tc_gen][dep] - if not self.check_dep_vars(dep, dep_vars): + if not self.check_dep_vars(tc_gen, dep, dep_vars): multi_dep_vars.append(dep) multi_dep_vars_msg += "\nfound %s variants of '%s' dependency " % (len(dep_vars), dep) multi_dep_vars_msg += "in easyconfigs using '%s' toolchain generation\n* " % tc_gen @@ -615,11 +673,11 @@ def check_sha256_checksums(self, changed_ecs): # the check_sha256_checksums function (again) creates an EasyBlock instance # for easyconfigs using the Bundle easyblock, this is a problem because the 'sources' easyconfig parameter - # is updated in place (sources for components are added the 'parent' sources) in Bundle's __init__; + # is updated in place (sources for components are added to the 'parent' sources) in Bundle's __init__; # therefore, we need to reset 'sources' to an empty list here if Bundle is used... # likewise for 'patches' and 'checksums' for ec in changed_ecs: - if ec['easyblock'] in ['Bundle', 'PythonBundle']: + if ec['easyblock'] in ['Bundle', 'PythonBundle', 'EB_OpenSSL_wrapper']: ec['sources'] = [] ec['patches'] = [] ec['checksums'] = [] @@ -656,7 +714,7 @@ def check_python_packages(self, changed_ecs, added_ecs_filenames): for ec in changed_ecs: - with disable_templating(ec): + with ec.disable_templating(): ec_fn = os.path.basename(ec.path) easyblock = ec.get('easyblock') exts_defaultclass = ec.get('exts_defaultclass') @@ -717,8 +775,8 @@ def check_python_packages(self, changed_ecs, added_ecs_filenames): 'R-keras-2.1.6-foss-2018a-R-3.4.4.eb', ] whitelisted = any(re.match(regex, ec_fn) for regex in whitelist_python_suffix) - has_python_dep = any(dep['name'] == 'Python' for dep in ec['dependencies'] - if LooseVersion(dep['version']) < LooseVersion('3.8.6')) + has_python_dep = any(LooseVersion(dep['version']) < LooseVersion('3.8.6') + for dep in ec['dependencies'] if dep['name'] == 'Python') if has_python_dep and ec.name != 'Tkinter' and not whitelisted: if not re.search(r'-Python-[23]\.[0-9]+\.[0-9]+', ec['versionsuffix']): msg = "'-Python-%%(pyver)s' should be included in versionsuffix in %s" % ec_fn @@ -729,8 +787,8 @@ def check_python_packages(self, changed_ecs, added_ecs_filenames): else: print('\nNote: Failed non-critical check: ' + msg) else: - has_recent_python3_dep = any(dep['name'] == 'Python' for dep in ec['dependencies'] - if LooseVersion(dep['version']) >= LooseVersion('3.8.6')) + has_recent_python3_dep = any(LooseVersion(dep['version']) >= LooseVersion('3.8.6') + for dep in ec['dependencies'] if dep['name'] == 'Python') if has_recent_python3_dep and re.search(r'-Python-3\.[0-9]+\.[0-9]+', ec['versionsuffix']): msg = "'-Python-%%(pyver)s' should no longer be included in versionsuffix in %s" % ec_fn failing_checks.append(msg) @@ -767,10 +825,11 @@ def check_R_packages(self, changed_ecs): def check_sanity_check_paths(self, changed_ecs): """Make sure a custom sanity_check_paths value is specified for easyconfigs that use a generic easyblock.""" - # GoPackage, PythonBundle & PythonPackage already have a decent customised sanity_check_paths + # some generic easyblocks already have a decent customised sanity_check_paths, + # including CMakePythonPackage, GoPackage, PythonBundle & PythonPackage; # BuildEnv, ModuleRC and Toolchain easyblocks doesn't install anything so there is nothing to check. - whitelist = ['BuildEnv', 'CrayToolchain', 'GoPackage', 'ModuleRC', 'PythonBundle', 'PythonPackage', - 'Toolchain'] + whitelist = ['BuildEnv', 'CMakePythonPackage', 'CrayToolchain', 'GoPackage', 'ModuleRC', + 'PythonBundle', 'PythonPackage', 'Toolchain'] # Bundles of dependencies without files of their own # Autotools: Autoconf + Automake + libtool, (recent) GCC: GCCcore + binutils, CUDA: GCC + CUDAcore, # CESM-deps: Python + Perl + netCDF + ESMF + git @@ -810,6 +869,8 @@ def check_https(self, changed_ecs): 'http://isl.gforge.inria.fr', # https:// leads to File Not Found 'http://tau.uoregon.edu/', + # https:// has outdated SSL configurations + 'http://faculty.scs.illinois.edu', ] http_regex = re.compile('http://[^"\'\n]+', re.M) @@ -980,6 +1041,16 @@ def template_easyconfig_test(self, spec): error_msg = "%s relies on automagic fallback to ConfigureMake, should use easyblock = 'ConfigureMake' instead" % fn self.assertTrue(easyblock or app_class is not ConfigureMake, error_msg) + # dump the easyconfig file; + # this should be done before creating the easyblock instance (done below via app_class), + # because some easyblocks (like PythonBundle) modify easyconfig parameters at initialisation + handle, test_ecfile = tempfile.mkstemp() + os.close(handle) + + ec.dump(test_ecfile) + dumped_ec = EasyConfigParser(test_ecfile).get_config_dict() + os.remove(test_ecfile) + app = app_class(ec) # more sanity checks @@ -1065,6 +1136,11 @@ def template_easyconfig_test(self, spec): res = verify_checksum(patch_full, checksum) self.assertTrue(res, error_msg) + # make sure 'source' step is not being skipped, + # since that implies not verifying the checksum + error_msg = "'source' step should not be skipped in %s, since that implies not verifying checksums" % ec_fn + self.assertFalse(ec['checksums'] and ('source' in ec['skipsteps']), error_msg) + for ext in ec['exts_list']: if isinstance(ext, (tuple, list)) and len(ext) == 3: @@ -1103,14 +1179,6 @@ def template_easyconfig_test(self, spec): app.close_log() os.remove(app.logfile) - # dump the easyconfig file - handle, test_ecfile = tempfile.mkstemp() - os.close(handle) - - ec.dump(test_ecfile) - dumped_ec = EasyConfigParser(test_ecfile).get_config_dict() - os.remove(test_ecfile) - # inject dummy values for templates that are only known at a later stage dummy_template_values = { 'builddir': '/dummy/builddir', @@ -1173,7 +1241,8 @@ def template_easyconfig_test(self, spec): error_msg = "%s value '%s' should start with '%s'" % (key, dumped_val, orig_val) self.assertTrue(dumped_val.startswith(orig_val), error_msg) else: - self.assertEqual(orig_val, dumped_val) + error_msg = "%s value should be equal in original and dumped easyconfig: '%s' vs '%s'" + self.assertEqual(orig_val, dumped_val, error_msg % (key, orig_val, dumped_val)) # test passed, so set back to True single_tests_ok = True and prev_single_tests_ok @@ -1200,7 +1269,7 @@ def innertest(self): if spec.endswith('.eb') and spec != 'TEMPLATE.eb': cnt += 1 innertest = make_inner_test(os.path.join(subpath, spec)) - innertest.__doc__ = "Test for parsing of easyconfig %s" % spec + innertest.__doc__ = "Test for easyconfig %s" % spec # double underscore so parsing tests are run first innertest.__name__ = "test__parse_easyconfig_%s" % spec setattr(EasyConfigTest, innertest.__name__, innertest)